0

J'ai regardé d'autres questions avec le même problème, mais je n'ai pas trouvé de solution. Mon manifest.json:Impossible de lire la propriété 'onBeforeRequest' de undefined

{ 
    "background": { 
     "scripts": [ "js/background.js" ], 
    }, 
    "description": "...", 
    "icons": { 
     "128": "icons/128.png", 
     "16": "icons/16.png", 
     "48": "icons/48.png" 
    }, 
    "manifest_version": 2, 
    "name": "Name it!", 
    "offline_enabled": false, 
    "permissions": [ "webRequest", "webRequestBlocking", "https://www.youtube.com/*" ], 
    "permissions": [ "https://www.youtube.com/*" ], 
    "version": "1.0" 

} 

et mon background.js:

chrome.webRequest.onBeforeRequest.addListener(
    function(details) { 
     var idid = details.url; 
     var vid = idid.split("watch?v="); 
     var akk = vid[1]; 
     if (akk.includes("&") && akk.includes("=")) { 
      akk = akk.split("&")[0]; 
     } 
     var xhr = new XMLHttpRequest(); 
     xhr.open("GET", "https://www.youtube.com/feeds/videos.xml?channel_id=xxx", false); 
     xhr.send(); 
     var result = xhr.responseText; 
     if(result.includes(akk)) { 
      redirectUrl : "chrome-extension://"+window.location.hostname+"/html/block.html" 
     } 
    }, 
{urls: ["https://www.youtube.com/*"]}, 
["blocking"]); 

J'obtiens cette erreur:

Uncaught TypeError: Cannot read property 'onBeforeRequest' of undefined

Quel pourrait être le problème?

+1

Je suppose que vous avez défini un point d'arrêt dans le script de la page d'arrière-plan dans devtools? Si c'est le cas, placez-le sur une ligne à l'intérieur de l'écouteur pour éviter de [bug connu] (https://bugs.chromium.org/p/chromium/issues/detail?id=754976). Sinon, assurez-vous de recharger l'extension sur la page chrome: // extensions. – wOxxOm

Répondre

1

Votre manifeste.json peut être la raison.

Il a des entrées en double pour "permissions". Essayez d'enlever le second.

"permissions": [ "webRequest", "webRequestBlocking", "https://www.youtube.com/*" ], 
"permissions": [ "https://www.youtube.com/*" ], // remove this one