shaka-player 4.3.7 → 4.3.9
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/.github/ISSUE_TEMPLATE/bug_report.md +11 -0
- package/.github/workflows/appspot.yaml +39 -0
- package/.github/workflows/build-and-test.yaml +8 -0
- package/.github/workflows/selenium-lab-tests.yaml +3 -2
- package/.github/workflows/update-issues.yaml +1 -0
- package/CHANGELOG.md +44 -0
- package/CONTRIBUTORS +1 -0
- package/demo/custom.js +1 -1
- package/dist/demo.compiled.debug.js +2 -2
- package/dist/demo.compiled.debug.map +2 -2
- package/dist/demo.compiled.js +2 -2
- package/dist/demo.compiled.map +2 -2
- package/dist/deps.js +2 -2
- package/dist/locales.js +31 -31
- package/dist/shaka-player.compiled.d.ts +24 -2
- package/dist/shaka-player.compiled.debug.d.ts +24 -2
- package/dist/shaka-player.compiled.debug.js +251 -247
- package/dist/shaka-player.compiled.debug.map +3 -3
- package/dist/shaka-player.compiled.js +796 -793
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +24 -2
- package/dist/shaka-player.ui.debug.d.ts +24 -2
- package/dist/shaka-player.ui.debug.js +289 -286
- package/dist/shaka-player.ui.debug.map +3 -3
- package/dist/shaka-player.ui.js +831 -827
- package/dist/shaka-player.ui.map +4 -4
- package/docs/tutorials/drm-config.md +9 -6
- package/docs/tutorials/selenium-grid-config.md +60 -8
- package/externs/ima.js +34 -0
- package/externs/shaka/manifest.js +5 -1
- package/externs/shaka/offline.js +5 -1
- package/karma.conf.js +50 -7
- package/lib/abr/simple_abr_manager.js +6 -6
- package/lib/cea/mp4_cea_parser.js +24 -18
- package/lib/dash/dash_parser.js +19 -3
- package/lib/hls/hls_parser.js +24 -4
- package/lib/media/drm_engine.js +14 -8
- package/lib/media/gap_jumping_controller.js +24 -2
- package/lib/media/media_source_engine.js +11 -8
- package/lib/media/playhead.js +11 -0
- package/lib/media/region_observer.js +19 -1
- package/lib/media/streaming_engine.js +41 -21
- package/lib/media/video_wrapper.js +6 -1
- package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
- package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
- package/lib/offline/manifest_converter.js +1 -0
- package/lib/offline/storage.js +1 -0
- package/lib/player.js +20 -9
- package/lib/polyfill/abort_controller.js +7 -0
- package/lib/polyfill/orientation.js +34 -7
- package/lib/text/vtt_text_parser.js +3 -1
- package/lib/util/manifest_parser_utils.js +5 -3
- package/lib/util/periods.js +2 -0
- package/lib/util/platform.js +14 -0
- package/lib/util/stream_utils.js +70 -26
- package/package.json +2 -2
- package/test/cast/cast_utils_unit.js +4 -1
- package/test/cea/mp4_cea_parser_unit.js +28 -5
- package/test/dash/dash_parser_manifest_unit.js +120 -0
- package/test/hls/hls_parser_unit.js +216 -0
- package/test/media/adaptation_set_unit.js +1 -0
- package/test/media/drm_engine_integration.js +2 -2
- package/test/media/media_source_engine_unit.js +1 -1
- package/test/media/region_observer_unit.js +2 -1
- package/test/media/segment_index_unit.js +3 -3
- package/test/media/streaming_engine_integration.js +14 -11
- package/test/media/streaming_engine_unit.js +26 -2
- package/test/offline/manifest_convert_unit.js +5 -0
- package/test/offline/offline_integration.js +6 -3
- package/test/player_external.js +19 -16
- package/test/player_integration.js +35 -48
- package/test/player_src_equals_integration.js +9 -5
- package/test/test/assets/multiple-trun-init.mp4 +0 -0
- package/test/test/assets/multiple-trun-segment.mp4 +0 -0
- package/test/test/util/fake_demo_main.js +7 -3
- package/test/test/util/layout_tests.js +2 -2
- package/test/test/util/manifest_generator.js +2 -0
- package/test/test/util/offline_utils.js +1 -0
- package/test/test/util/streaming_engine_util.js +3 -0
- package/test/test/util/ui_utils.js +9 -2
- package/test/test/util/util.js +6 -27
- package/test/test/util/waiter.js +73 -3
- package/test/ui/ad_ui_unit.js +9 -9
- package/test/util/stream_utils_unit.js +46 -0
- package/ui/range_element.js +5 -0
- package/ui/resolution_selection.js +7 -1
|
@@ -12,7 +12,16 @@ assignees: ''
|
|
|
12
12
|
**Have you read the [FAQ](https://bit.ly/ShakaFAQ) and checked for duplicate open issues?**
|
|
13
13
|
|
|
14
14
|
|
|
15
|
+
**If the problem is related to FairPlay, have you read the tutorial?**
|
|
16
|
+
<!-- NOTE: https://shaka-player-demo.appspot.com/docs/api/tutorial-fairplay.html -->
|
|
17
|
+
|
|
18
|
+
|
|
15
19
|
**What version of Shaka Player are you using?**
|
|
20
|
+
<!-- NOTE:
|
|
21
|
+
Only some versions of the application are maintained, if your version
|
|
22
|
+
is older, first update to a newer one. See:
|
|
23
|
+
https://github.com/shaka-project/shaka-player/blob/main/maintained-branches.md
|
|
24
|
+
--->
|
|
16
25
|
|
|
17
26
|
|
|
18
27
|
**Can you reproduce the issue with our latest release version?**
|
|
@@ -41,6 +50,8 @@ assignees: ''
|
|
|
41
50
|
enough to reproduce your issue, and we **will** ask you to send a
|
|
42
51
|
URI instead. You can copy the URI of the demo app to send us the
|
|
43
52
|
exact asset, licence server, and settings you have selected there.
|
|
53
|
+
If you send the URIs to email, the response time and resolution
|
|
54
|
+
will be much higher.
|
|
44
55
|
-->
|
|
45
56
|
|
|
46
57
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
name: Deploy to Appspot (one-off)
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
# Allows for manual triggering, to correct deployment issues.
|
|
6
|
+
inputs:
|
|
7
|
+
ref:
|
|
8
|
+
description: "A tag name or SHA1 to deploy."
|
|
9
|
+
required: true
|
|
10
|
+
subdomain:
|
|
11
|
+
description: "An appspot subdomain to deploy to. Be careful! Do not overwrite an existing subdomain!"
|
|
12
|
+
required: true
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
appspot:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v3
|
|
19
|
+
with:
|
|
20
|
+
ref: ${{ inputs.ref }}
|
|
21
|
+
fetch-depth: 0
|
|
22
|
+
persist-credentials: false
|
|
23
|
+
|
|
24
|
+
- uses: actions/setup-node@v1
|
|
25
|
+
with:
|
|
26
|
+
node-version: 16
|
|
27
|
+
registry-url: 'https://registry.npmjs.org'
|
|
28
|
+
|
|
29
|
+
- uses: ./.github/workflows/custom-actions/prep-for-appspot
|
|
30
|
+
|
|
31
|
+
- uses: google-github-actions/auth@v0
|
|
32
|
+
with:
|
|
33
|
+
credentials_json: '${{ secrets.APPENGINE_DEPLOY_KEY }}'
|
|
34
|
+
|
|
35
|
+
- uses: google-github-actions/deploy-appengine@v0
|
|
36
|
+
with:
|
|
37
|
+
project_id: shaka-player-demo
|
|
38
|
+
version: ${{ inputs.subdomain }}
|
|
39
|
+
promote: false
|
|
@@ -125,6 +125,14 @@ jobs:
|
|
|
125
125
|
# Install a launcher that can execute a shell script to launch this
|
|
126
126
|
npm install karma-script-launcher --save-dev
|
|
127
127
|
|
|
128
|
+
# When "Chrome for Testing" is installed on Mac, it gets invoked instead
|
|
129
|
+
# of simply "Chrome". This other copy of Chrome, however, doesn't seem
|
|
130
|
+
# to have basic codecs like AAC and H264 available, causing many of our
|
|
131
|
+
# test scenarios to fail. Deleting "Chrome for Testing" fixes this.
|
|
132
|
+
- name: 'Delete "Chrome for Testing" on Mac'
|
|
133
|
+
if: matrix.os == 'macos-latest' && matrix.browser == 'Chrome'
|
|
134
|
+
run: sudo rm -rf /Applications/Google\ Chrome\ for\ Testing.app
|
|
135
|
+
|
|
128
136
|
# Some CI images (self-hosted or otherwise) don't have the minimum Java
|
|
129
137
|
# version necessary for the compiler (Java 11).
|
|
130
138
|
- uses: actions/setup-java@v3
|
|
@@ -251,11 +251,12 @@ jobs:
|
|
|
251
251
|
python3 build/test.py \
|
|
252
252
|
--no-build \
|
|
253
253
|
--reporters spec --spec-hide-passed \
|
|
254
|
-
--
|
|
254
|
+
--tls-key /etc/letsencrypt/live/karma.shakalab.rocks/privkey.pem \
|
|
255
|
+
--tls-cert /etc/letsencrypt/live/karma.shakalab.rocks/fullchain.pem \
|
|
255
256
|
--hostname karma.shakalab.rocks \
|
|
256
257
|
--port $KARMA_PORT \
|
|
257
258
|
--grid-config build/shaka-lab.yaml \
|
|
258
|
-
--grid-address selenium-grid.lab:4444 \
|
|
259
|
+
--grid-address selenium-grid.lab.shaka:4444 \
|
|
259
260
|
--browsers ${{ matrix.browser }} \
|
|
260
261
|
"${extra_flags[@]}"
|
|
261
262
|
# Capture the test exit code immediately after running the tests.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [4.3.9](https://github.com/shaka-project/shaka-player/compare/v4.3.8...v4.3.9) (2023-08-21)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* add MIME type for HTML5 tracks ([#5452](https://github.com/shaka-project/shaka-player/issues/5452)) ([5fb44db](https://github.com/shaka-project/shaka-player/commit/5fb44dba6d7670e24e8df90fe96588ce2a48c92b))
|
|
9
|
+
* Default language to 'und' for native tracks ([#5464](https://github.com/shaka-project/shaka-player/issues/5464)) ([c31f3db](https://github.com/shaka-project/shaka-player/commit/c31f3db9c3efe44dfd28e03db64628827fdf9b5f))
|
|
10
|
+
* Fix exiting fullscreen on Safari ([#5439](https://github.com/shaka-project/shaka-player/issues/5439)) ([81626b2](https://github.com/shaka-project/shaka-player/commit/81626b20ada137305cbaae808315244eaa84906d)), closes [#5437](https://github.com/shaka-project/shaka-player/issues/5437)
|
|
11
|
+
* Fix memory leak on SimpleAbrManager ([#5478](https://github.com/shaka-project/shaka-player/issues/5478)) ([f8cb6ef](https://github.com/shaka-project/shaka-player/commit/f8cb6ef50a5501a92a94e13099a80690fb7b046d))
|
|
12
|
+
* Fix playRangeEnd does not work with HLS streams ([#5494](https://github.com/shaka-project/shaka-player/issues/5494)) ([899eb07](https://github.com/shaka-project/shaka-player/commit/899eb0725f842df21f927a8c63a02e40986bd7fc))
|
|
13
|
+
* gettting maxWidth and maxHeight for restrictToElementSize option ([#5481](https://github.com/shaka-project/shaka-player/issues/5481)) ([053da3b](https://github.com/shaka-project/shaka-player/commit/053da3b7ad60abb2848ad8848cd017d83a4316c6))
|
|
14
|
+
* **HLS:** Fix external subtitles out of sync in HLS ([#5491](https://github.com/shaka-project/shaka-player/issues/5491)) ([38c8a88](https://github.com/shaka-project/shaka-player/commit/38c8a88a9c04e25b02784c00117f6a3ff11e007d))
|
|
15
|
+
* Remove duplicate adaptation event before init ([#5492](https://github.com/shaka-project/shaka-player/issues/5492)) ([75a55b5](https://github.com/shaka-project/shaka-player/commit/75a55b580baebf35a1e26e8cd7920025bc3e1b8a))
|
|
16
|
+
* Support fLaC and Opus codec strings in HLS ([#5454](https://github.com/shaka-project/shaka-player/issues/5454)) ([09bdd61](https://github.com/shaka-project/shaka-player/commit/09bdd61f6e47f4239bf5fbc3d60754f61ec5be94)), closes [#5453](https://github.com/shaka-project/shaka-player/issues/5453)
|
|
17
|
+
* **UI:** Disable right click on range elements ([#5497](https://github.com/shaka-project/shaka-player/issues/5497)) ([1c55e89](https://github.com/shaka-project/shaka-player/commit/1c55e89586e1eb6be620af86061d981349643a28))
|
|
18
|
+
* Update karma-local-wd-launcher to fix Chromedriver >= 115, fix M1 mac ([#5489](https://github.com/shaka-project/shaka-player/issues/5489)) ([1ce673b](https://github.com/shaka-project/shaka-player/commit/1ce673b0442ea401037fc084342a3cd3ff801f21))
|
|
19
|
+
* Update karma-local-wd-launcher to fix Edge >= 115 ([#5506](https://github.com/shaka-project/shaka-player/issues/5506)) ([4a9bc9b](https://github.com/shaka-project/shaka-player/commit/4a9bc9b2cef1f5c352eeebf6998162260a2973db))
|
|
20
|
+
* **WebVTT:** Fix text-shadow in WebVTT not working ([#5499](https://github.com/shaka-project/shaka-player/issues/5499)) ([d78547a](https://github.com/shaka-project/shaka-player/commit/d78547a79b8356b6040dbc73d922b1b87822b541))
|
|
21
|
+
|
|
22
|
+
## [4.3.8](https://github.com/shaka-project/shaka-player/compare/v4.3.7...v4.3.8) (2023-07-21)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* **DASH:** Avoid "Possible encoding problem detected!" when appending chunked data ([#5376](https://github.com/shaka-project/shaka-player/issues/5376)) ([6ea1b0f](https://github.com/shaka-project/shaka-player/commit/6ea1b0f69fd946ee3011e3f5c60afb7a4bc787f2))
|
|
28
|
+
* **Demo:** Trim custom manifestUri to avoid copy-paste errors ([#5378](https://github.com/shaka-project/shaka-player/issues/5378)) ([8cc4ad9](https://github.com/shaka-project/shaka-player/commit/8cc4ad9bc75ab35906963108677b7e8ddd102408))
|
|
29
|
+
* Dispatch all emsg boxes, even if they are ID3 ([#5428](https://github.com/shaka-project/shaka-player/issues/5428)) ([dd649b9](https://github.com/shaka-project/shaka-player/commit/dd649b94683de06aa7e5c9d47dd90bdc63085c68))
|
|
30
|
+
* **docs:** fix player configuration code in drm config tutorial ([#5359](https://github.com/shaka-project/shaka-player/issues/5359)) ([89e319f](https://github.com/shaka-project/shaka-player/commit/89e319fcd1bca115f909e29206288c5e52eee3f0))
|
|
31
|
+
* **DRM:** broken keySystemsMapping due to multiple references of drmInfo ([#5388](https://github.com/shaka-project/shaka-player/issues/5388)) ([38b36fa](https://github.com/shaka-project/shaka-player/commit/38b36fa107b3f727babc04b161338333c6a10fbb))
|
|
32
|
+
* Fix captions from MP4s with multiple trun boxes ([#5422](https://github.com/shaka-project/shaka-player/issues/5422)) ([64fa19f](https://github.com/shaka-project/shaka-player/commit/64fa19f956e0f5486be253c8c7f5965fe8022d6c)), closes [#5328](https://github.com/shaka-project/shaka-player/issues/5328)
|
|
33
|
+
* Fix DASH rejection of streams with ColourPrimaries and MatrixCoefficients ([#5345](https://github.com/shaka-project/shaka-player/issues/5345)) ([78f6408](https://github.com/shaka-project/shaka-player/commit/78f6408c5b784e210d0add1a399d9c220af503eb))
|
|
34
|
+
* Fix exception on Tizen due to unsupported Array method ([#5429](https://github.com/shaka-project/shaka-player/issues/5429)) ([527af7f](https://github.com/shaka-project/shaka-player/commit/527af7f38c3cf9ecd1355706203c8c075523e0e2))
|
|
35
|
+
* Fix failure when drivers lag behind browser ([#5423](https://github.com/shaka-project/shaka-player/issues/5423)) ([98e2c3e](https://github.com/shaka-project/shaka-player/commit/98e2c3e857ed2da3e0b6139b9da64244b67db788))
|
|
36
|
+
* Gap jump at start when first jump lands in a new gap ([#5408](https://github.com/shaka-project/shaka-player/issues/5408)) ([9cb92eb](https://github.com/shaka-project/shaka-player/commit/9cb92eb96ec38a7eec7604210fcff74d6ec5dff5))
|
|
37
|
+
* gap jumping when gap exists at start position ([#5384](https://github.com/shaka-project/shaka-player/issues/5384)) ([c1a94ba](https://github.com/shaka-project/shaka-player/commit/c1a94baae7505c362be26062923a8fa938e47095))
|
|
38
|
+
* **HLS:** Add subtitle role when there are no roles ([#5357](https://github.com/shaka-project/shaka-player/issues/5357)) ([49e3734](https://github.com/shaka-project/shaka-player/commit/49e3734870122ca633e6089e7ef4fab0e28e1a0a))
|
|
39
|
+
* **HLS:** Fix dvh1 and dvhe detection as video codec ([#5364](https://github.com/shaka-project/shaka-player/issues/5364)) ([1181a35](https://github.com/shaka-project/shaka-player/commit/1181a35c01a02d5a3985a29c987dc6a0573bf91b))
|
|
40
|
+
* **HLS:** Ignore segments with zero duration ([#5371](https://github.com/shaka-project/shaka-player/issues/5371)) ([7b46edd](https://github.com/shaka-project/shaka-player/commit/7b46eddc9df497964fb66fef600d296fc6b80bbd))
|
|
41
|
+
* **media:** Fix region checking in livestreams ([#5361](https://github.com/shaka-project/shaka-player/issues/5361)) ([b77a947](https://github.com/shaka-project/shaka-player/commit/b77a94773dc4675b21e6c9c8ab937d5347d70411)), closes [#5213](https://github.com/shaka-project/shaka-player/issues/5213)
|
|
42
|
+
* Populate HDR correctly ([#5369](https://github.com/shaka-project/shaka-player/issues/5369)) ([be65280](https://github.com/shaka-project/shaka-player/commit/be652801cc3b94345d2676820c178a8716ad04e5))
|
|
43
|
+
* prevent access to null config_ in SimpleAbrManager ([#5362](https://github.com/shaka-project/shaka-player/issues/5362)) ([e6f69fb](https://github.com/shaka-project/shaka-player/commit/e6f69fb61be123ac7306580558000ae8c40ef564))
|
|
44
|
+
* **UI:** Fix resolution selection on src= ([#5367](https://github.com/shaka-project/shaka-player/issues/5367)) ([5118b24](https://github.com/shaka-project/shaka-player/commit/5118b2444cfa061f7ec275fc0cd3ac8cd493bc90))
|
|
45
|
+
* **WebVTT:** Add support to middle position ([#5366](https://github.com/shaka-project/shaka-player/issues/5366)) ([5fc095c](https://github.com/shaka-project/shaka-player/commit/5fc095cd72e7f4a710a6eec9b92723872283afdf))
|
|
46
|
+
|
|
3
47
|
## [4.3.7](https://github.com/shaka-project/shaka-player/compare/v4.3.6...v4.3.7) (2023-06-21)
|
|
4
48
|
|
|
5
49
|
|
package/CONTRIBUTORS
CHANGED
package/demo/custom.js
CHANGED
|
@@ -567,7 +567,7 @@ shakaDemo.Custom = class {
|
|
|
567
567
|
this.manifestField_ = input;
|
|
568
568
|
};
|
|
569
569
|
const manifestOnChange = (input) => {
|
|
570
|
-
assetInProgress.manifestUri = input.value;
|
|
570
|
+
assetInProgress.manifestUri = input.value.trim();
|
|
571
571
|
};
|
|
572
572
|
const manifestURLName = shakaDemoMain.getLocalizedString(
|
|
573
573
|
shakaDemo.MessageIds.MANIFEST_URL);
|
|
@@ -250,8 +250,8 @@ this.makeField_(c,d,(e,f)=>{a.imaManifestType&&(e.value=a.imaManifestType);this.
|
|
|
250
250
|
h);k&&a.licenseServers.set(k,h)}else a.licenseServers.clear()};var g=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.LICENSE_SERVER_URL);this.makeField_(c,g,(h,k)=>{d=h;(k=a.licenseServers.keys().next())&&k.value&&(h.value=a.licenseServers.get(k.value))},h=>{f()});g=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.LICENSE_CERTIFICATE_URL);this.makeField_(c,g,(h,k)=>{a.certificateUri&&(h.value=a.certificateUri)},h=>{a.certificateUri=h.value});g=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.DRM_SYSTEM);
|
|
251
251
|
this.makeField_(c,g,(h,k)=>{e=h;k=a.licenseServers.keys();for(const l of k)if(!shakaDemo.Main.commonDrmSystems.includes(l)){h.value=l;break}},h=>{f()});return b}makeAssetDialogContentsExtra_(a,b){const c=document.createElement("div"),d=new shakaDemo.InputContainer(c,null,shakaDemo.InputContainer.Style.FLEX,null);d.getClassList().add("wide-input");d.setDefaultRowClass("wide-input");const e=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.EXTRA_SHAKA_PLAYER_CONFIG);this.makeField_(d,e,(f,g)=>{f.setAttribute("rows",
|
|
252
252
|
10);a.extraConfig&&(f.value=JSON.stringify(a.extraConfig,null,2));b.push(f);f=document.createElement("span");f.classList.add("mdl-textfield__error");f.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.INVALID_JSON_CONFIG_ERROR);g.appendChild(f)},(f,g)=>{try{if(f.value){const h=JSON.parse(f.value);a.extraConfig=h}else a.extraConfig=null;g.setValid(!0)}catch(h){g.setValid(!1)}},!0);return c}makeAssetDialogContentsMain_(a,b,c){const d=document.createElement("div"),e=new shakaDemo.InputContainer(d,
|
|
253
|
-
null,shakaDemo.InputContainer.Style.VERTICAL,null);var f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.MANIFEST_URL);this.makeField_(e,f,(g,h)=>{g.value=a.manifestUri;b.push(g);const k=document.createElement("span");k.classList.add("mdl-textfield__error");k.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.MANIFEST_URL_ERROR);h.appendChild(k);g.required=this.checkManifestRequired_(a);g.pattern="^(?!([\r\n\t\f\v ]+)$).*$";this.manifestField_=g},g=>{a.manifestUri=g.value});
|
|
254
|
-
shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.NAME);this.makeField_(e,f,(g,h)=>{g.value=a.name;b.push(g);const k=document.createElement("span");k.classList.add("mdl-textfield__error");k.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.NAME_ERROR);h.appendChild(k);g.required=!0;g.pattern="^(?!( *";for(const l of this.assets_)l!=a&&(g.pattern+="|"+l.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));g.pattern+=")$).*$"},g=>{a.name=g.value});f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.ICON_URL);
|
|
253
|
+
null,shakaDemo.InputContainer.Style.VERTICAL,null);var f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.MANIFEST_URL);this.makeField_(e,f,(g,h)=>{g.value=a.manifestUri;b.push(g);const k=document.createElement("span");k.classList.add("mdl-textfield__error");k.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.MANIFEST_URL_ERROR);h.appendChild(k);g.required=this.checkManifestRequired_(a);g.pattern="^(?!([\r\n\t\f\v ]+)$).*$";this.manifestField_=g},g=>{a.manifestUri=g.value.trim()});
|
|
254
|
+
f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.NAME);this.makeField_(e,f,(g,h)=>{g.value=a.name;b.push(g);const k=document.createElement("span");k.classList.add("mdl-textfield__error");k.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.NAME_ERROR);h.appendChild(k);g.required=!0;g.pattern="^(?!( *";for(const l of this.assets_)l!=a&&(g.pattern+="|"+l.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));g.pattern+=")$).*$"},g=>{a.name=g.value});f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.ICON_URL);
|
|
255
255
|
this.makeField_(e,f,(g,h)=>{a.iconUri&&(g.value=a.iconUri,h=document.createElement("img"),h.src=g.value,h.alt="",c.appendChild(h))},g=>{shaka.util.Dom.removeAllChildren(c);if(a.iconUri=g.value){const h=document.createElement("img");h.src=g.value;h.alt="";c.appendChild(h)}});f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.MIME_TYPE);this.makeField_(e,f,(g,h)=>{a.mimeType&&(g.value=a.mimeType)},g=>{a.mimeType=g.value||null});return d}checkManifestRequired_(a){return!(a.imaContentSrcId&&a.imaVideoId||
|
|
256
256
|
null!=a.imaAssetKey)}makeAssetDialogContentsFinish_(a,b){const c=document.createElement("tr"),d=shakaDemo.Custom.ButtonStyle_.RAISED;var e=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.SAVE_BUTTON);c.appendChild(this.makeButton_(e,d,()=>{for(const f of b)if(!f.validity.valid)return;shakaDemoMain.setupOfflineSupport(a);this.assets_.add(a);this.saveAssetInfos_(this.assets_);this.remakeSavedList_();this.dialog_.close()}));e=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.CANCEL_BUTTON);
|
|
257
257
|
c.appendChild(this.makeButton_(e,d,()=>{this.dialog_.close()}));return c}showAssetDialog_(a){shaka.util.Dom.removeAllChildren(this.dialog_);var b=[];const c=document.createElement("div"),d=this.makeAssetDialogContentsMain_(a,b,c),e=this.makeAssetDialogContentsDrm_(a,b),f=this.makeAssetDialogContentsHeaders_(a,b),g=this.makeAssetDialogContentsAds_(a,b),h=this.makeAssetDialogContentsHLS_(a,b),k=this.makeAssetDialogContentsExtra_(a,b);a=this.makeAssetDialogContentsFinish_(a,b);const l=document.createElement("tr"),
|