From 0e4d709bbac9c8a15426d438befad51255c083ae Mon Sep 17 00:00:00 2001 From: amarcu5 Date: Thu, 24 Aug 2017 13:53:10 +0100 Subject: [PATCH] Worked around Safari bug causing captions to persist Worked around Safari bug causing captions to persist after active cues removed and text tracks disabled --- out/PiPer.safariextz | Bin 9840 -> 9846 bytes src/scripts/main.js | 36 +++++++++++++++++++++++------------- update.plist | 2 +- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/out/PiPer.safariextz b/out/PiPer.safariextz index f39598ec8d1df3eb99ad7908110d821b1bac906f..16cb8e574e0b01e3b96adf6875b59b44cfedcce5 100644 GIT binary patch delta 7219 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 MU~ucdZ3Fh)d~`qk=Kufz diff --git a/src/scripts/main.js b/src/scripts/main.js index e76e6a5..1b2ca1f 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -124,15 +124,32 @@ const prepareCaptions = function(video) { video.addEventListener('webkitendfullscreen', toggleCaptions); }; +/** + * Removes visible Picture in Picture mode captions + * @param {HTMLVideoElement} video - video element showing captions + */ +const removeCaptions = function(video) { + 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, '')); +} + /** * Updates visible captions */ const processCaptions = function() { - const captionElement = currentResource.captionElement(); - // Hide Picture in Picture mode captions and show native captions if no longer showing captions or encountered an error + // Get handles to caption and video elements + 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 if (!showingCaptions || !captionElement) { - track.mode = 'disabled'; if (captionElement) captionElement.style.visibility = ''; return; } @@ -144,16 +161,9 @@ const processCaptions = function() { const unprocessedCaption = captionElement.textContent; if (unprocessedCaption == lastUnprocessedCaption) return; lastUnprocessedCaption = unprocessedCaption; - - // Get handle to video (called before accessing 'track' to guarentee valid) - const video = /** @type {?HTMLVideoElement} */ (currentResource.videoElement()); - - // Remove old captions - track.mode = 'showing'; - while (track.activeCues.length) track.removeCue(track.activeCues[0]); - - // Line commented out to workaround Safari bug; 'removeCue' doesn't immediately remove captions shown in Picture in Picture mode - //if (!unprocessedCaption) return; + + // Performance optimisation - early exit if caption has no content + if (!unprocessedCaption) return; // Show correctly spaced and formatted Picture in Picture mode caption let caption = ''; diff --git a/update.plist b/update.plist index fcd6181..195a9ba 100644 --- a/update.plist +++ b/update.plist @@ -10,7 +10,7 @@ CFBundleShortVersionString 0.2.1 CFBundleVersion - 60 + 61 Developer Identifier BQ6Q24MF9X URL