Block Service Workers

Blocks Service Worker's registration.

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

You will need to install an extension such as Tampermonkey to install this script.

Tendrás que instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Tendrás que instalar una extensión como Tampermonkey antes de poder instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Advertisement:

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

Advertisement:

// ==UserScript==
// @name        Block Service Workers
// @name:zh-CN  禁用Service Workers
// @namespace   Violentmonkey Scripts
// @match       *://*/*
// @grant       GM_addElement
// @grant       GM_info
// @version     0.7
// @grant       GM_log
// @author      axototl
// @license     Unlicense
// @description Blocks Service Worker's registration.
// @description:zh-CN 阻止Service Worker注册,并移除现有的Service Workers,杜绝网上垃圾。
// @icon        https://www.w3.org/favicon.ico
// @run-at      document-start
// ==/UserScript==
'use strict';

const main = async (logger) => {
    'use strict';
    if (!('serviceWorker' in navigator)) {
        console.warn("Did not detected SW APIs, exiting...");
        return;
    }
    logger("Removing Service Workers API, please wait...");
    navigator.serviceWorker.register =
        () => new Promise((res, rej) => rej("This method is not allowed!"));
    logger("Deregistering Installed Service Workers, please wait...");
    (await navigator.serviceWorker.getRegistrations())
        .forEach(it => it.unregister());
    logger("All done!");
}

if (GM_info.injectInto === 'page' || GM_info.sandboxMode === "raw") main(GM_log);
else {
    const blobURL = URL.createObjectURL(new Blob([`(${main.toString()})(console.log);`], {type: "text/javascript"}));
    GM_addElement("script", {src: blobURL}).onload =
        () => setTimeout(() => (URL.revokeObjectURL(blobURL), GM_log("Destroyed")), 1000);
}