shaka-player 3.3.9 → 3.3.11

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 (40) hide show
  1. package/.github/workflows/build-and-test.yaml +31 -16
  2. package/.github/workflows/custom-actions/set-commit-status/action.yaml +1 -5
  3. package/.github/workflows/deflake.yaml +28 -0
  4. package/.github/workflows/selenium-lab-tests.yaml +168 -54
  5. package/AUTHORS +3 -0
  6. package/CHANGELOG.md +22 -0
  7. package/CONTRIBUTORS +2 -0
  8. package/dist/controls.css +1 -1
  9. package/dist/controls.css.map +1 -1
  10. package/dist/locales.js +32 -32
  11. package/dist/shaka-player.compiled.debug.js +112 -111
  12. package/dist/shaka-player.compiled.debug.map +3 -3
  13. package/dist/shaka-player.compiled.js +548 -547
  14. package/dist/shaka-player.compiled.map +3 -3
  15. package/dist/shaka-player.ui.debug.js +176 -175
  16. package/dist/shaka-player.ui.debug.map +3 -3
  17. package/dist/shaka-player.ui.js +665 -664
  18. package/dist/shaka-player.ui.map +3 -3
  19. package/docs/jsdoc-template/publish.js +33 -0
  20. package/docs/jsdoc-template/tmpl/container.tmpl +4 -1
  21. package/docs/jsdoc.conf.json +1 -0
  22. package/lib/cast/cast_sender.js +39 -14
  23. package/lib/cea/cea608_memory.js +4 -0
  24. package/lib/media/streaming_engine.js +41 -4
  25. package/lib/player.js +7 -1
  26. package/lib/text/ttml_text_parser.js +6 -0
  27. package/lib/text/ui_text_displayer.js +8 -0
  28. package/lib/util/platform.js +34 -0
  29. package/lib/util/stream_utils.js +2 -1
  30. package/maintained-branches.md +2 -2
  31. package/package.json +1 -1
  32. package/test/cea/cea608_memory_unit.js +88 -0
  33. package/test/media/streaming_engine_integration.js +8 -7
  34. package/test/offline/offline_integration.js +3 -3
  35. package/test/player_src_equals_integration.js +2 -0
  36. package/test/test/assets/small.mp4 +0 -0
  37. package/test/test/util/ttml_utils.js +0 -2
  38. package/test/text/ttml_text_parser_unit.js +46 -0
  39. package/test/ui/text_displayer_layout_unit.js +17 -2
  40. package/ui/less/ad_controls.less +4 -0
@@ -41,9 +41,11 @@ jobs:
41
41
  include:
42
42
  # Run Linux browsers with xvfb, so they're in a headless X session.
43
43
  # Additionally, generate a code coverage report from Linux Chrome.
44
+ # It should be the uncompiled build, or else we won't execute any
45
+ # coverage instrumentation on full-stack player integration tests.
44
46
  - os: ubuntu-latest
45
47
  browser: Chrome
46
- extra_flags: "--use-xvfb --html-coverage-report"
48
+ extra_flags: "--use-xvfb --html-coverage-report --uncompiled"
47
49
  - os: ubuntu-latest
48
50
  browser: Firefox
49
51
  extra_flags: "--use-xvfb"
@@ -57,7 +59,7 @@ jobs:
57
59
  - os: macos-latest
58
60
  browser: Safari
59
61
  - os: macos-latest
60
- browser: Safari-14
62
+ browser: Safari-old
61
63
 
62
64
  - os: windows-latest
63
65
  browser: Chrome
@@ -87,21 +89,22 @@ jobs:
87
89
  with:
88
90
  ref: ${{ github.event.inputs.ref || github.ref }}
89
91
 
90
- # Safari 14 can be installed, but not to the root, and it can't replace
91
- # the standard version, at least not on GitHub's VMs. If you try to
92
- # install directly to the root with sudo, it will appear to succeed, but
93
- # will have no effect. If you try to script it explicitly with rm -rf
94
- # and cp, this will fail. Safari may be on a read-only filesystem.
95
- - name: Install Safari 14 to home directory
96
- if: matrix.os == 'macos-latest' && matrix.browser == 'Safari-14'
92
+ # Older versions of Safari can be installed, but not to the root, and it
93
+ # can't replace the standard version, at least not on GitHub's VMs. If
94
+ # you try to install directly to the root with sudo, it will appear to
95
+ # succeed, but will have no effect. If you try to script it explicitly
96
+ # with rm -rf and cp, this will fail. Safari may be on a read-only
97
+ # filesystem.
98
+ - name: Install old Safari to home directory
99
+ if: matrix.os == 'macos-latest' && matrix.browser == 'Safari-old'
97
100
  run: |
