shaka-player 3.2.4 → 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.
Files changed (317) 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 +130 -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 +145 -0
  9. package/.github/workflows/safari-homedir-launcher.sh +18 -0
  10. package/.github/workflows/selenium-lab-tests.yaml +93 -0
  11. package/AUTHORS +2 -0
  12. package/CHANGELOG.md +1571 -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 +1 -1
  58. package/build/conformance.textproto +13 -0
  59. package/build/docker/Dockerfile +20 -0
  60. package/build/docker/docker-compose.yml +10 -0
  61. package/build/gendeps.py +18 -15
  62. package/build/shaka-lab.yaml +163 -0
  63. package/build/shakaBuildHelpers.py +4 -29
  64. package/build/test.py +87 -28
  65. package/build/wrapper.template.js +2 -2
  66. package/demo/TengwarTelcontar.woff2 +0 -0
  67. package/demo/asset_card.js +1 -2
  68. package/demo/cast_receiver/index.html +1 -1
  69. package/demo/cast_receiver/receiver_app.css +14 -14
  70. package/demo/common/assets.js +2 -0
  71. package/demo/config.js +0 -1
  72. package/demo/custom.js +0 -1
  73. package/demo/customWarning.txt +2 -2
  74. package/demo/demo.less +29 -18
  75. package/demo/demo_uncompiled.js +1 -13
  76. package/demo/index.html +1 -1
  77. package/demo/main.js +3 -3
  78. package/dist/controls.css +2 -2
  79. package/dist/controls.css.map +1 -1
  80. package/dist/demo.compiled.debug.js +191 -194
  81. package/dist/demo.compiled.debug.map +4 -4
  82. package/dist/demo.compiled.js +191 -194
  83. package/dist/demo.compiled.map +4 -4
  84. package/dist/demo.css +1 -1
  85. package/dist/demo.css.map +1 -1
  86. package/dist/deps.js +225 -219
  87. package/dist/locales.js +28 -28
  88. package/dist/receiver.compiled.debug.js +43 -45
  89. package/dist/receiver.compiled.debug.map +4 -4
  90. package/dist/receiver.compiled.js +43 -45
  91. package/dist/receiver.compiled.map +4 -4
  92. package/dist/shaka-player.compiled.d.ts +224 -224
  93. package/dist/shaka-player.compiled.debug.d.ts +224 -224
  94. package/dist/shaka-player.compiled.debug.externs.js +4 -3
  95. package/dist/shaka-player.compiled.debug.js +294 -303
  96. package/dist/shaka-player.compiled.debug.map +4 -4
  97. package/dist/shaka-player.compiled.externs.js +4 -3
  98. package/dist/shaka-player.compiled.js +817 -822
  99. package/dist/shaka-player.compiled.map +4 -4
  100. package/dist/shaka-player.ui.d.ts +266 -266
  101. package/dist/shaka-player.ui.debug.d.ts +266 -266
  102. package/dist/shaka-player.ui.debug.externs.js +4 -3
  103. package/dist/shaka-player.ui.debug.js +220 -229
  104. package/dist/shaka-player.ui.debug.map +4 -4
  105. package/dist/shaka-player.ui.externs.js +4 -3
  106. package/dist/shaka-player.ui.js +964 -970
  107. package/dist/shaka-player.ui.map +4 -4
  108. package/docs/design/REDESIGN.md +33 -33
  109. package/docs/design/codec_preferences.md +1 -1
  110. package/docs/design/dash-audio-channels.md +3 -3
  111. package/docs/design/dash-manifests.md +1 -1
  112. package/docs/design/gap-jumping.md +3 -3
  113. package/docs/design/preload.md +2 -2
  114. package/docs/tutorials/faq.md +8 -8
  115. package/docs/tutorials/index.json +1 -0
  116. package/docs/tutorials/plugins.md +3 -3
  117. package/docs/tutorials/selenium-grid-config.md +122 -0
  118. package/docs/tutorials/welcome.md +10 -2
  119. package/karma.conf.js +137 -30
  120. package/lib/abr/simple_abr_manager.js +12 -6
  121. package/lib/cast/cast_proxy.js +3 -4
  122. package/lib/cea/cea608_data_channel.js +2 -2
  123. package/lib/cea/cea708_service.js +5 -4
  124. package/lib/cea/mp4_cea_parser.js +11 -5
  125. package/lib/cea/sei_processor.js +6 -3
  126. package/lib/dash/dash_parser.js +9 -11
  127. package/lib/dash/mpd_utils.js +4 -5
  128. package/lib/dash/segment_list.js +1 -2
  129. package/lib/dash/segment_template.js +3 -3
  130. package/lib/hls/hls_parser.js +11 -9
  131. package/lib/hls/manifest_text_parser.js +3 -3
  132. package/lib/media/adaptation_set.js +1 -2
  133. package/lib/media/content_workarounds.js +2 -2
  134. package/lib/media/drm_engine.js +3 -2
  135. package/lib/media/media_source_engine.js +3 -2
  136. package/lib/media/mp4_segment_index_parser.js +1 -4
  137. package/lib/media/playhead.js +2 -2
  138. package/lib/media/presentation_timeline.js +18 -8
  139. package/lib/media/streaming_engine.js +6 -6
  140. package/lib/media/time_ranges_utils.js +1 -3
  141. package/lib/media/video_wrapper.js +1 -1
  142. package/lib/net/networking_engine.js +1 -1
  143. package/lib/offline/storage.js +4 -4
  144. package/lib/player.js +34 -16
  145. package/lib/polyfill/all.js +2 -3
  146. package/lib/polyfill/encryption_scheme.js +1 -1
  147. package/lib/polyfill/media_capabilities.js +3 -3
  148. package/lib/polyfill/mediasource.js +1 -1
  149. package/lib/text/cue.js +1 -1
  150. package/lib/text/simple_text_displayer.js +2 -1
  151. package/lib/text/ttml_text_parser.js +8 -5
  152. package/lib/text/ui_text_displayer.js +1 -1
  153. package/lib/util/buffer_utils.js +1 -3
  154. package/lib/util/ebml_parser.js +3 -3
  155. package/lib/util/error.js +1 -1
  156. package/lib/util/iterables.js +0 -46
  157. package/lib/util/mp4_box_parsers.js +1 -4
  158. package/lib/util/mp4_parser.js +5 -7
  159. package/lib/util/periods.js +8 -9
  160. package/lib/util/platform.js +3 -3
  161. package/lib/util/pssh.js +1 -4
  162. package/lib/util/stream_utils.js +4 -3
  163. package/lib/util/string_utils.js +3 -5
  164. package/lib/util/uint8array_utils.js +3 -5
  165. package/lib/util/xml_utils.js +15 -7
  166. package/package.json +61 -36
  167. package/roadmap.md +17 -17
  168. package/test/abr/simple_abr_manager_unit.js +3 -8
  169. package/test/ads/ad_manager_unit.js +0 -6
  170. package/test/cast/cast_proxy_unit.js +0 -8
  171. package/test/cast/cast_receiver_integration.js +1 -18
  172. package/test/cast/cast_receiver_unit.js +1 -9
  173. package/test/cast/cast_sender_unit.js +0 -6
  174. package/test/cast/cast_utils_unit.js +0 -13
  175. package/test/cea/cea608_memory_unit.js +0 -5
  176. package/test/cea/cea708_service_unit.js +0 -7
  177. package/test/cea/cea708_window_unit.js +0 -5
  178. package/test/cea/cea_decoder_unit.js +0 -6
  179. package/test/cea/dtvcc_packet_builder_unit.js +0 -3
  180. package/test/cea/dtvcc_packet_unit.js +0 -5
  181. package/test/cea/mp4_cea_parser_unit.js +0 -4
  182. package/test/dash/dash_parser_content_protection_unit.js +1 -10
  183. package/test/dash/dash_parser_live_unit.js +2 -15
  184. package/test/dash/dash_parser_manifest_unit.js +2 -16
  185. package/test/dash/dash_parser_segment_base_unit.js +1 -8
  186. package/test/dash/dash_parser_segment_list_unit.js +1 -7
  187. package/test/dash/dash_parser_segment_template_unit.js +0 -9
  188. package/test/dash/mpd_utils_unit.js +3 -11
  189. package/test/demo/demo_unit.js +0 -5
  190. package/test/deprecate/enforcer_unit.js +0 -4
  191. package/test/deprecate/version_unit.js +0 -2
  192. package/test/hls/hls_live_unit.js +2 -14
  193. package/test/hls/hls_parser_unit.js +2 -15
  194. package/test/hls/manifest_text_parser_unit.js +0 -10
  195. package/test/media/adaptation_set_criteria_unit.js +3 -7
  196. package/test/media/adaptation_set_unit.js +0 -2
  197. package/test/media/buffering_observer_unit.js +1 -4
  198. package/test/media/closed_caption_parser_unit.js +0 -3
  199. package/test/media/drm_engine_integration.js +2 -15
  200. package/test/media/drm_engine_unit.js +4 -24
  201. package/test/media/manifest_parser_unit.js +0 -4
  202. package/test/media/media_source_engine_integration.js +0 -7
  203. package/test/media/media_source_engine_unit.js +1 -14
  204. package/test/media/mp4_segment_index_parser_unit.js +0 -4
  205. package/test/media/play_rate_controller_unit.js +0 -4
  206. package/test/media/playhead_unit.js +8 -16
  207. package/test/media/presentation_timeline_unit.js +4 -7
  208. package/test/media/region_observer_unit.js +1 -6
  209. package/test/media/region_timeline_unit.js +0 -3
  210. package/test/media/segment_index_unit.js +0 -6
  211. package/test/media/segment_reference_unit.js +0 -3
  212. package/test/media/stall_detector_unit.js +0 -5
  213. package/test/media/streaming_engine_integration.js +9 -36
  214. package/test/media/streaming_engine_unit.js +11 -35
  215. package/test/media/time_ranges_utils_unit.js +0 -2
  216. package/test/media/transmuxer_integration.js +0 -6
  217. package/test/media/webm_segment_index_parser_unit.js +0 -4
  218. package/test/net/data_uri_plugin_unit.js +0 -7
  219. package/test/net/http_plugin_unit.js +0 -9
  220. package/test/net/networking_engine_unit.js +0 -11
  221. package/test/offline/download_progress_estimator_unit.js +0 -2
  222. package/test/offline/indexeddb_storage_unit.js +0 -6
  223. package/test/offline/manifest_convert_unit.js +0 -8
  224. package/test/offline/offline_integration.js +1 -10
  225. package/test/offline/offline_manifest_parser_unit.js +0 -6
  226. package/test/offline/offline_scheme_unit.js +0 -8
  227. package/test/offline/offline_uri_unit.js +0 -2
  228. package/test/offline/storage_compatibility_unit.js +1 -14
  229. package/test/offline/storage_integration.js +1 -25
  230. package/test/player_external.js +2 -10
  231. package/test/player_integration.js +21 -28
  232. package/test/player_load_graph_integration.js +1 -6
  233. package/test/player_src_equals_external.js +3 -9
  234. package/test/player_src_equals_integration.js +0 -7
  235. package/test/player_unit.js +52 -37
  236. package/test/routing/walker_unit.js +0 -8
  237. package/test/test/assets/large_file.mpd +1 -1
  238. package/test/test/boot.js +75 -22
  239. package/test/test/externs/jasmine.js +2 -2
  240. package/test/test/externs/karma.js +4 -0
  241. package/test/test/namespace.js +10 -0
  242. package/test/test/util/canned_idb.js +0 -8
  243. package/test/test/util/cea_utils.js +0 -6
  244. package/test/test/util/dash_parser_util.js +0 -13
  245. package/test/test/util/fake_ad.js +0 -3
  246. package/test/test/util/fake_ad_manager.js +0 -9
  247. package/test/test/util/fake_demo_main.js +0 -5
  248. package/test/test/util/fake_drm_engine.js +0 -6
  249. package/test/test/util/fake_media_source_engine.js +0 -7
  250. package/test/test/util/fake_networking_engine.js +0 -5
  251. package/test/test/util/fake_text_displayer.js +0 -5
  252. package/test/test/util/indexeddb_utils.js +1 -10
  253. package/test/test/util/jasmine_fetch.js +0 -1
  254. package/test/test/util/loader.js +0 -18
  255. package/test/test/util/manifest_generator.js +9 -14
  256. package/test/test/util/manifest_parser_util.js +0 -6
  257. package/test/test/util/offline_utils.js +0 -5
  258. package/test/test/util/simple_fakes.js +9 -26
  259. package/test/test/util/stream_generator.js +0 -14
  260. package/test/test/util/streaming_engine_util.js +0 -15
  261. package/test/test/util/test_scheme.js +1 -19
  262. package/test/test/util/ttml_utils.js +0 -2
  263. package/test/test/util/ui_utils.js +0 -9
  264. package/test/test/util/util.js +5 -19
  265. package/test/test/util/waiter.js +84 -43
  266. package/test/text/cue_integration.js +0 -4
  267. package/test/text/lrc_text_parser_unit.js +0 -4
  268. package/test/text/mp4_ttml_parser_unit.js +0 -6
  269. package/test/text/mp4_vtt_parser_unit.js +1 -7
  270. package/test/text/sbv_text_parser_unit.js +0 -4
  271. package/test/text/simple_text_displayer_unit.js +1 -8
  272. package/test/text/srt_text_parser_unit.js +0 -4
  273. package/test/text/ssa_text_parser_unit.js +0 -5
  274. package/test/text/text_engine_unit.js +2 -7
  275. package/test/text/text_track_integration.js +0 -2
  276. package/test/text/ttml_text_parser_unit.js +2 -11
  277. package/test/text/ui_text_displayer_unit.js +44 -41
  278. package/test/text/vtt_text_parser_unit.js +0 -9
  279. package/test/text/web_vtt_generator_unit.js +0 -3
  280. package/test/ui/ad_ui_unit.js +0 -11
  281. package/test/ui/localization_unit.js +0 -3
  282. package/test/ui/text_displayer_layout_unit.js +1 -12
  283. package/test/ui/ui_customization_unit.js +0 -6
  284. package/test/ui/ui_integration.js +0 -16
  285. package/test/ui/ui_unit.js +1 -17
  286. package/test/util/abortable_operation_unit.js +4 -9
  287. package/test/util/array_utils_unit.js +0 -2
  288. package/test/util/buffer_utils_unit.js +0 -2
  289. package/test/util/data_view_reader_unit.js +0 -4
  290. package/test/util/ebml_parser_unit.js +0 -4
  291. package/test/util/event_manager_unit.js +0 -3
  292. package/test/util/fake_event_target_unit.js +0 -5
  293. package/test/util/functional_unit.js +1 -1
  294. package/test/util/iterables_unit.js +0 -64
  295. package/test/util/language_utils_unit.js +0 -3
  296. package/test/util/manifest_parser_utils_unit.js +0 -2
  297. package/test/util/mp4_box_parsers_unit.js +0 -5
  298. package/test/util/mp4_parser_unit.js +0 -4
  299. package/test/util/multi_map_unit.js +0 -3
  300. package/test/util/object_utils_unit.js +0 -2
  301. package/test/util/periods_unit.js +14 -7
  302. package/test/util/pssh_unit.js +0 -5
  303. package/test/util/state_history_unit.js +0 -2
  304. package/test/util/stream_utils_unit.js +3 -8
  305. package/test/util/string_utils_unit.js +0 -6
  306. package/test/util/text_parser_unit.js +0 -2
  307. package/test/util/xml_utils_unit.js +0 -4
  308. package/ui/less/ad_controls.less +4 -4
  309. package/ui/less/buttons.less +5 -5
  310. package/ui/less/containers.less +5 -7
  311. package/ui/less/overflow_menu.less +4 -4
  312. package/ui/less/range_elements.less +5 -0
  313. package/ui/locales/sjn-translations.yaml +257 -0
  314. package/ui/locales/sjn.json +42 -0
  315. package/.github/workflows/build_and_test.yaml +0 -73
  316. package/.github/workflows/release.yaml +0 -53
  317. package/externs/svgelement.js +0 -18
