shaka-player 3.1.5 → 3.1.6

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 (47) hide show
  1. package/.github/workflows/build_and_test.yaml +73 -0
  2. package/.github/workflows/release.yaml +53 -0
  3. package/CHANGELOG.md +13 -1
  4. package/build/checkversion.py +1 -1
  5. package/build/test.py +6 -0
  6. package/dist/controls.css +1 -1
  7. package/dist/deps.js +3 -3
  8. package/dist/locales.js +29 -29
  9. package/dist/shaka-player.compiled.d.ts +2 -1
  10. package/dist/shaka-player.compiled.debug.d.ts +2 -1
  11. package/dist/shaka-player.compiled.debug.externs.js +5 -0
  12. package/dist/shaka-player.compiled.debug.js +200 -198
  13. package/dist/shaka-player.compiled.debug.map +3 -3
  14. package/dist/shaka-player.compiled.externs.js +5 -0
  15. package/dist/shaka-player.compiled.js +609 -608
  16. package/dist/shaka-player.compiled.map +3 -3
  17. package/dist/shaka-player.ui.d.ts +4 -12
  18. package/dist/shaka-player.ui.debug.d.ts +4 -12
  19. package/dist/shaka-player.ui.debug.externs.js +19 -23
  20. package/dist/shaka-player.ui.debug.js +77 -76
  21. package/dist/shaka-player.ui.debug.map +4 -4
  22. package/dist/shaka-player.ui.externs.js +19 -23
  23. package/dist/shaka-player.ui.js +901 -901
  24. package/dist/shaka-player.ui.map +2 -2
  25. package/karma.conf.js +19 -15
  26. package/lib/ads/ad_manager.js +1 -0
  27. package/lib/cast/cast_proxy.js +3 -0
  28. package/lib/cast/cast_receiver.js +3 -0
  29. package/lib/dash/dash_parser.js +31 -19
  30. package/lib/hls/manifest_text_parser.js +1 -0
  31. package/lib/media/region_observer.js +39 -33
  32. package/lib/media/region_timeline.js +17 -19
  33. package/lib/media/streaming_engine.js +1 -1
  34. package/lib/net/networking_engine.js +4 -0
  35. package/lib/offline/storage.js +10 -11
  36. package/lib/player.js +25 -9
  37. package/lib/util/fake_event_target.js +21 -1
  38. package/package.json +3 -6
  39. package/test/dash/dash_parser_live_unit.js +43 -0
  40. package/test/dash/dash_parser_manifest_unit.js +2 -1
  41. package/test/hls/hls_parser_unit.js +74 -0
  42. package/test/media/region_observer_unit.js +40 -5
  43. package/test/media/region_timeline_unit.js +40 -22
  44. package/test/test/util/util.js +10 -7
  45. package/test/ui/text_displayer_layout_unit.js +8 -7
  46. package/ui/controls.js +3 -0
  47. package/ui/localization.js +12 -36