98
- # Download Safari 14
99
- # See also https://www.macupdate.com/app/mac/15675/apple-safari/old-versions
100
- curl -Lv https://www.macupdate.com/action/download/62946 > Safari14.0CatalinaAuto.pkg.zip
101
+ # Download Safari 15
102
+ # This URL discovered through the seed files listed at
103
+ # https://github.com/zhangyoufu/swscan.apple.com/blob/master/url.txt
104
+ curl -Lv http://swcdn.apple.com/content/downloads/42/33/012-57329-A_41P2VU6UHN/5fw5vna27fdw4mqfak5adj3pjpxvo9hgh7/Safari15.6.1CatalinaAuto.pkg > Safari.pkg
101
105
 
102
- # Install Safari 14 to homedir specifically.
103
- unzip Safari14.0CatalinaAuto.pkg.zip
104
- installer -pkg Safari14.0CatalinaAuto.pkg -target CurrentUserHomeDirectory
106
+ # Install older Safari to homedir specifically.
107
+ installer -pkg Safari.pkg -target CurrentUserHomeDirectory
105
108
 
106
109
  # Install a launcher that can execute a shell script to launch this
107
110
  npm install karma-script-launcher --save-dev
@@ -114,7 +117,7 @@ jobs:
114
117
  run: |
115
118
  browser=${{ matrix.browser }}
116
119
 
117
- if [[ "$browser" == "Safari-14" ]]; then
120
+ if [[ "$browser" == "Safari-old" ]]; then
118
121
  # Replace the browser name with a script that can launch this
119
122
  # browser from the command line.
120
123
  browser="$PWD/.github/workflows/safari-homedir-launcher.sh"
@@ -165,6 +168,18 @@ jobs:
165
168
  # an environment variable set, the file should definitely be there.
166
169
  if-no-files-found: error
167
170
 
171
+ # Upload new screenshots and diffs on failure; ignore if missing
172
+ - name: Upload screenshots
173
+ uses: actions/upload-artifact@v3
174
+ if: ${{ failure() }}
175
+ with:
176
+ name: screenshots-${{ matrix.browser }}
177
+ path: |
178
+ test/test/assets/screenshots/*/*.png-new
179
+ test/test/assets/screenshots/*/*.png-diff
180
+ if-no-files-found: ignore
181
+ retention-days: 5
182
+
168
183
  build_in_docker:
169
184
  # Don't waste time doing a full matrix of test runs when there was an
170
185
  # obvious linter error.
@@ -11,10 +11,6 @@ inputs:
11
11
  state:
12
12
  description: Either "pending", "error", "success", or "failure".
13
13
  required: true
14
- ref:
15
- description: A git ref for which to set the commit status. For PRs, use the head commit, not the merge commit. Defaults to HEAD.
16
- required: false
17
- default: HEAD
18
14
  token:
19
15
  description: A GitHub access token.
20
16
  required: true
@@ -30,7 +26,7 @@ runs:
30
26
  # next to the status on the PR, it will link to this run where they can
31
27
  # see the logs.
32
28
  RUN_URL="https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}"
33
- SHA1=$(git rev-parse "${{ inputs.ref }}")
29
+ SHA1=$(git rev-parse HEAD)
34
30
 
35
31
  GITHUB_TOKEN=${{ inputs.token }} \
36
32
  gh api \
@@ -0,0 +1,28 @@
1
+ name: Deflake Tests
2
+
3
+ # Runs when the Selenum nightly test workflow completes. This will run with
4
+ # full privileges, even if the other workflow doesn't. That allows us to
5
+ # trigger re-runs if we think the results might be flaky.
6
+ on:
7
+ workflow_run:
8
+ workflows: [Selenium Lab Tests]
9
+ types: [completed]
10
+
11
+ jobs:
12
+ deflake:
13
+ if: ${{ github.event.workflow_run.event == 'schedule' && github.event.workflow_run.conclusion == 'failure' }}
14
+ runs-on: ubuntu-latest
15
+
16
+ steps:
17
+ - name: Check run count and re-run workflow
18
+ env:
19
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
20
+ run: |
21
+ gh api /repos/${{ github.repository }}/actions/runs/${{ github.event.workflow_run.id }} > run.json
22
+ RUNS=$(jq -r .run_attempt < run.json)
23
+ if [[ "$RUNS" -lt 3 ]]; then
24
+ echo "$RUNS failed runs so far; re-running workflow."
25
+ gh run rerun ${{ github.event.workflow_run.id }} --failed -R ${{ github.repository }}
26
+ else
27
+ echo "$RUNS failed runs so far; not re-running workflow."
28
+ fi
@@ -17,101 +17,215 @@ on:
17
17
  concurrency: selenium-lab
