shaka-player 3.3.1 → 3.3.4

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.
Files changed (336) hide show
  1. package/.csslintrc +11 -1
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
  3. package/.github/pull_request_template.md +6 -34
  4. package/.github/workflows/build-and-test.yaml +130 -0
  5. package/.github/workflows/custom-actions/prep-for-appspot/action.yaml +56 -0
  6. package/.github/workflows/custom-actions/set-commit-status/action.yaml +41 -0
  7. package/.github/workflows/demo-version-index.yaml +29 -0
  8. package/.github/workflows/nightly-demo.yaml +42 -0
  9. package/.github/workflows/release-please.yaml +147 -0
  10. package/.github/workflows/safari-homedir-launcher.sh +18 -0
  11. package/.github/workflows/selenium-lab-tests.yaml +93 -0
  12. package/AUTHORS +2 -0
  13. package/CHANGELOG.md +1707 -1670
  14. package/CONTRIBUTING.md +2 -2
  15. package/CONTRIBUTORS +2 -0
  16. package/README.md +7 -7
  17. package/app-engine/README.md +9 -0
  18. package/app-engine/demo-version-index/README.md +14 -0
  19. package/app-engine/demo-version-index/app.yaml +2 -0
  20. package/app-engine/demo-version-index/main.py +162 -0
  21. package/app-engine/demo-version-index/requirements.txt +6 -0
  22. package/app-engine/demo-version-index/templates/index.html +114 -0
  23. package/app-engine/shaka-player-demo/README.md +18 -0
  24. package/app-engine/shaka-player-demo/app.yaml +61 -0
  25. package/app-engine/shaka-player-demo/main.py +95 -0
  26. package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
  27. package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
  28. package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
  29. package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
  30. package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
  31. package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
  32. package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
  33. package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
  34. package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
  35. package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
  36. package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
  37. package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
  38. package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
  39. package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
  40. package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
  41. package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
  42. package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
  43. package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
  44. package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
  45. package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
  46. package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
  47. package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
  48. package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
  49. package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
  50. package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
  51. package/app-engine/shaka-player-demo/posters/standard.png +0 -0
  52. package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
  53. package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
  54. package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
  55. package/app-engine/shaka-player-demo/posters.py +110 -0
  56. package/app-engine/shaka-player-demo/requirements.txt +5 -0
  57. package/app-engine/shaka-player-demo/time.txt +1 -0
  58. package/build/README.md +1 -1
  59. package/build/checkversion.py +1 -1
  60. package/build/conformance.textproto +13 -0
  61. package/build/docker/Dockerfile +20 -0
  62. package/build/docker/docker-compose.yml +10 -0
  63. package/build/gendeps.py +18 -15
  64. package/build/generateTsDefs.py +2 -0
  65. package/build/shaka-lab.yaml +163 -0
  66. package/build/shakaBuildHelpers.py +4 -29
  67. package/build/test.py +93 -28
  68. package/build/types/polyfill +1 -0
  69. package/build/wrapper.template.js +2 -2
  70. package/demo/TengwarTelcontar.woff2 +0 -0
  71. package/demo/asset_card.js +1 -2
  72. package/demo/cast_receiver/index.html +1 -1
  73. package/demo/cast_receiver/receiver_app.css +14 -14
  74. package/demo/common/assets.js +2 -0
  75. package/demo/config.js +0 -1
  76. package/demo/custom.js +0 -1
  77. package/demo/customWarning.txt +2 -2
  78. package/demo/demo.less +29 -18
  79. package/demo/demo_uncompiled.js +1 -13
  80. package/demo/index.html +1 -1
  81. package/demo/main.js +3 -3
  82. package/dist/controls.css +3 -3
  83. package/dist/controls.css.map +1 -1
  84. package/dist/demo.compiled.debug.js +191 -194
  85. package/dist/demo.compiled.debug.map +4 -4
  86. package/dist/demo.compiled.js +191 -194
  87. package/dist/demo.compiled.map +4 -4
  88. package/dist/demo.css +1 -1
  89. package/dist/demo.css.map +1 -1
  90. package/dist/deps.js +233 -226
  91. package/dist/locales.js +32 -32
  92. package/dist/receiver.compiled.debug.js +43 -45
  93. package/dist/receiver.compiled.debug.map +4 -4
  94. package/dist/receiver.compiled.js +43 -45
  95. package/dist/receiver.compiled.map +4 -4
  96. package/dist/shaka-player.compiled.d.ts +250 -237
  97. package/dist/shaka-player.compiled.debug.d.ts +250 -237
  98. package/dist/shaka-player.compiled.debug.externs.js +31 -15
  99. package/dist/shaka-player.compiled.debug.js +252 -257
  100. package/dist/shaka-player.compiled.debug.map +4 -4
  101. package/dist/shaka-player.compiled.externs.js +31 -15
  102. package/dist/shaka-player.compiled.js +844 -849
  103. package/dist/shaka-player.compiled.map +4 -4
  104. package/dist/shaka-player.ui.d.ts +296 -292
  105. package/dist/shaka-player.ui.debug.d.ts +296 -292
  106. package/dist/shaka-player.ui.debug.externs.js +33 -26
  107. package/dist/shaka-player.ui.debug.js +345 -351
  108. package/dist/shaka-player.ui.debug.map +4 -4
  109. package/dist/shaka-player.ui.externs.js +33 -26
  110. package/dist/shaka-player.ui.js +1002 -1008
  111. package/dist/shaka-player.ui.map +4 -4
  112. package/docs/design/REDESIGN.md +33 -33
  113. package/docs/design/bg-fetch.md +2 -2
  114. package/docs/design/codec_preferences.md +1 -1
  115. package/docs/design/dash-audio-channels.md +3 -3
  116. package/docs/design/dash-manifests.md +1 -1
  117. package/docs/design/gap-jumping.md +3 -3
  118. package/docs/design/preload.md +2 -2
  119. package/docs/tutorials/faq.md +8 -8
  120. package/docs/tutorials/index.json +1 -0
  121. package/docs/tutorials/plugins.md +3 -3
  122. package/docs/tutorials/selenium-grid-config.md +122 -0
  123. package/docs/tutorials/welcome.md +10 -2
  124. package/externs/cmcd.js +1 -1
  125. package/karma.conf.js +156 -45
  126. package/lib/abr/simple_abr_manager.js +12 -6
  127. package/lib/ads/ad_manager.js +1 -0
  128. package/lib/cast/cast_proxy.js +6 -4
  129. package/lib/cast/cast_receiver.js +3 -0
  130. package/lib/cea/cea608_data_channel.js +2 -2
  131. package/lib/cea/cea708_service.js +5 -4
  132. package/lib/cea/mp4_cea_parser.js +11 -5
  133. package/lib/cea/sei_processor.js +6 -3
  134. package/lib/dash/dash_parser.js +40 -30
  135. package/lib/dash/mpd_utils.js +4 -5
  136. package/lib/dash/segment_list.js +1 -2
  137. package/lib/dash/segment_template.js +3 -3
  138. package/lib/hls/hls_parser.js +11 -9
  139. package/lib/hls/manifest_text_parser.js +4 -3
  140. package/lib/media/adaptation_set.js +1 -2
  141. package/lib/media/content_workarounds.js +2 -2
  142. package/lib/media/drm_engine.js +3 -2
  143. package/lib/media/media_source_engine.js +3 -2
  144. package/lib/media/mp4_segment_index_parser.js +1 -4
  145. package/lib/media/playhead.js +2 -2
  146. package/lib/media/presentation_timeline.js +18 -8
  147. package/lib/media/quality_observer.js +17 -34
  148. package/lib/media/region_observer.js +39 -33
  149. package/lib/media/region_timeline.js +17 -19
  150. package/lib/media/streaming_engine.js +7 -7
  151. package/lib/media/time_ranges_utils.js +1 -3
  152. package/lib/media/video_wrapper.js +1 -1
  153. package/lib/net/networking_engine.js +5 -1
  154. package/lib/offline/storage.js +12 -13
  155. package/lib/player.js +65 -25
  156. package/lib/polyfill/all.js +2 -3
  157. package/lib/polyfill/encryption_scheme.js +1 -1
  158. package/lib/polyfill/media_capabilities.js +3 -3
  159. package/lib/polyfill/mediasource.js +1 -1
  160. package/lib/polyfill/symbol.js +46 -0
  161. package/lib/text/cue.js +1 -1
  162. package/lib/text/simple_text_displayer.js +2 -1
  163. package/lib/text/ttml_text_parser.js +8 -5
  164. package/lib/text/ui_text_displayer.js +1 -1
  165. package/lib/util/buffer_utils.js +1 -3
  166. package/lib/util/ebml_parser.js +3 -3
  167. package/lib/util/error.js +1 -1
  168. package/lib/util/fake_event_target.js +21 -1
  169. package/lib/util/iterables.js +0 -46
  170. package/lib/util/mp4_box_parsers.js +1 -4
  171. package/lib/util/mp4_parser.js +5 -7
  172. package/lib/util/periods.js +10 -11
  173. package/lib/util/platform.js +3 -3
  174. package/lib/util/pssh.js +1 -4
  175. package/lib/util/stream_utils.js +4 -3
  176. package/lib/util/string_utils.js +3 -5
  177. package/lib/util/uint8array_utils.js +3 -5
  178. package/lib/util/xml_utils.js +15 -7
  179. package/package.json +62 -40
  180. package/roadmap.md +17 -17
  181. package/shaka-player.uncompiled.js +1 -0
  182. package/test/abr/simple_abr_manager_unit.js +3 -8
  183. package/test/ads/ad_manager_unit.js +0 -6
  184. package/test/cast/cast_proxy_unit.js +0 -8
  185. package/test/cast/cast_receiver_integration.js +1 -18
  186. package/test/cast/cast_receiver_unit.js +1 -9
  187. package/test/cast/cast_sender_unit.js +0 -6
  188. package/test/cast/cast_utils_unit.js +0 -13
  189. package/test/cea/cea608_memory_unit.js +0 -5
  190. package/test/cea/cea708_service_unit.js +0 -7
  191. package/test/cea/cea708_window_unit.js +0 -5
  192. package/test/cea/cea_decoder_unit.js +0 -6
  193. package/test/cea/dtvcc_packet_builder_unit.js +0 -3
  194. package/test/cea/dtvcc_packet_unit.js +0 -5
  195. package/test/cea/mp4_cea_parser_unit.js +0 -4
  196. package/test/dash/dash_parser_content_protection_unit.js +1 -10
  197. package/test/dash/dash_parser_live_unit.js +45 -15
  198. package/test/dash/dash_parser_manifest_unit.js +4 -17
  199. package/test/dash/dash_parser_segment_base_unit.js +1 -8
  200. package/test/dash/dash_parser_segment_list_unit.js +1 -7
  201. package/test/dash/dash_parser_segment_template_unit.js +0 -9
  202. package/test/dash/mpd_utils_unit.js +3 -11
  203. package/test/demo/demo_unit.js +0 -5
  204. package/test/deprecate/enforcer_unit.js +0 -4
  205. package/test/deprecate/version_unit.js +0 -2
  206. package/test/hls/hls_live_unit.js +2 -14
  207. package/test/hls/hls_parser_unit.js +76 -15
  208. package/test/hls/manifest_text_parser_unit.js +0 -10
  209. package/test/media/adaptation_set_criteria_unit.js +3 -7
  210. package/test/media/adaptation_set_unit.js +0 -2
  211. package/test/media/buffering_observer_unit.js +1 -4
  212. package/test/media/closed_caption_parser_unit.js +0 -3
  213. package/test/media/drm_engine_integration.js +2 -15
  214. package/test/media/drm_engine_unit.js +4 -24
  215. package/test/media/manifest_parser_unit.js +0 -4
  216. package/test/media/media_source_engine_integration.js +0 -7
  217. package/test/media/media_source_engine_unit.js +1 -14
  218. package/test/media/mp4_segment_index_parser_unit.js +0 -4
  219. package/test/media/play_rate_controller_unit.js +0 -4
  220. package/test/media/playhead_unit.js +8 -16
  221. package/test/media/presentation_timeline_unit.js +4 -7
  222. package/test/media/quality_observer_unit.js +4 -5
  223. package/test/media/region_observer_unit.js +40 -10
  224. package/test/media/region_timeline_unit.js +40 -25
  225. package/test/media/segment_index_unit.js +0 -6
  226. package/test/media/segment_reference_unit.js +0 -3
  227. package/test/media/stall_detector_unit.js +0 -5
  228. package/test/media/streaming_engine_integration.js +9 -36
  229. package/test/media/streaming_engine_unit.js +11 -35
  230. package/test/media/time_ranges_utils_unit.js +0 -2
  231. package/test/media/transmuxer_integration.js +0 -6
  232. package/test/media/webm_segment_index_parser_unit.js +0 -4
  233. package/test/net/data_uri_plugin_unit.js +0 -7
  234. package/test/net/http_plugin_unit.js +0 -9
  235. package/test/net/networking_engine_unit.js +0 -11
  236. package/test/offline/download_progress_estimator_unit.js +0 -2
  237. package/test/offline/indexeddb_storage_unit.js +0 -6
  238. package/test/offline/manifest_convert_unit.js +0 -8
  239. package/test/offline/offline_integration.js +1 -10
  240. package/test/offline/offline_manifest_parser_unit.js +0 -6
  241. package/test/offline/offline_scheme_unit.js +0 -8
  242. package/test/offline/offline_uri_unit.js +0 -2
  243. package/test/offline/storage_compatibility_unit.js +1 -14
  244. package/test/offline/storage_integration.js +1 -27
  245. package/test/player_external.js +2 -10
  246. package/test/player_integration.js +22 -28
  247. package/test/player_load_graph_integration.js +1 -6
  248. package/test/player_src_equals_external.js +3 -9
  249. package/test/player_src_equals_integration.js +0 -7
  250. package/test/player_unit.js +52 -37
  251. package/test/routing/walker_unit.js +0 -8
  252. package/test/test/assets/large_file.mpd +1 -1
  253. package/test/test/boot.js +75 -22
  254. package/test/test/externs/jasmine.js +2 -2
  255. package/test/test/externs/karma.js +4 -0
  256. package/test/test/namespace.js +10 -0
  257. package/test/test/util/canned_idb.js +0 -8
  258. package/test/test/util/cea_utils.js +0 -6
  259. package/test/test/util/dash_parser_util.js +0 -13
  260. package/test/test/util/fake_ad.js +0 -3
  261. package/test/test/util/fake_ad_manager.js +0 -9
  262. package/test/test/util/fake_demo_main.js +0 -5
  263. package/test/test/util/fake_drm_engine.js +0 -6
  264. package/test/test/util/fake_media_source_engine.js +0 -7
  265. package/test/test/util/fake_networking_engine.js +0 -5
  266. package/test/test/util/fake_text_displayer.js +0 -5
  267. package/test/test/util/indexeddb_utils.js +1 -10
  268. package/test/test/util/jasmine_fetch.js +0 -1
  269. package/test/test/util/loader.js +0 -18
  270. package/test/test/util/manifest_generator.js +9 -14
  271. package/test/test/util/manifest_parser_util.js +0 -6
  272. package/test/test/util/offline_utils.js +0 -5
  273. package/test/test/util/simple_fakes.js +9 -26
  274. package/test/test/util/stream_generator.js +0 -14
  275. package/test/test/util/streaming_engine_util.js +0 -15
  276. package/test/test/util/test_scheme.js +1 -19
  277. package/test/test/util/ttml_utils.js +0 -2
  278. package/test/test/util/ui_utils.js +0 -9
  279. package/test/test/util/util.js +15 -26
  280. package/test/test/util/waiter.js +84 -43
  281. package/test/text/cue_integration.js +0 -4
  282. package/test/text/lrc_text_parser_unit.js +0 -4
  283. package/test/text/mp4_ttml_parser_unit.js +0 -6
  284. package/test/text/mp4_vtt_parser_unit.js +1 -7
  285. package/test/text/sbv_text_parser_unit.js +0 -4
  286. package/test/text/simple_text_displayer_unit.js +1 -8
  287. package/test/text/srt_text_parser_unit.js +0 -4
  288. package/test/text/ssa_text_parser_unit.js +0 -5
  289. package/test/text/text_engine_unit.js +2 -7
  290. package/test/text/text_track_integration.js +0 -2
  291. package/test/text/ttml_text_parser_unit.js +2 -11
  292. package/test/text/ui_text_displayer_unit.js +44 -41
  293. package/test/text/vtt_text_parser_unit.js +0 -9
  294. package/test/text/web_vtt_generator_unit.js +0 -3
  295. package/test/ui/ad_ui_unit.js +0 -11
  296. package/test/ui/localization_unit.js +0 -3
  297. package/test/ui/text_displayer_layout_unit.js +9 -19
  298. package/test/ui/ui_customization_unit.js +0 -6
  299. package/test/ui/ui_integration.js +0 -16
  300. package/test/ui/ui_unit.js +1 -17
  301. package/test/util/abortable_operation_unit.js +4 -9
  302. package/test/util/array_utils_unit.js +0 -2
  303. package/test/util/buffer_utils_unit.js +0 -2
  304. package/test/util/cmcd_manager_unit.js +0 -3
  305. package/test/util/data_view_reader_unit.js +0 -4
  306. package/test/util/ebml_parser_unit.js +0 -4
  307. package/test/util/event_manager_unit.js +0 -3
  308. package/test/util/fake_event_target_unit.js +0 -5
  309. package/test/util/functional_unit.js +1 -1
  310. package/test/util/iterables_unit.js +0 -64
  311. package/test/util/language_utils_unit.js +0 -3
  312. package/test/util/manifest_parser_utils_unit.js +0 -2
  313. package/test/util/mp4_box_parsers_unit.js +0 -5
  314. package/test/util/mp4_parser_unit.js +0 -4
  315. package/test/util/multi_map_unit.js +0 -3
  316. package/test/util/object_utils_unit.js +0 -2
  317. package/test/util/periods_unit.js +14 -7
  318. package/test/util/pssh_unit.js +0 -5
  319. package/test/util/state_history_unit.js +0 -2
  320. package/test/util/stream_utils_unit.js +3 -8
  321. package/test/util/string_utils_unit.js +0 -6
  322. package/test/util/text_parser_unit.js +0 -2
  323. package/test/util/xml_utils_unit.js +0 -4
  324. package/ui/controls.js +3 -0
  325. package/ui/less/ad_controls.less +6 -6
  326. package/ui/less/buttons.less +6 -6
  327. package/ui/less/containers.less +13 -15
  328. package/ui/less/overflow_menu.less +4 -4
  329. package/ui/less/range_elements.less +7 -2
  330. package/ui/less/tooltip.less +4 -4
  331. package/ui/locales/sjn-translations.yaml +257 -0
  332. package/ui/locales/sjn.json +42 -0
  333. package/ui/localization.js +12 -36
  334. package/ui/seek_bar.js +2 -1
  335. package/externs/svgelement.js +0 -18
  336. package/externs/webcrypto.js +0 -18
