shaka-player 3.2.2 → 3.2.5
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 +145 -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 +1598 -1525
- 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/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 +31 -31
- 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 +247 -227
- package/dist/shaka-player.compiled.debug.d.ts +247 -227
- package/dist/shaka-player.compiled.debug.externs.js +43 -16
- package/dist/shaka-player.compiled.debug.js +384 -388
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +43 -16
- package/dist/shaka-player.compiled.js +818 -817
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +291 -280
- package/dist/shaka-player.ui.debug.d.ts +291 -280
- package/dist/shaka-player.ui.debug.externs.js +45 -27
- package/dist/shaka-player.ui.debug.js +389 -394
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +45 -27
- package/dist/shaka-player.ui.js +964 -965
- 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/externs/shaka/player.js +8 -0
- package/externs/shaka/text.js +10 -0
- 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 +43 -31
- 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 +41 -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/segment_index.js +2 -1
- package/lib/media/segment_reference.js +19 -1
- package/lib/media/streaming_engine.js +12 -9
- 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 +77 -36
- package/lib/polyfill/all.js +2 -3
- package/lib/polyfill/encryption_scheme.js +1 -1
- package/lib/polyfill/media_capabilities.js +32 -17
- package/lib/polyfill/mediasource.js +1 -1
- package/lib/text/cue.js +7 -1
- package/lib/text/simple_text_displayer.js +2 -1
- package/lib/text/ttml_text_parser.js +92 -63
- package/lib/text/ui_text_displayer.js +18 -12
- 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 +88 -11
- package/lib/util/string_utils.js +3 -5
- package/lib/util/uint8array_utils.js +3 -5
- package/lib/util/xml_utils.js +34 -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 +37 -18
- 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 +7 -27
- 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 +11 -37
- package/test/media/streaming_engine_unit.js +155 -34
- 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 +62 -36
- 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 +41 -15
- package/test/player_unit.js +71 -46
- package/test/routing/walker_unit.js +0 -8
- package/test/test/assets/chapters.vtt +2 -2
- package/test/test/assets/chapters2.vtt +10 -0
- 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 +79 -0
- 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 +10 -23
- 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 +495 -237
- 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 +39 -38
- 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 +4 -4
- package/ui/less/buttons.less +5 -9
- package/ui/less/containers.less +5 -7
- package/ui/less/overflow_menu.less +4 -4
- package/ui/less/range_elements.less +5 -0
- package/ui/locales/sjn-translations.yaml +257 -0
- package/ui/locales/sjn.json +42 -0
- package/ui/localization.js +12 -36
- package/ui/text_selection.js +1 -0
- package/externs/media_capabilities.js +0 -16
- package/externs/svgelement.js +0 -18
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;
|
|
@@ -36,7 +12,7 @@ describe('Player', () => {
|
|
|
36
12
|
const originalLogWarn = shaka.log.warning;
|
|
37
13
|
const originalLogAlwaysWarn = shaka.log.alwaysWarn;
|
|
38
14
|
const originalIsTypeSupported = window.MediaSource.isTypeSupported;
|
|
39
|
-
const originalDecodingInfo =
|
|
15
|
+
const originalDecodingInfo = navigator.mediaCapabilities.decodingInfo;
|
|
40
16
|
|
|
41
17
|
const fakeManifestUri = 'fake-manifest-uri';
|
|
42
18
|
const fakeMimeType = 'application/test';
|
|
@@ -93,7 +69,7 @@ describe('Player', () => {
|
|
|
93
69
|
// Since this is not an integration test, we don't want MediaCapabilities to
|
|
94
70
|
// fail assertions based on browser support for types. Pretend that all
|
|
95
71
|
// video and audio types are supported.
|
|
96
|
-
|
|
72
|
+
navigator.mediaCapabilities.decodingInfo = async (config) => {
|
|
97
73
|
await Promise.resolve();
|
|
98
74
|
const videoType = config['video'] ?
|
|
99
75
|
config['video'].contentType.split('/')[0] : null;
|
|
@@ -177,7 +153,7 @@ describe('Player', () => {
|
|
|
177
153
|
shaka.log.alwaysWarn = originalLogAlwaysWarn;
|
|
178
154
|
window.MediaSource.isTypeSupported = originalIsTypeSupported;
|
|
179
155
|
shaka.media.ManifestParser.unregisterParserByMime(fakeMimeType);
|
|
180
|
-
|
|
156
|
+
navigator.mediaCapabilities.decodingInfo = originalDecodingInfo;
|
|
181
157
|
}
|
|
182
158
|
});
|
|
183
159
|
|
|
@@ -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', {});
|
|
@@ -1092,8 +1107,8 @@ describe('Player', () => {
|
|
|
1092
1107
|
// Image tracks
|
|
1093
1108
|
manifest.addImageStream(53, (stream) => {
|
|
1094
1109
|
stream.originalId = 'thumbnail';
|
|
1095
|
-
stream.width =
|
|
1096
|
-
stream.height =
|
|
1110
|
+
stream.width = 200;
|
|
1111
|
+
stream.height = 400;
|
|
1097
1112
|
stream.bandwidth = 10;
|
|
1098
1113
|
stream.mimeType = 'image/jpeg';
|
|
1099
1114
|
stream.tilesLayout = '1x1';
|
|
@@ -1503,8 +1518,8 @@ describe('Player', () => {
|
|
|
1503
1518
|
audioBandwidth: null,
|
|
1504
1519
|
videoBandwidth: null,
|
|
1505
1520
|
bandwidth: 10,
|
|
1506
|
-
width:
|
|
1507
|
-
height:
|
|
1521
|
+
width: 200,
|
|
1522
|
+
height: 400,
|
|
1508
1523
|
frameRate: null,
|
|
1509
1524
|
pixelAspectRatio: null,
|
|
1510
1525
|
hdr: null,
|
|
@@ -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;
|
|
@@ -2463,7 +2478,7 @@ describe('Player', () => {
|
|
|
2463
2478
|
it('throws CONTENT_UNSUPPORTED_BY_BROWSER', async () => {
|
|
2464
2479
|
window.MediaSource.isTypeSupported = (mimeType) => false;
|
|
2465
2480
|
|
|
2466
|
-
|
|
2481
|
+
navigator.mediaCapabilities.decodingInfo = async (config) => {
|
|
2467
2482
|
await Promise.resolve();
|
|
2468
2483
|
return {supported: false};
|
|
2469
2484
|
};
|
|
@@ -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);
|
|
@@ -2827,7 +2842,7 @@ describe('Player', () => {
|
|
|
2827
2842
|
});
|
|
2828
2843
|
});
|
|
2829
2844
|
|
|
2830
|
-
|
|
2845
|
+
navigator.mediaCapabilities.decodingInfo = async (config) => {
|
|
2831
2846
|
await Promise.resolve();
|
|
2832
2847
|
const videoType = config['video'] ? config['video'].contentType : '';
|
|
2833
2848
|
if (videoType.includes('video') &&
|
|
@@ -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);
|
|
@@ -3537,29 +3552,39 @@ describe('Player', () => {
|
|
|
3537
3552
|
|
|
3538
3553
|
await player.load(fakeManifestUri, 0, fakeMimeType);
|
|
3539
3554
|
|
|
3555
|
+
expect(player.getImageTracks()[0].width).toBe(100);
|
|
3556
|
+
expect(player.getImageTracks()[0].height).toBe(50);
|
|
3540
3557
|
const thumbnail0 = await player.getThumbnails(5, 0);
|
|
3541
3558
|
const thumbnail1 = await player.getThumbnails(5, 11);
|
|
3542
3559
|
const thumbnail2 = await player.getThumbnails(5, 21);
|
|
3543
3560
|
const thumbnail5 = await player.getThumbnails(5, 51);
|
|
3544
3561
|
expect(thumbnail0).toEqual(jasmine.objectContaining({
|
|
3562
|
+
imageHeight: 150,
|
|
3563
|
+
imageWidth: 200,
|
|
3545
3564
|
positionX: 0,
|
|
3546
3565
|
positionY: 0,
|
|
3547
3566
|
width: 100,
|
|
3548
3567
|
height: 50,
|
|
3549
3568
|
}));
|
|
3550
3569
|
expect(thumbnail1).toEqual(jasmine.objectContaining({
|
|
3570
|
+
imageHeight: 150,
|
|
3571
|
+
imageWidth: 200,
|
|
3551
3572
|
positionX: 100,
|
|
3552
3573
|
positionY: 0,
|
|
3553
3574
|
width: 100,
|
|
3554
3575
|
height: 50,
|
|
3555
3576
|
}));
|
|
3556
3577
|
expect(thumbnail2).toEqual(jasmine.objectContaining({
|
|
3578
|
+
imageHeight: 150,
|
|
3579
|
+
imageWidth: 200,
|
|
3557
3580
|
positionX: 0,
|
|
3558
3581
|
positionY: 50,
|
|
3559
3582
|
width: 100,
|
|
3560
3583
|
height: 50,
|
|
3561
3584
|
}));
|
|
3562
3585
|
expect(thumbnail5).toEqual(jasmine.objectContaining({
|
|
3586
|
+
imageHeight: 150,
|
|
3587
|
+
imageWidth: 200,
|
|
3563
3588
|
positionX: 100,
|
|
3564
3589
|
positionY: 100,
|
|
3565
3590
|
width: 100,
|
|
@@ -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
|