18
18
 
19
19
  jobs:
20
- lab-tests:
21
- # This is a self-hosted runner in a Docker container, with access to our
22
- # lab's Selenium grid on port 4444.
23
- runs-on: self-hosted-selenium
20
+ compute-ref:
21
+ name: Compute ref
22
+ runs-on: ubuntu-latest
23
+ outputs:
24
+ REF: ${{ steps.compute.outputs.REF }}
24
25
 
25
26
  steps:
26
- # This runs on our self-hosted runner, and the Docker image it is based
27
- # on doesn't have GitHub's CLI pre-installed. This installs it. Taken
28
- # verbatim from the official installation instructions at
29
- # https://github.com/cli/cli/blob/trunk/docs/install_linux.md
30
- - name: Install GitHub Actions CLI
31
- run: |
32
- curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
33
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
34
- sudo apt update
35
- sudo apt install gh
36
-
37
27
  - name: Compute ref
28
+ id: compute
38
29
  run: |
39
30
  if [[ "${{ github.event.inputs.pr }}" != "" ]]; then
40
- echo LAB_TEST_REF="refs/pull/${{ github.event.inputs.pr }}/head" >> $GITHUB_ENV
31
+ LAB_TEST_REF="refs/pull/${{ github.event.inputs.pr }}/head"
41
32
  else
42
- echo LAB_TEST_REF="main" >> $GITHUB_ENV
33
+ LAB_TEST_REF="main"
43
34
  fi
35
+ echo "::set-output name=REF::$LAB_TEST_REF"
36
+
37
+ # Configure the build matrix based on our grid's YAML config.
38
+ # The matrix contents will be computed by this first job and deserialized
39
+ # into the second job's config.
40
+ matrix-config:
41
+ name: Matrix config
42
+ needs: compute-ref
43
+ runs-on: ubuntu-latest
44
+ outputs:
45
+ INCLUDE: ${{ steps.configure.outputs.INCLUDE }}
46
+
47
+ steps:
48
+ - uses: actions/checkout@v2
49
+ with:
50
+ ref: ${{ needs.compute-ref.outputs.REF }}
51
+
52
+ - name: Install dependencies
53
+ run: npm ci
54
+
55
+ - name: Configure build matrix
56
+ id: configure
57
+ shell: node {0}
58
+ run: |
59
+ const fs = require('fs');
60
+ const yaml = require(
61
+ '${{ github.workspace }}/node_modules/js-yaml/index.js');
62
+
63
+ const gridBrowserYaml =
64
+ fs.readFileSync('build/shaka-lab.yaml', 'utf8');
65
+ const gridBrowserMetadata = yaml.load(gridBrowserYaml);
66
+
67
+ const include = [];
68
+
69
+ for (const name in gridBrowserMetadata) {
70
+ if (name == 'vars') {
71
+ // Skip variable defs in the YAML file
72
+ continue;
73
+ }
74
+ if (!gridBrowserMetadata[name].disabled) {
75
+ include.push({browser: name});
76
+ }
77
+ }
78
+
79
+ // Output JSON object consumed by the build matrix below.
80
+ console.log(`::set-output name=INCLUDE::${ JSON.stringify(include) }`);
81
+
82
+ // Log the output, for the sake of debugging this script.
83
+ console.log({include});
84
+
85
+ # Build Shaka Player once, then distribute that build to the runners in the
86
+ # build matrix. For N runners, runs N times faster (since all the
87
+ # self-hosted Selenium jobs are run in containers on one machine).
88
+ build-shaka:
89
+ name: Pre-build Player
90
+ needs: compute-ref
91
+ runs-on: ubuntu-latest
92
+ steps:
93
+ - uses: actions/checkout@v2
94
+ with:
95
+ ref: ${{ needs.compute-ref.outputs.REF }}
96
+
97
+ - name: Set commit status to pending
98
+ uses: ./.github/workflows/custom-actions/set-commit-status
99
+ with:
100
+ context: Selenium / Build
101
+ state: pending
102
+ token: ${{ secrets.GITHUB_TOKEN }}
103
+
104
+ - name: Build Player
105
+ run: python3 build/all.py
44
106
 
