shaka-player 3.3.2 → 4.0.0

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 (389) 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 +129 -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 +37 -0
  8. package/.github/workflows/nightly-demo.yaml +42 -0
  9. package/.github/workflows/release-please.yaml +168 -0
  10. package/.github/workflows/safari-homedir-launcher.sh +18 -0
  11. package/.github/workflows/selenium-lab-tests.yaml +92 -0
  12. package/.github/workflows/sync-labels.yaml +33 -0
  13. package/.github/workflows/update-issues.yaml +29 -0
  14. package/.github/workflows/validate-pr-title.yaml +35 -0
  15. package/AUTHORS +3 -0
  16. package/CHANGELOG.md +1866 -1675
  17. package/CONTRIBUTING.md +2 -2
  18. package/CONTRIBUTORS +3 -0
  19. package/README.md +16 -13
  20. package/app-engine/README.md +9 -0
  21. package/app-engine/demo-version-index/README.md +14 -0
  22. package/app-engine/demo-version-index/app.yaml +28 -0
  23. package/app-engine/demo-version-index/generate.py +164 -0
  24. package/app-engine/demo-version-index/main.py +11 -0
  25. package/app-engine/demo-version-index/requirements.txt +5 -0
  26. package/app-engine/demo-version-index/templates/index.html +114 -0
  27. package/app-engine/shaka-player-demo/README.md +18 -0
  28. package/app-engine/shaka-player-demo/app.yaml +61 -0
  29. package/app-engine/shaka-player-demo/main.py +95 -0
  30. package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
  31. package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
  32. package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
  33. package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
  34. package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
  35. package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
  36. package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
  37. package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
  38. package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
  39. package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
  40. package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
  41. package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
  42. package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
  43. package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
  44. package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
  45. package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
  46. package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
  47. package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
  48. package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
  49. package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
  50. package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
  51. package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
  52. package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
  53. package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
  54. package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
  55. package/app-engine/shaka-player-demo/posters/standard.png +0 -0
  56. package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
  57. package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
  58. package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
  59. package/app-engine/shaka-player-demo/posters.py +110 -0
  60. package/app-engine/shaka-player-demo/requirements.txt +5 -0
  61. package/app-engine/shaka-player-demo/time.txt +1 -0
  62. package/build/README.md +3 -3
  63. package/build/checkversion.py +1 -1
  64. package/build/compiler.py +1 -1
  65. package/build/conformance.textproto +13 -0
  66. package/build/docker/Dockerfile +20 -0
  67. package/build/docker/docker-compose.yml +10 -0
  68. package/build/gendeps.py +18 -15
  69. package/build/shaka-lab.yaml +161 -0
  70. package/build/shakaBuildHelpers.py +4 -29
  71. package/build/test.py +94 -29
  72. package/build/types/core +0 -1
  73. package/build/types/polyfill +1 -3
  74. package/build/wrapper.template.js +2 -2
  75. package/demo/TengwarTelcontar.woff2 +0 -0
  76. package/demo/asset_card.js +1 -2
  77. package/demo/cast_receiver/index.html +1 -1
  78. package/demo/cast_receiver/receiver_app.css +14 -14
  79. package/demo/common/asset.js +17 -1
  80. package/demo/common/assets.js +31 -0
  81. package/demo/common/message_ids.js +6 -3
  82. package/demo/config.js +10 -12
  83. package/demo/custom.js +39 -1
  84. package/demo/customWarning.txt +2 -2
  85. package/demo/demo.less +29 -18
  86. package/demo/demo_uncompiled.js +1 -13
  87. package/demo/demo_utils.js +0 -1
  88. package/demo/index.html +1 -1
  89. package/demo/locales/en.json +6 -3
  90. package/demo/locales/source.json +22 -10
  91. package/demo/main.js +12 -9
  92. package/demo/search.js +2 -1
  93. package/dist/controls.css +3 -3
  94. package/dist/controls.css.map +1 -1
  95. package/dist/demo.compiled.debug.js +236 -232
  96. package/dist/demo.compiled.debug.map +4 -4
  97. package/dist/demo.compiled.js +236 -232
  98. package/dist/demo.compiled.map +4 -4
  99. package/dist/demo.css +1 -1
  100. package/dist/demo.css.map +1 -1
  101. package/dist/deps.js +229 -226
  102. package/dist/locales.js +34 -32
  103. package/dist/receiver.compiled.debug.js +75 -73
  104. package/dist/receiver.compiled.debug.map +4 -4
  105. package/dist/receiver.compiled.js +75 -73
  106. package/dist/receiver.compiled.map +4 -4
  107. package/dist/shaka-player.compiled.d.ts +321 -314
  108. package/dist/shaka-player.compiled.debug.d.ts +321 -314
  109. package/dist/shaka-player.compiled.debug.externs.js +140 -129
  110. package/dist/shaka-player.compiled.debug.js +527 -592
  111. package/dist/shaka-player.compiled.debug.map +4 -4
  112. package/dist/shaka-player.compiled.externs.js +140 -129
  113. package/dist/shaka-player.compiled.js +836 -860
  114. package/dist/shaka-player.compiled.map +4 -4
  115. package/dist/shaka-player.ui.d.ts +367 -358
  116. package/dist/shaka-player.ui.debug.d.ts +367 -358
  117. package/dist/shaka-player.ui.debug.externs.js +148 -129
  118. package/dist/shaka-player.ui.debug.js +586 -649
  119. package/dist/shaka-player.ui.debug.map +4 -4
  120. package/dist/shaka-player.ui.externs.js +148 -129
  121. package/dist/shaka-player.ui.js +1008 -1028
  122. package/dist/shaka-player.ui.map +4 -4
  123. package/docs/design/REDESIGN.md +33 -33
  124. package/docs/design/bg-fetch.md +2 -2
  125. package/docs/design/codec_preferences.md +1 -1
  126. package/docs/design/dash-audio-channels.md +3 -3
  127. package/docs/design/dash-manifests.md +1 -1
  128. package/docs/design/gap-jumping.md +3 -3
  129. package/docs/design/preload.md +2 -2
  130. package/docs/tutorials/config.md +0 -2
  131. package/docs/tutorials/drm-config.md +5 -0
  132. package/docs/tutorials/fairplay.md +7 -22
  133. package/docs/tutorials/faq.md +8 -19
  134. package/docs/tutorials/index.json +3 -8
  135. package/docs/tutorials/plugins.md +4 -6
  136. package/docs/tutorials/selenium-grid-config.md +122 -0
  137. package/docs/tutorials/upgrade.md +83 -11
  138. package/docs/tutorials/welcome.md +10 -2
  139. package/externs/cmcd.js +1 -1
  140. package/externs/polyfill.js +15 -0
  141. package/externs/shaka/manifest.js +5 -1
  142. package/externs/shaka/net.js +12 -0
  143. package/externs/shaka/offline.js +5 -1
  144. package/externs/shaka/player.js +39 -32
  145. package/externs/shaka/text.js +12 -12
  146. package/externs/sourcebuffer.js +15 -0
  147. package/karma.conf.js +137 -30
  148. package/lib/abr/simple_abr_manager.js +12 -6
  149. package/lib/ads/client_side_ad.js +13 -2
  150. package/lib/ads/client_side_ad_manager.js +22 -4
  151. package/lib/cast/cast_proxy.js +3 -4
  152. package/lib/cast/cast_utils.js +0 -1
  153. package/lib/cea/cea608_data_channel.js +2 -2
  154. package/lib/cea/cea708_service.js +5 -4
  155. package/lib/cea/mp4_cea_parser.js +11 -5
  156. package/lib/cea/sei_processor.js +6 -3
  157. package/lib/dash/content_protection.js +85 -5
  158. package/lib/dash/dash_parser.js +10 -12
  159. package/lib/dash/mpd_utils.js +4 -5
  160. package/lib/dash/segment_list.js +1 -2
  161. package/lib/dash/segment_template.js +3 -3
  162. package/lib/hls/hls_parser.js +386 -749
  163. package/lib/hls/manifest_text_parser.js +5 -6
  164. package/lib/media/adaptation_set.js +1 -2
  165. package/lib/media/content_workarounds.js +2 -2
  166. package/lib/media/drm_engine.js +105 -55
  167. package/lib/media/gap_jumping_controller.js +10 -45
  168. package/lib/media/media_source_engine.js +90 -17
  169. package/lib/media/mp4_segment_index_parser.js +1 -4
  170. package/lib/media/playhead.js +4 -7
  171. package/lib/media/presentation_timeline.js +19 -10
  172. package/lib/media/segment_index.js +13 -46
  173. package/lib/media/segment_reference.js +47 -1
  174. package/lib/media/streaming_engine.js +35 -17
  175. package/lib/media/time_ranges_utils.js +5 -12
  176. package/lib/media/video_wrapper.js +1 -1
  177. package/lib/net/networking_engine.js +4 -1
  178. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  179. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  180. package/lib/offline/manifest_converter.js +1 -0
  181. package/lib/offline/storage.js +104 -136
  182. package/lib/player.js +50 -216
  183. package/lib/polyfill/all.js +2 -3
  184. package/lib/polyfill/encryption_scheme.js +1 -1
  185. package/lib/polyfill/media_capabilities.js +15 -9
  186. package/lib/polyfill/mediasource.js +0 -28
  187. package/lib/polyfill/patchedmediakeys_nop.js +2 -0
  188. package/lib/polyfill/patchedmediakeys_webkit.js +2 -0
  189. package/lib/polyfill/symbol.js +46 -0
  190. package/lib/text/cue.js +1 -7
  191. package/lib/text/lrc_text_parser.js +8 -0
  192. package/lib/text/mp4_ttml_parser.js +8 -0
  193. package/lib/text/mp4_vtt_parser.js +8 -0
  194. package/lib/text/sbv_text_parser.js +8 -0
  195. package/lib/text/simple_text_displayer.js +3 -8
  196. package/lib/text/srt_text_parser.js +8 -0
  197. package/lib/text/ssa_text_parser.js +8 -0
  198. package/lib/text/text_engine.js +19 -3
  199. package/lib/text/ttml_text_parser.js +16 -5
  200. package/lib/text/ui_text_displayer.js +2 -8
  201. package/lib/text/vtt_text_parser.js +24 -2
  202. package/lib/text/web_vtt_generator.js +1 -7
  203. package/lib/util/buffer_utils.js +1 -3
  204. package/lib/util/ebml_parser.js +3 -3
  205. package/lib/util/error.js +10 -14
  206. package/lib/util/fairplay_utils.js +109 -0
  207. package/lib/util/functional.js +0 -42
  208. package/lib/util/iterables.js +0 -46
  209. package/lib/util/mime_utils.js +2 -0
  210. package/lib/util/mp4_box_parsers.js +1 -4
  211. package/lib/util/mp4_parser.js +5 -7
  212. package/lib/util/periods.js +10 -11
  213. package/lib/util/platform.js +48 -3
  214. package/lib/util/player_configuration.js +12 -6
  215. package/lib/util/pssh.js +24 -8
  216. package/lib/util/stream_utils.js +96 -25
  217. package/lib/util/string_utils.js +3 -5
  218. package/lib/util/uint8array_utils.js +3 -21
  219. package/lib/util/xml_utils.js +16 -8
  220. package/package.json +61 -36
  221. package/roadmap.md +27 -27
  222. package/shaka-player.uncompiled.js +1 -3
  223. package/test/abr/simple_abr_manager_unit.js +3 -8
  224. package/test/ads/ad_manager_unit.js +0 -6
  225. package/test/cast/cast_proxy_unit.js +0 -8
  226. package/test/cast/cast_receiver_integration.js +1 -18
  227. package/test/cast/cast_receiver_unit.js +1 -9
  228. package/test/cast/cast_sender_unit.js +0 -6
  229. package/test/cast/cast_utils_unit.js +1 -13
  230. package/test/cea/cea608_memory_unit.js +0 -5
  231. package/test/cea/cea708_service_unit.js +0 -7
  232. package/test/cea/cea708_window_unit.js +0 -5
  233. package/test/cea/cea_decoder_unit.js +0 -6
  234. package/test/cea/dtvcc_packet_builder_unit.js +0 -3
  235. package/test/cea/dtvcc_packet_unit.js +0 -5
  236. package/test/cea/mp4_cea_parser_unit.js +0 -4
  237. package/test/dash/dash_parser_content_protection_unit.js +45 -10
  238. package/test/dash/dash_parser_live_unit.js +2 -15
  239. package/test/dash/dash_parser_manifest_unit.js +2 -40
  240. package/test/dash/dash_parser_segment_base_unit.js +1 -8
  241. package/test/dash/dash_parser_segment_list_unit.js +1 -7
  242. package/test/dash/dash_parser_segment_template_unit.js +3 -13
  243. package/test/dash/mpd_utils_unit.js +3 -11
  244. package/test/demo/demo_unit.js +2 -6
  245. package/test/deprecate/enforcer_unit.js +0 -4
  246. package/test/deprecate/version_unit.js +0 -2
  247. package/test/hls/hls_live_unit.js +101 -234
  248. package/test/hls/hls_parser_unit.js +517 -447
  249. package/test/hls/manifest_text_parser_unit.js +0 -10
  250. package/test/media/adaptation_set_criteria_unit.js +3 -7
  251. package/test/media/adaptation_set_unit.js +0 -2
  252. package/test/media/buffering_observer_unit.js +1 -4
  253. package/test/media/closed_caption_parser_unit.js +0 -3
  254. package/test/media/drm_engine_integration.js +2 -15
  255. package/test/media/drm_engine_unit.js +90 -144
  256. package/test/media/manifest_parser_unit.js +0 -4
  257. package/test/media/media_source_engine_integration.js +26 -10
  258. package/test/media/media_source_engine_unit.js +8 -20
  259. package/test/media/mp4_segment_index_parser_unit.js +0 -4
  260. package/test/media/play_rate_controller_unit.js +0 -4
  261. package/test/media/playhead_unit.js +35 -207
  262. package/test/media/presentation_timeline_unit.js +4 -7
  263. package/test/media/quality_observer_unit.js +0 -4
  264. package/test/media/region_observer_unit.js +1 -6
  265. package/test/media/region_timeline_unit.js +0 -3
  266. package/test/media/segment_index_unit.js +15 -31
  267. package/test/media/segment_reference_unit.js +0 -3
  268. package/test/media/stall_detector_unit.js +0 -5
  269. package/test/media/streaming_engine_integration.js +13 -75
  270. package/test/media/streaming_engine_unit.js +14 -37
  271. package/test/media/time_ranges_utils_unit.js +0 -7
  272. package/test/media/transmuxer_integration.js +0 -6
  273. package/test/media/webm_segment_index_parser_unit.js +0 -4
  274. package/test/net/data_uri_plugin_unit.js +0 -7
  275. package/test/net/http_plugin_unit.js +0 -9
  276. package/test/net/networking_engine_unit.js +0 -11
  277. package/test/offline/download_progress_estimator_unit.js +0 -2
  278. package/test/offline/indexeddb_storage_unit.js +0 -6
  279. package/test/offline/manifest_convert_unit.js +34 -12
  280. package/test/offline/offline_integration.js +1 -10
  281. package/test/offline/offline_manifest_parser_unit.js +1 -6
  282. package/test/offline/offline_scheme_unit.js +0 -8
  283. package/test/offline/offline_uri_unit.js +0 -2
  284. package/test/offline/storage_compatibility_unit.js +1 -14
  285. package/test/offline/storage_integration.js +6 -31
  286. package/test/player_external.js +1 -15
  287. package/test/player_integration.js +38 -28
  288. package/test/player_load_graph_integration.js +1 -6
  289. package/test/player_src_equals_external.js +3 -9
  290. package/test/player_src_equals_integration.js +0 -7
  291. package/test/player_unit.js +78 -37
  292. package/test/routing/walker_unit.js +0 -8
  293. package/test/test/assets/large_file.mpd +1 -1
  294. package/test/test/boot.js +75 -22
  295. package/test/test/externs/jasmine.js +2 -2
  296. package/test/test/externs/karma.js +4 -0
  297. package/test/test/namespace.js +10 -0
  298. package/test/test/util/canned_idb.js +0 -8
  299. package/test/test/util/cea_utils.js +0 -6
  300. package/test/test/util/dash_parser_util.js +0 -13
  301. package/test/test/util/fake_ad.js +0 -3
  302. package/test/test/util/fake_ad_manager.js +0 -9
  303. package/test/test/util/fake_demo_main.js +0 -5
  304. package/test/test/util/fake_drm_engine.js +0 -6
  305. package/test/test/util/fake_media_source_engine.js +11 -11
  306. package/test/test/util/fake_networking_engine.js +0 -5
  307. package/test/test/util/fake_text_displayer.js +0 -5
  308. package/test/test/util/indexeddb_utils.js +1 -10
  309. package/test/test/util/jasmine_fetch.js +0 -1
  310. package/test/test/util/loader.js +0 -18
  311. package/test/test/util/manifest_generator.js +12 -15
  312. package/test/test/util/manifest_parser_util.js +4 -7
  313. package/test/test/util/offline_utils.js +1 -5
  314. package/test/test/util/simple_fakes.js +9 -26
  315. package/test/test/util/stream_generator.js +0 -14
  316. package/test/test/util/streaming_engine_util.js +1 -15
  317. package/test/test/util/test_scheme.js +25 -20
  318. package/test/test/util/ttml_utils.js +0 -2
  319. package/test/test/util/ui_utils.js +0 -9
  320. package/test/test/util/util.js +9 -23
  321. package/test/test/util/waiter.js +84 -43
  322. package/test/text/cue_integration.js +2 -6
  323. package/test/text/lrc_text_parser_unit.js +6 -11
  324. package/test/text/mp4_ttml_parser_unit.js +6 -10
  325. package/test/text/mp4_vtt_parser_unit.js +7 -12
  326. package/test/text/sbv_text_parser_unit.js +5 -10
  327. package/test/text/simple_text_displayer_unit.js +1 -8
  328. package/test/text/srt_text_parser_unit.js +5 -10
  329. package/test/text/ssa_text_parser_unit.js +17 -34
  330. package/test/text/text_engine_unit.js +47 -12
  331. package/test/text/text_track_integration.js +0 -2
  332. package/test/text/ttml_text_parser_unit.js +79 -88
  333. package/test/text/ui_text_displayer_unit.js +44 -41
  334. package/test/text/vtt_text_parser_unit.js +55 -66
  335. package/test/text/web_vtt_generator_unit.js +0 -3
  336. package/test/ui/ad_ui_unit.js +0 -11
  337. package/test/ui/localization_unit.js +0 -3
  338. package/test/ui/text_displayer_layout_unit.js +1 -12
  339. package/test/ui/ui_customization_unit.js +0 -6
  340. package/test/ui/ui_integration.js +0 -32
  341. package/test/ui/ui_unit.js +28 -17
  342. package/test/util/abortable_operation_unit.js +4 -9
  343. package/test/util/array_utils_unit.js +0 -2
  344. package/test/util/buffer_utils_unit.js +0 -2
  345. package/test/util/cmcd_manager_unit.js +3 -3
  346. package/test/util/data_view_reader_unit.js +0 -4
  347. package/test/util/ebml_parser_unit.js +0 -4
  348. package/test/util/event_manager_unit.js +0 -3
  349. package/test/util/fake_event_target_unit.js +0 -5
  350. package/test/util/iterables_unit.js +0 -64
  351. package/test/util/language_utils_unit.js +0 -3
  352. package/test/util/manifest_parser_utils_unit.js +0 -2
  353. package/test/util/mp4_box_parsers_unit.js +0 -5
  354. package/test/util/mp4_parser_unit.js +0 -4
  355. package/test/util/multi_map_unit.js +0 -3
  356. package/test/util/object_utils_unit.js +0 -2
  357. package/test/util/periods_unit.js +14 -7
  358. package/test/util/pssh_unit.js +0 -5
  359. package/test/util/state_history_unit.js +0 -2
  360. package/test/util/stream_utils_unit.js +26 -15
  361. package/test/util/string_utils_unit.js +0 -6
  362. package/test/util/text_parser_unit.js +0 -2
  363. package/test/util/xml_utils_unit.js +0 -4
  364. package/ui/controls.js +65 -40
  365. package/ui/fullscreen_button.js +26 -6
  366. package/ui/less/ad_controls.less +6 -6
  367. package/ui/less/buttons.less +6 -6
  368. package/ui/less/containers.less +10 -12
  369. package/ui/less/overflow_menu.less +4 -4
  370. package/ui/less/range_elements.less +7 -2
  371. package/ui/less/tooltip.less +4 -4
  372. package/ui/locales/en.json +1 -0
  373. package/ui/locales/sjn-translations.yaml +257 -0
  374. package/ui/locales/sjn.json +42 -0
  375. package/ui/locales/source.json +5 -0
  376. package/ui/resolution_selection.js +31 -33
  377. package/ui/seek_bar.js +2 -1
  378. package/ui/ui.js +0 -17
  379. package/.github/workflows/build_and_test.yaml +0 -73
  380. package/.github/workflows/release.yaml +0 -53
  381. package/docs/tutorials/upgrade-v2-5.md +0 -441
  382. package/docs/tutorials/upgrade-v3.md +0 -38
  383. package/externs/svgelement.js +0 -18
  384. package/externs/webcrypto.js +0 -18
  385. package/lib/polyfill/mathround.js +0 -49
  386. package/lib/polyfill/patchedmediakeys_apple.js +0 -744
  387. package/lib/polyfill/patchedmediakeys_ms.js +0 -698
  388. package/lib/util/mutex.js +0 -52
  389. package/test/util/functional_unit.js +0 -82