@@ -4,10 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.media.QualityObserver');
8
- goog.require('shaka.test.Util');
9
-
10
-
11
7
  describe('QualityObserver', () => {
12
8
  /** @type {!shaka.media.QualityObserver} */
13
9
  let observer;
@@ -50,7 +46,10 @@ describe('QualityObserver', () => {
50
46
  beforeEach(() => {
51
47
  onQualityChange = jasmine.createSpy('onQualityChange');
52
48
  observer = new shaka.media.QualityObserver(getBufferedInfo);
53
- observer.setListeners(shaka.test.Util.spyFunc(onQualityChange));
49
+ observer.addEventListener('qualitychange', (event) => {
50
+ shaka.test.Util.spyFunc(onQualityChange)(
51
+ event['quality'], event['position']);
52
+ });
54
53
  emptyBuffer = true;
55
54
  bufferStart = 0;
56
55
  bufferEnd = 0;
@@ -4,17 +4,15 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.media.RegionObserver');
8
- goog.require('shaka.media.RegionTimeline');
9
- goog.require('shaka.test.Util');
10
- goog.requireType('shaka.media.IPlayheadObserver');
11
-
12
7
  describe('RegionObserver', () => {
13
8
  /** @type {!shaka.media.RegionTimeline} */
14
9
  let timeline;
15
10
  /** @type {!shaka.media.RegionObserver} */
16
11
  let observer;
17
12
 
13
+ /** @type {!jasmine.Spy} */
14
+ let onSeekRange;
15
+
18
16
  /** @type {!jasmine.Spy} */
19
17
  let onEnterRegion;
20
18
  /** @type {!jasmine.Spy} */
@@ -23,18 +21,26 @@ describe('RegionObserver', () => {
23
21
  let onSkipRegion;
24
22
 
25
23
  beforeEach(() => {
24
+ onSeekRange = jasmine.createSpy('onSeekRange');
25
+ onSeekRange.and.returnValue({start: 0, end: 100});
26
+
26
27
  onEnterRegion = jasmine.createSpy('onEnterRegion');
27
28
  onExitRegion = jasmine.createSpy('onExitRegion');
28
29
  onSkipRegion = jasmine.createSpy('onSkipRegion');
29
30
 
30
31
  timeline = new shaka.media.RegionTimeline(
31
- () => { return {start: 0, end: 100}; });
32
+ shaka.test.Util.spyFunc(onSeekRange));
32
33
 
33
34
  observer = new shaka.media.RegionObserver(timeline);
34
- observer.setListeners(
35
- /* onEnter= */ shaka.test.Util.spyFunc(onEnterRegion),
36
- /* onExit= */ shaka.test.Util.spyFunc(onExitRegion),
37
- /* onSkip= */ shaka.test.Util.spyFunc(onSkipRegion));
35
+ observer.addEventListener('enter', (event) => {
36
+ shaka.test.Util.spyFunc(onEnterRegion)(event['region'], event['seeking']);
37
+ });
38
+ observer.addEventListener('exit', (event) => {
39
+ shaka.test.Util.spyFunc(onExitRegion)(event['region'], event['seeking']);
40
+ });
41
+ observer.addEventListener('skip', (event) => {
42
+ shaka.test.Util.spyFunc(onSkipRegion)(event['region'], event['seeking']);
43
+ });
38
44
  });
39
45
 
40
46
  it('fires enter event when adding a region the playhead is in', () => {
@@ -313,6 +319,30 @@ describe('RegionObserver', () => {
313
319
  expect(onSkipRegion).not.toHaveBeenCalled();
314
320
  });
315
321
 
322
+ // See https://github.com/shaka-project/shaka-player/issues/3949
323
+ it('cleans up references to regions', async () => {
324
+ const region = createRegion('my-region', 0, 10);
325
+ timeline.addRegion(region);
326
+
327
+ // Poll so that RegionObserver will store regions.
328
+ poll(observer,
329
+ /* timeInSeconds= */ 5,
330
+ /* seeking= */ false);
331
+
332
+ // Hack to get a private member without the compiler complaining:
333
+ /** @type {Map} */
334
+ const regionMap = (/** @type {?} */(observer))['oldPosition_'];
335
+ expect(regionMap.size).not.toBe(0);
336
+
337
+ // Move the seek range so that the region will be removed.
338
+ onSeekRange.and.returnValue({start: 20, end: 100});
339
+ // Give the timeline time to filter regions
340
+ await shaka.test.Util.delay(
341
+ shaka.media.RegionTimeline.REGION_FILTER_INTERVAL * 2);
342
+
343
+ expect(regionMap.size).toBe(0);
344
+ });
345
+
316
346
  /**
317
347
  * @param {string} id
318
348
  * @param {number} startTimeSeconds
@@ -4,9 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.media.RegionTimeline');
8
- goog.require('shaka.test.Util');
9
-
10
7
  describe('RegionTimeline', () => {
11
8
  /** @type {!shaka.media.RegionTimeline} */
12
9
  let timeline;
@@ -14,18 +11,27 @@ describe('RegionTimeline', () => {
14
11
  /** @type {!jasmine.Spy} */
15
12
  let onNewRegion;
16
13
 
14
+ /** @type {!jasmine.Spy} */
15
+ let onRemoveRegion;
16
+
17
17
  /** @type {!jasmine.Spy} */
18
18
  let onSeekRange;
19
19
 
20
20
  beforeEach(() => {
21
- onNewRegion = jasmine.createSpy('onNewRegion');
22
-
23
21
  onSeekRange = jasmine.createSpy('onSeekRange');
24
22
  onSeekRange.and.returnValue({start: 0, end: 100});
25
-
26
23
  timeline = new shaka.media.RegionTimeline(
27
24
  shaka.test.Util.spyFunc(onSeekRange));
28
- timeline.setListeners(shaka.test.Util.spyFunc(onNewRegion));
25
+
26
+ onNewRegion = jasmine.createSpy('onNewRegion');
27
+ timeline.addEventListener('regionadd', (event) => {
28
+ shaka.test.Util.spyFunc(onNewRegion)(event['region']);
29
+ });
30
+
31
+ onRemoveRegion = jasmine.createSpy('onRemoveRegion');
32
+ timeline.addEventListener('regionremove', (event) => {
33
+ shaka.test.Util.spyFunc(onRemoveRegion)(event['region']);
34
+ });
29
35
  });
30
36
 
31
37
  afterEach(() => {
@@ -85,24 +91,33 @@ describe('RegionTimeline', () => {
85
91
  ]);
86
92
  });
87
93
 
88
- it('filters out regions that end before the start of the seek range',
89
- async () => {
90
- onSeekRange.and.returnValue({start: 5, end: 100});
91
- const region1 = createRegion('urn:foo', 'my-region', 0, 3);
92
- const region2 = createRegion('urn:foo', 'my-region', 3, 10);
93
- const region3 = createRegion('urn:foo', 'my-region', 5, 10);
94
- timeline.addRegion(region1);
95
- timeline.addRegion(region2);
96
- timeline.addRegion(region3);
97
- expect(onNewRegion).toHaveBeenCalledTimes(3);
98
- let regions = Array.from(timeline.regions());
99
- expect(regions.length).toBe(3);
100
- // Give the timeline time to filter regions
101
- await shaka.test.Util.delay(
102
- shaka.media.RegionTimeline.REGION_FILTER_INTERVAL * 2);
103
- regions = Array.from(timeline.regions());
104
- expect(regions).toEqual([region2, region3]);
105
- });
94
+ it('filters regions that end before the seek range', async () => {
95
+ onSeekRange.and.returnValue({start: 5, end: 100});
96
+
97
+ const region1 = createRegion('urn:foo', 'my-region', 0, 3);
98
+ const region2 = createRegion('urn:foo', 'my-region', 3, 10);
99
+ const region3 = createRegion('urn:foo', 'my-region', 5, 10);
100
+
101
+ timeline.addRegion(region1);
102
+ timeline.addRegion(region2);
103
+ timeline.addRegion(region3);
104
+ expect(onNewRegion).toHaveBeenCalledTimes(3);
105
+ expect(onNewRegion).toHaveBeenCalledWith(region1);
106
+ expect(onNewRegion).toHaveBeenCalledWith(region2);
107
+ expect(onNewRegion).toHaveBeenCalledWith(region3);
108
+
109
+ let regions = Array.from(timeline.regions());
110
+ expect(regions.length).toBe(3);
111
+
112
+ // Give the timeline time to filter regions
113
+ await shaka.test.Util.delay(
114
+ shaka.media.RegionTimeline.REGION_FILTER_INTERVAL * 2);
115
+
116
+ regions = Array.from(timeline.regions());
117
+ expect(regions).toEqual([region2, region3]);
118
+
119
+ expect(onRemoveRegion).toHaveBeenCalledWith(region1);
120
+ });
106
121
 
107
122
  /**
108
123
  * @param {string} schemeIdUri
@@ -4,12 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('goog.asserts');
8
- goog.require('shaka.media.MetaSegmentIndex');
9
- goog.require('shaka.media.SegmentIndex');
10
- goog.require('shaka.media.SegmentReference');
11
- goog.require('shaka.test.Util');
12
-
13
7
  describe('SegmentIndex', /** @suppress {accessControls} */ () => {
14
8
  const actual1 = makeReference(uri(0), 0, 10);
15
9
  const actual2 = makeReference(uri(20), 10, 20);
@@ -4,9 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.media.InitSegmentReference');
8
- goog.require('shaka.media.SegmentReference');
9
-
10
7
  describe('SegmentReference', () => {
11
8
  it('returns in getters values from constructor parameters', () => {
12
9
  const initSegmentReference = new shaka.media.InitSegmentReference(
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
-
8
- goog.require('shaka.media.StallDetector');
9
- goog.require('shaka.media.StallDetector.Implementation');
10
- goog.require('shaka.test.Util');
11
-
12
7
  describe('StallDetector', () => {
13
8
  /**
14
9
  * @implements {shaka.media.StallDetector.Implementation}
@@ -4,31 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.media.InitSegmentReference');
8
- goog.require('shaka.media.MediaSourceEngine');
9
- goog.require('shaka.media.MediaSourcePlayhead');
10
- goog.require('shaka.media.SegmentIndex');
11
- goog.require('shaka.media.SegmentReference');
12
- goog.require('shaka.media.StreamingEngine');
13
- goog.require('shaka.net.NetworkingEngine');
14
- goog.require('shaka.test.FakeClosedCaptionParser');
15
- goog.require('shaka.test.FakeTextDisplayer');
16
- goog.require('shaka.test.Mp4LiveStreamGenerator');
17
- goog.require('shaka.test.Mp4VodStreamGenerator');
18
- goog.require('shaka.test.StreamingEngineUtil');
19
- goog.require('shaka.test.TestScheme');
20
- goog.require('shaka.test.UiUtils');
21
- goog.require('shaka.test.Util');
22
- goog.require('shaka.test.Waiter');
23
- goog.require('shaka.util.EventManager');
24
- goog.require('shaka.util.ManifestParserUtils');
25
- goog.require('shaka.util.Platform');
26
- goog.require('shaka.util.PlayerConfiguration');
27
- goog.requireType('shaka.media.Playhead');
28
- goog.requireType('shaka.media.PresentationTimeline');
29
- goog.requireType('shaka.test.FakeNetworkingEngine');
30
- goog.requireType('shaka.test.FakePresentationTimeline');
31
-
32
7
  describe('StreamingEngine', () => {
33
8
  const ContentType = shaka.util.ManifestParserUtils.ContentType;
34
9
  const Util = shaka.test.Util;
@@ -93,6 +68,7 @@ describe('StreamingEngine', () => {
93
68
  video,
94
69
  new shaka.test.FakeClosedCaptionParser(),
95
70
  new shaka.test.FakeTextDisplayer());
71
+ waiter.setMediaSourceEngine(mediaSourceEngine);
96
72
  });
97
73
 
98
74
  afterEach(async () => {
@@ -287,7 +263,11 @@ describe('StreamingEngine', () => {
287
263
  streamingEngine.switchVariant(variant);
288
264
  await streamingEngine.start();
289
265
  video.play();
290
- await waiter.timeoutAfter(90).waitForEnd(video);
266
+ // The overall test timeout is 120 seconds, and the content is 60
267
+ // seconds. It should be possible to complete this test in 100 seconds,
268
+ // and if not, we want the error thrown to be within the overall test's
269
+ // timeout window.
270
+ await waiter.timeoutAfter(100).waitForEnd(video);
291
271
  });
292
272
 
293
273
  it('plays at high playback rates', async () => {
@@ -308,14 +288,7 @@ describe('StreamingEngine', () => {
308
288
  await waiter.timeoutAfter(10).waitForMovement(video);
309
289
  video.playbackRate = 10;
310
290
 
311
- // Something weird happens on some platforms (variously Chromecast, legacy
312
- // Edge, and Safari) where the playhead can go past duration.
313
- // To cope with this, don't fail on timeout. If the video never got
314
- // flagged as "ended", check for the playhead to be near or past the end.
315
- await waiter.timeoutAfter(30).failOnTimeout(false).waitForEnd(video);
316
- if (!video.ended) {
317
- expect(video.currentTime).toBeGreaterThan(video.duration - 0.1);
318
- }
291
+ await waiter.timeoutAfter(30).waitForEnd(video);
319
292
  });
320
293
 
321
294
  it('can handle buffered seeks', async () => {
@@ -325,9 +298,9 @@ describe('StreamingEngine', () => {
325
298
  video.play();
326
299
 
327
300
  // After 35 seconds seek back 10 seconds into the first Period.
328
- await waiter.timeoutAfter(60).waitUntilPlayheadReaches(video, 35);
301
+ await waiter.timeoutAfter(80).waitUntilPlayheadReaches(video, 35);
329
302
  video.currentTime = 25;
330
- await waiter.timeoutAfter(60).waitForEnd(video);
303
+ await waiter.timeoutAfter(80).waitForEnd(video);
331
304
  });
332
305
 
333
306
  it('can handle unbuffered seeks', async () => {
@@ -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.log');
9
- goog.require('shaka.media.InitSegmentReference');
10
- goog.require('shaka.media.SegmentReference');
11
- goog.require('shaka.media.StreamingEngine');
12
- goog.require('shaka.net.NetworkingEngine');
13
- goog.require('shaka.net.NetworkingEngine.PendingRequest');
14
- goog.require('shaka.test.FakeNetworkingEngine');
15
- goog.require('shaka.test.FakeMediaSourceEngine');
16
- goog.require('shaka.test.ManifestGenerator');
17
- goog.require('shaka.test.StreamingEngineUtil');
18
- goog.require('shaka.test.Util');
19
- goog.require('shaka.util.AbortableOperation');
20
- goog.require('shaka.util.Error');
21
- goog.require('shaka.util.Iterables');
22
- goog.require('shaka.util.ManifestParserUtils');
23
- goog.require('shaka.util.MimeUtils');
24
- goog.require('shaka.util.PlayerConfiguration');
25
- goog.require('shaka.util.PublicPromise');
26
- goog.require('shaka.util.Uint8ArrayUtils');
27
- goog.requireType('shaka.media.PresentationTimeline');
28
- goog.requireType('shaka.test.FakeNetworkingEngine');
29
- goog.requireType('shaka.test.FakePresentationTimeline');
30
-
31
7
  describe('StreamingEngine', () => {
32
8
  const Util = shaka.test.Util;
33
9
  const ContentType = shaka.util.ManifestParserUtils.ContentType;
@@ -284,7 +260,7 @@ describe('StreamingEngine', () => {
284
260
  };
285
261
 
286
262
  const segmentsInFirstPeriod = 12;
287
- for (const i of shaka.util.Iterables.range(segmentsInFirstPeriod)) {
263
+ for (let i = 0; i < segmentsInFirstPeriod; i++) {
288
264
  segmentData[ContentType.AUDIO].segments.push(
289
265
  makeBuffer(segmentSizes[ContentType.AUDIO]));
290
266
  segmentData[ContentType.VIDEO].segments.push(
@@ -298,7 +274,7 @@ describe('StreamingEngine', () => {
298
274
  }
299
275
 
300
276
  const segmentsInSecondPeriod = 2;
301
- for (const i of shaka.util.Iterables.range(segmentsInSecondPeriod)) {
277
+ for (let i = 0; i < segmentsInSecondPeriod; i++) {
302
278
  segmentData[ContentType.AUDIO].segments.push(
303
279
  makeBuffer(segmentSizes[ContentType.AUDIO]));
304
280
  segmentData[ContentType.VIDEO].segments.push(
@@ -651,7 +627,7 @@ describe('StreamingEngine', () => {
651
627
  // should be buffered. Those segment numbers are 1-based, and this array
652
628
  // is 0-based, so we expect i >= 9 to be downloaded.
653
629
  const segments = mediaSourceEngine.segments;
654
- for (const i of shaka.util.Iterables.range(14)) {
630
+ for (let i = 0; i < 14; i++) {
655
631
  expect(segments[ContentType.AUDIO][i]).withContext(i).toBe(i >= 9);
656
632
  expect(segments[ContentType.VIDEO][i]).withContext(i).toBe(i >= 9);
657
633
  expect(segments[ContentType.TEXT][i]).withContext(i).toBe(i >= 9);
@@ -757,7 +733,7 @@ describe('StreamingEngine', () => {
757
733
  expect(timeline.setDuration).toHaveBeenCalledWith(35);
758
734
  });
759
735
 
760
- // https://github.com/google/shaka-player/issues/979
736
+ // https://github.com/shaka-project/shaka-player/issues/979
761
737
  it('does not expand the timeline duration', async () => {
762
738
  setupVod();
763
739
  mediaSourceEngine = new shaka.test.FakeMediaSourceEngine(segmentData);
@@ -783,7 +759,7 @@ describe('StreamingEngine', () => {
783
759
  expect(timeline.setDuration).not.toHaveBeenCalled();
784
760
  });
785
761
 
786
- // https://github.com/google/shaka-player/issues/1967
762
+ // https://github.com/shaka-project/shaka-player/issues/1967
787
763
  it('does not change duration when 0', async () => {
788
764
  setupVod();
789
765
  mediaSourceEngine = new shaka.test.FakeMediaSourceEngine(segmentData);
@@ -828,7 +804,7 @@ describe('StreamingEngine', () => {
828
804
  .toHaveBeenCalledWith('video', 0, lt20, gt40);
829
805
  });
830
806
 
831
- // Regression test for https://github.com/google/shaka-player/issues/3717
807
+ // Regression test for https://github.com/shaka-project/shaka-player/issues/3717
832
808
  it('applies fudge factors for the duration', async () => {
833
809
  setupVod();
834
810
 
@@ -931,7 +907,7 @@ describe('StreamingEngine', () => {
931
907
  expect(mediaSourceEngine.appendBuffer).toHaveBeenCalled();
932
908
  });
933
909
 
934
- // https://github.com/google/shaka-player/issues/2957
910
+ // https://github.com/shaka-project/shaka-player/issues/2957
935
911
  it('plays with fewer text segments', async () => {
936
912
  setupVod();
937
913
 
@@ -1093,7 +1069,7 @@ describe('StreamingEngine', () => {
1093
1069
  expect(mediaSourceEngine.resetCaptionParser).not.toHaveBeenCalled();
1094
1070
  });
1095
1071
 
1096
- // See https://github.com/google/shaka-player/issues/2956
1072
+ // See https://github.com/shaka-project/shaka-player/issues/2956
1097
1073
  it('works with fast variant switches during update', async () => {
1098
1074
  // Delay the appendBuffer call until later so we are waiting for this to
1099
1075
  // finish when we switch.
@@ -1661,7 +1637,7 @@ describe('StreamingEngine', () => {
1661
1637
  });
1662
1638
  });
1663
1639
 
1664
- // https://github.com/google/shaka-player/issues/2670
1640
+ // https://github.com/shaka-project/shaka-player/issues/2670
1665
1641
  it('rapid unbuffered seeks', async () => {
1666
1642
  // This test simulates rapid dragging of the seek bar, as in #2670.
1667
1643
  // In that issue, we would buffer the wrong segments due to a race
@@ -1800,7 +1776,7 @@ describe('StreamingEngine', () => {
1800
1776
 
1801
1777
  // Since we performed an unbuffered seek into the second Period, the
1802
1778
  // first 12 segments should not be buffered.
1803
- for (const i of shaka.util.Iterables.range(14)) {
1779
+ for (let i = 0; i < 14; i++) {
1804
1780
  expect(mediaSourceEngine.segments[ContentType.AUDIO][i]).toBe(i >= 12);
1805
1781
  expect(mediaSourceEngine.segments[ContentType.VIDEO][i]).toBe(i >= 12);
1806
1782
  expect(mediaSourceEngine.segments[ContentType.TEXT][i]).toBe(i >= 12);
@@ -2602,7 +2578,7 @@ describe('StreamingEngine', () => {
2602
2578
  // should be buffered. Those segment numbers are 1-based, and this array
2603
2579
  // is 0-based, so we expect i >= 9 to be downloaded.
2604
2580
  const segments = mediaSourceEngine.segments;
2605
- for (const i of shaka.util.Iterables.range(14)) {
2581
+ for (let i = 0; i < 14; i++) {
2606
2582
  expect(segments[ContentType.AUDIO][i]).withContext(i).toBe(i >= 9);
2607
2583
  expect(segments[ContentType.VIDEO][i]).withContext(i).toBe(i >= 9);
2608
2584
  expect(segments[ContentType.TEXT][i]).withContext(i).toBe(i >= 9);
@@ -4,8 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.media.TimeRangesUtils');
8
-
9
7
  describe('TimeRangesUtils', () => {
10
8
  const TimeRangesUtils = shaka.media.TimeRangesUtils;
11
9
 
@@ -3,12 +3,6 @@
3
3
  * Copyright 2016 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- goog.require('goog.asserts');
7
- goog.require('shaka.media.Transmuxer');
8
- goog.require('shaka.test.Util');
9
- goog.require('shaka.util.ManifestParserUtils');
10
- goog.require('shaka.util.Mp4BoxParsers');
11
- goog.require('shaka.util.Mp4Parser');
12
6
 
13
7
  describe('Transmuxer', () => {
14
8
  const ContentType = shaka.util.ManifestParserUtils.ContentType;
@@ -4,10 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.media.WebmSegmentIndexParser');
8
- goog.require('shaka.test.Util');
9
- goog.require('shaka.util.Error');
10
-
11
7
  describe('WebmSegmentIndexParser', () => {
12
8
  const indexSegmentUri = '/base/test/test/assets/index-segment.webm';
13
9
  const initSegmentUri = '/base/test/test/assets/init-segment.webm';
@@ -4,13 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.net.DataUriPlugin');
8
- goog.require('shaka.net.NetworkingEngine');
9
- goog.require('shaka.net.NetworkingEngine.RequestType');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Error');
12
- goog.require('shaka.util.StringUtils');
13
-
14
7
  describe('DataUriPlugin', () => {
15
8
  const retryParameters = shaka.net.NetworkingEngine.defaultRetryParameters();
16
9
 
@@ -4,15 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
-
8
- goog.require('shaka.net.HttpFetchPlugin');
9
- goog.require('shaka.net.HttpXHRPlugin');
10
- goog.require('shaka.net.NetworkingEngine');
11
- goog.require('shaka.net.NetworkingEngine.RequestType');
12
- goog.require('shaka.test.Util');
13
- goog.require('shaka.util.BufferUtils');
14
- goog.require('shaka.util.Error');
15
-
16
7
  /**
17
8
  * Add a set of http plugin tests, for the given scheme plugin.
18
9
  *
@@ -4,17 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.net.Backoff');
8
- goog.require('shaka.net.NetworkingEngine');
9
- goog.require('shaka.net.NetworkingEngine.RequestType');
10
- goog.require('shaka.test.StatusPromise');
11
- goog.require('shaka.test.Util');
12
- goog.require('shaka.util.AbortableOperation');
13
- goog.require('shaka.util.Error');
14
- goog.require('shaka.util.Networking');
15
- goog.require('shaka.util.PublicPromise');
16
- goog.requireType('shaka.net.NetworkingEngine.PendingRequest');
17
-
18
7
  describe('NetworkingEngine', /** @suppress {accessControls} */ () => {
19
8
  const StatusPromise = shaka.test.StatusPromise;
20
9
  const Util = shaka.test.Util;
@@ -4,8 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.offline.DownloadProgressEstimator');
8
-
9
7
  describe('DownloadProgressEstimator', () => {
10
8
  /** @type {!shaka.offline.DownloadProgressEstimator} */
11
9
  let estimator;
@@ -4,12 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.offline.indexeddb.V5StorageCell');
8
- goog.require('shaka.test.IndexedDBUtils');
9
- goog.require('shaka.test.OfflineUtils');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Error');
12
-
13
7
  filterDescribe('IndexeddbStorageCell', () => window.indexedDB, () => {
14
8
  const IndexedDBUtils = shaka.test.IndexedDBUtils;
15
9
  const OfflineUtils = shaka.test.OfflineUtils;
@@ -4,14 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.media.InitSegmentReference');
8
- goog.require('shaka.media.PresentationTimeline');
9
- goog.require('shaka.media.SegmentIndex');
10
- goog.require('shaka.offline.ManifestConverter');
11
- goog.require('shaka.offline.OfflineUri');
12
- goog.require('shaka.util.ManifestParserUtils');
13
- goog.requireType('shaka.media.SegmentReference');
14
-
15
7
  describe('ManifestConverter', () => {
16
8
  describe('createVariants', () => {
17
9
  const audioType = 'audio';
@@ -4,16 +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.offline.Storage');
10
- goog.require('shaka.test.TestScheme');
11
- goog.require('shaka.test.UiUtils');
12
- goog.require('shaka.test.Util');
13
- goog.require('shaka.test.Waiter');
14
- goog.require('shaka.util.EventManager');
15
- goog.require('shaka.util.Platform');
16
-
17
7
  /** @return {boolean} */
18
8
  const supportsStorage = () => shaka.offline.Storage.support();
19
9
 
@@ -45,6 +35,7 @@ filterDescribe('Offline', supportsStorage, () => {
45
35
 
46
36
  eventManager = new shaka.util.EventManager();
47
37
  waiter = new shaka.test.Waiter(eventManager);
38
+ waiter.setPlayer(player);
48
39
 
49
40
  // Make sure we are starting with a blank slate.
50
41
  await shaka.offline.Storage.deleteAll();
@@ -4,12 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.offline.OfflineManifestParser');
8
- goog.require('shaka.offline.OfflineUri');
9
- goog.require('shaka.offline.StorageMuxer');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Error');
12
-
13
7
  /** @return {boolean} */
14
8
  const offlineManifestParserSupport = () => shaka.offline.StorageMuxer.support();
15
9
  filterDescribe('OfflineManifestParser', offlineManifestParserSupport, () => {
@@ -4,14 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.net.NetworkingEngine');
8
- goog.require('shaka.net.NetworkingEngine.RequestType');
9
- goog.require('shaka.offline.OfflineScheme');
10
- goog.require('shaka.offline.OfflineUri');
11
- goog.require('shaka.offline.StorageMuxer');
12
- goog.require('shaka.test.Util');
13
- goog.require('shaka.util.Error');
14
-
15
7
  /** @return {boolean} */
16
8
  const offlineSchemeSupport = () => shaka.offline.StorageMuxer.support();
17
9
  filterDescribe('OfflineScheme', offlineSchemeSupport, () => {
@@ -4,8 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.offline.OfflineUri');
8
-
9
7
  describe('OfflineUri', () => {
10
8
  const OfflineUri = shaka.offline.OfflineUri;
11
9