mi objetivo es anular la función setInterval JS predeterminada en todas las páginas con una extensión de navegador (inyectando mi código javascript justo al comienzo de las páginas). Este script debe ejecutarse antes que cualquier otro script, incluido jQuery. Mi último intento (que no funciona) es este:
manifiesto.js
... "content_scripts": [ { "matches": ["<all_urls>"], "js": ["content.js"], "run_at": "document_start", "all_frames": true } ], "background": { "service_worker": "background.js" }, "permissions": [ "scripting" ], "host_permissions": ["<all_urls>"], ...contenido.js
function do_newInterval() { window.setInterval = function setInterval() {console.log('hello')} }; chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) { if (msg.type === 'newInterval') { do_newInterval(); } });fondo.js
chrome.tabs.onUpdated.addListener(async () => { let activeTab=await chrome.tabs.query({ active: true, lastFocusedWindow: true }) chrome.tabs.sendMessage(activeTab[0].id, { type: "newInterval" }); })Desafortunadamente, el código para reemplazar la función setInterval se ejecuta después de que se ejecutan otros scripts de página.
¿Podría mostrarme la forma correcta de hacer que mi JS se ejecute primero?
¡Gracias!