@@ -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,9 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.provide('shaka.test.FakeAd');
8
-
9
-
10
7
  /**
11
8
  * @implements {shaka.extern.IAd}
12
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,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.provide('shaka.test.FakeDemoMain');
8
-
9
- goog.require('shaka.Player');
10
-
11
-
12
7
  /**
13
8
  * @summary
14
9
  * This simulates the interface between ShakaDemoMain and the various tabs.
@@ -4,12 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.provide('shaka.test.FakeDrmEngine');
8
-
9
- goog.require('shaka.media.DrmEngine');
10
- goog.require('shaka.test.Util');
11
-
12
-
13
7
  /**
14
8
  * A fake DrmEngine.
15
9
  *
@@ -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,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.provide('shaka.test.FakeTextDisplayer');
8
-
9
- goog.require('shaka.test.Util');
10
-
11
-
12
7
  /**
13
8
  * @implements {shaka.extern.TextDisplayer}
14
9
  * @final
@@ -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 (const _ of shaka.util.Iterables.range(5)) {
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
@@ -4,7 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
-
8
7
  // TODO: this only contains the methods that we use; if this is published
9
8
  // it should contain the entire breadth of options in jasmine-ajax.
10
9
 
@@ -4,24 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.provide('shaka.test.Loader');
8
-
9
- goog.require('shaka.log');
10
- goog.require('shaka.test.TestScheme');
11
- goog.require('shaka.util.PublicPromise');
12
- goog.requireType('shaka.Player');
13
- goog.requireType('shaka.media.InitSegmentReference');
14
- goog.requireType('shaka.media.PresentationTimeline');
15
- goog.requireType('shaka.media.SegmentIndex');
16
- goog.requireType('shaka.media.SegmentReference');
17
- goog.requireType('shaka.net.NetworkingEngine');
18
- goog.requireType('shaka.offline.Storage');
19
- goog.requireType('shaka.ui.Controls');
20
- goog.requireType('shaka.ui.Element');
21
- goog.requireType('shaka.ui.Overlay');
22
- goog.requireType('shaka.util.StringUtils');
23
-
24
-
25
7
  /**
26
8
  * A stand-in type for the "shaka" namespace. Used when loading the compiled
27
9
  * library or when referencing it in ManifestGenerator or TestScheme.
@@ -4,18 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.provide('shaka.test.ManifestGenerator');
8
-
9
- goog.require('goog.asserts');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Iterables');
12
- goog.require('shaka.util.ManifestParserUtils');
13
- goog.require('shaka.util.Uint8ArrayUtils');
14
- goog.requireType('shaka.media.InitSegmentReference');
15
- goog.requireType('shaka.media.PresentationTimeline');
16
- goog.requireType('shaka.media.SegmentIndex');
17
-
18
-
19
7
  /**
20
8
  * @summary
21
9
  * A helper class used to generate manifests. This is done through a series
@@ -606,13 +594,20 @@ shaka.test.ManifestGenerator.Stream = class {
606
594
  segmentDuration, 'Must pass a non-zero segment duration');
607
595
 
608
596
  const shaka_ = this.manifest_.shaka_;
609
- const totalDuration = this.manifest_.presentationTimeline.getDuration();
597
+ let totalDuration = this.manifest_.presentationTimeline.getDuration();
610
598
  goog.asserts.assert(
611
599
  isFinite(totalDuration), 'Must specify a manifest duration');
600
+ if (!isFinite(totalDuration)) {
601
+ // Without this, a mistake of an infinite duration would result in an
602
+ // infinite loop and a crash, which would in turn prevent you from seeing
603
+ // the above assertion fail.
604
+ totalDuration = 0;
605
+ }
606
+
612
607
  const segmentCount = totalDuration / segmentDuration;
613
608
  const references = [];
614
609
 
615
- for (const index of shaka.util.Iterables.range(segmentCount)) {
610
+ for (let index = 0; index < segmentCount; index++) {
616
611
  const getUris = () => [sprintf(template, index)];
617
612
  const start = index * segmentDuration;
618
613
  const end = Math.min(totalDuration, (index + 1) * segmentDuration);
@@ -4,12 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.provide('shaka.test.ManifestParser');
8
-
9
- goog.require('shaka.media.InitSegmentReference');
10
- goog.require('shaka.media.SegmentReference');
11
-
12
-
13
7
  shaka.test.ManifestParser = class {
14
8
  /**
15
9
  * Verifies the segment references of a stream.
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.provide('shaka.test.OfflineUtils');
8
-
9
- goog.require('shaka.util.BufferUtils');
10
-
11
-
12
7
  shaka.test.OfflineUtils = class {
13
8
  /**
14
9
  * @param {string} originalUri
@@ -4,28 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.provide('shaka.test.FakeAbrManager');
8
- goog.provide('shaka.test.FakeClosedCaptionParser');
9
- goog.provide('shaka.test.FakeManifestParser');
10
- goog.provide('shaka.test.FakePlayhead');
11
- goog.provide('shaka.test.FakePlayheadObserver');
12
- goog.provide('shaka.test.FakePresentationTimeline');
13
- goog.provide('shaka.test.FakeSegmentIndex');
14
- goog.provide('shaka.test.FakeStreamingEngine');
15
- goog.provide('shaka.test.FakeTextTrack');
16
- goog.provide('shaka.test.FakeTransmuxer');
17
- goog.provide('shaka.test.FakeVideo');
18
-
19
- goog.require('shaka.test.Util');
20
- goog.require('shaka.abr.SimpleAbrManager');
21
- goog.require('shaka.media.IClosedCaptionParser');
22
- goog.require('shaka.media.Playhead');
23
- goog.require('shaka.media.PresentationTimeline');
24
- goog.require('shaka.media.SegmentIndex');
25
- goog.require('shaka.media.StreamingEngine');
26
- goog.require('shaka.media.Transmuxer');
27
-
28
-
29
7
  /**
30
8
  * @fileoverview Defines simple mocks for library types.
31
9
  * @suppress {checkTypes} Suppress errors about missmatches between the
@@ -351,19 +329,24 @@ shaka.test.FakePlayhead = class {
351
329
  /** @extends {TextTrack} */