107
+ - name: Store Player build
108
+ uses: actions/upload-artifact@v3
109
+ with:
110
+ name: shaka-player
111
+ path: dist/
112
+ retention-days: 1
113
+
114
+ - name: Report final commit status
115
+ # Will run on success or failure, but not if the workflow is cancelled.
116
+ if: ${{ success() || failure() }}
117
+ uses: ./.github/workflows/custom-actions/set-commit-status
118
+ with:
119
+ context: Selenium / Build
120
+ state: ${{ job.status }}
121
+ token: ${{ secrets.GITHUB_TOKEN }}
122
+
123
+ lab-tests:
124
+ # This is a self-hosted runner in a Docker container, with access to our
125
+ # lab's Selenium grid on port 4444.
126
+ runs-on: self-hosted-selenium
127
+ needs: [compute-ref, build-shaka, matrix-config]
128
+ strategy:
129
+ fail-fast: false
130
+ matrix:
131
+ include: ${{ fromJSON(needs.matrix-config.outputs.INCLUDE) }}
132
+ name: ${{ matrix.browser }}
133
+
134
+ steps:
45
135
  - uses: actions/checkout@v2
46
136
  with:
47
- ref: ${{ env.LAB_TEST_REF }}
137
+ ref: ${{ needs.compute-ref.outputs.REF }}
48
138
 
49
- - name: Set Commit Status to Pending
139
+ - name: Set commit status to pending
50
140
  uses: ./.github/workflows/custom-actions/set-commit-status
51
141
  with:
52
- context: Selenium Lab Tests
142
+ context: Selenium / ${{ matrix.browser }}
53
143
  state: pending
54
144
  token: ${{ secrets.GITHUB_TOKEN }}
55
145
 
56
- - uses: actions/setup-node@v1
146
+ - uses: actions/setup-node@v3
57
147
  with:
58
148
  node-version: 16
59
149
  registry-url: 'https://registry.npmjs.org'
60
150
 
61
151
  # The Docker image for this self-hosted runner doesn't contain java.
62
- - uses: actions/setup-java@v2
152
+ - uses: actions/setup-java@v3
63
153
  with:
64
154
  distribution: zulu
65
155
  java-version: 11
66
156
 
67
- # The Docker image for this self-hosted runner has "python3" but not
68
- # plain "python".
69
- - name: Build Player
70
- run: python3 build/all.py
157
+ - name: Cache dependencies
158
+ uses: actions/cache@v3
159
+ id: npm-cache
160
+ with:
161
+ path: node_modules/
162
+ key: node-${{ hashFiles('package-lock.json') }}
163
+
164
+ - name: Install dependencies
165
+ if: steps.npm-cache.outputs.cache-hit != 'true'
166
+ run: npm ci
167
+
168
+ # Instead of building Shaka N times, build it once and fetch the build to
169
+ # each Selenium runner in the matrix.
170
+ - name: Fetch Player build
171
+ uses: actions/download-artifact@v3
172
+ with:
173
+ name: shaka-player
174
+ path: dist/
71
175
 
72
176
  # Run tests on the Selenium grid in our lab. This uses a private
73
177
  # hostname and TLS cert to get EME tests working on all platforms
74
- # (since EME only works on https or localhost).
178
+ # (since EME only works on https or localhost). The variable KARMA_PORT
179
+ # must be defined by the self-hosted runner, and mapped from the host to
180
+ # the container.
75
181
  - name: Test Player
76
182
  run: |
183
+ # Generate a coverage report from uncompiled code on ChromeLinux.
184
+ # It should be the uncompiled build, or else we won't execute any
185
+ # coverage instrumentation on full-stack player integration tests.
186
+ if [[ "${{ matrix.browser }}" == "ChromeLinux" ]]; then
187
+ extra_flags="--html-coverage-report --uncompiled"
188
+ else
189
+ extra_flags=""
190
+ fi
191
+
77
192
  python3 build/test.py \
193
+ --no-build \
78
194
  --reporters spec --spec-hide-passed \
79
195
  --lets-encrypt-folder /etc/shakalab.rocks \
