From 7fc27fc25c0addfb205b51aa8dbd60ea8e6bc448 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 26 Jul 2026 13:25:48 +0000 Subject: [PATCH 1/2] Bump shaka-player from 5.1.12 to 5.2.2 Bumps [shaka-player](https://github.com/shaka-project/shaka-player) from 5.1.12 to 5.2.2. - [Release notes](https://github.com/shaka-project/shaka-player/releases) - [Changelog](https://github.com/shaka-project/shaka-player/blob/v5.2.2/CHANGELOG.md) - [Commits](https://github.com/shaka-project/shaka-player/compare/v5.1.12...v5.2.2) --- updated-dependencies: - dependency-name: shaka-player dependency-version: 5.2.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 95a83c77b4a42..211fb57a1430e 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "googlevideo": "^4.1.1", "marked": "^18.0.7", "process": "^0.11.10", - "shaka-player": "^5.1.12", + "shaka-player": "^5.2.2", "swiper": "^14.0.6", "terser": "^5.49.0", "vue": "^3.5.40", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e914db44de9f0..1031a434e2ab4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,8 +51,8 @@ importers: specifier: ^0.11.10 version: 0.11.10 shaka-player: - specifier: ^5.1.12 - version: 5.1.12 + specifier: ^5.2.2 + version: 5.2.2 swiper: specifier: ^14.0.6 version: 14.0.6 @@ -4513,8 +4513,8 @@ packages: setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - shaka-player@5.1.12: - resolution: {integrity: sha512-luGIzJ/H201aY0Hobs5853vY1eRJXPHH+u3oSWiTAYoufq5s/yIbRZS1QwCsj3f3Fyxc2C3HfptfI0brjE+RIQ==} + shaka-player@5.2.2: + resolution: {integrity: sha512-1Z5Sxqz7nEAtvp4zlZKAHQSEq6cUlw5CKAdUxqmuMNeZgu23090VXMcEDdiSLU5qtMn1skFOzq+KKCVX71bHqw==} engines: {node: '>=18'} shallow-clone@3.0.1: @@ -9790,7 +9790,7 @@ snapshots: setprototypeof@1.2.0: {} - shaka-player@5.1.12: {} + shaka-player@5.2.2: {} shallow-clone@3.0.1: dependencies: From 206d4557d82030debc66edd83abdb2036510e422 Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Sun, 26 Jul 2026 15:29:53 +0200 Subject: [PATCH 2/2] Changes for shaka-player 5.2.x --- .../ft-shaka-video-player.js | 27 ++++++++++++++----- .../player-components/AudioTrackSelection.js | 20 +++++++------- .../player-components/AutoplayToggle.js | 14 ++-------- .../player-components/FullWindowButton.js | 14 ++-------- .../LegacyQualitySelection.js | 23 ++++++++-------- .../player-components/ScreenshotButton.js | 14 ++-------- 6 files changed, 48 insertions(+), 64 deletions(-) diff --git a/src/renderer/components/ft-shaka-video-player/ft-shaka-video-player.js b/src/renderer/components/ft-shaka-video-player/ft-shaka-video-player.js index acf452532b528..383207f2bd433 100644 --- a/src/renderer/components/ft-shaka-video-player/ft-shaka-video-player.js +++ b/src/renderer/components/ft-shaka-video-player/ft-shaka-video-player.js @@ -264,7 +264,8 @@ export default defineComponent({ watch(displayVideoPlayButton, (newValue) => { ui.configure({ - bigButtons: newValue ? ['play_pause'] : [] + bigButtons: newValue ? ['play_pause_buffering'] : [], + showBufferingSpinner: !newValue }) }) @@ -316,17 +317,29 @@ export default defineComponent({ return parseInt(store.getters.getMaxVideoPlaybackRate) }) + watch(maxVideoPlaybackRate, (newValue) => { + ui.configure({ + playbackRateSliderMax: newValue + }) + }) + const videoPlaybackRateInterval = computed(() => { return parseFloat(store.getters.getVideoPlaybackRateInterval) }) + watch(videoPlaybackRateInterval, (newValue) => { + ui.configure({ + playbackRateSliderMin: newValue + }) + }) + const playbackRates = computed(() => { const interval = videoPlaybackRateInterval.value const playbackRates = [] let i = interval while (i <= maxVideoPlaybackRate.value) { - playbackRates.unshift(i) + playbackRates.push(i) i += interval i = parseFloat(i.toFixed(2)) } @@ -634,7 +647,7 @@ export default defineComponent({ // Electron doesn't like YouTube's vp9 VR video streams and throws: // "CHUNK_DEMUXER_ERROR_APPEND_FAILED: Projection element is incomplete; ProjectionPoseYaw required." // So use the AV1 and h264 codecs instead which it doesn't reject - preferredVideoCodecs: typeof props.vrProjection === 'string' ? ['av01', 'avc1'] : [] + preferredVideo: typeof props.vrProjection === 'string' ? [{ codec: 'av01' }, { codec: 'avc1' }] : [] } } @@ -794,8 +807,7 @@ export default defineComponent({ 'ft_skip_previous', 'play_pause', 'ft_skip_next', - 'mute', - 'volume', + 'mute_volume', 'time_and_duration', 'spacer' ] @@ -940,8 +952,11 @@ export default defineComponent({ }, // these have their own watchers - bigButtons: displayVideoPlayButton.value ? ['play_pause'] : [], + bigButtons: displayVideoPlayButton.value ? ['play_pause_buffering'] : [], + showBufferingSpinner: !displayVideoPlayButton.value, enableFullscreenOnRotation: enterFullscreenOnDisplayRotate.value, + playbackRateSliderMax: maxVideoPlaybackRate.value, + playbackRateSliderMin: videoPlaybackRateInterval.value, playbackRates: playbackRates.value, tapSeekDistance: defaultSkipInterval.value, diff --git a/src/renderer/components/ft-shaka-video-player/player-components/AudioTrackSelection.js b/src/renderer/components/ft-shaka-video-player/player-components/AudioTrackSelection.js index 80d8352b921be..910ae972ac3af 100644 --- a/src/renderer/components/ft-shaka-video-player/player-components/AudioTrackSelection.js +++ b/src/renderer/components/ft-shaka-video-player/player-components/AudioTrackSelection.js @@ -44,21 +44,16 @@ export class AudioTrackSelection extends shaka.ui.SettingsMenu { this.updateAudioTracks_() }) - if (this.isSubMenu) { - this.eventManager.listen(this.controls, 'submenuopen', () => { - this.updateAudioTracks_() - }) - - this.eventManager.listen(this.controls, 'submenuclose', () => { - this.updateAudioTracks_() - }) - } - this.updateLocalisedStrings_() this.updateAudioTracks_() } + /** @override */ + checkAvailability() { + this.updateAudioTracks_() + } + /** * @private */ @@ -79,6 +74,7 @@ export class AudioTrackSelection extends shaka.ui.SettingsMenu { for (const track of tracks) { const button = document.createElement('button') + button.role = 'menuitemradio' button.addEventListener('click', () => { this.onAudioTrackSelected_(track) }) @@ -92,8 +88,10 @@ export class AudioTrackSelection extends shaka.ui.SettingsMenu { button.appendChild(this._checkmarkIcon) span.classList.add('shaka-chosen-item') - button.ariaSelected = 'true' + button.ariaChecked = 'true' this.currentSelection.textContent = span.textContent + } else { + button.ariaChecked = 'false' } menu.appendChild(button) diff --git a/src/renderer/components/ft-shaka-video-player/player-components/AutoplayToggle.js b/src/renderer/components/ft-shaka-video-player/player-components/AutoplayToggle.js index 6ce4988bea1f8..1d81e6fb28cee 100644 --- a/src/renderer/components/ft-shaka-video-player/player-components/AutoplayToggle.js +++ b/src/renderer/components/ft-shaka-video-player/player-components/AutoplayToggle.js @@ -62,16 +62,6 @@ export class AutoplayToggle extends shaka.ui.Element { this.updateLocalisedStrings_() }) - if (this.isSubMenu) { - this.eventManager.listen(this.controls, 'submenuopen', () => { - this.updateVisibility_() - }) - - this.eventManager.listen(this.controls, 'submenuclose', () => { - this.updateVisibility_() - }) - } - this.updateLocalisedStrings_() } @@ -86,8 +76,8 @@ export class AutoplayToggle extends shaka.ui.Element { this.button_.ariaLabel = this.autoplayEnabled_ ? i18n.global.t('Video.Player.Autoplay is on') : i18n.global.t('Video.Player.Autoplay is off') } - /** @private */ - updateVisibility_() { + /** @overide */ + checkAvailability() { if (this.isSubMenuOpened) { this.button_.classList.add('shaka-hidden') } else { diff --git a/src/renderer/components/ft-shaka-video-player/player-components/FullWindowButton.js b/src/renderer/components/ft-shaka-video-player/player-components/FullWindowButton.js index 95d462c810961..866eb4aaad302 100644 --- a/src/renderer/components/ft-shaka-video-player/player-components/FullWindowButton.js +++ b/src/renderer/components/ft-shaka-video-player/player-components/FullWindowButton.js @@ -62,16 +62,6 @@ export class FullWindowButton extends shaka.ui.Element { this.updateLocalisedStrings_() }) - if (this.isSubMenu) { - this.eventManager.listen(this.controls, 'submenuopen', () => { - this.updateVisibility_() - }) - - this.eventManager.listen(this.controls, 'submenuclose', () => { - this.updateVisibility_() - }) - } - this.updateLocalisedStrings_() } @@ -88,8 +78,8 @@ export class FullWindowButton extends shaka.ui.Element { this.nameSpan_.textContent = this.button_.ariaLabel = newLabel } - /** @private */ - updateVisibility_() { + /** @override */ + checkAvailability() { if (this.isSubMenuOpened) { this.button_.classList.add('shaka-hidden') } else { diff --git a/src/renderer/components/ft-shaka-video-player/player-components/LegacyQualitySelection.js b/src/renderer/components/ft-shaka-video-player/player-components/LegacyQualitySelection.js index b5a286c8a129b..b50ed6653a1ab 100644 --- a/src/renderer/components/ft-shaka-video-player/player-components/LegacyQualitySelection.js +++ b/src/renderer/components/ft-shaka-video-player/player-components/LegacyQualitySelection.js @@ -39,6 +39,8 @@ export class LegacyQualitySelection extends shaka.ui.SettingsMenu { for (const format of sortedLegacyFormats) { const button = document.createElement('button') + button.role = 'menuitemradio' + button.ariaChecked = 'false' button.classList.add('legacy-resolution') this.eventManager.listen(button, 'click', () => { @@ -63,17 +65,16 @@ export class LegacyQualitySelection extends shaka.ui.SettingsMenu { this.updateResolutionSelection_() }) - if (this.isSubMenu) { - this.eventManager.listen(this.controls, 'submenuopen', () => { - this.button.classList.add('shaka-hidden') - }) + this.updateResolutionSelection_() + } - this.eventManager.listen(this.controls, 'submenuclose', () => { - this.button.classList.remove('shaka-hidden') - }) + /** @overide */ + checkAvailability() { + if (this.isSubMenuOpened) { + this.button.classList.add('shaka-hidden') + } else { + this.button.classList.remove('shaka-hidden') } - - this.updateResolutionSelection_() } /** @private */ @@ -89,7 +90,7 @@ export class LegacyQualitySelection extends shaka.ui.SettingsMenu { previousSpan.classList.remove('shaka-chosen-item') const button = previousSpan.parentElement - button.ariaSelected = 'false' + button.ariaChecked = 'false' this._checkmarkIcon.remove() } @@ -100,7 +101,7 @@ export class LegacyQualitySelection extends shaka.ui.SettingsMenu { const button = this.menu.querySelectorAll('.legacy-resolution')[index] const span = button.querySelector('span') - button.ariaSelected = 'true' + button.ariaChecked = 'true' span.classList.add('shaka-chosen-item') diff --git a/src/renderer/components/ft-shaka-video-player/player-components/ScreenshotButton.js b/src/renderer/components/ft-shaka-video-player/player-components/ScreenshotButton.js index 0c083c8c6e9bf..b2084aa6e694b 100644 --- a/src/renderer/components/ft-shaka-video-player/player-components/ScreenshotButton.js +++ b/src/renderer/components/ft-shaka-video-player/player-components/ScreenshotButton.js @@ -45,16 +45,6 @@ export class ScreenshotButton extends shaka.ui.Element { this.updateLocalisedStrings_() }) - if (this.isSubMenu) { - this.eventManager.listen(this.controls, 'submenuopen', () => { - this.updateVisibility_() - }) - - this.eventManager.listen(this.controls, 'submenuclose', () => { - this.updateVisibility_() - }) - } - this.updateLocalisedStrings_() } @@ -67,8 +57,8 @@ export class ScreenshotButton extends shaka.ui.Element { this.nameSpan_.textContent = this.button_.ariaLabel = label } - /** @private */ - updateVisibility_() { + /** @override */ + checkAvailability() { if (this.isSubMenuOpened) { this.button_.classList.add('shaka-hidden') } else {