shaka-player 3.2.4 → 3.2.7

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 (327) hide show
  1. package/.csslintrc +11 -1
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
  3. package/.github/workflows/build-and-test.yaml +129 -0
  4. package/.github/workflows/custom-actions/prep-for-appspot/action.yaml +56 -0
  5. package/.github/workflows/custom-actions/set-commit-status/action.yaml +41 -0
  6. package/.github/workflows/demo-version-index.yaml +29 -0
  7. package/.github/workflows/nightly-demo.yaml +42 -0
  8. package/.github/workflows/release-please.yaml +147 -0
  9. package/.github/workflows/safari-homedir-launcher.sh +18 -0
  10. package/.github/workflows/selenium-lab-tests.yaml +92 -0
  11. package/AUTHORS +2 -0
  12. package/CHANGELOG.md +1596 -1556
  13. package/CONTRIBUTING.md +2 -2
  14. package/CONTRIBUTORS +2 -0
  15. package/README.md +7 -7
  16. package/app-engine/README.md +9 -0
  17. package/app-engine/demo-version-index/README.md +14 -0
  18. package/app-engine/demo-version-index/app.yaml +2 -0
  19. package/app-engine/demo-version-index/main.py +162 -0
  20. package/app-engine/demo-version-index/requirements.txt +6 -0
  21. package/app-engine/demo-version-index/templates/index.html +114 -0
  22. package/app-engine/shaka-player-demo/README.md +18 -0
  23. package/app-engine/shaka-player-demo/app.yaml +61 -0
  24. package/app-engine/shaka-player-demo/main.py +95 -0
  25. package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
  26. package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
  27. package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
  28. package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
  29. package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
  30. package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
  31. package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
  32. package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
  33. package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
  34. package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
  35. package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
  36. package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
  37. package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
  38. package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
  39. package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
  40. package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
  41. package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
  42. package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
  43. package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
  44. package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
  45. package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
  46. package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
  47. package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
  48. package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
  49. package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
  50. package/app-engine/shaka-player-demo/posters/standard.png +0 -0
  51. package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
  52. package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
  53. package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
  54. package/app-engine/shaka-player-demo/posters.py +110 -0
  55. package/app-engine/shaka-player-demo/requirements.txt +5 -0
  56. package/app-engine/shaka-player-demo/time.txt +1 -0
  57. package/build/README.md +3 -3
  58. package/build/checkversion.py +1 -1
  59. package/build/conformance.textproto +13 -0
  60. package/build/docker/Dockerfile +20 -0
  61. package/build/docker/docker-compose.yml +10 -0
  62. package/build/gendeps.py +18 -15
  63. package/build/shaka-lab.yaml +163 -0
  64. package/build/shakaBuildHelpers.py +4 -29
  65. package/build/test.py +94 -29
  66. package/build/wrapper.template.js +2 -2
  67. package/demo/TengwarTelcontar.woff2 +0 -0
  68. package/demo/asset_card.js +1 -2
  69. package/demo/cast_receiver/index.html +1 -1
  70. package/demo/cast_receiver/receiver_app.css +14 -14
  71. package/demo/common/assets.js +2 -0
  72. package/demo/config.js +0 -1
  73. package/demo/custom.js +0 -1
  74. package/demo/customWarning.txt +2 -2
  75. package/demo/demo.less +29 -18
  76. package/demo/demo_uncompiled.js +1 -13
  77. package/demo/index.html +1 -1
  78. package/demo/main.js +3 -3
  79. package/dist/controls.css +2 -2
  80. package/dist/controls.css.map +1 -1
  81. package/dist/demo.compiled.debug.js +191 -194
  82. package/dist/demo.compiled.debug.map +4 -4
  83. package/dist/demo.compiled.js +191 -194
  84. package/dist/demo.compiled.map +4 -4
  85. package/dist/demo.css +1 -1
  86. package/dist/demo.css.map +1 -1
  87. package/dist/deps.js +225 -219
  88. package/dist/locales.js +30 -30
  89. package/dist/receiver.compiled.debug.js +43 -45
  90. package/dist/receiver.compiled.debug.map +4 -4
  91. package/dist/receiver.compiled.js +43 -45
  92. package/dist/receiver.compiled.map +4 -4
  93. package/dist/shaka-player.compiled.d.ts +225 -224
  94. package/dist/shaka-player.compiled.debug.d.ts +225 -224
  95. package/dist/shaka-player.compiled.debug.externs.js +5 -3
  96. package/dist/shaka-player.compiled.debug.js +319 -323
  97. package/dist/shaka-player.compiled.debug.map +4 -4
  98. package/dist/shaka-player.compiled.externs.js +5 -3
  99. package/dist/shaka-player.compiled.js +832 -833
  100. package/dist/shaka-player.compiled.map +4 -4
  101. package/dist/shaka-player.ui.d.ts +267 -266
  102. package/dist/shaka-player.ui.debug.d.ts +267 -266
  103. package/dist/shaka-player.ui.debug.externs.js +5 -3
  104. package/dist/shaka-player.ui.debug.js +287 -291
  105. package/dist/shaka-player.ui.debug.map +4 -4
  106. package/dist/shaka-player.ui.externs.js +5 -3
  107. package/dist/shaka-player.ui.js +981 -982
  108. package/dist/shaka-player.ui.map +4 -4
  109. package/docs/design/REDESIGN.md +33 -33
  110. package/docs/design/codec_preferences.md +1 -1
  111. package/docs/design/dash-audio-channels.md +3 -3
  112. package/docs/design/dash-manifests.md +1 -1
  113. package/docs/design/gap-jumping.md +3 -3
  114. package/docs/design/preload.md +2 -2
  115. package/docs/tutorials/faq.md +8 -8
  116. package/docs/tutorials/index.json +1 -0
  117. package/docs/tutorials/plugins.md +3 -3
  118. package/docs/tutorials/selenium-grid-config.md +122 -0
  119. package/docs/tutorials/welcome.md +10 -2
  120. package/karma.conf.js +141 -30
  121. package/lib/abr/simple_abr_manager.js +12 -6
  122. package/lib/cast/cast_proxy.js +3 -4
  123. package/lib/cea/cea608_data_channel.js +2 -2
  124. package/lib/cea/cea708_service.js +5 -4
  125. package/lib/cea/mp4_cea_parser.js +11 -5
  126. package/lib/cea/sei_processor.js +6 -3
  127. package/lib/dash/dash_parser.js +11 -14
  128. package/lib/dash/mpd_utils.js +4 -5
  129. package/lib/dash/segment_list.js +1 -2
  130. package/lib/dash/segment_template.js +3 -3
  131. package/lib/hls/hls_parser.js +34 -20
  132. package/lib/hls/manifest_text_parser.js +3 -3
  133. package/lib/media/adaptation_set.js +1 -2
  134. package/lib/media/content_workarounds.js +2 -2
  135. package/lib/media/drm_engine.js +3 -2
  136. package/lib/media/media_source_engine.js +10 -3
  137. package/lib/media/mp4_segment_index_parser.js +1 -4
  138. package/lib/media/playhead.js +2 -2
  139. package/lib/media/presentation_timeline.js +18 -8
  140. package/lib/media/streaming_engine.js +6 -6
  141. package/lib/media/time_ranges_utils.js +1 -3
  142. package/lib/media/video_wrapper.js +1 -1
  143. package/lib/net/networking_engine.js +1 -1
  144. package/lib/offline/indexeddb/storage_mechanism.js +4 -2
  145. package/lib/offline/storage.js +4 -4
  146. package/lib/player.js +190 -114
  147. package/lib/polyfill/all.js +2 -3
  148. package/lib/polyfill/encryption_scheme.js +1 -1
  149. package/lib/polyfill/media_capabilities.js +3 -3
  150. package/lib/polyfill/mediasource.js +1 -1
  151. package/lib/text/cue.js +1 -1
  152. package/lib/text/simple_text_displayer.js +2 -1
  153. package/lib/text/ttml_text_parser.js +8 -5
  154. package/lib/text/ui_text_displayer.js +1 -1
  155. package/lib/util/buffer_utils.js +1 -3
  156. package/lib/util/config_utils.js +25 -0
  157. package/lib/util/ebml_parser.js +3 -3
  158. package/lib/util/error.js +8 -1
  159. package/lib/util/iterables.js +0 -46
  160. package/lib/util/manifest_parser_utils.js +1 -1
  161. package/lib/util/mime_utils.js +48 -1
  162. package/lib/util/mp4_box_parsers.js +1 -4
  163. package/lib/util/mp4_parser.js +5 -7
  164. package/lib/util/periods.js +13 -13
  165. package/lib/util/platform.js +3 -3
  166. package/lib/util/player_configuration.js +9 -14
  167. package/lib/util/pssh.js +1 -4
  168. package/lib/util/stream_utils.js +8 -5
  169. package/lib/util/string_utils.js +3 -5
  170. package/lib/util/uint8array_utils.js +3 -5
  171. package/lib/util/xml_utils.js +15 -7
  172. package/package.json +61 -36
  173. package/roadmap.md +17 -17
  174. package/test/abr/simple_abr_manager_unit.js +3 -8
  175. package/test/ads/ad_manager_unit.js +0 -6
  176. package/test/cast/cast_proxy_unit.js +0 -8
  177. package/test/cast/cast_receiver_integration.js +1 -18
  178. package/test/cast/cast_receiver_unit.js +1 -9
  179. package/test/cast/cast_sender_unit.js +0 -6
  180. package/test/cast/cast_utils_unit.js +1 -13
  181. package/test/cea/cea608_memory_unit.js +0 -5
  182. package/test/cea/cea708_service_unit.js +0 -7
  183. package/test/cea/cea708_window_unit.js +0 -5
  184. package/test/cea/cea_decoder_unit.js +0 -6
  185. package/test/cea/dtvcc_packet_builder_unit.js +0 -3
  186. package/test/cea/dtvcc_packet_unit.js +0 -5
  187. package/test/cea/mp4_cea_parser_unit.js +0 -4
  188. package/test/dash/dash_parser_content_protection_unit.js +1 -10
  189. package/test/dash/dash_parser_live_unit.js +2 -15
  190. package/test/dash/dash_parser_manifest_unit.js +2 -40
  191. package/test/dash/dash_parser_segment_base_unit.js +1 -8
  192. package/test/dash/dash_parser_segment_list_unit.js +1 -7
  193. package/test/dash/dash_parser_segment_template_unit.js +0 -9
  194. package/test/dash/mpd_utils_unit.js +3 -11
  195. package/test/demo/demo_unit.js +0 -5
  196. package/test/deprecate/enforcer_unit.js +0 -4
  197. package/test/deprecate/version_unit.js +0 -2
  198. package/test/hls/hls_live_unit.js +28 -14
  199. package/test/hls/hls_parser_unit.js +2 -15
  200. package/test/hls/manifest_text_parser_unit.js +19 -10
  201. package/test/media/adaptation_set_criteria_unit.js +3 -7
  202. package/test/media/adaptation_set_unit.js +0 -2
  203. package/test/media/buffering_observer_unit.js +1 -4
  204. package/test/media/closed_caption_parser_unit.js +0 -3
  205. package/test/media/drm_engine_integration.js +2 -15
  206. package/test/media/drm_engine_unit.js +4 -24
  207. package/test/media/manifest_parser_unit.js +0 -4
  208. package/test/media/media_source_engine_integration.js +1 -7
  209. package/test/media/media_source_engine_unit.js +5 -18
  210. package/test/media/mp4_segment_index_parser_unit.js +0 -4
  211. package/test/media/play_rate_controller_unit.js +0 -4
  212. package/test/media/playhead_unit.js +8 -16
  213. package/test/media/presentation_timeline_unit.js +4 -7
  214. package/test/media/region_observer_unit.js +1 -6
  215. package/test/media/region_timeline_unit.js +0 -3
  216. package/test/media/segment_index_unit.js +0 -6
  217. package/test/media/segment_reference_unit.js +0 -3
  218. package/test/media/stall_detector_unit.js +0 -5
  219. package/test/media/streaming_engine_integration.js +11 -36
  220. package/test/media/streaming_engine_unit.js +11 -35
  221. package/test/media/time_ranges_utils_unit.js +0 -2
  222. package/test/media/transmuxer_integration.js +0 -6
  223. package/test/media/webm_segment_index_parser_unit.js +0 -4
  224. package/test/net/data_uri_plugin_unit.js +0 -7
  225. package/test/net/http_plugin_unit.js +0 -9
  226. package/test/net/networking_engine_unit.js +0 -11
  227. package/test/offline/download_progress_estimator_unit.js +0 -2
  228. package/test/offline/indexeddb_storage_unit.js +1 -7
  229. package/test/offline/manifest_convert_unit.js +0 -8
  230. package/test/offline/offline_integration.js +1 -10
  231. package/test/offline/offline_manifest_parser_unit.js +0 -6
  232. package/test/offline/offline_scheme_unit.js +0 -8
  233. package/test/offline/offline_uri_unit.js +0 -2
  234. package/test/offline/storage_compatibility_unit.js +2 -15
  235. package/test/offline/storage_integration.js +1 -25
  236. package/test/player_external.js +9 -11
  237. package/test/player_integration.js +27 -38
  238. package/test/player_load_graph_integration.js +1 -6
  239. package/test/player_src_equals_external.js +3 -9
  240. package/test/player_src_equals_integration.js +81 -90
  241. package/test/player_unit.js +150 -38
  242. package/test/routing/walker_unit.js +0 -8
  243. package/test/test/assets/large_file.mpd +1 -1
  244. package/test/test/boot.js +84 -22
  245. package/test/test/externs/filters.js +4 -0
  246. package/test/test/externs/jasmine.js +2 -2
  247. package/test/test/externs/karma.js +4 -0
  248. package/test/test/namespace.js +10 -0
  249. package/test/test/util/canned_idb.js +0 -8
  250. package/test/test/util/cea_utils.js +0 -6
  251. package/test/test/util/dash_parser_util.js +0 -13
  252. package/test/test/util/fake_ad.js +0 -3
  253. package/test/test/util/fake_ad_manager.js +0 -9
  254. package/test/test/util/fake_demo_main.js +0 -5
  255. package/test/test/util/fake_drm_engine.js +0 -6
  256. package/test/test/util/fake_media_source_engine.js +0 -7
  257. package/test/test/util/fake_networking_engine.js +0 -5
  258. package/test/test/util/fake_text_displayer.js +0 -5
  259. package/test/test/util/indexeddb_utils.js +1 -10
  260. package/test/test/util/jasmine_fetch.js +0 -1
  261. package/test/test/util/loader.js +0 -18
  262. package/test/test/util/manifest_generator.js +9 -14
  263. package/test/test/util/manifest_parser_util.js +0 -6
  264. package/test/test/util/offline_utils.js +0 -5
  265. package/test/test/util/simple_fakes.js +40 -28
  266. package/test/test/util/stream_generator.js +0 -14
  267. package/test/test/util/streaming_engine_util.js +0 -15
  268. package/test/test/util/test_scheme.js +1 -19
  269. package/test/test/util/ttml_utils.js +0 -2
  270. package/test/test/util/ui_utils.js +0 -9
  271. package/test/test/util/util.js +5 -19
  272. package/test/test/util/waiter.js +84 -43
  273. package/test/text/cue_integration.js +0 -4
  274. package/test/text/lrc_text_parser_unit.js +0 -4
  275. package/test/text/mp4_ttml_parser_unit.js +0 -6
  276. package/test/text/mp4_vtt_parser_unit.js +1 -7
  277. package/test/text/sbv_text_parser_unit.js +0 -4
  278. package/test/text/simple_text_displayer_unit.js +1 -8
  279. package/test/text/srt_text_parser_unit.js +0 -4
  280. package/test/text/ssa_text_parser_unit.js +0 -5
  281. package/test/text/text_engine_unit.js +2 -7
  282. package/test/text/text_track_integration.js +0 -2
  283. package/test/text/ttml_text_parser_unit.js +2 -11
  284. package/test/text/ui_text_displayer_unit.js +44 -41
  285. package/test/text/vtt_text_parser_unit.js +0 -9
  286. package/test/text/web_vtt_generator_unit.js +0 -3
  287. package/test/ui/ad_ui_unit.js +0 -11
  288. package/test/ui/localization_unit.js +0 -3
  289. package/test/ui/text_displayer_layout_unit.js +1 -12
  290. package/test/ui/ui_customization_unit.js +0 -6
  291. package/test/ui/ui_integration.js +0 -16
  292. package/test/ui/ui_unit.js +1 -17
  293. package/test/util/abortable_operation_unit.js +4 -9
  294. package/test/util/array_utils_unit.js +0 -2
  295. package/test/util/buffer_utils_unit.js +0 -2
  296. package/test/util/data_view_reader_unit.js +0 -4
  297. package/test/util/ebml_parser_unit.js +0 -4
  298. package/test/util/event_manager_unit.js +0 -3
  299. package/test/util/fake_event_target_unit.js +0 -5
  300. package/test/util/functional_unit.js +1 -1
  301. package/test/util/iterables_unit.js +0 -64
  302. package/test/util/language_utils_unit.js +0 -3
  303. package/test/util/manifest_parser_utils_unit.js +0 -2
  304. package/test/util/mime_utils_unit.js +54 -0
  305. package/test/util/mp4_box_parsers_unit.js +0 -5
  306. package/test/util/mp4_parser_unit.js +0 -4
  307. package/test/util/multi_map_unit.js +0 -3
  308. package/test/util/object_utils_unit.js +0 -2
  309. package/test/util/periods_unit.js +93 -7
  310. package/test/util/pssh_unit.js +0 -5
  311. package/test/util/state_history_unit.js +0 -2
  312. package/test/util/stream_utils_unit.js +3 -8
  313. package/test/util/string_utils_unit.js +0 -6
  314. package/test/util/text_parser_unit.js +0 -2
  315. package/test/util/xml_utils_unit.js +0 -4
  316. package/ui/less/ad_controls.less +6 -6
  317. package/ui/less/buttons.less +6 -6
  318. package/ui/less/containers.less +9 -11
  319. package/ui/less/overflow_menu.less +4 -4
  320. package/ui/less/range_elements.less +7 -2
  321. package/ui/locales/sjn-translations.yaml +257 -0
  322. package/ui/locales/sjn.json +42 -0
  323. package/ui/seek_bar.js +2 -1
  324. package/.github/workflows/build_and_test.yaml +0 -73
  325. package/.github/workflows/release.yaml +0 -53
  326. package/docs/tutorials/gsoc-ideas-list.md +0 -3
  327. package/externs/svgelement.js +0 -18