@@ -4,14 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
-
8
- goog.require('shaka.media.MediaSourcePlayhead');
9
- goog.require('shaka.test.FakePresentationTimeline');
10
- goog.require('shaka.test.FakeVideo');
11
- goog.require('shaka.test.Util');
12
- goog.require('shaka.util.PlayerConfiguration');
13
- goog.requireType('shaka.media.Playhead');
14
-
15
7
  /**
16
8
  * @typedef {{start: number, end: number}}
17
9
  *
@@ -29,16 +21,12 @@ let TimeRange;
29
21
  * start: number,
30
22
  * waitingAt: number,
31
23
  * expectedEndTime: number,
32
- * expectEvent: boolean,
33
- * jumpLargeGaps: (boolean|undefined),
34
- * preventDefault: (boolean|undefined)
35
24
  * }}
36
25
  *
37
26
  * @description
38
27
  * Parameters for a test where we start playing inside a buffered range and play
39
28
  * until the end of the buffer. Then, if we expect it, Playhead should jump
40
- * to the expected time. Also, if the gap is large, we should get a 'largegap'
41
- * event from the Playhead, which we may optionally suppress.
29
+ * to the expected time.
42
30
  *
43
31
  * @property {!Array.<TimeRange>} buffered
44
32
  * The buffered ranges for the test.
@@ -48,12 +36,6 @@ let TimeRange;
48
36
  * The time to pause at and fire a 'waiting' event.
49
37
  * @property {number} expectedEndTime
50
38
  * The expected time at the end of the test.
51
- * @property {boolean} expectEvent
52
- * If true, expect the 'largegap' event to be fired.
53
- * @property {(boolean|undefined)} jumpLargeGaps
54
- * If given, set this field of the Playhead configuration.
55
- * @property {(boolean|undefined)} preventDefault
56
- * If true, call preventDefault() on the 'largegap' event.
57
39
  */