80
196
  --hostname karma.shakalab.rocks \
81
- --port 61731 \
197
+ --port $KARMA_PORT \
82
198
  --grid-config build/shaka-lab.yaml \
83
199
  --grid-address selenium-grid.lab:4444 \
84
- --html-coverage-report
200
+ --browsers ${{ matrix.browser }} \
201
+ $extra_flags
85
202
 
86
- - name: Find coverage report
203
+ - name: Find coverage report (ChromeLinux only)
87
204
  id: coverage
88
- if: always() # Even on failure of an earlier step.
205
+ # Run even if an earlier step fails, but only on ChromeLinux.
206
+ if: ${{ always() && matrix.browser == 'ChromeLinux' }}
89
207
  shell: bash
90
208
  run: |
91
- # If the directory exists...
92
- if [ -d coverage ]; then
93
- # Find the path to the coverage report specifically for Chrome on
94
- # Linux. It includes the exact browser version in the path, so it
95
- # will vary. Having a single path will make the artifact zip
96
- # simpler, whereas using a wildcard in the upload step will result
97
- # in a zip file with internal directories.
98
- coverage_report="$( (ls coverage/Chrome*Linux*/coverage.json || true) | head -1 )"
99
-
100
- # Show what's there, for debugging purposes.
101
- ls -l coverage/
102
-
103
- if [ -f "$coverage_report" ]; then
104
- echo "Found coverage report: $coverage_report"
105
- echo "::set-output name=coverage_report::$coverage_report"
106
- else
107
- echo "Could not locate coverage report!"
108
- exit 1
109
- fi
209
+ # Find the path to the coverage report specifically for Chrome on
210
+ # Linux. It includes the exact browser version in the path, so it
211
+ # will vary. Having a single path will make the artifact zip
212
+ # simpler, whereas using a wildcard in the upload step will result
213
+ # in a zip file with internal directories.
214
+ coverage_report="$( (ls coverage/Chrome*Linux*/coverage.json || true) | head -1 )"
215
+
216
+ # Show what's there, for debugging purposes.
217
+ ls -l coverage/
218
+
219
+ if [ -f "$coverage_report" ]; then
220
+ echo "Found coverage report: $coverage_report"
221
+ echo "::set-output name=coverage_report::$coverage_report"
110
222
  else
111
- echo "No coverage report generated."
223
+ echo "Could not locate coverage report!"
224
+ exit 1
112
225
  fi
113
226
 
114
- - uses: actions/upload-artifact@v3
227
+ - name: Upload coverage report (ChromeLinux only)
228
+ uses: actions/upload-artifact@v3
115
229
  # If there's a coverage report, upload it, even if a previous step
116
230
  # failed.
117
231
  if: ${{ always() && steps.coverage.outputs.coverage_report }}
@@ -125,11 +239,11 @@ jobs:
125
239
  # there.
126
240
  if-no-files-found: error
127
241
 
128
- - name: Report Final Commit Status
242
+ - name: Report final commit status
129
243
  # Will run on success or failure, but not if the workflow is cancelled.
130
244
  if: ${{ success() || failure() }}
131
245
  uses: ./.github/workflows/custom-actions/set-commit-status
132
246
  with:
133
- context: Selenium Lab Tests
247
+ context: Selenium / ${{ matrix.browser }}
134
248
  state: ${{ job.status }}
135
249
  token: ${{ secrets.GITHUB_TOKEN }}
package/AUTHORS CHANGED
@@ -68,6 +68,8 @@ Rostislav Hejduk <Ross-cz@users.noreply.github.com>
68
68
  SameGoal Inc. <*@samegoal.com>
69
69
  Sanborn Hilland <sanbornh@rogers.com>
70
70
  Sander Saares <sander@saares.eu>
71
+ Sanil Raut <sr1990003@gmail.com>
72
+ Seongryun Jo <ocipap0531@gmail.com>
71
73
  Swank Motion Pictures Inc. <*@swankmp.com>
72
74
  TalkTalk Plc <*@talktalkplc.com>
73
75
  Tatsiana Gelahova <tatsiana.gelahova@gmail.com>
@@ -80,3 +82,4 @@ ViacomCBS <*@viacomcbs.com>
80
82
  Vincent Valot <valot.vince@gmail.com>
81
83
  Wayne Morgan <wayne.morgan.dev@gmail.com>
82
84
  Raymond Cheng <raycheng100@gmail.com>
