From 7b64a44beb955fc467885d02b9f40872a6b722c8 Mon Sep 17 00:00:00 2001 From: amarcu5 Date: Wed, 30 Aug 2017 23:18:49 +0100 Subject: [PATCH 1/4] Fixed caption flicker bug Fixed flickering of captions shown in Picture in Picture mode --- src/scripts/main.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/scripts/main.js b/src/scripts/main.js index cf0679a..8e59e84 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -127,13 +127,14 @@ const prepareCaptions = function(video) { /** * Removes visible Picture in Picture mode captions * @param {HTMLVideoElement} video - video element showing captions + * @param {boolean} workaround - apply Safari bug workaround */ -const removeCaptions = function(video) { +const removeCaptions = function(video, workaround = true) { track.mode = 'showing'; while (track.activeCues.length) track.removeCue(track.activeCues[0]); // Workaround Safari bug; 'removeCue' doesn't immediately remove captions shown in Picture in Picture mode - track.addCue(new VTTCue(video.currentTime, video.currentTime, '')); + if (workaround) track.addCue(new VTTCue(video.currentTime, video.currentTime + 60, '')); } /** @@ -145,11 +146,9 @@ const processCaptions = function() { const captionElement = currentResource.captionElement(); const video = /** @type {?HTMLVideoElement} */ (currentResource.videoElement()); - // Remove old captions - removeCaptions(video); - - // Show native captions if no longer showing captions or encountered an error + // Remove Picture in Picture mode captions and show native captions if no longer showing captions or encountered an error if (!showingCaptions || !captionElement) { + removeCaptions(video); if (captionElement) captionElement.style.visibility = ''; return; } @@ -162,6 +161,9 @@ const processCaptions = function() { if (unprocessedCaption == lastUnprocessedCaption) return; lastUnprocessedCaption = unprocessedCaption; + // Remove old captions and apply Safari bug fix if caption has no content as otherwise causes flicker + removeCaptions(video, !unprocessedCaption); + // Performance optimisation - early exit if caption has no content if (!unprocessedCaption) return; From ca9fff4804309b56fd7b0f5cabbea2139eaaa0e9 Mon Sep 17 00:00:00 2001 From: amarcu5 Date: Wed, 30 Aug 2017 23:19:49 +0100 Subject: [PATCH 2/4] Simplified YouTube element selectors --- src/scripts/main.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/scripts/main.js b/src/scripts/main.js index 8e59e84..cc8839f 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -667,17 +667,14 @@ const resources = { return parent.lastChild; }, buttonParent: function() { - const e = document.getElementById('movie_player') || document.getElementById('player'); - return e && e.querySelector('.ytp-right-controls'); + return document.querySelector('.ytp-right-controls'); }, buttonScale: 0.68, captionElement: function() { - const e = document.getElementById('movie_player') || document.getElementById('player'); - return e && e.querySelector('.captions-text'); + return document.querySelector('.caption-window'); }, videoElement: function() { - const e = document.getElementById('movie_player') || document.getElementById('player'); - return e && e.querySelector('video.html5-main-video'); + return document.querySelector('video.html5-main-video'); }, }, }; From 696903051a30998ec33eb55d2b99134e4014ebde Mon Sep 17 00:00:00 2001 From: amarcu5 Date: Wed, 30 Aug 2017 23:21:54 +0100 Subject: [PATCH 3/4] Fixed bug causing captions to persist in YouTube --- src/scripts/main.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scripts/main.js b/src/scripts/main.js index cc8839f..30fcbec 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -655,11 +655,11 @@ const resources = { // Workaround Safari bug; old captions persist in Picture in Picture mode when MediaSource buffers change const video = /** @type {?HTMLVideoElement} */ (currentResource.videoElement()); - document.addEventListener('spfrequest', function(){ + window.addEventListener('yt-navigate-start', function() { showingCaptions = false; removeCaptions(video); }); - document.addEventListener('spfdone', function(){ + window.addEventListener('yt-navigate-finish', function() { showingCaptions = video.webkitPresentationMode == 'picture-in-picture'; }); }, From 53d35d89741a3b842670355455e8461373094479 Mon Sep 17 00:00:00 2001 From: amarcu5 Date: Wed, 30 Aug 2017 23:28:01 +0100 Subject: [PATCH 4/4] Updated build --- out/PiPer.safariextz | Bin 9992 -> 9676 bytes update.plist | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/out/PiPer.safariextz b/out/PiPer.safariextz index f6992e47257e65a1b0835c861f0b38d99b5a59a6..a757bdfccbc7f5e13817424ee44120ab17f5595b 100644 GIT binary patch delta 8355 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 delta 8689 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 P(2Yz3W9$4EE!VOUg8b@+ diff --git a/update.plist b/update.plist index ccc7d32..7e44b88 100644 --- a/update.plist +++ b/update.plist @@ -10,7 +10,7 @@ CFBundleShortVersionString 0.2.2 CFBundleVersion - 63 + 73 Developer Identifier BQ6Q24MF9X URL