Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

460
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!