shaka-player 3.2.2 → 3.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.csslintrc +11 -1
- package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
- package/.github/workflows/build-and-test.yaml +130 -0
- package/.github/workflows/custom-actions/prep-for-appspot/action.yaml +56 -0
- package/.github/workflows/custom-actions/set-commit-status/action.yaml +41 -0
- package/.github/workflows/demo-version-index.yaml +29 -0
- package/.github/workflows/nightly-demo.yaml +42 -0
- package/.github/workflows/release-please.yaml +145 -0
- package/.github/workflows/safari-homedir-launcher.sh +18 -0
- package/.github/workflows/selenium-lab-tests.yaml +93 -0
- package/AUTHORS +2 -0
- package/CHANGELOG.md +1598 -1525
- package/CONTRIBUTING.md +2 -2
- package/CONTRIBUTORS +2 -0
- package/README.md +7 -7
- package/app-engine/README.md +9 -0
- package/app-engine/demo-version-index/README.md +14 -0
- package/app-engine/demo-version-index/app.yaml +2 -0
- package/app-engine/demo-version-index/main.py +162 -0
- package/app-engine/demo-version-index/requirements.txt +6 -0
- package/app-engine/demo-version-index/templates/index.html +114 -0
- package/app-engine/shaka-player-demo/README.md +18 -0
- package/app-engine/shaka-player-demo/app.yaml +61 -0
- package/app-engine/shaka-player-demo/main.py +95 -0
- package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
- package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
- package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
- package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
- package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
- package/app-engine/shaka-player-demo/posters/standard.png +0 -0
- package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
- package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
- package/app-engine/shaka-player-demo/posters.py +110 -0
- package/app-engine/shaka-player-demo/requirements.txt +5 -0
- package/app-engine/shaka-player-demo/time.txt +1 -0
- package/build/README.md +1 -1
- package/build/checkversion.py +1 -1
- package/build/conformance.textproto +13 -0
- package/build/docker/Dockerfile +20 -0
- package/build/docker/docker-compose.yml +10 -0
- package/build/gendeps.py +18 -15
- package/build/shaka-lab.yaml +163 -0
- package/build/shakaBuildHelpers.py +4 -29
- package/build/test.py +93 -28
- package/build/wrapper.template.js +2 -2
- package/demo/TengwarTelcontar.woff2 +0 -0
- package/demo/asset_card.js +1 -2
- package/demo/cast_receiver/index.html +1 -1
- package/demo/cast_receiver/receiver_app.css +14 -14
- package/demo/common/assets.js +2 -0
- package/demo/config.js +0 -1
- package/demo/custom.js +0 -1
- package/demo/customWarning.txt +2 -2
- package/demo/demo.less +29 -18
- package/demo/demo_uncompiled.js +1 -13
- package/demo/index.html +1 -1
- package/demo/main.js +3 -3
- package/dist/controls.css +2 -2
- package/dist/controls.css.map +1 -1
- package/dist/demo.compiled.debug.js +191 -194
- package/dist/demo.compiled.debug.map +4 -4
- package/dist/demo.compiled.js +191 -194
- package/dist/demo.compiled.map +4 -4
- package/dist/demo.css +1 -1
- package/dist/demo.css.map +1 -1
- package/dist/deps.js +225 -219
- package/dist/locales.js +31 -31
- package/dist/receiver.compiled.debug.js +43 -45
- package/dist/receiver.compiled.debug.map +4 -4
- package/dist/receiver.compiled.js +43 -45
- package/dist/receiver.compiled.map +4 -4
- package/dist/shaka-player.compiled.d.ts +247 -227
- package/dist/shaka-player.compiled.debug.d.ts +247 -227
- package/dist/shaka-player.compiled.debug.externs.js +43 -16
- package/dist/shaka-player.compiled.debug.js +384 -388
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +43 -16
- package/dist/shaka-player.compiled.js +818 -817
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +291 -280
- package/dist/shaka-player.ui.debug.d.ts +291 -280
- package/dist/shaka-player.ui.debug.externs.js +45 -27
- package/dist/shaka-player.ui.debug.js +389 -394
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +45 -27
- package/dist/shaka-player.ui.js +964 -965
- package/dist/shaka-player.ui.map +4 -4
- package/docs/design/REDESIGN.md +33 -33
- package/docs/design/codec_preferences.md +1 -1
- package/docs/design/dash-audio-channels.md +3 -3
- package/docs/design/dash-manifests.md +1 -1
- package/docs/design/gap-jumping.md +3 -3
- package/docs/design/preload.md +2 -2
- package/docs/tutorials/faq.md +8 -8
- package/docs/tutorials/index.json +1 -0
- package/docs/tutorials/plugins.md +3 -3
- package/docs/tutorials/selenium-grid-config.md +122 -0
- package/docs/tutorials/welcome.md +10 -2
- package/externs/shaka/player.js +8 -0
- package/externs/shaka/text.js +10 -0
- package/karma.conf.js +156 -45
- package/lib/abr/simple_abr_manager.js +12 -6
- package/lib/ads/ad_manager.js +1 -0
- package/lib/cast/cast_proxy.js +6 -4
- package/lib/cast/cast_receiver.js +3 -0
- package/lib/cea/cea608_data_channel.js +2 -2
- package/lib/cea/cea708_service.js +5 -4
- package/lib/cea/mp4_cea_parser.js +11 -5
- package/lib/cea/sei_processor.js +6 -3
- package/lib/dash/dash_parser.js +43 -31
- package/lib/dash/mpd_utils.js +4 -5
- package/lib/dash/segment_list.js +1 -2
- package/lib/dash/segment_template.js +3 -3
- package/lib/hls/hls_parser.js +41 -9
- package/lib/hls/manifest_text_parser.js +4 -3
- package/lib/media/adaptation_set.js +1 -2
- package/lib/media/content_workarounds.js +2 -2
- package/lib/media/drm_engine.js +3 -2
- package/lib/media/media_source_engine.js +3 -2
- package/lib/media/mp4_segment_index_parser.js +1 -4
- package/lib/media/playhead.js +2 -2
- package/lib/media/presentation_timeline.js +18 -8
- package/lib/media/region_observer.js +39 -33
- package/lib/media/region_timeline.js +17 -19
- package/lib/media/segment_index.js +2 -1
- package/lib/media/segment_reference.js +19 -1
- package/lib/media/streaming_engine.js +12 -9
- package/lib/media/time_ranges_utils.js +1 -3
- package/lib/media/video_wrapper.js +1 -1
- package/lib/net/networking_engine.js +5 -1
- package/lib/offline/storage.js +12 -13
- package/lib/player.js +77 -36
- package/lib/polyfill/all.js +2 -3
- package/lib/polyfill/encryption_scheme.js +1 -1
- package/lib/polyfill/media_capabilities.js +32 -17
- package/lib/polyfill/mediasource.js +1 -1
- package/lib/text/cue.js +7 -1
- package/lib/text/simple_text_displayer.js +2 -1
- package/lib/text/ttml_text_parser.js +92 -63
- package/lib/text/ui_text_displayer.js +18 -12
- package/lib/util/buffer_utils.js +1 -3
- package/lib/util/ebml_parser.js +3 -3
- package/lib/util/error.js +1 -1
- package/lib/util/fake_event_target.js +21 -1
- package/lib/util/iterables.js +0 -46
- package/lib/util/mp4_box_parsers.js +1 -4
- package/lib/util/mp4_parser.js +5 -7
- package/lib/util/periods.js +8 -9
- package/lib/util/platform.js +3 -3
- package/lib/util/pssh.js +1 -4
- package/lib/util/stream_utils.js +88 -11
- package/lib/util/string_utils.js +3 -5
- package/lib/util/uint8array_utils.js +3 -5
- package/lib/util/xml_utils.js +34 -7
- package/package.json +62 -40
- package/roadmap.md +17 -17
- package/test/abr/simple_abr_manager_unit.js +3 -8
- package/test/ads/ad_manager_unit.js +0 -6
- package/test/cast/cast_proxy_unit.js +0 -8
- package/test/cast/cast_receiver_integration.js +1 -18
- package/test/cast/cast_receiver_unit.js +1 -9
- package/test/cast/cast_sender_unit.js +0 -6
- package/test/cast/cast_utils_unit.js +0 -13
- package/test/cea/cea608_memory_unit.js +0 -5
- package/test/cea/cea708_service_unit.js +0 -7
- package/test/cea/cea708_window_unit.js +0 -5
- package/test/cea/cea_decoder_unit.js +0 -6
- package/test/cea/dtvcc_packet_builder_unit.js +0 -3
- package/test/cea/dtvcc_packet_unit.js +0 -5
- package/test/cea/mp4_cea_parser_unit.js +0 -4
- package/test/dash/dash_parser_content_protection_unit.js +1 -10
- package/test/dash/dash_parser_live_unit.js +45 -15
- package/test/dash/dash_parser_manifest_unit.js +37 -18
- package/test/dash/dash_parser_segment_base_unit.js +1 -8
- package/test/dash/dash_parser_segment_list_unit.js +1 -7
- package/test/dash/dash_parser_segment_template_unit.js +0 -9
- package/test/dash/mpd_utils_unit.js +3 -11
- package/test/demo/demo_unit.js +0 -5
- package/test/deprecate/enforcer_unit.js +0 -4
- package/test/deprecate/version_unit.js +0 -2
- package/test/hls/hls_live_unit.js +2 -14
- package/test/hls/hls_parser_unit.js +76 -15
- package/test/hls/manifest_text_parser_unit.js +0 -10
- package/test/media/adaptation_set_criteria_unit.js +3 -7
- package/test/media/adaptation_set_unit.js +0 -2
- package/test/media/buffering_observer_unit.js +1 -4
- package/test/media/closed_caption_parser_unit.js +0 -3
- package/test/media/drm_engine_integration.js +2 -15
- package/test/media/drm_engine_unit.js +7 -27
- package/test/media/manifest_parser_unit.js +0 -4
- package/test/media/media_source_engine_integration.js +0 -7
- package/test/media/media_source_engine_unit.js +1 -14
- package/test/media/mp4_segment_index_parser_unit.js +0 -4
- package/test/media/play_rate_controller_unit.js +0 -4
- package/test/media/playhead_unit.js +8 -16
- package/test/media/presentation_timeline_unit.js +4 -7
- package/test/media/region_observer_unit.js +40 -10
- package/test/media/region_timeline_unit.js +40 -25
- package/test/media/segment_index_unit.js +0 -6
- package/test/media/segment_reference_unit.js +0 -3
- package/test/media/stall_detector_unit.js +0 -5
- package/test/media/streaming_engine_integration.js +11 -37
- package/test/media/streaming_engine_unit.js +155 -34
- package/test/media/time_ranges_utils_unit.js +0 -2
- package/test/media/transmuxer_integration.js +0 -6
- package/test/media/webm_segment_index_parser_unit.js +0 -4
- package/test/net/data_uri_plugin_unit.js +0 -7
- package/test/net/http_plugin_unit.js +0 -9
- package/test/net/networking_engine_unit.js +0 -11
- package/test/offline/download_progress_estimator_unit.js +0 -2
- package/test/offline/indexeddb_storage_unit.js +0 -6
- package/test/offline/manifest_convert_unit.js +0 -8
- package/test/offline/offline_integration.js +1 -10
- package/test/offline/offline_manifest_parser_unit.js +0 -6
- package/test/offline/offline_scheme_unit.js +0 -8
- package/test/offline/offline_uri_unit.js +0 -2
- package/test/offline/storage_compatibility_unit.js +1 -14
- package/test/offline/storage_integration.js +1 -25
- package/test/player_external.js +2 -10
- package/test/player_integration.js +62 -36
- package/test/player_load_graph_integration.js +1 -6
- package/test/player_src_equals_external.js +3 -9
- package/test/player_src_equals_integration.js +41 -15
- package/test/player_unit.js +71 -46
- package/test/routing/walker_unit.js +0 -8
- package/test/test/assets/chapters.vtt +2 -2
- package/test/test/assets/chapters2.vtt +10 -0
- package/test/test/assets/large_file.mpd +1 -1
- package/test/test/boot.js +75 -22
- package/test/test/externs/jasmine.js +2 -2
- package/test/test/externs/karma.js +4 -0
- package/test/test/namespace.js +10 -0
- package/test/test/util/canned_idb.js +0 -8
- package/test/test/util/cea_utils.js +0 -6
- package/test/test/util/dash_parser_util.js +0 -13
- package/test/test/util/fake_ad.js +0 -3
- package/test/test/util/fake_ad_manager.js +0 -9
- package/test/test/util/fake_demo_main.js +0 -5
- package/test/test/util/fake_drm_engine.js +0 -6
- package/test/test/util/fake_media_source_engine.js +0 -7
- package/test/test/util/fake_networking_engine.js +0 -5
- package/test/test/util/fake_text_displayer.js +0 -5
- package/test/test/util/indexeddb_utils.js +1 -10
- package/test/test/util/jasmine_fetch.js +0 -1
- package/test/test/util/loader.js +0 -18
- package/test/test/util/manifest_generator.js +9 -14
- package/test/test/util/manifest_parser_util.js +0 -6
- package/test/test/util/offline_utils.js +0 -5
- package/test/test/util/simple_fakes.js +9 -26
- package/test/test/util/stream_generator.js +0 -14
- package/test/test/util/streaming_engine_util.js +0 -15
- package/test/test/util/test_scheme.js +1 -19
- package/test/test/util/ttml_utils.js +79 -0
- package/test/test/util/ui_utils.js +0 -9
- package/test/test/util/util.js +15 -26
- package/test/test/util/waiter.js +84 -43
- package/test/text/cue_integration.js +0 -4
- package/test/text/lrc_text_parser_unit.js +0 -4
- package/test/text/mp4_ttml_parser_unit.js +10 -23
- package/test/text/mp4_vtt_parser_unit.js +1 -7
- package/test/text/sbv_text_parser_unit.js +0 -4
- package/test/text/simple_text_displayer_unit.js +1 -8
- package/test/text/srt_text_parser_unit.js +0 -4
- package/test/text/ssa_text_parser_unit.js +0 -5
- package/test/text/text_engine_unit.js +2 -7
- package/test/text/text_track_integration.js +0 -2
- package/test/text/ttml_text_parser_unit.js +495 -237
- package/test/text/ui_text_displayer_unit.js +44 -41
- package/test/text/vtt_text_parser_unit.js +0 -9
- package/test/text/web_vtt_generator_unit.js +0 -3
- package/test/ui/ad_ui_unit.js +0 -11
- package/test/ui/localization_unit.js +0 -3
- package/test/ui/text_displayer_layout_unit.js +9 -19
- package/test/ui/ui_customization_unit.js +0 -6
- package/test/ui/ui_integration.js +0 -16
- package/test/ui/ui_unit.js +1 -17
- package/test/util/abortable_operation_unit.js +4 -9
- package/test/util/array_utils_unit.js +0 -2
- package/test/util/buffer_utils_unit.js +0 -2
- package/test/util/data_view_reader_unit.js +0 -4
- package/test/util/ebml_parser_unit.js +0 -4
- package/test/util/event_manager_unit.js +0 -3
- package/test/util/fake_event_target_unit.js +0 -5
- package/test/util/functional_unit.js +1 -1
- package/test/util/iterables_unit.js +0 -64
- package/test/util/language_utils_unit.js +0 -3
- package/test/util/manifest_parser_utils_unit.js +0 -2
- package/test/util/mp4_box_parsers_unit.js +0 -5
- package/test/util/mp4_parser_unit.js +0 -4
- package/test/util/multi_map_unit.js +0 -3
- package/test/util/object_utils_unit.js +0 -2
- package/test/util/periods_unit.js +14 -7
- package/test/util/pssh_unit.js +0 -5
- package/test/util/state_history_unit.js +0 -2
- package/test/util/stream_utils_unit.js +39 -38
- package/test/util/string_utils_unit.js +0 -6
- package/test/util/text_parser_unit.js +0 -2
- package/test/util/xml_utils_unit.js +0 -4
- package/ui/controls.js +3 -0
- package/ui/less/ad_controls.less +4 -4
- package/ui/less/buttons.less +5 -9
- package/ui/less/containers.less +5 -7
- package/ui/less/overflow_menu.less +4 -4
- package/ui/less/range_elements.less +5 -0
- package/ui/locales/sjn-translations.yaml +257 -0
- package/ui/locales/sjn.json +42 -0
- package/ui/localization.js +12 -36
- package/ui/text_selection.js +1 -0
- package/externs/media_capabilities.js +0 -16
- package/externs/svgelement.js +0 -18
package/build/test.py
CHANGED
|
@@ -19,13 +19,22 @@
|
|
|
19
19
|
import argparse
|
|
20
20
|
import json
|
|
21
21
|
import logging
|
|
22
|
+
import os
|
|
22
23
|
import platform
|
|
24
|
+
import re
|
|
23
25
|
|
|
24
26
|
import build
|
|
25
27
|
import gendeps
|
|
26
28
|
import shakaBuildHelpers
|
|
27
29
|
|
|
28
30
|
|
|
31
|
+
# Set a higher default for capture_timeout in grid mode. If the test gets
|
|
32
|
+
# queued by the grid, this may prevent Karma from killing the session while
|
|
33
|
+
# waiting.
|
|
34
|
+
LOCAL_CAPTURE_TIMEOUT = 1 * 60 * 1000 # 1m in ms
|
|
35
|
+
SELENIUM_CAPTURE_TIMEOUT = 10 * 60 * 1000 # 10m in ms
|
|
36
|
+
|
|
37
|
+
|
|
29
38
|
class _HandleMixedListsAction(argparse.Action):
|
|
30
39
|
'''Action to handle comma-separated and space-separated lists.
|
|
31
40
|
|
|
@@ -59,6 +68,21 @@ class _HandleKeyValuePairs(argparse.Action):
|
|
|
59
68
|
merged[key] = value
|
|
60
69
|
setattr(namespace, self.dest, merged)
|
|
61
70
|
|
|
71
|
+
def _KeyValueValidator(argument):
|
|
72
|
+
'''To validate the option has a key value pair format.
|
|
73
|
+
|
|
74
|
+
When you forget to provide the option in key=value format,
|
|
75
|
+
it reminds you by throwing an error before executing any tests.
|
|
76
|
+
'''
|
|
77
|
+
|
|
78
|
+
keyValuePair = [str for str in argument.split('=') if str != ''];
|
|
79
|
+
|
|
80
|
+
if len(keyValuePair) == 2:
|
|
81
|
+
return argument
|
|
82
|
+
else:
|
|
83
|
+
raise argparse.ArgumentTypeError(
|
|
84
|
+
'Received %s but expecting format of key=value' % argument
|
|
85
|
+
)
|
|
62
86
|
|
|
63
87
|
def _IntGreaterThanZero(x):
|
|
64
88
|
i = int(x)
|
|
@@ -85,6 +109,8 @@ def _GetDefaultBrowsers():
|
|
|
85
109
|
raise Error('Unrecognized system: %s' % platform.uname()[0])
|
|
86
110
|
|
|
87
111
|
|
|
112
|
+
# TODO(joeyparrish): When internal tools using this Launcher system are removed,
|
|
113
|
+
# simplify this whole mess.
|
|
88
114
|
class Launcher:
|
|
89
115
|
"""A stateful object for parsing arguments and running Karma commands.
|
|
90
116
|
|
|
@@ -111,7 +137,7 @@ class Launcher:
|
|
|
111
137
|
|
|
112
138
|
running_commands = self.parser.add_argument_group(
|
|
113
139
|
'Running',
|
|
114
|
-
'These commands affect how tests are
|
|
140
|
+
'These commands affect how tests are run.')
|
|
115
141
|
logging_commands = self.parser.add_argument_group(
|
|
116
142
|
'Logging',
|
|
117
143
|
'These commands affect what gets logged and how the logs will appear.')
|
|
@@ -215,9 +241,9 @@ class Launcher:
|
|
|
215
241
|
running_commands.add_argument(
|
|
216
242
|
'--capture-timeout',
|
|
217
243
|
help='Kill the browser if it does not capture in the given time [ms]. '
|
|
218
|
-
'(default
|
|
219
|
-
|
|
220
|
-
|
|
244
|
+
'(default {} for local, {} for Selenium)'.format(
|
|
245
|
+
LOCAL_CAPTURE_TIMEOUT, SELENIUM_CAPTURE_TIMEOUT),
|
|
246
|
+
type=int)
|
|
221
247
|
running_commands.add_argument(
|
|
222
248
|
'--delay-tests',
|
|
223
249
|
help='Insert an artificial delay between tests, in seconds. '
|
|
@@ -229,6 +255,11 @@ class Launcher:
|
|
|
229
255
|
default=None,
|
|
230
256
|
const=2,
|
|
231
257
|
nargs='?')
|
|
258
|
+
running_commands.add_argument(
|
|
259
|
+
'--spec-hide-passed',
|
|
260
|
+
help='If provided, configure the spec reporter to hide passing tests.',
|
|
261
|
+
action='store_true',
|
|
262
|
+
default=False)
|
|
232
263
|
running_commands.add_argument(
|
|
233
264
|
'--test-custom-asset',
|
|
234
265
|
help='Run asset playback tests on a custom manifest URI.',
|
|
@@ -239,7 +270,7 @@ class Launcher:
|
|
|
239
270
|
help='Configure license servers for the custom asset playback test. '
|
|
240
271
|
'May be specified multiple times to configure multiple key '
|
|
241
272
|
'systems.',
|
|
242
|
-
type=
|
|
273
|
+
type=_KeyValueValidator,
|
|
243
274
|
metavar='KEY_SYSTEM_ID=LICENSE_SERVER_URI',
|
|
244
275
|
action=_HandleKeyValuePairs)
|
|
245
276
|
running_commands.add_argument(
|
|
@@ -253,6 +284,13 @@ class Launcher:
|
|
|
253
284
|
help="Don't use Babel to convert ES6 to ES5.",
|
|
254
285
|
dest='babel',
|
|
255
286
|
action='store_false')
|
|
287
|
+
running_commands.add_argument(
|
|
288
|
+
'--grid-address',
|
|
289
|
+
help='Address (hostname:port) of a Selenium grid to run tests on.')
|
|
290
|
+
running_commands.add_argument(
|
|
291
|
+
'--grid-config',
|
|
292
|
+
help='Path to a yaml config defining Selenium grid browsers. '
|
|
293
|
+
'(See docs/selenium-grid-config.md)')
|
|
256
294
|
|
|
257
295
|
|
|
258
296
|
logging_commands.add_argument(
|
|
@@ -308,6 +346,17 @@ class Launcher:
|
|
|
308
346
|
help='Specify the hostname to be used when capturing browsers. This '
|
|
309
347
|
'defaults to localhost.',
|
|
310
348
|
default='localhost')
|
|
349
|
+
networking_commands.add_argument(
|
|
350
|
+
'--tls-key',
|
|
351
|
+
help='Specify a TLS key to serve tests over HTTPs.')
|
|
352
|
+
networking_commands.add_argument(
|
|
353
|
+
'--tls-cert',
|
|
354
|
+
help='Specify a TLS cert to serve tests over HTTPs.')
|
|
355
|
+
networking_commands.add_argument(
|
|
356
|
+
'--lets-encrypt-folder',
|
|
357
|
+
help="Specify a Let's Encrypt folder to search for the latest key and "
|
|
358
|
+
"cert, to serve tests over HTTPs. This overrides --tls-key and "
|
|
359
|
+
"--tls-cert.")
|
|
311
360
|
|
|
312
361
|
|
|
313
362
|
pre_launch_commands.add_argument(
|
|
@@ -340,27 +389,36 @@ class Launcher:
|
|
|
340
389
|
pass_through = [
|
|
341
390
|
'auto_watch',
|
|
342
391
|
'babel',
|
|
392
|
+
'browsers',
|
|
343
393
|
'capture_timeout',
|
|
344
394
|
'colors',
|
|
395
|
+
'delay_tests',
|
|
345
396
|
'drm',
|
|
397
|
+
'exclude_browsers',
|
|
346
398
|
'external',
|
|
347
399
|
'filter',
|
|
400
|
+
'grid_address',
|
|
401
|
+
'grid_config',
|
|
348
402
|
'hostname',
|
|
349
403
|
'html_coverage_report',
|
|
350
404
|
'log_level',
|
|
351
405
|
'logging',
|
|
406
|
+
'no_browsers',
|
|
352
407
|
'port',
|
|
353
408
|
'quarantined',
|
|
354
409
|
'quick',
|
|
355
410
|
'random',
|
|
411
|
+
'reporters',
|
|
356
412
|
'report_slower_than',
|
|
357
413
|
'seed',
|
|
358
414
|
'single_run',
|
|
359
|
-
'
|
|
360
|
-
'delay_tests',
|
|
415
|
+
'spec_hide_passed',
|
|
361
416
|
'test_custom_asset',
|
|
362
417
|
'test_custom_license_server',
|
|
363
418
|
'test_timeout',
|
|
419
|
+
'tls_key',
|
|
420
|
+
'tls_cert',
|
|
421
|
+
'uncompiled',
|
|
364
422
|
]
|
|
365
423
|
|
|
366
424
|
# Check each value before setting it to avoid passing null values.
|
|
@@ -369,8 +427,33 @@ class Launcher:
|
|
|
369
427
|
if value is not None:
|
|
370
428
|
self.karma_config[name] = value
|
|
371
429
|
|
|
372
|
-
if self.parsed_args.
|
|
373
|
-
|
|
430
|
+
if not self.parsed_args.capture_timeout:
|
|
431
|
+
# The default for capture_timeout depends on whether or not we are using
|
|
432
|
+
# a Selenium grid.
|
|
433
|
+
if self.parsed_args.grid_config:
|
|
434
|
+
self.karma_config['capture_timeout'] = SELENIUM_CAPTURE_TIMEOUT
|
|
435
|
+
else:
|
|
436
|
+
self.karma_config['capture_timeout'] = LOCAL_CAPTURE_TIMEOUT
|
|
437
|
+
|
|
438
|
+
self._HandleLetsEncryptConfig()
|
|
439
|
+
|
|
440
|
+
def _HandleLetsEncryptConfig(self):
|
|
441
|
+
folder = self.parsed_args.lets_encrypt_folder
|
|
442
|
+
if not folder:
|
|
443
|
+
return
|
|
444
|
+
|
|
445
|
+
max_serial_number = 0
|
|
446
|
+
# Go through the contents of the folder to find the latest key & cert.
|
|
447
|
+
for file_name in os.listdir(folder):
|
|
448
|
+
matches = re.match(r'(?:privkey|fullchain)(\d+).pem', file_name)
|
|
449
|
+
if matches:
|
|
450
|
+
serial_number = int(matches.group(1))
|
|
451
|
+
max_serial_number = max(max_serial_number, serial_number)
|
|
452
|
+
|
|
453
|
+
self.karma_config['tls_key'] = os.path.join(
|
|
454
|
+
folder, 'privkey{}.pem'.format(max_serial_number))
|
|
455
|
+
self.karma_config['tls_cert'] = os.path.join(
|
|
456
|
+
folder, 'fullchain{}.pem'.format(max_serial_number))
|
|
374
457
|
|
|
375
458
|
def ResolveBrowsers(self, default_browsers):
|
|
376
459
|
"""Decide what browsers we should use.
|
|
@@ -379,25 +462,7 @@ class Launcher:
|
|
|
379
462
|
additional logic to derive a browser list from the parsed arguments.
|
|
380
463
|
"""
|
|
381
464
|
assert(default_browsers and len(default_browsers))
|
|
382
|
-
|
|
383
|
-
if self.parsed_args.no_browsers:
|
|
384
|
-
logging.warning('In this mode browsers must manually connect to karma.')
|
|
385
|
-
elif self.parsed_args.browsers:
|
|
386
|
-
self.karma_config['browsers'] = self.parsed_args.browsers
|
|
387
|
-
else:
|
|
388
|
-
logging.warning('Using default browsers: %s', default_browsers)
|
|
389
|
-
self.karma_config['browsers'] = default_browsers
|
|
390
|
-
|
|
391
|
-
# Check if there are any browsers that we should remove
|
|
392
|
-
if self.parsed_args.exclude_browsers and 'browsers' in self.karma_config:
|
|
393
|
-
all_browsers = set(self.karma_config['browsers'])
|
|
394
|
-
bad_browsers = set(self.parsed_args.exclude_browsers)
|
|
395
|
-
if bad_browsers - all_browsers:
|
|
396
|
-
raise RuntimeError('Attempting to exclude unselected browsers: %s' %
|
|
397
|
-
','.join(bad_browsers - all_browsers))
|
|
398
|
-
|
|
399
|
-
good_browsers = all_browsers - bad_browsers
|
|
400
|
-
self.karma_config['browsers'] = list(good_browsers)
|
|
465
|
+
self.karma_config['default_browsers'] = default_browsers
|
|
401
466
|
|
|
402
467
|
def RunCommand(self, karma_conf):
|
|
403
468
|
"""Build a command and send it to Karma for execution.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
(function() {
|
|
8
8
|
// This is "window" in browsers and "global" in nodejs.
|
|
9
|
-
// See https://github.com/
|
|
9
|
+
// See https://github.com/shaka-project/shaka-player/issues/1445
|
|
10
10
|
var innerGlobal = typeof window != 'undefined' ? window : global;
|
|
11
11
|
|
|
12
12
|
// This is where our library exports things to. It is "this" in the wrapped
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
// $jscomp.global, which will be "window", or "global", or "this", depending
|
|
19
19
|
// on circumstances.
|
|
20
20
|
// See https://github.com/google/closure-compiler/issues/2957 and
|
|
21
|
-
// https://github.com/
|
|
21
|
+
// https://github.com/shaka-project/shaka-player/issues/1455#issuecomment-393250035
|
|
22
22
|
|
|
23
23
|
// We provide "global" for use by Closure, and "window" for use by the Shaka
|
|
24
24
|
// library itself. Both point to "innerGlobal" above.
|
|
Binary file
|
package/demo/asset_card.js
CHANGED
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
goog.provide('shakaDemo.AssetCard');
|
|
9
8
|
|
|
10
|
-
|
|
11
9
|
goog.require('goog.asserts');
|
|
10
|
+
goog.require('shakaAssets');
|
|
12
11
|
goog.require('shakaDemo.MessageIds');
|
|
13
12
|
goog.require('shakaDemo.Tooltips');
|
|
14
13
|
goog.requireType('ShakaDemoAssetInfo');
|
|
@@ -63,7 +63,7 @@ UNCOMPILED_JS = [
|
|
|
63
63
|
<script defer src="../load.js"></script>
|
|
64
64
|
</head>
|
|
65
65
|
<body>
|
|
66
|
-
<div data-shaka-player-container id="
|
|
66
|
+
<div data-shaka-player-container id="video-container">
|
|
67
67
|
<video autoplay data-shaka-player id="video"></video>
|
|
68
68
|
</div>
|
|
69
69
|
<!-- Covers everything else while idle -->
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
/* Experimentation has revealed that unless html, body, and
|
|
7
|
+
/* Experimentation has revealed that unless html, body, and video-container are
|
|
8
8
|
* width and height 100%, video can force all its parents to grow larger than
|
|
9
9
|
* window.innerHeight, causing things to be cut off for some content.
|
|
10
10
|
*/
|
|
@@ -25,7 +25,7 @@ body {
|
|
|
25
25
|
color: white;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
#
|
|
28
|
+
#video-container {
|
|
29
29
|
width: 100%;
|
|
30
30
|
height: 100%;
|
|
31
31
|
}
|
|
@@ -83,29 +83,29 @@ body:after {
|
|
|
83
83
|
height: 0;
|
|
84
84
|
overflow: hidden;
|
|
85
85
|
z-index: -1;
|
|
86
|
-
content: url(idle1.jpg) url(idle2.jpg) url(idle3.jpg);
|
|
86
|
+
content: url("idle1.jpg") url("idle2.jpg") url("idle3.jpg");
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
@keyframes bg-change {
|
|
90
|
-
0% { background-image: url(
|
|
90
|
+
0% { background-image: url("idle1.jpg"); padding-left: 0; }
|
|
91
91
|
|
|
92
|
-
32% { background-image: url(
|
|
92
|
+
32% { background-image: url("idle1.jpg"); padding-left: 0; }
|
|
93
93
|
|
|
94
|
-
34% { background-image: url(
|
|
94
|
+
34% { background-image: url("idle2.jpg"); padding-left: 0; }
|
|
95
95
|
|
|
96
|
-
49% { background-image: url(
|
|
96
|
+
49% { background-image: url("idle2.jpg"); padding-left: 0; }
|
|
97
97
|
|
|
98
|
-
50% { background-image: url(
|
|
98
|
+
50% { background-image: url("idle2.jpg"); padding-left: 400px; }
|
|
99
99
|
|
|
100
|
-
65% { background-image: url(
|
|
100
|
+
65% { background-image: url("idle2.jpg"); padding-left: 400px; }
|
|
101
101
|
|
|
102
|
-
67% { background-image: url(
|
|
102
|
+
67% { background-image: url("idle3.jpg"); padding-left: 400px; }
|
|
103
103
|
|
|
104
|
-
87% { background-image: url(
|
|
104
|
+
87% { background-image: url("idle3.jpg"); padding-left: 400px; }
|
|
105
105
|
|
|
106
|
-
88% { background-image: url(
|
|
106
|
+
88% { background-image: url("idle3.jpg"); padding-left: 0; }
|
|
107
107
|
|
|
108
|
-
98% { background-image: url(
|
|
108
|
+
98% { background-image: url("idle3.jpg"); padding-left: 0; }
|
|
109
109
|
|
|
110
|
-
100% { background-image: url(
|
|
110
|
+
100% { background-image: url("idle1.jpg"); padding-left: 0; }
|
|
111
111
|
}
|
package/demo/common/assets.js
CHANGED
package/demo/config.js
CHANGED
|
@@ -11,7 +11,6 @@ goog.require('goog.asserts');
|
|
|
11
11
|
goog.require('shakaDemo.BoolInput');
|
|
12
12
|
goog.require('shakaDemo.DatalistInput');
|
|
13
13
|
goog.require('shakaDemo.InputContainer');
|
|
14
|
-
goog.require('shakaDemo.Main');
|
|
15
14
|
goog.require('shakaDemo.MessageIds');
|
|
16
15
|
goog.require('shakaDemo.NumberInput');
|
|
17
16
|
goog.require('shakaDemo.SelectInput');
|
package/demo/custom.js
CHANGED
|
@@ -12,7 +12,6 @@ goog.require('ShakaDemoAssetInfo');
|
|
|
12
12
|
goog.require('shakaDemo.AssetCard');
|
|
13
13
|
goog.require('shakaDemo.Input');
|
|
14
14
|
goog.require('shakaDemo.InputContainer');
|
|
15
|
-
goog.require('shakaDemo.Main');
|
|
16
15
|
goog.require('shakaDemo.MessageIds');
|
|
17
16
|
goog.require('shakaDemo.TextInput');
|
|
18
17
|
|
package/demo/customWarning.txt
CHANGED
|
@@ -4,5 +4,5 @@ of the asset you were playing at the time you pressed the bug report button.
|
|
|
4
4
|
We have detected that you were playing a custom asset.
|
|
5
5
|
If this asset's URL is confidential, you might instead want to fill out an issue
|
|
6
6
|
template manually:
|
|
7
|
-
https://github.com/
|
|
8
|
-
-->
|
|
7
|
+
https://github.com/shaka-project/shaka-player/issues/new/choose
|
|
8
|
+
-->
|
package/demo/demo.less
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
/* stylelint-disable selector-class-pattern -- MDL classes can't be changed */
|
|
8
|
+
|
|
7
9
|
// Import the MDL styles with the desired color scheme.
|
|
8
10
|
@import (css, inline) "../node_modules/material-design-lite/dist/material.indigo-blue.min.css";
|
|
9
11
|
@import (css, inline) "../node_modules/dialog-polyfill/dialog-polyfill.css";
|
|
@@ -15,7 +17,7 @@
|
|
|
15
17
|
@drawer-width: 550px;
|
|
16
18
|
|
|
17
19
|
@mdl-footer-link-color: #9e9e9e; /* copied from MDL stylesheet */
|
|
18
|
-
@mdl-button-color: rgb(63
|
|
20
|
+
@mdl-button-color: rgb(63 81 181); /* copied from MDL stylesheet */
|
|
19
21
|
|
|
20
22
|
@progress-circle-size: 45px;
|
|
21
23
|
@progress-circle-thickness: 5px;
|
|
@@ -24,7 +26,7 @@
|
|
|
24
26
|
* here we override the font family for the MDL class. Without this, the menu
|
|
25
27
|
* on the left side of the screen has no icon. */
|
|
26
28
|
.material-icons {
|
|
27
|
-
font-family:
|
|
29
|
+
font-family: "Material Icons Round";
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
/* Conflicting styles between the icons font & the MDL buttons caused some
|
|
@@ -73,12 +75,21 @@ main.mdl-layout__content {
|
|
|
73
75
|
border-radius: 50%;
|
|
74
76
|
width: 32px;
|
|
75
77
|
color: #000;
|
|
76
|
-
background: rgba(255
|
|
78
|
+
background: rgba(255 255 255 / 85%);
|
|
77
79
|
}
|
|
78
80
|
|
|
79
81
|
html, body {
|
|
80
82
|
/* Ensure everything has a consistent font. */
|
|
81
|
-
font-family:
|
|
83
|
+
font-family: Roboto-Regular, Roboto, sans-serif, TengwarTelcontar;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// This font supports the Sindarin (sjn) translation.
|
|
87
|
+
@font-face {
|
|
88
|
+
font-family: TengwarTelcontar;
|
|
89
|
+
// This could be served from demo/ (uncompiled) or dist (compiled).
|
|
90
|
+
src: url("../demo/TengwarTelcontar.woff2") format("woff2");
|
|
91
|
+
font-weight: normal;
|
|
92
|
+
font-style: normal;
|
|
82
93
|
}
|
|
83
94
|
|
|
84
95
|
/* Change the default opacity of the ripple container, to get around an iOS bug.
|
|
@@ -171,7 +182,7 @@ html, body {
|
|
|
171
182
|
background-color: @error-color;
|
|
172
183
|
color: white;
|
|
173
184
|
position: relative;
|
|
174
|
-
padding: 0
|
|
185
|
+
padding: 0;
|
|
175
186
|
top: 0;
|
|
176
187
|
right: 1em;
|
|
177
188
|
float: right;
|
|
@@ -203,56 +214,56 @@ html, body {
|
|
|
203
214
|
|
|
204
215
|
/* features */
|
|
205
216
|
&[icon="high_definition"] {
|
|
206
|
-
background-image: data-uri(
|
|
217
|
+
background-image: data-uri("icons/custom_high_definition.svg");
|
|
207
218
|
}
|
|
208
219
|
|
|
209
220
|
&[icon="ultra_high_definition"] {
|
|
210
|
-
background-image: data-uri(
|
|
221
|
+
background-image: data-uri("icons/custom_ultra_high_definition.svg");
|
|
211
222
|
}
|
|
212
223
|
|
|
213
224
|
&[icon="subtitles"] {
|
|
214
|
-
background-image: data-uri(
|
|
225
|
+
background-image: data-uri("icons/baseline-subtitles-24px.svg");
|
|
215
226
|
}
|
|
216
227
|
|
|
217
228
|
&[icon="closed_caption"] {
|
|
218
|
-
background-image: data-uri(
|
|
229
|
+
background-image: data-uri("icons/baseline-closed_caption-24px.svg");
|
|
219
230
|
}
|
|
220
231
|
|
|
221
232
|
&[icon="live"] {
|
|
222
|
-
background-image: data-uri(
|
|
233
|
+
background-image: data-uri("icons/baseline-live_tv-24px.svg");
|
|
223
234
|
}
|
|
224
235
|
|
|
225
236
|
&[icon="trick_mode"] {
|
|
226
|
-
background-image: data-uri(
|
|
237
|
+
background-image: data-uri("icons/baseline-fast_forward-24px.svg");
|
|
227
238
|
}
|
|
228
239
|
|
|
229
240
|
&[icon="surround_sound"] {
|
|
230
|
-
background-image: data-uri(
|
|
241
|
+
background-image: data-uri("icons/baseline-surround_sound-24px.svg");
|
|
231
242
|
}
|
|
232
243
|
|
|
233
244
|
&[icon="multiple_languages"] {
|
|
234
|
-
background-image: data-uri(
|
|
245
|
+
background-image: data-uri("icons/baseline-language-24px.svg");
|
|
235
246
|
}
|
|
236
247
|
|
|
237
248
|
&[icon="ad"] {
|
|
238
|
-
background-image: data-uri(
|
|
249
|
+
background-image: data-uri("icons/custom_ad.svg");
|
|
239
250
|
}
|
|
240
251
|
|
|
241
252
|
&[icon="audio_only"] {
|
|
242
|
-
background-image: data-uri(
|
|
253
|
+
background-image: data-uri("icons/baseline-audiotrack-24px.svg");
|
|
243
254
|
}
|
|
244
255
|
|
|
245
256
|
/* key systems */
|
|
246
257
|
&[icon="widevine"] {
|
|
247
|
-
background-image: data-uri(
|
|
258
|
+
background-image: data-uri("icons/custom_widevine.svg");
|
|
248
259
|
}
|
|
249
260
|
|
|
250
261
|
&[icon="clear_key"] {
|
|
251
|
-
background-image: data-uri(
|
|
262
|
+
background-image: data-uri("icons/custom_clear_key.svg");
|
|
252
263
|
}
|
|
253
264
|
|
|
254
265
|
&[icon="playready"] {
|
|
255
|
-
background-image: data-uri(
|
|
266
|
+
background-image: data-uri("icons/custom_playready.svg");
|
|
256
267
|
}
|
|
257
268
|
}
|
|
258
269
|
|
package/demo/demo_uncompiled.js
CHANGED
|
@@ -4,20 +4,8 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
goog.require('shakaDemo.AssetCard');
|
|
8
|
-
goog.require('shakaDemo.CloseButton');
|
|
9
7
|
goog.require('shakaDemo.Config');
|
|
10
8
|
goog.require('shakaDemo.Custom');
|
|
11
|
-
goog.require('shakaDemo.Utils');
|
|
12
9
|
goog.require('shakaDemo.Front');
|
|
13
|
-
goog.require('shakaDemo.BoolInput');
|
|
14
|
-
goog.require('shakaDemo.DatalistInput');
|
|
15
|
-
goog.require('shakaDemo.Input');
|
|
16
|
-
goog.require('shakaDemo.MessageIds');
|
|
17
|
-
goog.require('shakaDemo.NumberInput');
|
|
18
|
-
goog.require('shakaDemo.SelectInput');
|
|
19
|
-
goog.require('shakaDemo.TextInput');
|
|
20
|
-
goog.require('shakaDemo.InputContainer');
|
|
21
|
-
goog.require('shakaDemo.Main');
|
|
22
10
|
goog.require('shakaDemo.Search');
|
|
23
|
-
goog.require('shakaDemo.
|
|
11
|
+
goog.require('shakaDemo.Main');
|
package/demo/index.html
CHANGED
|
@@ -141,7 +141,7 @@ UNCOMPILED_JS = [
|
|
|
141
141
|
<ul class="mdl-mega-footer__link-list">
|
|
142
142
|
<li><a rel="noopener" target="_blank" href="../docs/api/index.html" localized-string="DOCUMENTATION"></a></li>
|
|
143
143
|
<li><a rel="noopener" target="_blank" href="https://www.apache.org/licenses/LICENSE-2.0" localized-string="LICENSE"></a></li>
|
|
144
|
-
<li><a rel="noopener" target="_blank" href="https://github.com/
|
|
144
|
+
<li><a rel="noopener" target="_blank" href="https://github.com/shaka-project/shaka-player" localized-string="SOURCE"></a></li>
|
|
145
145
|
<li><a rel="noopener" target="_blank" href="https://www.npmjs.com/package/shaka-player" localized-string="NPM"></a></li>
|
|
146
146
|
<li><a rel="noopener" target="_blank" href="../support.html" localized-string="SUPPORT"></a></li>
|
|
147
147
|
</ul>
|
package/demo/main.js
CHANGED
|
@@ -164,7 +164,7 @@ shakaDemo.Main = class {
|
|
|
164
164
|
case shaka.ui.Overlay.FailReasonCode.NO_BROWSER_SUPPORT:
|
|
165
165
|
message = this.getLocalizedString(
|
|
166
166
|
shakaDemo.MessageIds.FAILURE_NO_BROWSER_SUPPORT);
|
|
167
|
-
href = 'https://github.com/
|
|
167
|
+
href = 'https://github.com/shaka-project/shaka-player#' +
|
|
168
168
|
'platform-and-browser-support-matrix';
|
|
169
169
|
break;
|
|
170
170
|
case shaka.ui.Overlay.FailReasonCode.PLAYER_FAILED_TO_LOAD:
|
|
@@ -289,7 +289,7 @@ shakaDemo.Main = class {
|
|
|
289
289
|
|
|
290
290
|
// Navigate to the github issue opening interface, with the
|
|
291
291
|
// partially-filled template as a preset body.
|
|
292
|
-
let url = 'https://github.com/
|
|
292
|
+
let url = 'https://github.com/shaka-project/shaka-player/issues/new?';
|
|
293
293
|
url += 'body=' + encodeURIComponent(text);
|
|
294
294
|
// Open in another tab.
|
|
295
295
|
window.open(url, '_blank');
|
|
@@ -1608,7 +1608,7 @@ shakaDemo.Main = class {
|
|
|
1608
1608
|
|
|
1609
1609
|
/**
|
|
1610
1610
|
* Sets the "version-string" divs to a version string.
|
|
1611
|
-
* For example, "v2.5.4-
|
|
1611
|
+
* For example, "v2.5.4-main (uncompiled)".
|
|
1612
1612
|
* @private
|
|
1613
1613
|
*/
|
|
1614
1614
|
setUpVersionStrings_() {
|
package/dist/controls.css
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2016 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
.shaka-hidden{display:none!important}.shaka-video-container{position:relative;top:0;left:0;display:flex}.shaka-video-container .material-icons-round{font-family:
|
|
6
|
+
.shaka-hidden{display:none!important}.shaka-video-container{position:relative;top:0;left:0;display:flex}.shaka-video-container .material-icons-round{font-family:"Material Icons Round";font-size:24px}.shaka-video-container *{font-family:Roboto-Regular,Roboto,sans-serif,TengwarTelcontar}.shaka-video-container:fullscreen{width:100%;height:100%;background-color:#000}.shaka-video-container:fullscreen .shaka-text-container{font-size:4.4vmin}.shaka-video-container:-webkit-full-screen{width:100%;height:100%;background-color:#000}.shaka-video-container:-webkit-full-screen .shaka-text-container{font-size:4.4vmin}.shaka-video-container:-moz-full-screen{width:100%;height:100%;background-color:#000}.shaka-video-container:-moz-full-screen .shaka-text-container{font-size:4.4vmin}.shaka-video-container:-ms-fullscreen{width:100%;height:100%;background-color:#000}.shaka-video-container:-ms-fullscreen .shaka-text-container{font-size:4.4vmin}.shaka-controls-container{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:0;width:100%;height:100%;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;z-index:1}.shaka-video-container:not([shaka-controls=true]) .shaka-controls-container{display:none}.shaka-controls-container *{flex-shrink:0}.shaka-controls-container[casting=true] .shaka-fullscreen-button{display:none}.shaka-bottom-controls{width:96%;padding:0;padding-bottom:2.5%;z-index:1}.shaka-controls-button-panel{padding:0;margin:0;display:flex;flex-direction:row;justify-content:flex-end;align-items:center;overflow:hidden;min-width:48px;font-size:12px;font-weight:400;font-style:normal;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;opacity:0;transition:opacity cubic-bezier(.4, 0, .6, 1) .6s}.shaka-controls-container[casting=true] .shaka-controls-button-panel,.shaka-controls-container[shown=true] .shaka-controls-button-panel{opacity:1}.shaka-controls-button-panel>*{color:#fff;height:32px;line-height:.5;margin:1px 6px;padding:0;background:0 0;border:0;cursor:pointer}.shaka-controls-button-panel .shaka-overflow-menu-only{display:none}.shaka-play-button-container{margin:0;width:100%;height:100%;flex-shrink:1;position:absolute;left:0;right:0;top:0;bottom:0;display:flex;justify-content:center;align-items:center}.shaka-scrim-container{margin:0;width:100%;height:100%;flex-shrink:1;position:absolute;left:0;right:0;top:0;bottom:0;opacity:0;transition:opacity cubic-bezier(.4, 0, .6, 1) .6s;background:linear-gradient(to top,#000 0,transparent 15%)}.shaka-controls-container[casting=true] .shaka-scrim-container,.shaka-controls-container[shown=true] .shaka-scrim-container{opacity:1}.shaka-text-container{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;bottom:0;width:100%;min-width:48px;transition:bottom cubic-bezier(.4, 0, .6, 1) .1s;transition-delay:0.5s;font-size:20px;line-height:1.4;color:#fff}.shaka-text-container span.shaka-text-wrapper{display:inline;background:0 0}.shaka-controls-container[shown=true]~.shaka-text-container{bottom:15%;transition-delay:0s}.shaka-spinner-container{position:absolute;left:0;right:0;top:0;bottom:0;width:100%;height:100%;flex-shrink:1;display:flex;justify-content:center;align-items:center}.shaka-video-container:not([shaka-controls=true]) .shaka-spinner-container{display:none}.shaka-spinner{position:relative;top:0;left:0;margin:0;box-sizing:border-box;padding:15.6%/2;width:0;height:0;filter:drop-shadow(0 0 2px rgba(255 255 255 / 50%))}.shaka-play-button{box-sizing:border-box;padding:15%/2;width:0;height:0;margin:0;border-radius:50%;box-shadow:rgba(0 0 0 / 10%) 0 0 20px 0;border:none;background-size:50%;background-repeat:no-repeat;background-position:center center;background-color:rgba(255 255 255 / 90%);opacity:0;transition:opacity cubic-bezier(.4, 0, .6, 1) .6s}.shaka-controls-container[casting=true] .shaka-play-button,.shaka-controls-container[shown=true] .shaka-play-button{opacity:1}.shaka-play-button[icon=play]{background-image:url("data:image/svg+xml,%3Csvg%20fill%3D%22%23000000%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M8%205v14l11-7z%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%0A%3C%2Fsvg%3E")}.shaka-play-button[icon=pause]{background-image:url("data:image/svg+xml,%3Csvg%20fill%3D%22%23000000%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M6%2019h4V5H6v14zm8-14v14h4V5h-4z%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%0A%3C%2Fsvg%3E")}.shaka-current-time{font-size:14px;color:#fff;cursor:pointer}.shaka-current-time[disabled]{background-color:transparent;color:#fff;cursor:default}.shaka-controls-container button:focus,.shaka-controls-container input:focus{outline:1px solid Highlight}.shaka-controls-container button:-moz-focus-inner,.shaka-controls-container input:-moz-focus-outer{outline:0;border:0}.shaka-controls-container:not(.shaka-keyboard-navigation) button:focus,.shaka-controls-container:not(.shaka-keyboard-navigation) input:focus{outline:0}.shaka-range-container{position:relative;top:0;left:0;margin:8px/2 6px;height:4px;border-radius:4px;background:#fff}.shaka-volume-bar-container{width:100px}.shaka-range-element{-webkit-appearance:none;background:0 0;position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:0;width:100%;height:100%;height:12px;top:-8px/2;z-index:1}.shaka-range-element::-webkit-slider-runnable-track{width:100%;cursor:pointer;height:12px;background:0 0;color:transparent;border:none}.shaka-range-element::-webkit-slider-thumb{-webkit-appearance:none;border:none;border-radius:12px;height:12px;width:12px;background:#fff}.shaka-range-element::-moz-range-track{width:100%;cursor:pointer;height:12px;background:0 0;color:transparent;border:none}.shaka-range-element::-moz-range-thumb{-webkit-appearance:none;border:none;border-radius:12px;height:12px;width:12px;background:#fff}.shaka-seek-bar-container{opacity:0;transition:opacity cubic-bezier(.4, 0, .6, 1) .6s}.shaka-controls-container[casting=true] .shaka-seek-bar-container,.shaka-controls-container[shown=true] .shaka-seek-bar-container{opacity:1}.shaka-ad-markers{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:0;width:100%;height:100%}/*!
|
|
7
7
|
* @license
|
|
8
8
|
* The SVG/CSS buffering spinner is based on http://codepen.io/jczimm/pen/vEBpoL
|
|
9
9
|
* Some local modifications have been made.
|
|
@@ -27,4 +27,4 @@
|
|
|
27
27
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
28
28
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
29
29
|
* SOFTWARE.
|
|
30
|
-
*/.shaka-spinner-svg{position:absolute;top:0;left:0;right:0;bottom:0;animation:rotate 2s linear infinite;transform-origin:center center;width:100%;height:100%;margin:0;padding:0}.shaka-spinner-path{stroke:#202124;stroke-dasharray:20,200;stroke-dashoffset:0;animation:dash 1s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.shaka-spacer{cursor:default;flex-shrink:1;flex-grow:1;margin:0}.shaka-overflow-menu,.shaka-settings-menu{overflow-x:hidden;overflow-y:auto;white-space:nowrap;background:#fff;box-shadow:0 1px 9px 0 rgba(0
|
|
30
|
+
*/.shaka-spinner-svg{position:absolute;top:0;left:0;right:0;bottom:0;animation:rotate 2s linear infinite;transform-origin:center center;width:100%;height:100%;margin:0;padding:0}.shaka-spinner-path{stroke:#202124;stroke-dasharray:20,200;stroke-dashoffset:0;animation:dash 1s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.shaka-spacer{cursor:default;flex-shrink:1;flex-grow:1;margin:0}.shaka-overflow-menu,.shaka-settings-menu{overflow-x:hidden;overflow-y:auto;white-space:nowrap;background:#fff;box-shadow:0 1px 9px 0 rgba(0 0 0 / 40%);border-radius:2px;max-height:250px;min-width:180px;opacity:0;transition:opacity cubic-bezier(.4, 0, .6, 1) .6s;display:flex;flex-direction:column;position:absolute;z-index:2;right:15px;bottom:30px}.shaka-controls-container[casting=true] .shaka-overflow-menu,.shaka-controls-container[casting=true] .shaka-settings-menu,.shaka-controls-container[shown=true] .shaka-overflow-menu,.shaka-controls-container[shown=true] .shaka-settings-menu{opacity:1}.shaka-overflow-menu button,.shaka-settings-menu button{font-size:14px;background:0 0;color:#000;border:none;min-height:30px;padding:3.5px 6px;display:flex;align-items:center;cursor:pointer}.shaka-overflow-menu button:hover,.shaka-settings-menu button:hover{background:#e0e0e0}.shaka-overflow-menu button label,.shaka-settings-menu button label{cursor:pointer}.shaka-keyboard-navigation .shaka-overflow-menu button:focus,.shaka-keyboard-navigation .shaka-settings-menu button:focus{background:#e0e0e0}.shaka-overflow-menu i,.shaka-settings-menu i{padding-left:10px;padding-right:10px}.shaka-overflow-menu.shaka-low-position,.shaka-settings-menu.shaka-low-position{bottom:15px}.shaka-overflow-menu span{text-align:left}.shaka-overflow-button-label{position:relative;display:flex;flex-direction:column}.shaka-current-selection-span{color:rgba(0 0 0 / 54%)}.shaka-settings-menu span{margin-left:54px}.shaka-back-to-overflow-button span{margin-left:0}.shaka-back-to-overflow-button i{padding-right:20px}.shaka-auto-span{left:17px}.shaka-captions-on{color:#000}.shaka-captions-off{color:grey}.shaka-controls-container[ad-active=true]{pointer-events:none}.shaka-controls-container[ad-active=true] .shaka-bottom-controls{pointer-events:auto}.shaka-client-side-ad-container,.shaka-server-side-ad-container{position:absolute;left:0;right:0;top:0;bottom:0}.shaka-video-container[shaka-controls=true] .shaka-client-side-ad-container iframe,.shaka-video-container[shaka-controls=true] .shaka-server-side-ad-container iframe{height:90%}.shaka-server-side-ad-container{width:100%;height:100%;flex-shrink:1}.shaka-server-side-ad-container:not([ad-active=true]){pointer-events:none}.shaka-ad-controls{display:flex;flex-direction:row;z-index:1;padding-bottom:1%}.shaka-video-container:not([shaka-controls=true]) .shaka-ad-controls{display:none}.shaka-ad-controls button,.shaka-ad-controls div{color:#fff;font-size:initial}.shaka-ad-controls div:not(.shaka-skip-ad-counter){margin:1px 6px}.shaka-ad-counter,.shaka-ad-position{display:flex;justify-content:flex-end;flex-direction:column;text-shadow:1px 1px 4px #000}.shaka-skip-ad-container{position:relative;right:4%/2 * -1;display:flex;flex-direction:row;margin:0}.shaka-skip-ad-button{padding:5px 15px;background:rgba(0 0 0 / 70%);border:none;cursor:pointer}.shaka-skip-ad-button:disabled{background:rgba(0 0 0 / 30%)}.shaka-skip-ad-counter{padding:5px;background:rgba(0 0 0 / 70%);margin:0}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/roboto/v29/KFOmCnqEu92Fr1Mu4mxP.ttf) format('truetype')}@font-face{font-family:'Material Icons Round';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconsround/v101/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmM.otf) format('opentype')}.material-icons-round{font-family:'Material Icons Round';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr}/*# sourceMappingURL=controls.css.map */
|