85
+ Blue Billywig <*@bluebillywig.com>
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.3.11](https://github.com/shaka-project/shaka-player/compare/v3.3.10...v3.3.11) (2022-10-07)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * allow build without text ([#4506](https://github.com/shaka-project/shaka-player/issues/4506)) ([5014c1d](https://github.com/shaka-project/shaka-player/commit/5014c1d50d2b612bf741f2736cf5f86522f4285b))
9
+ * allow the playback on platforms when low latency APIs are not supported ([#4485](https://github.com/shaka-project/shaka-player/issues/4485)) ([c0fc0b4](https://github.com/shaka-project/shaka-player/commit/c0fc0b4dcaa8d3d6db2782a987e74ebe9064ea53))
10
+ * check for negative rows before moving ([#4510](https://github.com/shaka-project/shaka-player/issues/4510)) ([359b63e](https://github.com/shaka-project/shaka-player/commit/359b63e5c9665a1884daf95aa1cba7c8470ed7bb)), closes [#4508](https://github.com/shaka-project/shaka-player/issues/4508)
11
+ * Filter unsupported H.264 streams in Xbox ([#4493](https://github.com/shaka-project/shaka-player/issues/4493)) ([21ee94f](https://github.com/shaka-project/shaka-player/commit/21ee94fce4daa624561989600f47170c468bf962))
12
+ * Fix hang when seeking to the last segment ([#4537](https://github.com/shaka-project/shaka-player/issues/4537)) ([2868e12](https://github.com/shaka-project/shaka-player/commit/2868e122eb5bc2db57ca96c429ad8178f7f5e3f4))
13
+ * Respect existing app usage of Cast SDK ([#4523](https://github.com/shaka-project/shaka-player/issues/4523)) ([d2258d6](https://github.com/shaka-project/shaka-player/commit/d2258d60fab218738bfa6f80b675e65b9a7994dc)), closes [#4521](https://github.com/shaka-project/shaka-player/issues/4521)
14
+ * **ttml:** Default TTML background color to transparent if unspecified ([#4496](https://github.com/shaka-project/shaka-player/issues/4496)) ([862ee42](https://github.com/shaka-project/shaka-player/commit/862ee42f770b6fbd19e33fd04e98882d203caf4b)), closes [#4468](https://github.com/shaka-project/shaka-player/issues/4468)
15
+
16
+ ## [3.3.10](https://github.com/shaka-project/shaka-player/compare/v3.3.9...v3.3.10) (2022-08-31)
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * Fix bitmap-based cue size ([#4453](https://github.com/shaka-project/shaka-player/issues/4453)) ([ad52a97](https://github.com/shaka-project/shaka-player/commit/ad52a97c61be96c4022ff42939bdb766a358db69))
22
+ * return width and height in the stats when we are using src= ([#4435](https://github.com/shaka-project/shaka-player/issues/4435)) ([b6ca090](https://github.com/shaka-project/shaka-player/commit/b6ca090bda9d94781e4b7673cd2aaa443dfab7d0))
23
+ * **UI:** Ad position and ad counter are too close to each other ([#4416](https://github.com/shaka-project/shaka-player/issues/4416)) ([ed5af4a](https://github.com/shaka-project/shaka-player/commit/ed5af4a50d5557419c18b075a4b5f684bf415837))
24
+
3
25
  ## [3.3.9](https://github.com/shaka-project/shaka-player/compare/v3.3.8...v3.3.9) (2022-08-17)
4
26
 
5
27
 
package/CONTRIBUTORS CHANGED
@@ -102,6 +102,7 @@ Sander Saares <sander@saares.eu>
102
102
  Sandra Lokshina <ismena@google.com>
103
103
  Satheesh Velmurugan <satheesh@philo.com>
104
104
  Semih Gokceoglu <semih.gkcoglu@gmail.com>
105
+ Seongryun Jo <ocipap0531@gmail.com>
105
106
  Seth Madison <seth@philo.com>
106
107
  Tatsiana Gelahova <tatsiana.gelahova@gmail.com>
107
108
  Theodore Abshire <theodab@google.com>
@@ -119,3 +120,4 @@ Vincent Valot <valot.vince@gmail.com>
119
120
  Wayne Morgan <wayne.morgan.dev@gmail.com>
120
121
  Yohann Connell <robinconnell@google.com>
121
122
  Raymond Cheng <raycheng100@gmail.com>
123
+ Janroel Koppen <j.koppen@bluebillywig.com>
package/dist/controls.css CHANGED
@@ -27,7 +27,7 @@
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 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-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}.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:calc((100% - 96%)/ 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}/*!
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-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}.shaka-ad-counter,.shaka-ad-position{display:flex;justify-content:flex-end;flex-direction:column;text-shadow:1px 1px 4px #000}.shaka-ad-controls .shaka-ad-position:not(.shaka-hidden)+.shaka-ad-counter{margin-left:.75em}.shaka-skip-ad-container{position:relative;right:calc((100% - 96%)/ 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}/*!
31
31
  * @license
32
32
  * The tooltip is based on https://github.com/felipefialho/css-components/
33
33
  * Local modifications have been performed.
@@ -1 +1 @@
1
- {"version":3,"sources":["$stdin"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["$stdin"],"names":[],"mappings":"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"}
package/dist/locales.js CHANGED
@@ -720,44 +720,44 @@ shaka.ui.Locales.addTo = function(localization) {
720
720
  * @const
721
721
  */
722
722
  shaka.ui.Locales.Ids = {
723
- REPLAY: 'REPLAY',
724
- LOOP: 'LOOP',
725
- VOLUME: 'VOLUME',
726
- AIRPLAY: 'AIRPLAY',
727
- REWIND: 'REWIND',
728
- EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
729
- ON: 'ON',
730
- SKIP_TO_LIVE: 'SKIP_TO_LIVE',
731
- STATISTICS: 'STATISTICS',
732
- SKIP_AD: 'SKIP_AD',
733
- EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
734
- OFF: 'OFF',
735
723
  LANGUAGE: 'LANGUAGE',
736
- ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
737
- EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
738
- UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
739
- AD_TIME: 'AD_TIME',
740
- CAPTIONS: 'CAPTIONS',
741
724
  MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
742
- SUBTITLE_FORCED: 'SUBTITLE_FORCED',
743
- NOT_APPLICABLE: 'NOT_APPLICABLE',
744
- RESOLUTION: 'RESOLUTION',
745
- BACK: 'BACK',
746
- LIVE: 'LIVE',
747
- ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
748
- CAST: 'CAST',
749
725
  PLAYBACK_RATE: 'PLAYBACK_RATE',
750
- MORE_SETTINGS: 'MORE_SETTINGS',
751
- AUTO_QUALITY: 'AUTO_QUALITY',
752
- UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
753
- PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
754
- AD_DURATION: 'AD_DURATION',
755
- SEEK: 'SEEK',
756
- UNMUTE: 'UNMUTE',
757
726
  FAST_FORWARD: 'FAST_FORWARD',
727
+ AUTO_QUALITY: 'AUTO_QUALITY',
728
+ UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
729
+ STATISTICS: 'STATISTICS',
730
+ LIVE: 'LIVE',
758
731
  PLAY: 'PLAY',
732
+ LOOP: 'LOOP',
733
+ ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
734
+ OFF: 'OFF',
735
+ REWIND: 'REWIND',
759
736
  AD_PROGRESS: 'AD_PROGRESS',
760
- FULL_SCREEN: 'FULL_SCREEN',
737
+ UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
738
+ MORE_SETTINGS: 'MORE_SETTINGS',
761
739
  PAUSE: 'PAUSE',
740
+ SKIP_TO_LIVE: 'SKIP_TO_LIVE',
741
+ RESOLUTION: 'RESOLUTION',
742
+ FULL_SCREEN: 'FULL_SCREEN',
743
+ VOLUME: 'VOLUME',
744
+ NOT_APPLICABLE: 'NOT_APPLICABLE',
745
+ ON: 'ON',
746
+ SEEK: 'SEEK',
747
+ AIRPLAY: 'AIRPLAY',
748
+ ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
762
749
  MUTE: 'MUTE',
750
+ EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
751
+ CAPTIONS: 'CAPTIONS',
752
+ PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
753
+ EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
754
+ CAST: 'CAST',
755
+ UNMUTE: 'UNMUTE',
756
+ SKIP_AD: 'SKIP_AD',
757
+ AD_DURATION: 'AD_DURATION',
758
+ SUBTITLE_FORCED: 'SUBTITLE_FORCED',
759
+ REPLAY: 'REPLAY',
760
+ EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
761
+ AD_TIME: 'AD_TIME',
762
+ BACK: 'BACK',
763
763
  };