Mi objetivo es inyectar código de instrumentación en ciertos scripts de ciertos sitios web para luego recopilar los datos utilizando la extensión de Chrome y cargarlos en una base de datos centralizada.
La última vez que probé esto fue alrededor de 2016 cuando lo logré usando "onbeforescriptexecute" en un script de usuario que agregué a Firefox usando GreaseMonkey, en ese entonces, Chrome no admitía esto en absoluto. Ahora miré por aquí y lo más nuevo que encontré fue más o menos lo mismo, sí, mencionar que "onbeforescriptexecute" no es compatible con Chrome y ofrece una solución alternativa con un enlace a una página de GitHub que ya no existe.
Entonces, ¿existen formas modernas de interceptar scripts que se cargan en una página web en el script de contenido de extensión de Chrome? Lo que necesito es capturar cada script antes de que se cargue, analizar, inyectar instrumentación y luego proceder a ejecutarlo.
Por lo que entiendo, desea interceptar cada secuencia de comandos y manipular el contenido de la secuencia de comandos antes de que se ejecute en el navegador.
La respuesta corta es No. No puede interceptar scripts externos usando Chrome Extension Content Scripts, pero puede interceptarlos usando webRequestAPI en Manifest V2 (Nota: desaparecerá pronto)
Lo mejor que puede hacer es escribir una aplicación de proxy que intercepte los scripts y modifique el contenido de los scripts según el usuario o su lógica empresarial.
Hemos resuelto un problema similar en Requestly al ofrecer una solución basada en una aplicación de escritorio. De modo que puede iniciar un navegador desde la aplicación de escritorio de Requestly y luego crear la regla de modificación de respuesta en la aplicación de escritorio, lo que le permite definir una respuesta estática o cambiar la respuesta existente. pragmáticamente.
Una vez que haga esto, sus scripts serán interceptados y su código se ejecutará sobre las respuestas existentes del servidor.
Puede crear una aplicación similar a esta para su caso. Me temo que esto no es posible con Chrome Extensions.