352
330
  shaka.test.FakeTextTrack = class {
353
331
  constructor() {
332
+ // The compiler knows TextTrack.cues is const, and we lied and said we
333
+ // "extend" TextTrack, so it won't let us assign to cues here. But we
334
+ // must, because this fake is a from-scratch implementation of the API.
335
+ // This cast-hack works around the issue.
354
336
  /** @type {!Array.<TextTrackCue>} */
355
- this.cues = [];
337
+ const cues = [];
338
+ (/** @type {?} */(this))['cues'] = cues;
356
339
 
357
340
  /** @type {!jasmine.Spy} */
358
341
  this.addCue = jasmine.createSpy('addCue').and.callFake((cue) => {
359
- this.cues.push(cue);
342
+ cues.push(cue);
360
343
  });
361
344
 
362
345
  /** @type {!jasmine.Spy} */
363
346
  this.removeCue = jasmine.createSpy('removeCue').and.callFake((cue) => {
364
- const idx = this.cues.indexOf(cue);
347
+ const idx = cues.indexOf(cue);
365
348
  expect(idx).not.toBeLessThan(0);
366
- this.cues.splice(idx, 1);
349
+ cues.splice(idx, 1);
367
350
  });
368
351
  }
369
352
  };
@@ -4,20 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.provide('shaka.test.IStreamGenerator');
8
- goog.provide('shaka.test.Mp4LiveStreamGenerator');
9
- goog.provide('shaka.test.Mp4VodStreamGenerator');
10
- goog.provide('shaka.test.StreamGenerator');
11
- goog.provide('shaka.test.TSVodStreamGenerator');
12
-
13
- goog.require('goog.asserts');
14
- goog.require('shaka.log');
15
- goog.require('shaka.test.Util');
16
- goog.require('shaka.util.BufferUtils');
17
- goog.require('shaka.util.DataViewReader');
18
- goog.require('shaka.util.Uint8ArrayUtils');
19
-
20
-
21
7
  /**
22
8
  * @summary
23
9
  * Defines an interface to generate streams.
@@ -4,21 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.provide('shaka.test.StreamingEngineUtil');
8
-
9
- goog.require('goog.asserts');
10
- goog.require('shaka.media.InitSegmentReference');
11
- goog.require('shaka.media.SegmentReference');
12
- goog.require('shaka.test.FakeNetworkingEngine');
13
- goog.require('shaka.test.FakePresentationTimeline');
14
- goog.require('shaka.test.FakeSegmentIndex');
15
- goog.require('shaka.test.Util');
16
- goog.require('shaka.util.AbortableOperation');
17
- goog.require('shaka.util.Error');
18
- goog.require('shaka.util.ManifestParserUtils');
19
- goog.requireType('shaka.media.PresentationTimeline');
20
-
21
-
22
7
  shaka.test.StreamingEngineUtil = class {
23
8
  /**
24
9
  * Creates a FakeNetworkingEngine.
@@ -4,24 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.provide('shaka.test.TestScheme');
8
-
9
- goog.require('goog.asserts');
10
- goog.require('goog.Uri');
11
- goog.require('shaka.Player');
12
- goog.require('shaka.media.ManifestParser');
13
- goog.require('shaka.net.NetworkingEngine');
14
- goog.require('shaka.test.ManifestGenerator');
15
- goog.require('shaka.test.Mp4VodStreamGenerator');
16
- goog.require('shaka.test.TSVodStreamGenerator');
17
- goog.require('shaka.test.Util');
18
- goog.require('shaka.util.AbortableOperation');
19
- goog.require('shaka.util.Error');
20
- goog.require('shaka.util.ManifestParserUtils');
21
- goog.requireType('shaka.net.NetworkingEngine.RequestType');
22
- goog.requireType('shaka.test.IStreamGenerator');
23
-
24
-
25
7
  /**
26
8
  * @typedef {{
27
9
  * initSegmentUri: string,
@@ -565,7 +547,7 @@ shaka.test.TestScheme.DATA = {
565
547
  duration: 30,
566
548
  },
567
549
 
568
- // https://github.com/google/shaka-player/issues/2553
550
+ // https://github.com/shaka-project/shaka-player/issues/2553
569
551
  'forced_subs_simulation': {
570
552
  audio: sintelAudioSegment,
571
553
  text: vttSegment,
@@ -4,8 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.provide('shaka.test.TtmlUtils');
8
-
9
7
  shaka.test.TtmlUtils = class {
10
8
  /**
11
9
  * @param {!Array} expectedCues
@@ -4,15 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
-
8
- goog.provide('shaka.test.UiUtils');
9
-
10
- goog.require('shaka.Player');
11
- goog.require('shaka.test.Waiter');
12
- goog.require('shaka.ui.Overlay');
13
- goog.require('shaka.util.EventManager');
14
-
15
-
16
7
  shaka.test.UiUtils = class {
17
8
  /**
18
9
  * @param {!HTMLElement} videoContainer
@@ -4,19 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.provide('shaka.test.StatusPromise');
8
- goog.provide('shaka.test.Util');
9
-
10
- goog.require('goog.asserts');
11
- goog.require('shaka.media.InitSegmentReference');
12
- goog.require('shaka.media.SegmentReference');
13
- goog.require('shaka.util.Functional');
14
- goog.require('shaka.util.Iterables');
15
- goog.require('shaka.util.StringUtils');
16
- goog.require('shaka.util.XmlUtils');
17
- goog.requireType('shaka.util.Error');
18
-
19
-
20
7
  /**
21
8
  * @extends {Promise}
22
9
  */