@@ -0,0 +1,73 @@
1
+ name: Build and Test PR
2
+
3
+ on:
4
+ pull_request: # Trigger for pull requests.
5
+ types: [opened, synchronize, reopened, edited, ready_for_review]
6
+ branches:
7
+ - master
8
+ - v[0-9]*
9
+ workflow_dispatch: # Allows for manual triggering.
10
+ inputs:
11
+ ref:
12
+ description: "The ref to build and test."
13
+ required: False
14
+
15
+ jobs:
16
+ lint:
17
+ name: Lint
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - name: Checkout code
21
+ uses: actions/checkout@v2
22
+ with:
23
+ ref: ${{ github.event.inputs.ref || github.ref }}
24
+
25
+ - name: Lint
26
+ run: python build/check.py
27
+
28
+ build_and_test:
29
+ # Don't waste time doing a full matrix of test runs when there was an
30
+ # obvious linter error.
31
+ needs: lint
32
+ strategy:
33
+ matrix:
34
+ os: ["ubuntu-latest", "macos-latest", "windows-latest"]
35
+ browser: ["Chrome", "Firefox", "Edge", "Safari"]
36
+ exclude:
37
+ - os: ubuntu-latest
38
+ browser: Edge
39
+ - os: windows-latest
40
+ browser: Safari
41
+ - os: ubuntu-latest
42
+ browser: Safari
43
+ include:
44
+ # Run Linux browsers with xvfb, so they're in a headless X session.
45
+ - os: ubuntu-latest
46
+ extra_flags: "--use-xvfb"
47
+ # Disable fail-fast so that one matrix-job failing doesn't make the other
48
+ # ones end early.
49
+ fail-fast: false
50
+
51
+ name: Build and test ${{ matrix.os }} ${{ matrix.browser }}
52
+ runs-on: ${{ matrix.os }}
53
+
54
+ steps:
55
+ # Firefox on Ubuntu appears to not have the right things installed in
56
+ # the environment used by GitHub actions, so make sure that ffmpeg is
57
+ # installed. Otherwise, the browser might not support some codecs that the
58
+ # tests assume will be supported.
59
+ - name: Install FFmpeg
60
+ if: matrix.os == 'ubuntu-latest' && matrix.browser == 'Firefox'
61
+ run: sudo apt -y update && sudo apt -y install ffmpeg
62
+
63
+ - name: Checkout code
64
+ uses: actions/checkout@v2
65
+ with:
66
+ ref: ${{ github.event.inputs.ref || github.ref }}
67
+
68
+ - name: Build Player
69
+ run: python build/all.py
70
+
71
+ - name: Test Player
72
+ run: |
73
+ python build/test.py --browsers ${{ matrix.browser }} --reporters spec --spec-hide-passed --drm ${{ matrix.extra_flags }}
@@ -0,0 +1,53 @@
1
+ on:
2
+ push:
3
+ branches:
4
+ - master
5
+ - v[0-9]*
6
+
7
+ name: Release
8
+
9
+ jobs:
10
+ release:
11
+ runs-on: ubuntu-latest
12
+ outputs:
13
+ release_created: ${{ steps.release.outputs.release_created }}
14
+ tag_name: ${{ steps.release.outputs.tag_name }}
15
+ steps:
16
+ # Create/update release PR
17
+ - uses: google-github-actions/release-please-action@v3
18
+ id: release
19
+ with:
20
+ # Required input to specify the release type (node package).
21
+ release-type: node
22
+ # Make sure the player version gets updated.
23
+ extra-files: lib/player.js
24
+ # Make sure we create the PR against the correct branch.
25
+ default-branch: ${{ github.ref_name }}
26
+
27
+ # The jobs below are all conditional on a release having been created by
28
+ # someone merging the release PR. They all run in parallel.
29
+
30
+ npm:
31
+ runs-on: ubuntu-latest
32
+ needs: release
33
+ if: ${{ needs.release.outputs.release_created }}
34
+ steps:
35
+ - uses: actions/checkout@v2
36
+ - uses: actions/setup-node@v1
37
+ with:
38
+ node-version: 12
39
+ registry-url: 'https://registry.npmjs.org'
40
+ - run: npm ci
41
+ - run: npm publish
42
+ env:
43
+ NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
44
+ - run: npm pack
45
+ - uses: svenstaro/upload-release-action@483c1e56f95e88835747b1c7c60581215016cbf2
46
+ with:
47
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
48
+ tag: ${{ needs.release.outputs.tag_name }}
49
+ file: shaka-player-*.tgz
50
+ file_glob: true
51
+ overwrite: true
52
+
53
+ # TODO: Publish to appspot
package/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ # Changelog
2
+
3
+ ## [3.1.6](https://github.com/google/shaka-player/compare/v3.1.5...v3.1.6) (2022-02-17)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * Add explicit release() for FakeEventTarget ([#3950](https://github.com/google/shaka-player/issues/3950)) ([9119535](https://github.com/google/shaka-player/commit/9119535fb37fd888f07ae24e4848c5f4262b2e6f))
9
+ * Fix download of some HLS assets ([#3934](https://github.com/google/shaka-player/issues/3934)) ([b20dadb](https://github.com/google/shaka-player/commit/b20dadb7f367f0dc446094b23870d44a3ddb2416))
10
+ * Fix exception in StreamingEngine for EMSG with HLS ([#3887](https://github.com/google/shaka-player/issues/3887)) ([02030bf](https://github.com/google/shaka-player/commit/02030bf4ba7e2b14bf61bbc8d1f79f4751d69551)), closes [#3886](https://github.com/google/shaka-player/issues/3886)
11
+ * Fix memory leak in DASH live streams with inband EventStream ([#3957](https://github.com/google/shaka-player/issues/3957)) ([4389aeb](https://github.com/google/shaka-player/commit/4389aeb5212a621651741629df6d457d37dbf075))
12
+ * **HLS:** skip whitespace in attributes ([#3884](https://github.com/google/shaka-player/issues/3884)) ([fda4b80](https://github.com/google/shaka-player/commit/fda4b8046e6ce5081c58c1be8150f095010df54c))
13
+
1
14
  ## 3.1.5 (2022-01-28)
2
15
 
3
16
  Bugfixes:
@@ -4498,4 +4511,3 @@ Broken Compatibility:
4498
4511
  ## 0.1b (2014-11-21)
4499
4512
 
4500
4513
  Private beta release.
4501
-
@@ -37,7 +37,7 @@ def changelog_version():
37
37
  """Gets the version of the library from the CHANGELOG."""
38
38
  path = os.path.join(shakaBuildHelpers.get_source_base(), 'CHANGELOG.md')
39
39
  with shakaBuildHelpers.open_file(path, 'r') as f:
40
- match = re.search(r'## (.*) \(', f.read())
40
+ match = re.search(r'^###? \[(.*?)\]\(', f.read(), re.MULTILINE)
41
41
  return match.group(1) if match else ''
42
42
 
43
43
 
package/build/test.py CHANGED
@@ -229,6 +229,11 @@ class Launcher:
229
229
  default=None,
230
230
  const=2,
231
231
  nargs='?')
232
+ running_commands.add_argument(
233
+ '--spec-hide-passed',
234
+ help='If provided, configure the spec reporter to hide passing tests.',
235
+ action='store_true',
236
+ default=False)
232
237
  running_commands.add_argument(
233
238
  '--test-custom-asset',
234
239
  help='Run asset playback tests on a custom manifest URI.',
@@ -358,6 +363,7 @@ class Launcher:
358
363
  'single_run',
359
364
  'uncompiled',
360
365
  'delay_tests',
366
+ 'spec_hide_passed',
361
367
  'test_custom_asset',
362
368
  'test_custom_license_server',
363
369
  'test_timeout',
package/dist/controls.css CHANGED
@@ -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,0,0,.4);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:-2%;display:flex;flex-direction:row;margin:0}.shaka-skip-ad-button{padding:5px 15px;background:rgba(0,0,0,.7);border:none;cursor:pointer}.shaka-skip-ad-button:disabled{background:rgba(0,0,0,.3)}.shaka-skip-ad-counter{padding:5px 5px;background:rgba(0,0,0,.7);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/v94/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 */
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,.4);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:-2%;display:flex;flex-direction:row;margin:0}.shaka-skip-ad-button{padding:5px 15px;background:rgba(0,0,0,.7);border:none;cursor:pointer}.shaka-skip-ad-button:disabled{background:rgba(0,0,0,.3)}.shaka-skip-ad-counter{padding:5px 5px;background:rgba(0,0,0,.7);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/v99/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 */
package/dist/deps.js CHANGED
@@ -68,8 +68,8 @@ goog.addDependency('../../../../lib/media/play_rate_controller.js', ['shaka.medi
68
68
  goog.addDependency('../../../../lib/media/playhead.js', ['shaka.media.MediaSourcePlayhead', 'shaka.media.Playhead', 'shaka.media.SrcEqualsPlayhead'], ['goog.asserts', 'shaka.log', 'shaka.media.GapJumpingController', 'shaka.media.StallDetector', 'shaka.media.StallDetector.MediaElementImplementation', 'shaka.media.TimeRangesUtils', 'shaka.media.VideoWrapper', 'shaka.util.EventManager', 'shaka.util.IReleasable', 'shaka.util.MediaReadyState', 'shaka.util.Timer'], {});
69
69
  goog.addDependency('../../../../lib/media/playhead_observer.js', ['shaka.media.IPlayheadObserver', 'shaka.media.PlayheadObserverManager'], ['shaka.util.IReleasable', 'shaka.util.Timer'], {});
70
70
  goog.addDependency('../../../../lib/media/presentation_timeline.js', ['shaka.media.PresentationTimeline'], ['goog.asserts', 'shaka.log', 'shaka.media.SegmentReference'], {});
71
- goog.addDependency('../../../../lib/media/region_observer.js', ['shaka.media.RegionObserver'], ['shaka.media.IPlayheadObserver', 'shaka.media.RegionTimeline'], {});
72
- goog.addDependency('../../../../lib/media/region_timeline.js', ['shaka.media.RegionTimeline'], ['shaka.util.IReleasable', 'shaka.util.Timer'], {});
71
+ goog.addDependency('../../../../lib/media/region_observer.js', ['shaka.media.RegionObserver'], ['shaka.media.IPlayheadObserver', 'shaka.media.RegionTimeline', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget'], {});
72
+ goog.addDependency('../../../../lib/media/region_timeline.js', ['shaka.media.RegionTimeline'], ['shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.IReleasable', 'shaka.util.Timer'], {});
73
73
  goog.addDependency('../../../../lib/media/segment_index.js', ['shaka.media.MetaSegmentIndex', 'shaka.media.SegmentIndex', 'shaka.media.SegmentIterator'], ['goog.asserts', 'shaka.Deprecate', 'shaka.media.SegmentReference', 'shaka.util.IReleasable', 'shaka.util.Timer'], {});
74
74
  goog.addDependency('../../../../lib/media/segment_reference.js', ['shaka.media.InitSegmentReference', 'shaka.media.SegmentReference'], ['goog.asserts', 'shaka.util.ArrayUtils'], {});
75
75
  goog.addDependency('../../../../lib/media/stall_detector.js', ['shaka.media.StallDetector', 'shaka.media.StallDetector.Implementation', 'shaka.media.StallDetector.MediaElementImplementation'], ['shaka.media.TimeRangesUtils', 'shaka.util.IReleasable'], {});
@@ -149,7 +149,7 @@ goog.addDependency('../../../../lib/util/error.js', ['shaka.util.Error'], [], {}
149
149
  goog.addDependency('../../../../lib/util/event_manager.js', ['shaka.util.EventManager'], ['goog.asserts', 'shaka.util.IReleasable', 'shaka.util.MultiMap'], {});
150
150
  goog.addDependency('../../../../lib/util/fairplay_utils.js', ['shaka.util.FairPlayUtils'], ['goog.Uri', 'goog.asserts', 'shaka.util.BufferUtils', 'shaka.util.Error', 'shaka.util.StringUtils'], {});
151
151
  goog.addDependency('../../../../lib/util/fake_event.js', ['shaka.util.FakeEvent'], ['goog.asserts'], {});
152
- goog.addDependency('../../../../lib/util/fake_event_target.js', ['shaka.util.FakeEventTarget'], ['goog.asserts', 'shaka.log', 'shaka.util.FakeEvent', 'shaka.util.MultiMap'], {});
152
+ goog.addDependency('../../../../lib/util/fake_event_target.js', ['shaka.util.FakeEventTarget'], ['goog.asserts', 'shaka.log', 'shaka.util.FakeEvent', 'shaka.util.IReleasable', 'shaka.util.MultiMap'], {});
153
153
  goog.addDependency('../../../../lib/util/functional.js', ['shaka.util.Functional'], ['shaka.Deprecate'], {});
154
154
  goog.addDependency('../../../../lib/util/i_destroyable.js', ['shaka.util.IDestroyable'], [], {});
155
155
  goog.addDependency('../../../../lib/util/i_releasable.js', ['shaka.util.IReleasable'], [], {});
package/dist/locales.js CHANGED
@@ -719,43 +719,43 @@ shaka.ui.Locales.addTo = function(localization) {
719
719
  * @const
720
720
  */
721
721
  shaka.ui.Locales.Ids = {
722
- ON: 'ON',
723
- FULL_SCREEN: 'FULL_SCREEN',
724
- LANGUAGE: 'LANGUAGE',
725
- SKIP_TO_LIVE: 'SKIP_TO_LIVE',
726
- AD_DURATION: 'AD_DURATION',
727
- MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
728
- PLAYBACK_RATE: 'PLAYBACK_RATE',
729
- SEEK: 'SEEK',
730
722
  LIVE: 'LIVE',
731
- PAUSE: 'PAUSE',
732
- EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
733
723
  BACK: 'BACK',
724
+ EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
725
+ MUTE: 'MUTE',
726
+ REPLAY: 'REPLAY',
727
+ MORE_SETTINGS: 'MORE_SETTINGS',
728
+ SUBTITLE_FORCED: 'SUBTITLE_FORCED',
729
+ OFF: 'OFF',
734
730
  UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
735
- REWIND: 'REWIND',
736
731
  UNMUTE: 'UNMUTE',
737
- FAST_FORWARD: 'FAST_FORWARD',
738
- CAPTIONS: 'CAPTIONS',
739
- MORE_SETTINGS: 'MORE_SETTINGS',
740
- UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
741
- AIRPLAY: 'AIRPLAY',
742
732
  CAST: 'CAST',
743
- REPLAY: 'REPLAY',
744
- SUBTITLE_FORCED: 'SUBTITLE_FORCED',
745
- EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
746
- AUTO_QUALITY: 'AUTO_QUALITY',
747
- VOLUME: 'VOLUME',
748
- MUTE: 'MUTE',
749
- LOOP: 'LOOP',
733
+ PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
734
+ FULL_SCREEN: 'FULL_SCREEN',
735
+ ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
736
+ ON: 'ON',
737
+ CAPTIONS: 'CAPTIONS',
738
+ SEEK: 'SEEK',
739
+ AD_DURATION: 'AD_DURATION',
740
+ EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
741
+ PLAYBACK_RATE: 'PLAYBACK_RATE',
750
742
  AD_TIME: 'AD_TIME',
751
- RESOLUTION: 'RESOLUTION',
752
- ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
743
+ AUTO_QUALITY: 'AUTO_QUALITY',
753
744
  AD_PROGRESS: 'AD_PROGRESS',
754
745
  PLAY: 'PLAY',
755
- PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
746
+ RESOLUTION: 'RESOLUTION',
747
+ SKIP_TO_LIVE: 'SKIP_TO_LIVE',
748
+ UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
756
749
  NOT_APPLICABLE: 'NOT_APPLICABLE',
757
- SKIP_AD: 'SKIP_AD',
758
- OFF: 'OFF',
759
- ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
750
+ AIRPLAY: 'AIRPLAY',
751
+ LANGUAGE: 'LANGUAGE',
760
752
  EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
753
+ ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
754
+ REWIND: 'REWIND',
755
+ SKIP_AD: 'SKIP_AD',
756
+ VOLUME: 'VOLUME',
757
+ FAST_FORWARD: 'FAST_FORWARD',
758
+ PAUSE: 'PAUSE',
759
+ LOOP: 'LOOP',
760
+ MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
761
761
  };
@@ -2304,7 +2304,7 @@ declare namespace shaka.util {
2304
2304
  }
2305
2305
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.externs.js
2306
2306
  declare namespace shaka.util {
2307
- class FakeEventTarget implements EventTarget {
2307
+ class FakeEventTarget implements EventTarget , shaka.util.IReleasable {
2308
2308
  private noStructuralTyping_shaka_util_FakeEventTarget : any;
2309
2309
  /**
2310
2310
  * Add an event listener to this object.
@@ -2324,6 +2324,7 @@ declare namespace shaka.util {
2324
2324
  * @param listener The callback or listener object to invoke.
2325
2325
  */
2326
2326
  listenToAllEvents (listener : EventListener | null | ( (a : Event ) => any ) ) : any ;
2327
+ release ( ) : any ;
2327
2328
  /**
2328
2329
  * Remove an event listener from this object.
2329
2330
  * @param type The event type for which you wish to remove a listener.
@@ -2304,7 +2304,7 @@ declare namespace shaka.util {
2304
2304
  }
2305
2305
  // Generated from /usr/local/google/home/joeyparrish/hacking/shaka/clean/dist/shaka-player.compiled.debug.externs.js
2306
2306
  declare namespace shaka.util {
2307
- class FakeEventTarget implements EventTarget {
2307
+ class FakeEventTarget implements EventTarget , shaka.util.IReleasable {
2308
2308
  private noStructuralTyping_shaka_util_FakeEventTarget : any;
2309
2309
  /**
2310
2310
  * Add an event listener to this object.
@@ -2324,6 +2324,7 @@ declare namespace shaka.util {
2324
2324
  * @param listener The callback or listener object to invoke.
2325
2325
  */
2326
2326
  listenToAllEvents (listener : EventListener | null | ( (a : Event ) => any ) ) : any ;
2327
+ release ( ) : any ;
2327
2328
  /**
2328
2329
  * Remove an event listener from this object.
2329
2330
  * @param type The event type for which you wish to remove a listener.
@@ -1205,6 +1205,7 @@ shaka.util.FakeEvent = class {
1205
1205
  * EventTargets, but this can be used as a base class to provide event dispatch
1206
1206
  * to non-DOM classes. Only FakeEvents should be dispatched.
1207
1207
  * @implements {EventTarget}
1208
+ * @implements {shaka.util.IReleasable}
1208
1209
  */
1209
1210
  shaka.util.FakeEventTarget = class {
1210
1211
  /** */
@@ -1242,6 +1243,10 @@ shaka.util.FakeEventTarget = class {
1242
1243
  * @override
1243
1244
  */
1244
1245
  dispatchEvent(event) {}
1246
+ /**
1247
+ * @override
1248
+ */
1249
+ release() {}
1245
1250
  };
1246
1251
  /**
1247
1252
  * These are the listener types defined in the closure extern for EventTarget.