58
40
  let PlayingTestInfo;
59
41
 
@@ -65,17 +47,12 @@ let PlayingTestInfo;
65
47
  * start: number,
66
48
  * seekTo: number,
67
49
  * expectedEndTime: number,
68
- * expectEvent: boolean,
69
- * jumpLargeGaps: (boolean|undefined),
70
- * preventDefault: (boolean|undefined)
71
50
  * }}
72
51
  *
73
52
  * @description
74
53
  * Parameters for a test where we start playing inside a buffered range and seek
75
54
  * to a given time, which may have different buffered ranges. If we are in a
76
- * gap, Playhead should jump the gap to the expected time. Also, if the gap is
77
- * large, we should get a 'largegap' event from the Playhead, which we may
78
- * optionally suppress.
55
+ * gap, Playhead should jump the gap to the expected time.
79
56
  *
80
57
  * @property {!Array.<TimeRange>} buffered
81
58
  * The buffered ranges for the test.
@@ -88,12 +65,6 @@ let PlayingTestInfo;
88
65
  * The time to seek to.
89
66
  * @property {number} expectedEndTime
90
67
  * The expected time at the end of the test.
91
- * @property {boolean} expectEvent
92
- * If true, expect the 'largegap' event to be fired.
93
- * @property {(boolean|undefined)} jumpLargeGaps
94
- * If given, set this field of the Playhead configuration.
95
- * @property {(boolean|undefined)} preventDefault
96
- * If true, call preventDefault() on the 'largegap' event.
97
68
  */
