Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

461
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda