Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

466
Vistas
Javascript Tensorflow en Chrome Extension no funciona debido a 'unsafe-eval'

Estoy intentando actualizar mi extensión de Chrome a Manifest v3. Uso un modelo JSTensorflow y aparece este error:

Error de evaluación no capturado: se negó a evaluar una cadena como JavaScript porque 'unsafe-eval' no es una fuente de script permitida en la siguiente directiva de Política de seguridad de contenido: "script-src 'self'".

Sé que Manifest v3 no permite la "evaluación insegura", entonces, ¿cómo puedo solucionar este problema?

Mi manifiesto.json:

 { "name": "Recipick DEVELOPMENT", "description": "Pick the recipe from a website", "version": "1.0.0", "manifest_version": 3, "background": { "service_worker": "background.js", "type": "module" }, "action": { "default_title": "Recipick", "default_icon": "/images/icon_1.png" }, "permissions": [ "activeTab", "clipboardWrite", "sessions", "scripting", "storage", "tabs" ], "host_permissions": [ "*://*/*" ], "content_security_policy": { "extension_pages": "script-src 'self'; object-src 'self'" }, "web_accessible_resources": [{ "resources": [ "*.gif" ], "matches": [ "*://*/*" ] }] }

¡Gracias por tu ayuda!

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Acabo de descubrir cómo hacerlo.

Puede usar 'unsafe-eval' y otras acciones no permitidas si las usa en un entorno Sandbox. Como se dice en https://developer.chrome.com/docs/extensions/mv3/manifest/sandbox/ :

Una página en zona de pruebas no tendrá acceso a las API de extensión ni acceso directo a páginas que no estén en zona de pruebas (puede comunicarse con ellas a través de postMessage()).

Una página de espacio aislado no está sujeta a la Política de seguridad de contenido (CSP) utilizada por el resto de la extensión (tiene su propio valor de CSP independiente). Esto significa que, por ejemplo, puede usar secuencias de comandos en línea y eval.

Creé una página HTML llamada sandbox.html y la inserté en la página que quería procesar como iframe, con los scripts incrustados en ella. Luego, los datos que se procesarán allí se reciben y se devuelven a los scripts de contenido/fondo a través de window.postMessage() (en este caso, window.parent.postMessage() , ya que es un iframe).

Aquí hay un ejemplo de esta implementación: https://github.com/GoogleChrome/chrome-extensions-samples/tree/main/apps/samples/sandbox .

Esta página también puede ser útil: https://developer.chrome.com/docs/extensions/mv3/sandboxingEval/

about 4 years ago · Juan Pablo Isaza Denunciar

0

Aquí aprendemos que Chrome prohíbe cualquier recurso externo o cualquier secuencia de comandos que incluya eval() usando algo llamado Content Security Policy .

También estoy ejecutando un proyecto con la misma idea que el tuyo y me encontré con el mismo problema. También menciona en esa página algunas soluciones incluyen:

  1. Usando una 'biblioteca de plantillas' (una biblioteca que cumple con las reglas)

  2. Acceder a contenido remoto (Enviar solicitudes a un servidor externo que realiza el procesamiento allí)

Por lo que sé, no hay tensorflow.js que cumpla, por lo que el n. ° 2 podría ser la única respuesta aquí.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda