shaka-player 3.2.3 → 3.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.csslintrc +11 -1
- package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
- package/.github/workflows/build-and-test.yaml +130 -0
- package/.github/workflows/custom-actions/prep-for-appspot/action.yaml +56 -0
- package/.github/workflows/custom-actions/set-commit-status/action.yaml +41 -0
- package/.github/workflows/demo-version-index.yaml +29 -0
- package/.github/workflows/nightly-demo.yaml +42 -0
- package/.github/workflows/release-please.yaml +147 -0
- package/.github/workflows/safari-homedir-launcher.sh +18 -0
- package/.github/workflows/selenium-lab-tests.yaml +93 -0
- package/AUTHORS +2 -0
- package/CHANGELOG.md +1587 -1551
- package/CONTRIBUTING.md +2 -2
- package/CONTRIBUTORS +2 -0
- package/README.md +7 -7
- package/app-engine/README.md +9 -0
- package/app-engine/demo-version-index/README.md +14 -0
- package/app-engine/demo-version-index/app.yaml +2 -0
- package/app-engine/demo-version-index/main.py +162 -0
- package/app-engine/demo-version-index/requirements.txt +6 -0
- package/app-engine/demo-version-index/templates/index.html +114 -0
- package/app-engine/shaka-player-demo/README.md +18 -0
- package/app-engine/shaka-player-demo/app.yaml +61 -0
- package/app-engine/shaka-player-demo/main.py +95 -0
- package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
- package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
- package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
- package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
- package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
- package/app-engine/shaka-player-demo/posters/standard.png +0 -0
- package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
- package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
- package/app-engine/shaka-player-demo/posters.py +110 -0
- package/app-engine/shaka-player-demo/requirements.txt +5 -0
- package/app-engine/shaka-player-demo/time.txt +1 -0
- package/build/README.md +1 -1
- package/build/checkversion.py +1 -1
- package/build/conformance.textproto +13 -0
- package/build/docker/Dockerfile +20 -0
- package/build/docker/docker-compose.yml +10 -0
- package/build/gendeps.py +18 -15
- package/build/generateTsDefs.py +2 -0
- package/build/shaka-lab.yaml +163 -0
- package/build/shakaBuildHelpers.py +4 -29
- package/build/test.py +93 -28
- package/build/wrapper.template.js +2 -2
- package/demo/TengwarTelcontar.woff2 +0 -0
- package/demo/asset_card.js +1 -2
- package/demo/cast_receiver/index.html +1 -1
- package/demo/cast_receiver/receiver_app.css +14 -14
- package/demo/common/assets.js +2 -0
- package/demo/config.js +0 -1
- package/demo/custom.js +0 -1
- package/demo/customWarning.txt +2 -2
- package/demo/demo.less +29 -18
- package/demo/demo_uncompiled.js +1 -13
- package/demo/index.html +1 -1
- package/demo/main.js +3 -3
- package/dist/controls.css +2 -2
- package/dist/controls.css.map +1 -1
- package/dist/demo.compiled.debug.js +191 -194
- package/dist/demo.compiled.debug.map +4 -4
- package/dist/demo.compiled.js +191 -194
- package/dist/demo.compiled.map +4 -4
- package/dist/demo.css +1 -1
- package/dist/demo.css.map +1 -1
- package/dist/deps.js +225 -219
- package/dist/locales.js +27 -27
- package/dist/receiver.compiled.debug.js +43 -45
- package/dist/receiver.compiled.debug.map +4 -4
- package/dist/receiver.compiled.js +43 -45
- package/dist/receiver.compiled.map +4 -4
- package/dist/shaka-player.compiled.d.ts +228 -225
- package/dist/shaka-player.compiled.debug.d.ts +228 -225
- package/dist/shaka-player.compiled.debug.externs.js +21 -15
- package/dist/shaka-player.compiled.debug.js +326 -333
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +21 -15
- package/dist/shaka-player.compiled.js +818 -821
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +272 -278
- package/dist/shaka-player.ui.debug.d.ts +272 -278
- package/dist/shaka-player.ui.debug.externs.js +23 -26
- package/dist/shaka-player.ui.debug.js +259 -267
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +23 -26
- package/dist/shaka-player.ui.js +963 -968
- package/dist/shaka-player.ui.map +4 -4
- package/docs/design/REDESIGN.md +33 -33
- package/docs/design/codec_preferences.md +1 -1
- package/docs/design/dash-audio-channels.md +3 -3
- package/docs/design/dash-manifests.md +1 -1
- package/docs/design/gap-jumping.md +3 -3
- package/docs/design/preload.md +2 -2
- package/docs/tutorials/faq.md +8 -8
- package/docs/tutorials/index.json +1 -0
- package/docs/tutorials/plugins.md +3 -3
- package/docs/tutorials/selenium-grid-config.md +122 -0
- package/docs/tutorials/welcome.md +10 -2
- package/karma.conf.js +156 -45
- package/lib/abr/simple_abr_manager.js +12 -6
- package/lib/ads/ad_manager.js +1 -0
- package/lib/cast/cast_proxy.js +6 -4
- package/lib/cast/cast_receiver.js +3 -0
- package/lib/cea/cea608_data_channel.js +2 -2
- package/lib/cea/cea708_service.js +5 -4
- package/lib/cea/mp4_cea_parser.js +11 -5
- package/lib/cea/sei_processor.js +6 -3
- package/lib/dash/dash_parser.js +40 -30
- package/lib/dash/mpd_utils.js +4 -5
- package/lib/dash/segment_list.js +1 -2
- package/lib/dash/segment_template.js +3 -3
- package/lib/hls/hls_parser.js +11 -9
- package/lib/hls/manifest_text_parser.js +4 -3
- package/lib/media/adaptation_set.js +1 -2
- package/lib/media/content_workarounds.js +2 -2
- package/lib/media/drm_engine.js +3 -2
- package/lib/media/media_source_engine.js +3 -2
- package/lib/media/mp4_segment_index_parser.js +1 -4
- package/lib/media/playhead.js +2 -2
- package/lib/media/presentation_timeline.js +18 -8
- package/lib/media/region_observer.js +39 -33
- package/lib/media/region_timeline.js +17 -19
- package/lib/media/streaming_engine.js +7 -7
- package/lib/media/time_ranges_utils.js +1 -3
- package/lib/media/video_wrapper.js +1 -1
- package/lib/net/networking_engine.js +5 -1
- package/lib/offline/storage.js +12 -13
- package/lib/player.js +58 -24
- package/lib/polyfill/all.js +2 -3
- package/lib/polyfill/encryption_scheme.js +1 -1
- package/lib/polyfill/media_capabilities.js +3 -3
- package/lib/polyfill/mediasource.js +1 -1
- package/lib/text/cue.js +1 -1
- package/lib/text/simple_text_displayer.js +2 -1
- package/lib/text/ttml_text_parser.js +8 -5
- package/lib/text/ui_text_displayer.js +1 -1
- package/lib/util/buffer_utils.js +1 -3
- package/lib/util/ebml_parser.js +3 -3
- package/lib/util/error.js +1 -1
- package/lib/util/fake_event_target.js +21 -1
- package/lib/util/iterables.js +0 -46
- package/lib/util/mp4_box_parsers.js +1 -4
- package/lib/util/mp4_parser.js +5 -7
- package/lib/util/periods.js +8 -9
- package/lib/util/platform.js +3 -3
- package/lib/util/pssh.js +1 -4
- package/lib/util/stream_utils.js +4 -3
- package/lib/util/string_utils.js +3 -5
- package/lib/util/uint8array_utils.js +3 -5
- package/lib/util/xml_utils.js +15 -7
- package/package.json +62 -40
- package/roadmap.md +17 -17
- package/test/abr/simple_abr_manager_unit.js +3 -8
- package/test/ads/ad_manager_unit.js +0 -6
- package/test/cast/cast_proxy_unit.js +0 -8
- package/test/cast/cast_receiver_integration.js +1 -18
- package/test/cast/cast_receiver_unit.js +1 -9
- package/test/cast/cast_sender_unit.js +0 -6
- package/test/cast/cast_utils_unit.js +0 -13
- package/test/cea/cea608_memory_unit.js +0 -5
- package/test/cea/cea708_service_unit.js +0 -7
- package/test/cea/cea708_window_unit.js +0 -5
- package/test/cea/cea_decoder_unit.js +0 -6
- package/test/cea/dtvcc_packet_builder_unit.js +0 -3
- package/test/cea/dtvcc_packet_unit.js +0 -5
- package/test/cea/mp4_cea_parser_unit.js +0 -4
- package/test/dash/dash_parser_content_protection_unit.js +1 -10
- package/test/dash/dash_parser_live_unit.js +45 -15
- package/test/dash/dash_parser_manifest_unit.js +4 -17
- package/test/dash/dash_parser_segment_base_unit.js +1 -8
- package/test/dash/dash_parser_segment_list_unit.js +1 -7
- package/test/dash/dash_parser_segment_template_unit.js +0 -9
- package/test/dash/mpd_utils_unit.js +3 -11
- package/test/demo/demo_unit.js +0 -5
- package/test/deprecate/enforcer_unit.js +0 -4
- package/test/deprecate/version_unit.js +0 -2
- package/test/hls/hls_live_unit.js +2 -14
- package/test/hls/hls_parser_unit.js +76 -15
- package/test/hls/manifest_text_parser_unit.js +0 -10
- package/test/media/adaptation_set_criteria_unit.js +3 -7
- package/test/media/adaptation_set_unit.js +0 -2
- package/test/media/buffering_observer_unit.js +1 -4
- package/test/media/closed_caption_parser_unit.js +0 -3
- package/test/media/drm_engine_integration.js +2 -15
- package/test/media/drm_engine_unit.js +4 -24
- package/test/media/manifest_parser_unit.js +0 -4
- package/test/media/media_source_engine_integration.js +0 -7
- package/test/media/media_source_engine_unit.js +1 -14
- package/test/media/mp4_segment_index_parser_unit.js +0 -4
- package/test/media/play_rate_controller_unit.js +0 -4
- package/test/media/playhead_unit.js +8 -16
- package/test/media/presentation_timeline_unit.js +4 -7
- package/test/media/region_observer_unit.js +40 -10
- package/test/media/region_timeline_unit.js +40 -25
- package/test/media/segment_index_unit.js +0 -6
- package/test/media/segment_reference_unit.js +0 -3
- package/test/media/stall_detector_unit.js +0 -5
- package/test/media/streaming_engine_integration.js +9 -36
- package/test/media/streaming_engine_unit.js +11 -35
- package/test/media/time_ranges_utils_unit.js +0 -2
- package/test/media/transmuxer_integration.js +0 -6
- package/test/media/webm_segment_index_parser_unit.js +0 -4
- package/test/net/data_uri_plugin_unit.js +0 -7
- package/test/net/http_plugin_unit.js +0 -9
- package/test/net/networking_engine_unit.js +0 -11
- package/test/offline/download_progress_estimator_unit.js +0 -2
- package/test/offline/indexeddb_storage_unit.js +0 -6
- package/test/offline/manifest_convert_unit.js +0 -8
- package/test/offline/offline_integration.js +1 -10
- package/test/offline/offline_manifest_parser_unit.js +0 -6
- package/test/offline/offline_scheme_unit.js +0 -8
- package/test/offline/offline_uri_unit.js +0 -2
- package/test/offline/storage_compatibility_unit.js +1 -14
- package/test/offline/storage_integration.js +1 -25
- package/test/player_external.js +2 -10
- package/test/player_integration.js +21 -28
- package/test/player_load_graph_integration.js +1 -6
- package/test/player_src_equals_external.js +3 -9
- package/test/player_src_equals_integration.js +0 -7
- package/test/player_unit.js +52 -37
- package/test/routing/walker_unit.js +0 -8
- package/test/test/assets/large_file.mpd +1 -1
- package/test/test/boot.js +75 -22
- package/test/test/externs/jasmine.js +2 -2
- package/test/test/externs/karma.js +4 -0
- package/test/test/namespace.js +10 -0
- package/test/test/util/canned_idb.js +0 -8
- package/test/test/util/cea_utils.js +0 -6
- package/test/test/util/dash_parser_util.js +0 -13
- package/test/test/util/fake_ad.js +0 -3
- package/test/test/util/fake_ad_manager.js +0 -9
- package/test/test/util/fake_demo_main.js +0 -5
- package/test/test/util/fake_drm_engine.js +0 -6
- package/test/test/util/fake_media_source_engine.js +0 -7
- package/test/test/util/fake_networking_engine.js +0 -5
- package/test/test/util/fake_text_displayer.js +0 -5
- package/test/test/util/indexeddb_utils.js +1 -10
- package/test/test/util/jasmine_fetch.js +0 -1
- package/test/test/util/loader.js +0 -18
- package/test/test/util/manifest_generator.js +9 -14
- package/test/test/util/manifest_parser_util.js +0 -6
- package/test/test/util/offline_utils.js +0 -5
- package/test/test/util/simple_fakes.js +9 -26
- package/test/test/util/stream_generator.js +0 -14
- package/test/test/util/streaming_engine_util.js +0 -15
- package/test/test/util/test_scheme.js +1 -19
- package/test/test/util/ttml_utils.js +0 -2
- package/test/test/util/ui_utils.js +0 -9
- package/test/test/util/util.js +15 -26
- package/test/test/util/waiter.js +84 -43
- package/test/text/cue_integration.js +0 -4
- package/test/text/lrc_text_parser_unit.js +0 -4
- package/test/text/mp4_ttml_parser_unit.js +0 -6
- package/test/text/mp4_vtt_parser_unit.js +1 -7
- package/test/text/sbv_text_parser_unit.js +0 -4
- package/test/text/simple_text_displayer_unit.js +1 -8
- package/test/text/srt_text_parser_unit.js +0 -4
- package/test/text/ssa_text_parser_unit.js +0 -5
- package/test/text/text_engine_unit.js +2 -7
- package/test/text/text_track_integration.js +0 -2
- package/test/text/ttml_text_parser_unit.js +2 -11
- package/test/text/ui_text_displayer_unit.js +44 -41
- package/test/text/vtt_text_parser_unit.js +0 -9
- package/test/text/web_vtt_generator_unit.js +0 -3
- package/test/ui/ad_ui_unit.js +0 -11
- package/test/ui/localization_unit.js +0 -3
- package/test/ui/text_displayer_layout_unit.js +9 -19
- package/test/ui/ui_customization_unit.js +0 -6
- package/test/ui/ui_integration.js +0 -16
- package/test/ui/ui_unit.js +1 -17
- package/test/util/abortable_operation_unit.js +4 -9
- package/test/util/array_utils_unit.js +0 -2
- package/test/util/buffer_utils_unit.js +0 -2
- package/test/util/data_view_reader_unit.js +0 -4
- package/test/util/ebml_parser_unit.js +0 -4
- package/test/util/event_manager_unit.js +0 -3
- package/test/util/fake_event_target_unit.js +0 -5
- package/test/util/functional_unit.js +1 -1
- package/test/util/iterables_unit.js +0 -64
- package/test/util/language_utils_unit.js +0 -3
- package/test/util/manifest_parser_utils_unit.js +0 -2
- package/test/util/mp4_box_parsers_unit.js +0 -5
- package/test/util/mp4_parser_unit.js +0 -4
- package/test/util/multi_map_unit.js +0 -3
- package/test/util/object_utils_unit.js +0 -2
- package/test/util/periods_unit.js +14 -7
- package/test/util/pssh_unit.js +0 -5
- package/test/util/state_history_unit.js +0 -2
- package/test/util/stream_utils_unit.js +3 -8
- package/test/util/string_utils_unit.js +0 -6
- package/test/util/text_parser_unit.js +0 -2
- package/test/util/xml_utils_unit.js +0 -4
- package/ui/controls.js +3 -0
- package/ui/less/ad_controls.less +6 -6
- package/ui/less/buttons.less +6 -6
- package/ui/less/containers.less +9 -11
- package/ui/less/overflow_menu.less +4 -4
- package/ui/less/range_elements.less +7 -2
- package/ui/locales/sjn-translations.yaml +257 -0
- package/ui/locales/sjn.json +42 -0
- package/ui/localization.js +12 -36
- package/ui/seek_bar.js +2 -1
- package/externs/svgelement.js +0 -18
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.Player');
|
|
8
|
-
goog.require('shaka.test.UiUtils');
|
|
9
|
-
goog.require('shaka.test.Util');
|
|
10
|
-
goog.require('shaka.util.Error');
|
|
11
|
-
|
|
12
7
|
describe('Player Load Graph', () => {
|
|
13
8
|
const SMALL_MP4_CONTENT_URI = '/base/test/test/assets/small.mp4';
|
|
14
9
|
|
|
@@ -124,7 +119,7 @@ describe('Player Load Graph', () => {
|
|
|
124
119
|
|
|
125
120
|
// There was a bug when calling unload before calling load would cause
|
|
126
121
|
// the load to continue before the (first) unload was complete.
|
|
127
|
-
// https://github.com/
|
|
122
|
+
// https://github.com/shaka-project/shaka-player/issues/612
|
|
128
123
|
it('load will wait for unload to finish', async () => {
|
|
129
124
|
createPlayer(/* attachedTo= */ null);
|
|
130
125
|
|
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shaka.Player');
|
|
8
|
-
goog.require('shaka.test.UiUtils');
|
|
9
|
-
goog.require('shaka.test.Util');
|
|
10
|
-
goog.require('shaka.test.Waiter');
|
|
11
|
-
goog.require('shaka.util.EventManager');
|
|
12
|
-
|
|
13
7
|
describe('Player Src Equals', () => {
|
|
14
8
|
// This asset needs to be (1) long and (2) high bitrate so that we can
|
|
15
9
|
// invoke unbuffered seeks.
|
|
@@ -88,7 +82,7 @@ describe('Player Src Equals', () => {
|
|
|
88
82
|
expect(player.isBuffering()).toBeTruthy();
|
|
89
83
|
});
|
|
90
84
|
|
|
91
|
-
// A regression test for https://github.com/
|
|
85
|
+
// A regression test for https://github.com/shaka-project/shaka-player/issues/2523
|
|
92
86
|
it('detects subtitles in native HLS', async () => {
|
|
93
87
|
const supportsNativeHls =
|
|
94
88
|
video.canPlayType('application/vnd.apple.mpegurl') != '';
|
|
@@ -103,8 +97,8 @@ describe('Player Src Equals', () => {
|
|
|
103
97
|
});
|
|
104
98
|
|
|
105
99
|
// A regression test for
|
|
106
|
-
// https://github.com/
|
|
107
|
-
// and https://github.com/
|
|
100
|
+
// https://github.com/shaka-project/shaka-player/issues/2483#issuecomment-633412527
|
|
101
|
+
// and https://github.com/shaka-project/shaka-player/issues/2593
|
|
108
102
|
it('honors preferred audio and text languages', async () => {
|
|
109
103
|
const supportsNativeHls =
|
|
110
104
|
video.canPlayType('application/vnd.apple.mpegurl') != '';
|
|
@@ -4,13 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.Uri');
|
|
8
|
-
goog.require('shaka.Player');
|
|
9
|
-
goog.require('shaka.test.UiUtils');
|
|
10
|
-
goog.require('shaka.test.Util');
|
|
11
|
-
goog.require('shaka.test.Waiter');
|
|
12
|
-
goog.require('shaka.util.EventManager');
|
|
13
|
-
|
|
14
7
|
// These tests are for testing Shaka Player's integration with
|
|
15
8
|
// |HTMLMediaElement.src=|. These tests are to verify that all |shaka.Player|
|
|
16
9
|
// public methods behaviour correctly when playing content video |src=|.
|
package/test/player_unit.js
CHANGED
|
@@ -4,30 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.Player');
|
|
9
|
-
goog.require('shaka.log');
|
|
10
|
-
goog.require('shaka.media.BufferingObserver');
|
|
11
|
-
goog.require('shaka.media.ManifestParser');
|
|
12
|
-
goog.require('shaka.media.PresentationTimeline');
|
|
13
|
-
goog.require('shaka.media.SegmentReference');
|
|
14
|
-
goog.require('shaka.media.SegmentIndex');
|
|
15
|
-
goog.require('shaka.test.FakeAbrManager');
|
|
16
|
-
goog.require('shaka.test.FakeDrmEngine');
|
|
17
|
-
goog.require('shaka.test.FakeManifestParser');
|
|
18
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
19
|
-
goog.require('shaka.test.FakePlayhead');
|
|
20
|
-
goog.require('shaka.test.FakeStreamingEngine');
|
|
21
|
-
goog.require('shaka.test.FakeTextDisplayer');
|
|
22
|
-
goog.require('shaka.test.FakeVideo');
|
|
23
|
-
goog.require('shaka.test.ManifestGenerator');
|
|
24
|
-
goog.require('shaka.test.Util');
|
|
25
|
-
goog.require('shaka.util.ConfigUtils');
|
|
26
|
-
goog.require('shaka.util.Error');
|
|
27
|
-
goog.require('shaka.util.Iterables');
|
|
28
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
29
|
-
goog.requireType('shaka.media.Playhead');
|
|
30
|
-
|
|
31
7
|
describe('Player', () => {
|
|
32
8
|
const ContentType = shaka.util.ManifestParserUtils.ContentType;
|
|
33
9
|
const Util = shaka.test.Util;
|
|
@@ -325,7 +301,7 @@ describe('Player', () => {
|
|
|
325
301
|
// We used to fire the event /before/ filtering, which meant that for
|
|
326
302
|
// multi-codec content, the application might select something which will
|
|
327
303
|
// later be removed during filtering.
|
|
328
|
-
// https://github.com/
|
|
304
|
+
// https://github.com/shaka-project/shaka-player/issues/1119
|
|
329
305
|
it('fires after tracks have been filtered', async () => {
|
|
330
306
|
streamingListener.and.callFake(() => {
|
|
331
307
|
const tracks = player.getVariantTracks();
|
|
@@ -621,7 +597,7 @@ describe('Player', () => {
|
|
|
621
597
|
expect(logWarnSpy).not.toHaveBeenCalled();
|
|
622
598
|
});
|
|
623
599
|
|
|
624
|
-
// Regression test for https://github.com/
|
|
600
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/784
|
|
625
601
|
it('does not throw when overwriting serverCertificate', () => {
|
|
626
602
|
player.configure({
|
|
627
603
|
drm: {
|
|
@@ -687,9 +663,9 @@ describe('Player', () => {
|
|
|
687
663
|
});
|
|
688
664
|
|
|
689
665
|
it('configures play and seek range for VOD', async () => {
|
|
690
|
-
player.configure({playRangeStart: 5, playRangeEnd: 10});
|
|
691
666
|
const timeline = new shaka.media.PresentationTimeline(300, 0);
|
|
692
667
|
timeline.setStatic(true);
|
|
668
|
+
timeline.setDuration(300);
|
|
693
669
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
694
670
|
manifest.presentationTimeline = timeline;
|
|
695
671
|
manifest.addVariant(0, (variant) => {
|
|
@@ -697,7 +673,46 @@ describe('Player', () => {
|
|
|
697
673
|
});
|
|
698
674
|
});
|
|
699
675
|
goog.asserts.assert(manifest, 'manifest must be non-null');
|
|
676
|
+
|
|
677
|
+
player.configure({playRangeStart: 5, playRangeEnd: 10});
|
|
700
678
|
await player.load(fakeManifestUri, 0, fakeMimeType);
|
|
679
|
+
|
|
680
|
+
const seekRange = player.seekRange();
|
|
681
|
+
expect(seekRange.start).toBe(5);
|
|
682
|
+
expect(seekRange.end).toBe(10);
|
|
683
|
+
});
|
|
684
|
+
|
|
685
|
+
// Test for https://github.com/shaka-project/shaka-player/issues/4026
|
|
686
|
+
it('configures play and seek range with notifySegments', async () => {
|
|
687
|
+
const timeline = new shaka.media.PresentationTimeline(300, 0);
|
|
688
|
+
timeline.setStatic(true);
|
|
689
|
+
// This duration is used by useSegmentTemplate below to decide how many
|
|
690
|
+
// references to generate.
|
|
691
|
+
timeline.setDuration(300);
|
|
692
|
+
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
693
|
+
manifest.presentationTimeline = timeline;
|
|
694
|
+
manifest.addVariant(0, (variant) => {
|
|
695
|
+
variant.addVideo(1, (stream) => {
|
|
696
|
+
stream.useSegmentTemplate(
|
|
697
|
+
'$Number$.mp4', /* segmentDuration= */ 10);
|
|
698
|
+
});
|
|
699
|
+
});
|
|
700
|
+
});
|
|
701
|
+
goog.asserts.assert(manifest, 'manifest must be non-null');
|
|
702
|
+
|
|
703
|
+
// Explicitly notify the timeline of the segment references.
|
|
704
|
+
const videoStream = manifest.variants[0].video;
|
|
705
|
+
await videoStream.createSegmentIndex();
|
|
706
|
+
goog.asserts.assert(videoStream.segmentIndex,
|
|
707
|
+
'SegmentIndex must be non-null');
|
|
708
|
+
const references = Array.from(videoStream.segmentIndex);
|
|
709
|
+
goog.asserts.assert(references.length != 0,
|
|
710
|
+
'Must have references for this test!');
|
|
711
|
+
timeline.notifySegments(references);
|
|
712
|
+
|
|
713
|
+
player.configure({playRangeStart: 5, playRangeEnd: 10});
|
|
714
|
+
await player.load(fakeManifestUri, 0, fakeMimeType);
|
|
715
|
+
|
|
701
716
|
const seekRange = player.seekRange();
|
|
702
717
|
expect(seekRange.start).toBe(5);
|
|
703
718
|
expect(seekRange.end).toBe(10);
|
|
@@ -798,7 +813,7 @@ describe('Player', () => {
|
|
|
798
813
|
expect(newConfig.streaming.bufferBehind).toBe(77);
|
|
799
814
|
});
|
|
800
815
|
|
|
801
|
-
// https://github.com/
|
|
816
|
+
// https://github.com/shaka-project/shaka-player/issues/1524
|
|
802
817
|
it('does not pollute other advanced DRM configs', () => {
|
|
803
818
|
player.configure('drm.advanced.foo', {});
|
|
804
819
|
player.configure('drm.advanced.bar', {});
|
|
@@ -1668,8 +1683,8 @@ describe('Player', () => {
|
|
|
1668
1683
|
expect(getActiveTextTrack().id).toBe(spanishTextTrack.id);
|
|
1669
1684
|
});
|
|
1670
1685
|
|
|
1671
|
-
// Regression test for https://github.com/
|
|
1672
|
-
// and https://github.com/
|
|
1686
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/2906
|
|
1687
|
+
// and https://github.com/shaka-project/shaka-player/issues/2909.
|
|
1673
1688
|
it('selectAudioLanguage() can choose role-less tracks', async () => {
|
|
1674
1689
|
// For this test, we use a different (and simpler) manifest.
|
|
1675
1690
|
// Both audio tracks are English; one has a role, and one has no roles.
|
|
@@ -1729,7 +1744,7 @@ describe('Player', () => {
|
|
|
1729
1744
|
expect(getActiveVariantTrack().audioRoles).toEqual([]);
|
|
1730
1745
|
});
|
|
1731
1746
|
|
|
1732
|
-
// https://github.com/
|
|
1747
|
+
// https://github.com/shaka-project/shaka-player/issues/3262
|
|
1733
1748
|
it('selectAudioLanguage() doesn\'t change resolution', () => {
|
|
1734
1749
|
player.configure('abr.enabled', false);
|
|
1735
1750
|
abrManager.chooseIndex = 1;
|
|
@@ -1807,7 +1822,7 @@ describe('Player', () => {
|
|
|
1807
1822
|
expect(getActiveTextTrack().language).toBe('en');
|
|
1808
1823
|
});
|
|
1809
1824
|
|
|
1810
|
-
// https://github.com/
|
|
1825
|
+
// https://github.com/shaka-project/shaka-player/issues/2010
|
|
1811
1826
|
it('changing text lang changes active stream when not streaming', () => {
|
|
1812
1827
|
player.setTextTrackVisibility(false);
|
|
1813
1828
|
|
|
@@ -2112,8 +2127,8 @@ describe('Player', () => {
|
|
|
2112
2127
|
async function runTest(languages, preference, expectedIndex) {
|
|
2113
2128
|
// A manifest we can use to test language selection.
|
|
2114
2129
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
2115
|
-
|
|
2116
|
-
|
|
2130
|
+
for (let i = 0; i < languages.length; i++) {
|
|
2131
|
+
const lang = languages[i];
|
|
2117
2132
|
if (lang.charAt(0) == '*') {
|
|
2118
2133
|
manifest.addVariant(i, (variant) => {
|
|
2119
2134
|
variant.primary = true;
|
|
@@ -2548,7 +2563,7 @@ describe('Player', () => {
|
|
|
2548
2563
|
expect(variants[0].id).toBe(2);
|
|
2549
2564
|
|
|
2550
2565
|
// Now increase the restriction, AbrManager should still be updated.
|
|
2551
|
-
// https://github.com/
|
|
2566
|
+
// https://github.com/shaka-project/shaka-player/issues/1533
|
|
2552
2567
|
abrManager.setVariants.calls.reset();
|
|
2553
2568
|
player.configure({restrictions: {maxBandwidth: Infinity}});
|
|
2554
2569
|
expect(abrManager.setVariants).toHaveBeenCalledTimes(1);
|
|
@@ -3186,7 +3201,7 @@ describe('Player', () => {
|
|
|
3186
3201
|
// Most of our Player unit tests never adapt. This allowed some assertions
|
|
3187
3202
|
// to creep in that went uncaught until they happened during manual testing.
|
|
3188
3203
|
// Repro only happens with audio+video variants in which we only adapt one
|
|
3189
|
-
// type. This test covers https://github.com/
|
|
3204
|
+
// type. This test covers https://github.com/shaka-project/shaka-player/issues/954
|
|
3190
3205
|
|
|
3191
3206
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
3192
3207
|
manifest.addVariant(0, (variant) => {
|
|
@@ -3268,7 +3283,7 @@ describe('Player', () => {
|
|
|
3268
3283
|
|
|
3269
3284
|
describe('load', () => {
|
|
3270
3285
|
it('tolerates bandwidth of NaN, undefined, or 0', async () => {
|
|
3271
|
-
// Regression test for https://github.com/
|
|
3286
|
+
// Regression test for https://github.com/shaka-project/shaka-player/issues/938
|
|
3272
3287
|
manifest = shaka.test.ManifestGenerator.generate((manifest) => {
|
|
3273
3288
|
manifest.addVariant(0, (variant) => {
|
|
3274
3289
|
variant.bandwidth = /** @type {?} */(undefined);
|
|
@@ -4,14 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.routing.Walker');
|
|
9
|
-
goog.require('shaka.test.Util');
|
|
10
|
-
goog.require('shaka.util.AbortableOperation');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
goog.require('shaka.util.PublicPromise');
|
|
13
|
-
goog.requireType('shaka.routing.Node');
|
|
14
|
-
|
|
15
7
|
describe('Walker', () => {
|
|
16
8
|
const AbortableOperation = shaka.util.AbortableOperation;
|
|
17
9
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!--Generated with https://github.com/
|
|
2
|
+
<!--Generated with https://github.com/shaka-project/shaka-packager version v2.4.1-c731217-release-->
|
|
3
3
|
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" minBufferTime="PT2S" type="static" mediaPresentationDuration="PT60S">
|
|
4
4
|
<Period id="0">
|
|
5
5
|
<!-- This comment is very long:
|
package/test/test/boot.js
CHANGED
|
@@ -4,18 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('goog.asserts');
|
|
8
|
-
goog.require('shaka.Player');
|
|
9
|
-
goog.require('shaka.log');
|
|
10
|
-
goog.require('shaka.polyfill');
|
|
11
|
-
goog.require('shaka.util.Error');
|
|
12
|
-
goog.require('shaka.util.Platform');
|
|
13
|
-
|
|
14
|
-
// If ENABLE_DEBUG_LOADER is not set to false, goog.require() will try to load
|
|
15
|
-
// extra sources on-the-fly using pre-computed pathes in deps.js, which is not
|
|
16
|
-
// applicable for the tests.
|
|
17
|
-
goog['ENABLE_DEBUG_LOADER'] = false;
|
|
18
|
-
|
|
19
7
|
/**
|
|
20
8
|
* Gets the value of an argument passed from karma.
|
|
21
9
|
* @param {string} name
|
|
@@ -384,9 +372,10 @@ function configureJasmineEnvironment() {
|
|
|
384
372
|
};
|
|
385
373
|
}
|
|
386
374
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
375
|
+
/**
|
|
376
|
+
* Set up the Shaka Player test environment.
|
|
377
|
+
*/
|
|
378
|
+
function setupTestEnvironment() {
|
|
390
379
|
failTestsOnFailedAssertions();
|
|
391
380
|
failTestsOnNamespacedElementOrAttributeNames();
|
|
392
381
|
failTestsOnUnhandledRejections();
|
|
@@ -399,12 +388,76 @@ try {
|
|
|
399
388
|
shaka.polyfill.installAll();
|
|
400
389
|
|
|
401
390
|
configureJasmineEnvironment();
|
|
391
|
+
}
|
|
402
392
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
393
|
+
/**
|
|
394
|
+
* Load a script dynamically and await completion.
|
|
395
|
+
*
|
|
396
|
+
* @param {string} file
|
|
397
|
+
* @return {!Promise}
|
|
398
|
+
*/
|
|
399
|
+
function loadScript(file) {
|
|
400
|
+
return new Promise((resolve, reject) => {
|
|
401
|
+
const script = /** @type {!HTMLScriptElement} */(
|
|
402
|
+
document.createElement('script'));
|
|
403
|
+
script.defer = false;
|
|
404
|
+
script['async'] = false;
|
|
405
|
+
script.onload = resolve;
|
|
406
|
+
script.onerror = reject;
|
|
407
|
+
script.setAttribute('src', '/base/' + file);
|
|
408
|
+
document.head.appendChild(script);
|
|
409
|
+
});
|
|
410
410
|
}
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Load all test scripts and await completion.
|
|
414
|
+
*
|
|
415
|
+
* @return {!Promise}
|
|
416
|
+
*/
|
|
417
|
+
function loadTests() {
|
|
418
|
+
const loadPromises = [];
|
|
419
|
+
for (const file of getClientArg('testFiles')) {
|
|
420
|
+
loadPromises.push(loadScript(file));
|
|
421
|
+
}
|
|
422
|
+
return Promise.all(loadPromises);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
// Hijack Karma's start() method and start things our way.
|
|
426
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
427
|
+
const originalStart = window.__karma__.start.bind(window.__karma__);
|
|
428
|
+
window.__karma__.start = async () => {
|
|
429
|
+
// Executed when Karma has finished loading everything it loads for us.
|
|
430
|
+
// Those things were all loaded in parallel, and had no interdependencies
|
|
431
|
+
// other than those in the Shaka Player library, tracked by the Closure
|
|
432
|
+
// library's goog.require/goog.provide.
|
|
433
|
+
|
|
434
|
+
// Now we load the tests from here, rather than letting Karma do it. This
|
|
435
|
+
// give us control over the order, so that everything else is loaded and
|
|
436
|
+
// complete before any tests are requested. Then we may reference test
|
|
437
|
+
// utilities and library namespaces in the body of describe() blocks, which
|
|
438
|
+
// are executed synchronously as the test scripts are loaded. Without this
|
|
439
|
+
// ordering, we would have to either:
|
|
440
|
+
// 1. very carefully avoid references in describe() and defer them to
|
|
441
|
+
// beforeAll()
|
|
442
|
+
// or 2. strictly adopt goog.provide/goog.require throughout our tests
|
|
443
|
+
// In those scenarios, failure to do so would only manifest some of the time
|
|
444
|
+
// and on certain platforms. So this seems to be the more robust solution.
|
|
445
|
+
|
|
446
|
+
// See https://github.com/shaka-project/shaka-player/issues/4094
|
|
447
|
+
|
|
448
|
+
try {
|
|
449
|
+
setupTestEnvironment();
|
|
450
|
+
console.log('Set up test environment.');
|
|
451
|
+
await loadTests();
|
|
452
|
+
console.log('Loaded all tests.');
|
|
453
|
+
|
|
454
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
455
|
+
} catch (error) {
|
|
456
|
+
console.error('Error during setup:', error);
|
|
457
|
+
window.__karma__.error(error);
|
|
458
|
+
return;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
// Finally, start the tests.
|
|
462
|
+
originalStart();
|
|
463
|
+
};
|
|
@@ -343,7 +343,7 @@ jasmine.Spy.prototype.and;
|
|
|
343
343
|
/**
|
|
344
344
|
* @param {string} name
|
|
345
345
|
* @return {!jasmine.Spy}
|
|
346
|
-
* @see https://github.com/
|
|
346
|
+
* @see https://github.com/shaka-project/closure-compiler/issues/1422
|
|
347
347
|
*/
|
|
348
348
|
jasmine.createSpy = function(name) {};
|
|
349
349
|
|
|
@@ -360,7 +360,7 @@ jasmine.createSpyObj = function(name, members) {};
|
|
|
360
360
|
* @param {*} obj
|
|
361
361
|
* @param {string} name
|
|
362
362
|
* @return {!jasmine.Spy}
|
|
363
|
-
* @see https://github.com/
|
|
363
|
+
* @see https://github.com/shaka-project/closure-compiler/issues/1422
|
|
364
364
|
*/
|
|
365
365
|
var spyOn = function(obj, name) {};
|
|
366
366
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*! @license
|
|
2
|
+
* Shaka Player
|
|
3
|
+
* Copyright 2016 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Define the shaka.test namespace before we load the test utilities.
|
|
8
|
+
// Without goog.provide in the test utils, this has to be explicit and come
|
|
9
|
+
// before we load the utils.
|
|
10
|
+
shaka.test = {};
|
|
@@ -4,14 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.CannedIDB');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.log');
|
|
10
|
-
goog.require('shaka.offline.indexeddb.DBOperation');
|
|
11
|
-
goog.require('shaka.util.BufferUtils');
|
|
12
|
-
goog.require('shaka.util.Uint8ArrayUtils');
|
|
13
|
-
|
|
14
|
-
|
|
15
7
|
/**
|
|
16
8
|
* A testing utility that can be used to dump and restore entire IndexedDB
|
|
17
9
|
* databases. This can be inserted into a running app to snapshot databases
|
|
@@ -4,12 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.CeaUtils');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.cea.CeaUtils');
|
|
10
|
-
goog.require('shaka.text.Cue');
|
|
11
|
-
|
|
12
|
-
|
|
13
7
|
/**
|
|
14
8
|
* Testing helpers to assist tests for Closed Caption decoders for CEA captions.
|
|
15
9
|
*/
|
|
@@ -4,19 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.Dash');
|
|
8
|
-
|
|
9
|
-
goog.require('goog.asserts');
|
|
10
|
-
goog.require('shaka.dash.DashParser');
|
|
11
|
-
goog.require('shaka.test.FakeNetworkingEngine');
|
|
12
|
-
goog.require('shaka.test.ManifestParser');
|
|
13
|
-
goog.require('shaka.test.Util');
|
|
14
|
-
goog.require('shaka.util.PlayerConfiguration');
|
|
15
|
-
goog.require('shaka.util.StringUtils');
|
|
16
|
-
goog.requireType('shaka.media.SegmentReference');
|
|
17
|
-
goog.requireType('shaka.util.Error');
|
|
18
|
-
|
|
19
|
-
|
|
20
7
|
/** @summary Utilities for working with the DASH parser. */
|
|
21
8
|
shaka.test.Dash = class {
|
|
22
9
|
/**
|
|
@@ -4,15 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.FakeAdManager');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.ads.AdManager');
|
|
10
|
-
goog.require('shaka.ads.AdsStats');
|
|
11
|
-
goog.require('shaka.util.FakeEvent');
|
|
12
|
-
goog.require('shaka.util.FakeEventTarget');
|
|
13
|
-
goog.requireType('shaka.test.FakeAd');
|
|
14
|
-
|
|
15
|
-
|
|
16
7
|
/**
|
|
17
8
|
* @implements {shaka.extern.IAdManager}
|
|
18
9
|
* @final
|
|
@@ -4,13 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.FakeMediaSourceEngine');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.media.MediaSourceEngine');
|
|
10
|
-
goog.require('shaka.test.FakeTextDisplayer');
|
|
11
|
-
goog.require('shaka.util.ManifestParserUtils');
|
|
12
|
-
|
|
13
|
-
|
|
14
7
|
/**
|
|
15
8
|
* @summary
|
|
16
9
|
* This simulates multiple SourceBuffers. However, it only
|
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.FakeNetworkingEngine');
|
|
8
|
-
|
|
9
|
-
/** @fileoverview @suppress {missingRequire} */
|
|
10
|
-
|
|
11
|
-
|
|
12
7
|
/**
|
|
13
8
|
* A fake networking engine that returns constant data. The request member
|
|
14
9
|
* is a jasmine spy and can be used to check the actual calls that occurred.
|
|
@@ -4,14 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.IndexedDBUtils');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.test.Util');
|
|
10
|
-
goog.require('shaka.util.Functional');
|
|
11
|
-
goog.require('shaka.util.Iterables');
|
|
12
|
-
goog.require('shaka.util.PublicPromise');
|
|
13
|
-
|
|
14
|
-
|
|
15
7
|
shaka.test.IndexedDBUtils = class {
|
|
16
8
|
/**
|
|
17
9
|
* Make a connection to indexeddb. This assumes that it will be a new
|
|
@@ -41,8 +33,7 @@ shaka.test.IndexedDBUtils = class {
|
|
|
41
33
|
// connection after 5 attempts (with delays in between), just give
|
|
42
34
|
// up.
|
|
43
35
|
let lastError;
|
|
44
|
-
for (
|
|
45
|
-
shaka.util.Functional.ignored(_);
|
|
36
|
+
for (let i = 0; i < 5; i++) {
|
|
46
37
|
try {
|
|
47
38
|
return await tryOpen(); // eslint-disable-line no-await-in-loop
|
|
48
39
|
} catch (e) { // eslint-disable-line no-restricted-syntax
|
package/test/test/util/loader.js
CHANGED
|
@@ -4,24 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.provide('shaka.test.Loader');
|
|
8
|
-
|
|
9
|
-
goog.require('shaka.log');
|
|
10
|
-
goog.require('shaka.test.TestScheme');
|
|
11
|
-
goog.require('shaka.util.PublicPromise');
|
|
12
|
-
goog.requireType('shaka.Player');
|
|
13
|
-
goog.requireType('shaka.media.InitSegmentReference');
|
|
14
|
-
goog.requireType('shaka.media.PresentationTimeline');
|
|
15
|
-
goog.requireType('shaka.media.SegmentIndex');
|
|
16
|
-
goog.requireType('shaka.media.SegmentReference');
|
|
17
|
-
goog.requireType('shaka.net.NetworkingEngine');
|
|
18
|
-
goog.requireType('shaka.offline.Storage');
|
|
19
|
-
goog.requireType('shaka.ui.Controls');
|
|
20
|
-
goog.requireType('shaka.ui.Element');
|
|
21
|
-
goog.requireType('shaka.ui.Overlay');
|
|
22
|
-
goog.requireType('shaka.util.StringUtils');
|
|
23
|
-
|
|
24
|
-
|
|
25
7
|
/**
|
|
26
8
|
* A stand-in type for the "shaka" namespace. Used when loading the compiled
|
|
27
9
|
* library or when referencing it in ManifestGenerator or TestScheme.
|