@@ -4,22 +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.log');
10
- goog.require('shaka.media.DrmEngine');
11
- goog.require('shaka.media.TimeRangesUtils');
12
- goog.require('shaka.test.FakeAbrManager');
13
- goog.require('shaka.test.FakeTextDisplayer');
14
- goog.require('shaka.test.Loader');
15
- goog.require('shaka.test.TestScheme');
16
- goog.require('shaka.test.UiUtils');
17
- goog.require('shaka.test.Util');
18
- goog.require('shaka.test.Waiter');
19
- goog.require('shaka.util.EventManager');
20
- goog.require('shaka.util.Functional');
21
- goog.require('shaka.util.Iterables');
22
-
23
7
  describe('Player', () => {
24
8
  /** @type {!jasmine.Spy} */
25
9
  let onErrorSpy;
@@ -53,6 +37,7 @@ describe('Player', () => {
53
37
  // Grab event manager from the uncompiled library:
54
38
  eventManager = new shaka.util.EventManager();
55
39
  waiter = new shaka.test.Waiter(eventManager);
40
+ waiter.setPlayer(player);
56
41
 
57
42
  onErrorSpy = jasmine.createSpy('onError');
58
43
  onErrorSpy.and.callFake((event) => {
@@ -264,7 +249,7 @@ describe('Player', () => {
264
249
  expect(variantTrack.language).toBe(textTrack.language);
265
250
  });
266
251
 
267
- // Repro for https://github.com/google/shaka-player/issues/1879.
252
+ // Repro for https://github.com/shaka-project/shaka-player/issues/1879.
268
253
  it('appends cues when enabled initially', async () => {
269
254
  let cues = [];
270
255
  /** @const {!shaka.test.FakeTextDisplayer} */
@@ -321,7 +306,7 @@ describe('Player', () => {
321
306
  expect(cues.length).toBeGreaterThan(0);
322
307
  });
323
308
 
324
- // https://github.com/google/shaka-player/issues/2553
309
+ // https://github.com/shaka-project/shaka-player/issues/2553
325
310
  it('does not change the selected track', async () => {
326
311
  player.configure('streaming.alwaysStreamText', false);
327
312
  await player.load('test:forced_subs_simulation_compiled');
@@ -447,7 +432,7 @@ describe('Player', () => {
447
432
  expect(configuredTextDisplayer).toBe(textDisplayer);
448
433
  });
449
434
 
450
- // Regression test for https://github.com/google/shaka-player/issues/1187
435
+ // Regression test for https://github.com/shaka-project/shaka-player/issues/1187
451
436
  it('does not throw on destroy', async () => {
452
437
  await player.load('test:sintel_compiled');
453
438
  video.play();
@@ -478,7 +463,7 @@ describe('Player', () => {
478
463
  // and the track selection was ignored. Because this bug involved
479
464
  // interactions between Player and StreamingEngine, it is an integration
480
465
  // test and not a unit test.
481
- // https://github.com/google/shaka-player/issues/1119
466
+ // https://github.com/shaka-project/shaka-player/issues/1119
482
467
  it('allows early selection of specific tracks', async () => {
483
468
  /** @type {!jasmine.Spy} */
484
469
  const streamingListener = jasmine.createSpy('listener');
@@ -513,7 +498,7 @@ describe('Player', () => {
513
498
  // switchingPeriods_ in Player. Because this bug involved interactions
514
499
  // between Player and StreamingEngine, it is an integration test and not a
515
500
  // unit test.
516
- // https://github.com/google/shaka-player/issues/1119
501
+ // https://github.com/shaka-project/shaka-player/issues/1119
517
502
  it('allows selection of tracks in subsequent loads', async () => {
518
503
  /** @type {!jasmine.Spy} */
519
504
  const streamingListener = jasmine.createSpy('listener');
@@ -611,7 +596,9 @@ describe('Player', () => {
611
596
  eventManager.listen(video, 'waiting', checkOnEvent);
612
597
  eventManager.listen(player, 'trackschanged', checkOnEvent);
613
598
 
614
- const waiter = (new shaka.test.Waiter(eventManager)).timeoutAfter(10);
599
+ const waiter = new shaka.test.Waiter(eventManager)
600
+ .setPlayer(player)
601
+ .timeoutAfter(10);
615
602
  const canPlayThrough = waiter.waitForEvent(video, 'canplaythrough');
616
603
 
617
604
  await player.load('test:sintel_compiled', 5);
@@ -678,7 +665,9 @@ describe('Player', () => {
678
665
  eventManager.listen(player, 'error', Util.spyFunc(onErrorSpy));
679
666
  /** @type {shaka.test.Waiter} */
680
667
  const waiter = new shaka.test.Waiter(eventManager)
681
- .timeoutAfter(20).failOnTimeout(true);
668
+ .setPlayer(player)
669
+ .timeoutAfter(20)
670
+ .failOnTimeout(true);
682
671
  await waiter.waitForEnd(video);
683
672
 
684
673
  // The stream should have transitioned to VOD by now.
@@ -686,7 +675,7 @@ describe('Player', () => {
686
675
 
687
676
  // Check that the final seek range is as expected.
688
677
  const seekRange = player.seekRange();
689
- expect(seekRange.end).toBe(14);
678
+ expect(seekRange.end).toBeCloseTo(14);
690
679
  });
691
680
  });
692
681
 
@@ -703,6 +692,7 @@ describe('Player', () => {
703
692
  player.addEventListener('buffering', Util.spyFunc(onBuffering));
704
693
 
705
694
  waiter = new shaka.test.Waiter(eventManager)
695
+ .setPlayer(player)
706
696
  .timeoutAfter(10)
707
697
  .failOnTimeout(true);
708
698
  });
@@ -816,8 +806,7 @@ describe('Player', () => {
816
806
  }
817
807
 
818
808
  async function waitUntilBuffered(amount) {
819
- for (const _ of shaka.util.Iterables.range(25)) {
820
- shaka.util.Functional.ignored(_);
809
+ for (let i = 0; i < 25; i++) {
821
810
  // We buffer from an internal segment, so this shouldn't take long to
822
811
  // buffer.
823
812
  await Util.delay(0.1); // eslint-disable-line no-await-in-loop
@@ -894,7 +883,9 @@ describe('Player', () => {
894
883
 
895
884
  /** @type {shaka.test.Waiter} */
896
885
  const waiter = new shaka.test.Waiter(eventManager)
897
- .timeoutAfter(1).failOnTimeout(true);
886
+ .setPlayer(player)
887
+ .timeoutAfter(1)
888
+ .failOnTimeout(true);
898
889
 
899
890
  await waiter.waitForPromise(abrEnabled, 'AbrManager enabled');
900
891
 
@@ -914,7 +905,9 @@ describe('Player', () => {
914
905
 
915
906
  /** @type {shaka.test.Waiter} */
916
907
  const waiter = new shaka.test.Waiter(eventManager)
917
- .timeoutAfter(1).failOnTimeout(true);
908
+ .setPlayer(player)
909
+ .timeoutAfter(1)
910
+ .failOnTimeout(true);
918
911
 
919
912
  await waiter.waitForPromise(abrEnabled, 'AbrManager enabled');
920
913
 
@@ -960,16 +953,16 @@ describe('Player', () => {
960
953
  });
961
954
  }); // describe('unloading')
962
955
 
963
- describe('chapters', () => {
964
- it('add external chapters in vtt format', async () => {
956
+ describe('addChaptersTrack', () => {
957
+ it('adds external chapters in vtt format', async () => {
965
958
  await player.load('test:sintel_no_text_compiled');
966
959
  const locationUri = new goog.Uri(location.href);
967
960
  const partialUri1 = new goog.Uri('/base/test/test/assets/chapters.vtt');
968
961
  const absoluteUri1 = locationUri.resolve(partialUri1);
969
962
  await player.addChaptersTrack(absoluteUri1.toString(), 'en');
970
963
 
971
- await shaka.test.Util.delay(1.5);
972
-
964
+ // Data should be available as soon as addChaptersTrack resolves.
965
+ // See https://github.com/shaka-project/shaka-player/issues/4186
973
966
  const chapters = player.getChapters('en');
974
967
  expect(chapters.length).toBe(3);
975
968
  const chapter1 = chapters[0];
@@ -989,8 +982,6 @@ describe('Player', () => {
989
982
  const absoluteUri2 = locationUri.resolve(partialUri2);
990
983
  await player.addChaptersTrack(absoluteUri2.toString(), 'en');
991
984
 
992
- await shaka.test.Util.delay(1.5);
993
-
994
985
  const chaptersUpdated = player.getChapters('en');
995
986
  expect(chaptersUpdated.length).toBe(6);
996
987
  const chapterUpdated1 = chaptersUpdated[0];
@@ -1019,15 +1010,13 @@ describe('Player', () => {
1019
1010
  expect(chapterUpdated6.endTime).toBe(61.349);
1020
1011
  });
1021
1012
 
1022
- it('add external chapters in srt format', async () => {
1013
+ it('adds external chapters in srt format', async () => {
1023
1014
  await player.load('test:sintel_no_text_compiled');
1024
1015
  const locationUri = new goog.Uri(location.href);
1025
1016
  const partialUri = new goog.Uri('/base/test/test/assets/chapters.srt');
1026
1017
  const absoluteUri = locationUri.resolve(partialUri);
1027
1018
  await player.addChaptersTrack(absoluteUri.toString(), 'es');
1028
1019
 
1029
- await shaka.test.Util.delay(1.5);
1030
-
1031
1020
  const chapters = player.getChapters('es');
1032
1021
  expect(chapters.length).toBe(3);
1033
1022
  const chapter1 = chapters[0];
@@ -1043,5 +1032,5 @@ describe('Player', () => {
1043
1032
  expect(chapter3.startTime).toBe(30);
1044
1033
  expect(chapter3.endTime).toBe(61.349);
1045
1034
  });
1046
- }); // describe('chapters')
1035
+ }); // describe('addChaptersTrack')
1047
1036
  });
@@ -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/google/shaka-player/issues/612
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/google/shaka-player/issues/2523
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/google/shaka-player/issues/2483#issuecomment-633412527
107
- // and https://github.com/google/shaka-player/issues/2593
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=|.
@@ -326,90 +319,88 @@ describe('Player Src Equals', () => {
326
319
  expect(newTrack).toBeTruthy();
327
320
  });
328
321
 
329
- it('add external chapters in vtt format', async () => {
330
- await loadWithSrcEquals(SMALL_MP4_CONTENT_URI, /* startTime= */ null);
331
-
332
- const locationUri = new goog.Uri(location.href);
333
- const partialUri1 = new goog.Uri('/base/test/test/assets/chapters.vtt');
334
- const absoluteUri1 = locationUri.resolve(partialUri1);
335
- await player.addChaptersTrack(absoluteUri1.toString(), 'en');
336
-
337
- await shaka.test.Util.delay(1.5);
338
-
339
- const chapters = player.getChapters('en');
340
- expect(chapters.length).toBe(3);
341
- const chapter1 = chapters[0];
342
- expect(chapter1.title).toBe('Chapter 1');
343
- expect(chapter1.startTime).toBe(0);
344
- expect(chapter1.endTime).toBe(5);
345
- const chapter2 = chapters[1];
346
- expect(chapter2.title).toBe('Chapter 2');
347
- expect(chapter2.startTime).toBe(5);
348
- expect(chapter2.endTime).toBe(10);
349
- const chapter3 = chapters[2];
350
- expect(chapter3.title).toBe('Chapter 3');
351
- expect(chapter3.startTime).toBe(10);
352
- expect(chapter3.endTime).toBe(20);
353
-
354
- const partialUri2 = new goog.Uri('/base/test/test/assets/chapters2.vtt');
355
- const absoluteUri2 = locationUri.resolve(partialUri2);
356
- await player.addChaptersTrack(absoluteUri2.toString(), 'en');
357
-
358
- await shaka.test.Util.delay(1.5);
359
-
360
- const chaptersUpdated = player.getChapters('en');
361
- expect(chaptersUpdated.length).toBe(6);
362
- const chapterUpdated1 = chaptersUpdated[0];
363
- expect(chapterUpdated1.title).toBe('Chapter 1');
364
- expect(chapterUpdated1.startTime).toBe(0);
365
- expect(chapterUpdated1.endTime).toBe(5);
366
- const chapterUpdated2 = chaptersUpdated[1];
367
- expect(chapterUpdated2.title).toBe('Chapter 2');
368
- expect(chapterUpdated2.startTime).toBe(5);
369
- expect(chapterUpdated2.endTime).toBe(10);
370
- const chapterUpdated3 = chaptersUpdated[2];
371
- expect(chapterUpdated3.title).toBe('Chapter 3');
372
- expect(chapterUpdated3.startTime).toBe(10);
373
- expect(chapterUpdated3.endTime).toBe(20);
374
- const chapterUpdated4 = chaptersUpdated[3];
375
- expect(chapterUpdated4.title).toBe('Chapter 4');
376
- expect(chapterUpdated4.startTime).toBe(20);
377
- expect(chapterUpdated4.endTime).toBe(30);
378
- const chapterUpdated5 = chaptersUpdated[4];
379
- expect(chapterUpdated5.title).toBe('Chapter 5');
380
- expect(chapterUpdated5.startTime).toBe(30);
381
- expect(chapterUpdated5.endTime).toBe(40);
382
- const chapterUpdated6 = chaptersUpdated[5];
383
- expect(chapterUpdated6.title).toBe('Chapter 6');
384
- expect(chapterUpdated6.startTime).toBe(40);
385
- expect(chapterUpdated6.endTime).toBe(61.349);
386
- });
387
-
388
- it('add external chapters in srt format', async () => {
389
- await loadWithSrcEquals(SMALL_MP4_CONTENT_URI, /* startTime= */ null);
390
-
391
- const locationUri = new goog.Uri(location.href);
392
- const partialUri = new goog.Uri('/base/test/test/assets/chapters.srt');
393
- const absoluteUri = locationUri.resolve(partialUri);
394
- await player.addChaptersTrack(absoluteUri.toString(), 'es');
395
-
396
- await shaka.test.Util.delay(1.5);
322
+ describe('addChaptersTrack', () => {
323
+ it('adds external chapters in vtt format', async () => {
324
+ await loadWithSrcEquals(SMALL_MP4_CONTENT_URI, /* startTime= */ null);
325
+
326
+ const locationUri = new goog.Uri(location.href);
327
+ const partialUri1 = new goog.Uri('/base/test/test/assets/chapters.vtt');
328
+ const absoluteUri1 = locationUri.resolve(partialUri1);
329
+ await player.addChaptersTrack(absoluteUri1.toString(), 'en');
330
+
331
+ // Data should be available as soon as addChaptersTrack resolves.
332
+ // See https://github.com/shaka-project/shaka-player/issues/4186
333
+ const chapters = player.getChapters('en');
334
+ expect(chapters.length).toBe(3);
335
+ const chapter1 = chapters[0];
336
+ expect(chapter1.title).toBe('Chapter 1');
337
+ expect(chapter1.startTime).toBe(0);
338
+ expect(chapter1.endTime).toBe(5);
339
+ const chapter2 = chapters[1];
340
+ expect(chapter2.title).toBe('Chapter 2');
341
+ expect(chapter2.startTime).toBe(5);
342
+ expect(chapter2.endTime).toBe(10);
343
+ const chapter3 = chapters[2];
344
+ expect(chapter3.title).toBe('Chapter 3');
345
+ expect(chapter3.startTime).toBe(10);
346
+ expect(chapter3.endTime).toBe(20);
347
+
348
+ const partialUri2 = new goog.Uri('/base/test/test/assets/chapters2.vtt');
349
+ const absoluteUri2 = locationUri.resolve(partialUri2);
350
+ await player.addChaptersTrack(absoluteUri2.toString(), 'en');
351
+
352
+ const chaptersUpdated = player.getChapters('en');
353
+ expect(chaptersUpdated.length).toBe(6);
354
+ const chapterUpdated1 = chaptersUpdated[0];
355
+ expect(chapterUpdated1.title).toBe('Chapter 1');
356
+ expect(chapterUpdated1.startTime).toBe(0);
357
+ expect(chapterUpdated1.endTime).toBe(5);
358
+ const chapterUpdated2 = chaptersUpdated[1];
359
+ expect(chapterUpdated2.title).toBe('Chapter 2');
360
+ expect(chapterUpdated2.startTime).toBe(5);
361
+ expect(chapterUpdated2.endTime).toBe(10);
362
+ const chapterUpdated3 = chaptersUpdated[2];
363
+ expect(chapterUpdated3.title).toBe('Chapter 3');
364
+ expect(chapterUpdated3.startTime).toBe(10);
365
+ expect(chapterUpdated3.endTime).toBe(20);
366
+ const chapterUpdated4 = chaptersUpdated[3];
367
+ expect(chapterUpdated4.title).toBe('Chapter 4');
368
+ expect(chapterUpdated4.startTime).toBe(20);
369
+ expect(chapterUpdated4.endTime).toBe(30);
370
+ const chapterUpdated5 = chaptersUpdated[4];
371
+ expect(chapterUpdated5.title).toBe('Chapter 5');
372
+ expect(chapterUpdated5.startTime).toBe(30);
373
+ expect(chapterUpdated5.endTime).toBe(40);
374
+ const chapterUpdated6 = chaptersUpdated[5];
375
+ expect(chapterUpdated6.title).toBe('Chapter 6');
376
+ expect(chapterUpdated6.startTime).toBe(40);
377
+ expect(chapterUpdated6.endTime).toBe(61.349);
378
+ });
397
379
 
398
- const chapters = player.getChapters('es');
399
- expect(chapters.length).toBe(3);
400
- const chapter1 = chapters[0];
401
- expect(chapter1.title).toBe('Chapter 1');
402
- expect(chapter1.startTime).toBe(0);
403
- expect(chapter1.endTime).toBe(5);
404
- const chapter2 = chapters[1];
405
- expect(chapter2.title).toBe('Chapter 2');
406
- expect(chapter2.startTime).toBe(5);
407
- expect(chapter2.endTime).toBe(30);
408
- const chapter3 = chapters[2];
409
- expect(chapter3.title).toBe('Chapter 3');
410
- expect(chapter3.startTime).toBe(30);
411
- expect(chapter3.endTime).toBe(61.349);
412
- });
380
+ it('add external chapters in srt format', async () => {
381
+ await loadWithSrcEquals(SMALL_MP4_CONTENT_URI, /* startTime= */ null);
382
+
383
+ const locationUri = new goog.Uri(location.href);
384
+ const partialUri = new goog.Uri('/base/test/test/assets/chapters.srt');
385
+ const absoluteUri = locationUri.resolve(partialUri);
386
+ await player.addChaptersTrack(absoluteUri.toString(), 'es');
387
+
388
+ const chapters = player.getChapters('es');
389
+ expect(chapters.length).toBe(3);
390
+ const chapter1 = chapters[0];
391
+ expect(chapter1.title).toBe('Chapter 1');
392
+ expect(chapter1.startTime).toBe(0);
393
+ expect(chapter1.endTime).toBe(5);
394
+ const chapter2 = chapters[1];
395
+ expect(chapter2.title).toBe('Chapter 2');
396
+ expect(chapter2.startTime).toBe(5);
397
+ expect(chapter2.endTime).toBe(30);
398
+ const chapter3 = chapters[2];
399
+ expect(chapter3.title).toBe('Chapter 3');
400
+ expect(chapter3.startTime).toBe(30);
401
+ expect(chapter3.endTime).toBe(61.349);
402
+ });
403
+ }); // describe('addChaptersTrack')
413
404
 
414
405
  // Since we are not in-charge of streaming, calling |retryStreaming| should
415
406
  // have no effect.