@@ -52,10 +39,9 @@ shaka.test.Util = class {
52
39
  */
53
40
  static async fakeEventLoop(duration, onTick) {
54
41
  // Run this synchronously:
55
- for (const time of shaka.util.Iterables.range(duration)) {
42
+ for (let time = 0; time < duration; time++) {
56
43
  // We shouldn't need more than 6 rounds.
57
- for (const _ of shaka.util.Iterables.range(6)) {
58
- shaka.util.Functional.ignored(_);
44
+ for (let i = 0; i < 6; i++) {
59
45
  jasmine.clock().tick(0);
60
46
  await Promise.resolve(); // eslint-disable-line no-await-in-loop
61
47
  }
@@ -203,7 +189,7 @@ shaka.test.Util = class {
203
189
  if (actual.childNodes.length != expected.childNodes.length) {
204
190
  return prospectiveDiff + 'Different child node list length.';
205
191
  }
206
- for (const i of shaka.util.Iterables.range(actual.childNodes.length)) {
192
+ for (let i = 0; i < actual.childNodes.length; i++) {
207
193
  const aNode = actual.childNodes[i];
208
194
  const eNode = expected.childNodes[i];
209
195
  const diff =
@@ -334,9 +320,9 @@ shaka.test.Util = class {
334
320
  // TODO: There should be a way to alter the externs for jasmine.Spy so that
335
321
  // this utility is not needed.
336
322
  // Why isn't there something like ICallable in Closure?
337
- // https://github.com/google/closure-compiler/issues/946
323
+ // https://github.com/shaka-project/closure-compiler/issues/946
338
324
  // Why isn't it enough that jasmine.Spy extends Function?
339
- // https://github.com/google/closure-compiler/issues/1422
325
+ // https://github.com/shaka-project/closure-compiler/issues/1422
340
326
  return /** @type {Function} */(spy)(...varArgs);
341
327
  }
342
328