diff --git a/vaft/vaft-ublock-origin.js b/vaft/vaft-ublock-origin.js index c0ce2a3..4360762 100644 --- a/vaft/vaft-ublock-origin.js +++ b/vaft/vaft-ublock-origin.js @@ -812,27 +812,7 @@ twitch-videoad.js text/javascript return realFetch.apply(this, arguments); }; } - function isWorkerIntact() { - // Taken from Adguard Extra - const iframe = window.document.createElement('iframe'); - window.document.body.append(iframe); - const cleanWindow = iframe.contentWindow; - if (cleanWindow.Worker.toString() === window.Worker.toString()) { - iframe.remove(); - return true; - } - iframe.remove(); - return false; - } function onContentLoaded() { - if (!isWorkerIntact()) { - console.log('Twitch Worker is already hooked'); - return; - } - window.reloadTwitchPlayer = reloadTwitchPlayer; - declareOptions(window); - hookWindowWorker(); - hookFetch(); // This stops Twitch from pausing the player when in another tab and an ad shows. // Taken from https://github.com/saucettv/VideoAdBlockForTwitch/blob/cefce9d2b565769c77e3666ac8234c3acfe20d83/chrome/content.js#L30 try { @@ -874,11 +854,19 @@ twitch-videoad.js text/javascript } }catch{} } - if (document.readyState === "complete" || document.readyState === "loaded" || document.readyState === "interactive") { - onContentLoaded(); + if (window.Worker.toString().includes('twitch')) { + console.log('Twitch Worker is already hooked'); } else { - window.addEventListener("DOMContentLoaded", function() { + window.reloadTwitchPlayer = reloadTwitchPlayer; + declareOptions(window); + hookWindowWorker(); + hookFetch(); + if (document.readyState === "complete" || document.readyState === "loaded" || document.readyState === "interactive") { onContentLoaded(); - }); + } else { + window.addEventListener("DOMContentLoaded", function() { + onContentLoaded(); + }); + } } })(); diff --git a/vaft/vaft.user.js b/vaft/vaft.user.js index 04859f6..f904b1f 100644 --- a/vaft/vaft.user.js +++ b/vaft/vaft.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name TwitchAdSolutions (vaft) // @namespace https://github.com/pixeltris/TwitchAdSolutions -// @version 11.0.0 +// @version 12.0.0 // @description Multiple solutions for blocking Twitch ads (vaft) // @updateURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/vaft/vaft.user.js // @downloadURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/vaft/vaft.user.js @@ -824,27 +824,7 @@ return realFetch.apply(this, arguments); }; } - function isWorkerIntact() { - // Taken from Adguard Extra - const iframe = window.document.createElement('iframe'); - window.document.body.append(iframe); - const cleanWindow = iframe.contentWindow; - if (cleanWindow.Worker.toString() === window.Worker.toString()) { - iframe.remove(); - return true; - } - iframe.remove(); - return false; - } function onContentLoaded() { - if (!isWorkerIntact()) { - console.log('Twitch Worker is already hooked'); - return; - } - window.reloadTwitchPlayer = reloadTwitchPlayer; - declareOptions(window); - hookWindowWorker(); - hookFetch(); // This stops Twitch from pausing the player when in another tab and an ad shows. // Taken from https://github.com/saucettv/VideoAdBlockForTwitch/blob/cefce9d2b565769c77e3666ac8234c3acfe20d83/chrome/content.js#L30 try { @@ -886,11 +866,19 @@ } }catch{} } - if (document.readyState === "complete" || document.readyState === "loaded" || document.readyState === "interactive") { - onContentLoaded(); + if (window.Worker.toString().includes('twitch')) { + console.log('Twitch Worker is already hooked'); } else { - window.addEventListener("DOMContentLoaded", function() { + window.reloadTwitchPlayer = reloadTwitchPlayer; + declareOptions(window); + hookWindowWorker(); + hookFetch(); + if (document.readyState === "complete" || document.readyState === "loaded" || document.readyState === "interactive") { onContentLoaded(); - }); + } else { + window.addEventListener("DOMContentLoaded", function() { + onContentLoaded(); + }); + } } })(); diff --git a/video-swap-new/video-swap-new-ublock-origin.js b/video-swap-new/video-swap-new-ublock-origin.js index 86e9415..d71ceed 100644 --- a/video-swap-new/video-swap-new-ublock-origin.js +++ b/video-swap-new/video-swap-new-ublock-origin.js @@ -581,27 +581,7 @@ twitch-videoad.js text/javascript localStorage.setItem(lsKeyVolume, currentVolumeLS); }, 3000); } - function isWorkerIntact() { - // Taken from Adguard Extra - const iframe = window.document.createElement('iframe'); - window.document.body.append(iframe); - const cleanWindow = iframe.contentWindow; - if (cleanWindow.Worker.toString() === window.Worker.toString()) { - iframe.remove(); - return true; - } - iframe.remove(); - return false; - } function onContentLoaded() { - if (!isWorkerIntact()) { - console.log('Twitch Worker is already hooked'); - return; - } - window.reloadTwitchPlayer = reloadTwitchPlayer; - declareOptions(window); - hookWindowWorker(); - hookFetch(); // This stops Twitch from pausing the player when in another tab and an ad shows. // Taken from https://github.com/saucettv/VideoAdBlockForTwitch/blob/cefce9d2b565769c77e3666ac8234c3acfe20d83/chrome/content.js#L30 try { @@ -669,11 +649,19 @@ twitch-videoad.js text/javascript return realGetItem.apply(this, arguments); }; } - if (document.readyState === "complete" || document.readyState === "loaded" || document.readyState === "interactive") { - onContentLoaded(); + if (window.Worker.toString().includes('twitch')) { + console.log('Twitch Worker is already hooked'); } else { - window.addEventListener("DOMContentLoaded", function() { + window.reloadTwitchPlayer = reloadTwitchPlayer; + declareOptions(window); + hookWindowWorker(); + hookFetch(); + if (document.readyState === "complete" || document.readyState === "loaded" || document.readyState === "interactive") { onContentLoaded(); - }); + } else { + window.addEventListener("DOMContentLoaded", function() { + onContentLoaded(); + }); + } } })(); \ No newline at end of file diff --git a/video-swap-new/video-swap-new.user.js b/video-swap-new/video-swap-new.user.js index fe5a311..81f3887 100644 --- a/video-swap-new/video-swap-new.user.js +++ b/video-swap-new/video-swap-new.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name TwitchAdSolutions (video-swap-new) // @namespace https://github.com/pixeltris/TwitchAdSolutions -// @version 1.29 +// @version 1.30 // @updateURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/video-swap-new/video-swap-new.user.js // @downloadURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/video-swap-new/video-swap-new.user.js // @description Multiple solutions for blocking Twitch ads (video-swap-new) @@ -593,27 +593,7 @@ localStorage.setItem(lsKeyVolume, currentVolumeLS); }, 3000); } - function isWorkerIntact() { - // Taken from Adguard Extra - const iframe = window.document.createElement('iframe'); - window.document.body.append(iframe); - const cleanWindow = iframe.contentWindow; - if (cleanWindow.Worker.toString() === window.Worker.toString()) { - iframe.remove(); - return true; - } - iframe.remove(); - return false; - } function onContentLoaded() { - if (!isWorkerIntact()) { - console.log('Twitch Worker is already hooked'); - return; - } - window.reloadTwitchPlayer = reloadTwitchPlayer; - declareOptions(window); - hookWindowWorker(); - hookFetch(); // This stops Twitch from pausing the player when in another tab and an ad shows. // Taken from https://github.com/saucettv/VideoAdBlockForTwitch/blob/cefce9d2b565769c77e3666ac8234c3acfe20d83/chrome/content.js#L30 try { @@ -681,11 +661,19 @@ return realGetItem.apply(this, arguments); }; } - if (document.readyState === "complete" || document.readyState === "loaded" || document.readyState === "interactive") { - onContentLoaded(); + if (window.Worker.toString().includes('twitch')) { + console.log('Twitch Worker is already hooked'); } else { - window.addEventListener("DOMContentLoaded", function() { + window.reloadTwitchPlayer = reloadTwitchPlayer; + declareOptions(window); + hookWindowWorker(); + hookFetch(); + if (document.readyState === "complete" || document.readyState === "loaded" || document.readyState === "interactive") { onContentLoaded(); - }); + } else { + window.addEventListener("DOMContentLoaded", function() { + onContentLoaded(); + }); + } } })(); \ No newline at end of file