98
69
  let SeekTestInfo;
99
70
 
@@ -116,10 +87,6 @@ describe('Playhead', () => {
116
87
  /** @type {!jasmine.Spy} */
117
88
  let onSeek;
118
89
 
119
- // Callback to us from Playhead when an event should be sent to the app.
120
- /** @type {!jasmine.Spy} */
121
- let onEvent;
122
-
123
90
  beforeAll(() => {
124
91
  jasmine.clock().install();
125
92
  });
@@ -133,7 +100,6 @@ describe('Playhead', () => {
133
100
  timeline = new shaka.test.FakePresentationTimeline();
134
101
 
135
102
  onSeek = jasmine.createSpy('onSeek');
136
- onEvent = jasmine.createSpy('onEvent');
137
103
 
138
104
  timeline.isLive.and.returnValue(false);
139
105
  timeline.getSeekRangeStart.and.returnValue(5);
@@ -152,6 +118,7 @@ describe('Playhead', () => {
152
118
  presentationTimeline: timeline,
153
119
  minBufferTime: 10,
154
120
  offlineSessionIds: [],
121
+ sequenceMode: false,
155
122
  };
156
123
 
157
124
  config = shaka.util.PlayerConfiguration.createDefault().streaming;
@@ -176,8 +143,7 @@ describe('Playhead', () => {
176
143
  manifest,
177
144
  config,
178
145
  /* startTime= */ 5,
179
- Util.spyFunc(onSeek),
180
- Util.spyFunc(onEvent));
146
+ Util.spyFunc(onSeek));
181
147
 
182
148
  expect(video.currentTime).toBe(5);
183
149
  expect(playhead.getTime()).toBe(5);
@@ -197,8 +163,7 @@ describe('Playhead', () => {
197
163
  manifest,
198
164
  config,
199
165
  /* startTime= */ 5,
200
- Util.spyFunc(onSeek),
201
- Util.spyFunc(onEvent));
166
+ Util.spyFunc(onSeek));
202
167
 
203
168
  expect(video.addEventListener).toHaveBeenCalledWith(
204
169
  'loadedmetadata', jasmine.any(Function), jasmine.anything());
@@ -238,8 +203,7 @@ describe('Playhead', () => {
238
203
  manifest,
239
204
  config,
240
205
  /* startTime= */ 5,
241
- Util.spyFunc(onSeek),
242
- Util.spyFunc(onEvent));
206
+ Util.spyFunc(onSeek));
243
207
 
244
208
  video.on['seeking']();
245
209
  expect(playhead.getTime()).toBe(5);
@@ -257,8 +221,7 @@ describe('Playhead', () => {
257
221
  timeline.getSeekRangeEnd.and.returnValue(60);
258
222
 
259
223
  playhead = new shaka.media.MediaSourcePlayhead(
260
- video, manifest, config, /* startTime= */ 0, Util.spyFunc(onSeek),
261
- Util.spyFunc(onEvent));
224
+ video, manifest, config, /* startTime= */ 0, Util.spyFunc(onSeek));
262
225
 
263
226
  expect(playhead.getTime()).toBe(0);
264
227
  });
@@ -271,8 +234,7 @@ describe('Playhead', () => {
271
234
  timeline.getDuration.and.returnValue(60);
272
235
 
273
236
  playhead = new shaka.media.MediaSourcePlayhead(
274
- video, manifest, config, /* startTime= */ 60, Util.spyFunc(onSeek),
275
- Util.spyFunc(onEvent));
237
+ video, manifest, config, /* startTime= */ 60, Util.spyFunc(onSeek));
276
238
 
277
239
  expect(playhead.getTime()).toBe(59); // duration - durationBackoff
278
240
  expect(video.currentTime).toBe(59); // duration - durationBackoff
@@ -286,8 +248,7 @@ describe('Playhead', () => {
286
248
  timeline.getSeekRangeEnd.and.returnValue(60);
287
249
 
288
250
  playhead = new shaka.media.MediaSourcePlayhead(
289
- video, manifest, config, /* startTime= */ -15, Util.spyFunc(onSeek),
290
- Util.spyFunc(onEvent));
251
+ video, manifest, config, /* startTime= */ -15, Util.spyFunc(onSeek));
291
252
 
292
253
  expect(playhead.getTime()).toBe(45);
293
254
  });
@@ -301,8 +262,7 @@ describe('Playhead', () => {
301
262
  // If the live stream's playback offset time is not available, start
302
263
  // playing from the seek range start time.
303
264
  playhead = new shaka.media.MediaSourcePlayhead(
304
- video, manifest, config, /* startTime= */ -40, Util.spyFunc(onSeek),
305
- Util.spyFunc(onEvent));
265
+ video, manifest, config, /* startTime= */ -40, Util.spyFunc(onSeek));
306
266
 
307
267
  expect(playhead.getTime()).toBe(30);
308
268
  });
@@ -313,8 +273,7 @@ describe('Playhead', () => {
313
273
  manifest,
314
274
  config,
315
275
  /* startTime= */ 5,
316
- Util.spyFunc(onSeek),
317
- Util.spyFunc(onEvent));
276
+ Util.spyFunc(onSeek));
318
277
 
319
278
  expect(video.addEventListener).toHaveBeenCalledWith(
320
279
  'loadedmetadata', jasmine.any(Function), jasmine.anything());
@@ -332,8 +291,8 @@ describe('Playhead', () => {
332
291
  });
333
292
 
334
293
  // This is important for recovering from drift.
335
- // See: https://github.com/google/shaka-player/issues/1105
336
- // TODO: Re-evaluate after https://github.com/google/shaka-player/issues/999
294
+ // See: https://github.com/shaka-project/shaka-player/issues/1105
295
+ // TODO: Re-evaluate after https://github.com/shaka-project/shaka-player/issues/999
337
296
  it('does not change once the initial position is set', () => {
338
297
  timeline.isLive.and.returnValue(true);
339
298
  timeline.getDuration.and.returnValue(Infinity);
@@ -346,8 +305,7 @@ describe('Playhead', () => {
346
305
  manifest,
347
306
  config,
348
307
  /* startTime= */ null,
349
- Util.spyFunc(onSeek),
350
- Util.spyFunc(onEvent));
308
+ Util.spyFunc(onSeek));
351
309
 
352
310
  expect(video.addEventListener).toHaveBeenCalledWith(
353
311
  'loadedmetadata', jasmine.any(Function), jasmine.anything());
@@ -379,8 +337,7 @@ describe('Playhead', () => {
379
337
  manifest,
380
338
  config,
381
339
  /* startTime= */ 5,
382
- Util.spyFunc(onSeek),
383
- Util.spyFunc(onEvent));
340
+ Util.spyFunc(onSeek));
384
341
 
385
342
  // This has to periodically increment the mock date to allow the onSeeking_
386
343
  // handler to seek, if appropriate.
@@ -539,8 +496,7 @@ describe('Playhead', () => {
539
496
  manifest,
540
497
  config,
541
498
  /* startTime= */ 5,
542
- Util.spyFunc(onSeek),
543
- Util.spyFunc(onEvent));
499
+ Util.spyFunc(onSeek));
544
500
 
545
501
  setMockDate(0);
546
502
  video.on['seeking']();
@@ -588,8 +544,7 @@ describe('Playhead', () => {
588
544
  manifest,
589
545
  config,
590
546
  /* startTime= */ 5,
591
- Util.spyFunc(onSeek),
592
- Util.spyFunc(onEvent));
547
+ Util.spyFunc(onSeek));
593
548
 
594
549
  // First, seek to start time.
595
550
  video.currentTime = 0;
@@ -649,8 +604,7 @@ describe('Playhead', () => {
649
604
  manifest,
650
605
  config,
651
606
  /* startTime= */ 5,
652
- Util.spyFunc(onSeek),
653
- Util.spyFunc(onEvent));
607
+ Util.spyFunc(onSeek));
654
608
  expect(currentTime).toBe(1000);
655
609
  seekCount = 0;
656
610
 
@@ -695,8 +649,7 @@ describe('Playhead', () => {
695
649
  manifest,
696
650
  config,
697
651
  /* startTime= */ 5,
698
- Util.spyFunc(onSeek),
699
- Util.spyFunc(onEvent));
652
+ Util.spyFunc(onSeek));
700
653
 
701
654
  video.on['seeking']();
702
655
  expect(video.currentTime).toBe(5);
@@ -727,8 +680,7 @@ describe('Playhead', () => {
727
680
  manifest,
728
681
  config,
729
682
  /* startTime= */ 5,
730
- Util.spyFunc(onSeek),
731
- Util.spyFunc(onEvent));
683
+ Util.spyFunc(onSeek));
732
684
 
733
685
  video.on['seeking']();
734
686
  expect(video.currentTime).toBe(5);
@@ -762,8 +714,7 @@ describe('Playhead', () => {
762
714
  manifest,
763
715
  config,
764
716
  /* startTime= */ 30,
765
- Util.spyFunc(onSeek),
766
- Util.spyFunc(onEvent));
717
+ Util.spyFunc(onSeek));
767
718
 
768
719
  video.currentTime = 0;
769
720
  video.seeking = true;
@@ -781,9 +732,9 @@ describe('Playhead', () => {
781
732
  }); // clamps playhead even before seeking completes
782
733
 
783
734
  // Regression test for:
784
- // - https://github.com/google/shaka-player/pull/2849
785
- // - https://github.com/google/shaka-player/issues/2748
786
- // - https://github.com/google/shaka-player/issues/2848
735
+ // - https://github.com/shaka-project/shaka-player/pull/2849
736
+ // - https://github.com/shaka-project/shaka-player/issues/2748
737
+ // - https://github.com/shaka-project/shaka-player/issues/2848
787
738
  it('does not apply seek range before initial seek has completed', () => {
788
739
  // These attributes allow the seek range callback to do its thing.
789
740
  video.readyState = HTMLMediaElement.HAVE_METADATA;
@@ -808,8 +759,7 @@ describe('Playhead', () => {
808
759
  manifest,
809
760
  config,
810
761
  /* startTime= */ 30,
811
- Util.spyFunc(onSeek),
812
- Util.spyFunc(onEvent));
762
+ Util.spyFunc(onSeek));
813
763
 
814
764
  /**
815
765
  * Prevent retries on the initial start time seek. This will ensure that
@@ -840,8 +790,6 @@ describe('Playhead', () => {
840
790
  timeline.getSeekRangeStart.and.returnValue(0);
841
791
  timeline.getSeekRangeEnd.and.returnValue(60);
842
792
  timeline.getDuration.and.returnValue(60);
843
-
844
- config.smallGapLimit = 1;
845
793
  });
846
794
 
847
795
  describe('when playing', () => {
@@ -850,7 +798,6 @@ describe('Playhead', () => {
850
798
  buffered: [{start: 0, end: 10}],
851
799
  start: 3,
852
800
  waitingAt: 10,
853
- expectEvent: false,
854
801
  expectedEndTime: 10,
855
802
  });
856
803
 
@@ -858,7 +805,6 @@ describe('Playhead', () => {
858
805
  buffered: [{start: 0, end: 10}, {start: 20, end: 30}],
859
806
  start: 24,
860
807
  waitingAt: 30,
861
- expectEvent: false,
862
808
  expectedEndTime: 30,
863
809
  });
864
810
 
@@ -866,7 +812,6 @@ describe('Playhead', () => {
866
812
  buffered: [{start: 0, end: 10}, {start: 11, end: 20}],
867
813
  start: 5,
868
814
  waitingAt: 10,
869
- expectEvent: false,
870
815
  expectedEndTime: 11,
871
816
  });
872
817
 
@@ -875,7 +820,6 @@ describe('Playhead', () => {
875
820
  [{start: 0, end: 10}, {start: 11, end: 20}, {start: 21, end: 30}],
876
821
  start: 5,
877
822
  waitingAt: 10,
878
- expectEvent: false,
879
823
  expectedEndTime: 11,
880
824
  });
881
825
 
@@ -884,26 +828,15 @@ describe('Playhead', () => {
884
828
  [{start: 0, end: 10}, {start: 11, end: 20}, {start: 21, end: 30}],
885
829
  start: 15,
886
830
  waitingAt: 20,
887
- expectEvent: false,
888
831
  expectedEndTime: 21,
889
832
  });
890
833
  }); // with small gaps
891
834
 
892
835
  describe('with large gaps', () => {
893
- playingTest('will fire an event', {
894
- buffered: [{start: 0, end: 10}, {start: 30, end: 40}],
895
- start: 5,
896
- waitingAt: 10,
897
- expectEvent: true,
898
- expectedEndTime: 10,
899
- });
900
-
901
836
  playingTest('will jump large gaps if set', {
902
837
  buffered: [{start: 0, end: 10}, {start: 30, end: 40}],
903
838
  start: 5,
904
839
  waitingAt: 10,
905
- jumpLargeGaps: true,
906
- expectEvent: true,
907
840
  expectedEndTime: 30,
908
841
  });
909
842
 
@@ -912,8 +845,6 @@ describe('Playhead', () => {
912
845
  [{start: 0, end: 10}, {start: 30, end: 40}, {start: 50, end: 60}],
913
846
  start: 5,
914
847
  waitingAt: 10,
915
- jumpLargeGaps: true,
916
- expectEvent: true,
917
848
  expectedEndTime: 30,
918
849
  });
919
850
 
@@ -922,20 +853,8 @@ describe('Playhead', () => {
922
853
  [{start: 0, end: 10}, {start: 20, end: 30}, {start: 50, end: 60}],
923
854
  start: 24,
924
855
  waitingAt: 30,
925
- jumpLargeGaps: true,
926
- expectEvent: true,
927
856
  expectedEndTime: 50,
928
857
  });
929
-
930
- playingTest('won\'t jump gaps when preventDefault() is called', {
931
- buffered: [{start: 0, end: 10}, {start: 30, end: 40}],
932
- start: 5,
933
- waitingAt: 10,
934
- jumpLargeGaps: true,
935
- preventDefault: true,
936
- expectEvent: true,
937
- expectedEndTime: 10,
938
- });
939
858
  }); // with large gaps
940
859
 
941
860
  /**
@@ -948,20 +867,12 @@ describe('Playhead', () => {
948
867
  video.currentTime = data.start;
949
868
  video.readyState = HTMLMediaElement.HAVE_ENOUGH_DATA;
950
869
 
951
- onEvent.and.callFake((event) => {
952
- if (data.preventDefault) {
953
- event.preventDefault();
954
- }
955
- });
956
-
957
- config.jumpLargeGaps = !!data.jumpLargeGaps;
958
870
  playhead = new shaka.media.MediaSourcePlayhead(
959
871
  video,
960
872
  manifest,
961
873
  config,
962
874
  /* startTime= */ data.start,
963
- Util.spyFunc(onSeek),
964
- Util.spyFunc(onEvent));
875
+ Util.spyFunc(onSeek));
965
876
 
966
877
  jasmine.clock().tick(500);
967
878
  for (let time = data.start; time < data.waitingAt; time++) {
@@ -982,14 +893,11 @@ describe('Playhead', () => {
982
893
  expect(video.currentTime).toBe(time + 0.4);
983
894
  }
984
895
 
985
- expect(onEvent).not.toHaveBeenCalled();
986
-
987
896
  video.currentTime = data.waitingAt;
988
897
  video.readyState = HTMLMediaElement.HAVE_CURRENT_DATA;
989
898
  video.on['waiting']();
990
899
  jasmine.clock().tick(500);
991
900
 
992
- expect(onEvent).toHaveBeenCalledTimes(data.expectEvent ? 1 : 0);
993
901
  expect(video.currentTime).toBe(data.expectedEndTime);
994
902
  });
995
903
  }
@@ -1002,7 +910,6 @@ describe('Playhead', () => {
1002
910
  start: 4,
1003
911
  seekTo: 14,
1004
912
  expectedEndTime: 14,
1005
- expectEvent: false,
1006
913
  });
1007
914
 
1008
915
  seekTest('will jump when seeking into gap', {
@@ -1010,7 +917,6 @@ describe('Playhead', () => {
1010
917
  start: 3,
1011
918
  seekTo: 10.4,
1012
919
  expectedEndTime: 11,
1013
- expectEvent: false,
1014
920
  });
1015
921
 
1016
922
  seekTest('won\'t jump multiple buffers', {
@@ -1019,7 +925,6 @@ describe('Playhead', () => {
1019
925
  start: 3,
1020
926
  seekTo: 10.4,
1021
927
  expectedEndTime: 11,
1022
- expectEvent: false,
1023
928
  });
1024
929
 
1025
930
  seekTest('will jump into last range with seeking', {
@@ -1028,7 +933,6 @@ describe('Playhead', () => {
1028
933
  start: 3,
1029
934
  seekTo: 20.5,
1030
935
  expectedEndTime: 21,
1031
- expectEvent: false,
1032
936
  });
1033
937
 
1034
938
  seekTest('treats large gaps as small if playhead near end', {
@@ -1036,36 +940,15 @@ describe('Playhead', () => {
1036
940
  start: 3,
1037
941
  seekTo: 29.2,
1038
942
  expectedEndTime: 30,
1039
- expectEvent: false,
1040
943
  });
1041
944
  }); // with small gaps
1042
945
 
1043
946
  describe('with large gaps', () => {
1044
- seekTest('will raise event', {
1045
- buffered: [{start: 0, end: 10}, {start: 30, end: 40}],
1046
- start: 5,
1047
- seekTo: 12,
1048
- expectedEndTime: 12,
1049
- expectEvent: true,
1050
- });
1051
-
1052
947
  seekTest('will jump large gaps', {
1053
948
  buffered: [{start: 0, end: 10}, {start: 30, end: 40}],
1054
949
  start: 5,
1055
950
  seekTo: 12,
1056
- jumpLargeGaps: true,
1057
951
  expectedEndTime: 30,
1058
- expectEvent: true,
1059
- });
1060
-
1061
- seekTest('won\'t jump if preventDefault() is called', {
1062
- buffered: [{start: 0, end: 10}, {start: 30, end: 40}],
1063
- start: 5,
1064
- seekTo: 12,
1065
- jumpLargeGaps: true,
1066
- preventDefault: true,
1067
- expectedEndTime: 12,
1068
- expectEvent: true,
1069
952
  });
1070
953
  }); // with large gaps
1071
954
  }); // with buffered seeks
@@ -1079,7 +962,6 @@ describe('Playhead', () => {
1079
962
  start: 3,
1080
963
  seekTo: 22,
1081
964
  expectedEndTime: 22,
1082
- expectEvent: false,
1083
965
  });
1084
966
 
1085
967
  // Seeking to the beginning is considered an unbuffered seek even if
@@ -1090,7 +972,6 @@ describe('Playhead', () => {
1090
972
  start: 4,
1091
973
  seekTo: 0,
1092
974
  expectedEndTime: 0.2,
1093
- expectEvent: false,
1094
975
  });
1095
976
 
1096
977
  seekTest('will jump when seeking into gap', {
@@ -1100,7 +981,6 @@ describe('Playhead', () => {
1100
981
  start: 3,
1101
982
  seekTo: 30.2,
1102
983
  expectedEndTime: 31,
1103
- expectEvent: false,
1104
984
  });
1105
985
 
1106
986
  seekTest('will jump when seeking to the end of a range', {
@@ -1110,7 +990,6 @@ describe('Playhead', () => {
1110
990
  start: 3,
1111
991
  seekTo: 30,
1112
992
  expectedEndTime: 31,
1113
- expectEvent: false,
1114
993
  });
1115
994
 
1116
995
  seekTest('won\'t jump when past end', {
@@ -1120,7 +999,6 @@ describe('Playhead', () => {
1120
999
  start: 3,
1121
1000
  seekTo: 34,
1122
1001
  expectedEndTime: 34,
1123
- expectEvent: false,
1124
1002
  });
1125
1003
 
1126
1004
  seekTest('won\'t jump when seeking backwards into buffered range', {
@@ -1130,7 +1008,6 @@ describe('Playhead', () => {
1130
1008
  start: 24,
1131
1009
  seekTo: 4,
1132
1010
  expectedEndTime: 4,
1133
- expectEvent: false,
1134
1011
  });
1135
1012
 
1136
1013
  seekTest('will wait to jump when seeking backwards', {
@@ -1141,7 +1018,6 @@ describe('Playhead', () => {
1141
1018
  start: 24,
1142
1019
  seekTo: 4,
1143
1020
  expectedEndTime: 4,
1144
- expectEvent: false,
1145
1021
  });
1146
1022
 
1147
1023
  seekTest('will jump when seeking backwards into gap', {
@@ -1151,7 +1027,6 @@ describe('Playhead', () => {
1151
1027
  start: 24,
1152
1028
  seekTo: 1.6,
1153
1029
  expectedEndTime: 2,
1154
- expectEvent: false,
1155
1030
  });
1156
1031
  }); // with small gaps
1157
1032
 
@@ -1161,19 +1036,7 @@ describe('Playhead', () => {
1161
1036
  newBuffered: [{start: 20, end: 30}],
1162
1037
  start: 25,
1163
1038
  seekTo: 0,
1164
- jumpLargeGaps: true,
1165
1039
  expectedEndTime: 20,
1166
- expectEvent: true,
1167
- });
1168
-
1169
- seekTest('will raise event', {
1170
- // [0-10], [20-30], [40-50]
1171
- buffered: [{start: 0, end: 10}],
1172
- newBuffered: [{start: 20, end: 30}, {start: 40, end: 50}],
1173
- start: 3,
1174
- seekTo: 32,
1175
- expectedEndTime: 32,
1176
- expectEvent: true,
1177
1040
  });
1178
1041
 
1179
1042
  seekTest('will jump large gaps', {
@@ -1183,20 +1046,6 @@ describe('Playhead', () => {
1183
1046
  start: 3,
1184
1047
  seekTo: 32,
1185
1048
  expectedEndTime: 40,
1186
- jumpLargeGaps: true,
1187
- expectEvent: true,
1188
- });
1189
-
1190
- seekTest('will jump large gaps', {
1191
- // [0-10], [20-30], [40-50]
1192
- buffered: [{start: 0, end: 10}],
1193
- newBuffered: [{start: 20, end: 30}, {start: 40, end: 50}],
1194
- start: 3,
1195
- seekTo: 32,
1196
- expectedEndTime: 32,
1197
- jumpLargeGaps: true,
1198
- preventDefault: true,
1199
- expectEvent: true,
1200
1049
  });
1201
1050
  }); // with large gaps
1202
1051
  }); // with unbuffered seeks
@@ -1207,17 +1056,14 @@ describe('Playhead', () => {
1207
1056
  video.currentTime = 12;
1208
1057
  video.readyState = HTMLMediaElement.HAVE_ENOUGH_DATA;
1209
1058
 
1210
- config.jumpLargeGaps = true;
1211
1059
  playhead = new shaka.media.MediaSourcePlayhead(
1212
1060
  video,
1213
1061
  manifest,
1214
1062
  config,
1215
1063
  /* startTime= */ 12,
1216
- Util.spyFunc(onSeek),
1217
- Util.spyFunc(onEvent));
1064
+ Util.spyFunc(onSeek));
1218
1065
 
1219
1066
  jasmine.clock().tick(500);
1220
- expect(onEvent).not.toHaveBeenCalled();
1221
1067
 
1222
1068
  // Append a segment before seeking.
1223
1069
  playhead.notifyOfBufferingChange();
@@ -1236,7 +1082,7 @@ describe('Playhead', () => {
1236
1082
  it('works with rounding errors when seeking', () => {
1237
1083
  // If the browser sets the time to slightly before where we seek to, we
1238
1084
  // shouldn't get stuck in an infinite loop trying to jump the tiny gap.
1239
- // https://github.com/google/shaka-player/issues/1309
1085
+ // https://github.com/shaka-project/shaka-player/issues/1309
1240
1086
  const buffered = [{start: 10, end: 20}];
1241
1087
  video.buffered = createFakeBuffered(buffered);
1242
1088
  video.readyState = HTMLMediaElement.HAVE_METADATA;
@@ -1256,14 +1102,12 @@ describe('Playhead', () => {
1256
1102
  },
1257
1103
  });
1258
1104
 
1259
- config.jumpLargeGaps = true;
1260
1105
  playhead = new shaka.media.MediaSourcePlayhead(
1261
1106
  video,
1262
1107
  manifest,
1263
1108
  config,
1264
1109
  /* startTime= */ 0,
1265
- Util.spyFunc(onSeek),
1266
- Util.spyFunc(onEvent));
1110
+ Util.spyFunc(onSeek));
1267
1111
 
1268
1112
  playhead.notifyOfBufferingChange();
1269
1113
  jasmine.clock().tick(500);
@@ -1279,14 +1123,12 @@ describe('Playhead', () => {
1279
1123
  video.readyState = HTMLMediaElement.HAVE_ENOUGH_DATA;
1280
1124
  video.paused = true;
1281
1125
 
1282
- config.jumpLargeGaps = true;
1283
1126
  playhead = new shaka.media.MediaSourcePlayhead(
1284
1127
  video,
1285
1128
  manifest,
1286
1129
  config,
1287
1130
  /* startTime= */ 5,
1288
- Util.spyFunc(onSeek),
1289
- Util.spyFunc(onEvent));
1131
+ Util.spyFunc(onSeek));
1290
1132
 
1291
1133
  playhead.notifyOfBufferingChange();
1292
1134
  jasmine.clock().tick(500);
@@ -1295,7 +1137,7 @@ describe('Playhead', () => {
1295
1137
  expect(video.currentTime).toBe(5);
1296
1138
  });
1297
1139
 
1298
- // Regression test for https://github.com/google/shaka-player/issues/2987
1140
+ // Regression test for https://github.com/shaka-project/shaka-player/issues/2987
1299
1141
  it('does gap jump if paused at 0 and has autoplay', () => {
1300
1142
  const buffered = [{start: 10, end: 20}];
1301
1143
  video.buffered = createFakeBuffered(buffered);
@@ -1304,14 +1146,12 @@ describe('Playhead', () => {
1304
1146
  video.paused = true;
1305
1147
  video.autoplay = true;
1306
1148
 
1307
- config.jumpLargeGaps = true;
1308
1149
  playhead = new shaka.media.MediaSourcePlayhead(
1309
1150
  video,
1310
1151
  manifest,
1311
1152
  config,
1312
1153
  /* startTime= */ 0,
1313
- Util.spyFunc(onSeek),
1314
- Util.spyFunc(onEvent));
1154
+ Util.spyFunc(onSeek));
1315
1155
 
1316
1156
  playhead.notifyOfBufferingChange();
1317
1157
  jasmine.clock().tick(500);
@@ -1320,7 +1160,7 @@ describe('Playhead', () => {
1320
1160
  expect(video.currentTime).toBe(10);
1321
1161
  });
1322
1162
 
1323
- // Regression test for https://github.com/google/shaka-player/issues/3451
1163
+ // Regression test for https://github.com/shaka-project/shaka-player/issues/3451
1324
1164
  it('doesn\'t gap jump if paused at 0 and hasn\'t autoplay', () => {
1325
1165
  const buffered = [{start: 10, end: 20}];
1326
1166
  video.buffered = createFakeBuffered(buffered);
@@ -1329,14 +1169,12 @@ describe('Playhead', () => {
1329
1169
  video.paused = true;
1330
1170
  video.autoplay = false;
1331
1171
 
1332
- config.jumpLargeGaps = true;
1333
1172
  playhead = new shaka.media.MediaSourcePlayhead(
1334
1173
  video,
1335
1174
  manifest,
1336
1175
  config,
1337
1176
  /* startTime= */ 0,
1338
- Util.spyFunc(onSeek),
1339
- Util.spyFunc(onEvent));
1177
+ Util.spyFunc(onSeek));
1340
1178
 
1341
1179
  playhead.notifyOfBufferingChange();
1342
1180
  jasmine.clock().tick(500);
@@ -1355,23 +1193,14 @@ describe('Playhead', () => {
1355
1193
  video.currentTime = data.start;
1356
1194
  video.readyState = HTMLMediaElement.HAVE_ENOUGH_DATA;
1357
1195
 
1358
- onEvent.and.callFake((event) => {
1359
- if (data.preventDefault) {
1360
- event.preventDefault();
1361
- }
1362
- });
1363
-
1364
- config.jumpLargeGaps = !!data.jumpLargeGaps;
1365
1196
  playhead = new shaka.media.MediaSourcePlayhead(
1366
1197
  video,
1367
1198
  manifest,
1368
1199
  config,
1369
1200
  /* startTime= */ data.start,
1370
- Util.spyFunc(onSeek),
1371
- Util.spyFunc(onEvent));
1201
+ Util.spyFunc(onSeek));
1372
1202
 
1373
1203
  jasmine.clock().tick(500);
1374
- expect(onEvent).not.toHaveBeenCalled();
1375
1204
 
1376
1205
  // Seek to the given position and update ready state.
1377
1206
  video.currentTime = data.seekTo;
@@ -1403,7 +1232,6 @@ describe('Playhead', () => {
1403
1232
  jasmine.clock().tick(250);
1404
1233
  }
1405
1234
 
1406
- expect(onEvent).toHaveBeenCalledTimes(data.expectEvent ? 1 : 0);
1407
1235
  expect(video.currentTime).toBe(data.expectedEndTime);
1408
1236
  });
1409
1237
  }