Error de directiva de seguridad de contenido de la extensión de Chrome

Estoy tratando de hacer una extensión de radio de Chrome, pero hay un problema. Cuando ejecuto mi script en el navegador como JS + HTML + CSS normal, funciona, pero cuando bash ejecutarlo como la extensión de Chrome obtengo este error:

Se negó a ejecutar el script en línea porque viola la siguiente directiva de política de seguridad de contenido: “script-src ‘self’ chrome-extension-resource:”. Se requiere la palabra clave ‘insegura en línea’, un hash (‘sha256 -…’) o un nonce (‘nonce -…’) para habilitar la ejecución en línea.

Después de eso, agregué esto a mi manifiesto:

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'" 

Pero después de eso recibí un mensaje de error (error en la línea del manifiesto con el código anterior)


Este es mi manifiesto:

 { "background": { "scripts": [ "jquery.js", "jquery-ui.js", "plate.js" ] }, "browser_action": { "default_icon": "Images/action-normal.png", "default_popup": "player.html", "default_title": "" }, "description": "Chrome Player", "manifest_version": 2, "name": "Radio Chrome Player", "permissions": [ "http://www.radio-station.com/" ], "version": "1.0" "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'" } 

Este es el archivo html principal:

        $(function(){$("#radioplayere").plate({playlist: [{file:"http://RADIO_STATION_STREAM_URL/;"}], phpGetter: "http://hostingshoutcast.com/stream/plate/php/plate.php"});});   
If you are seeing this then an error has occurred!

Tus problemas son los siguientes:

  1. Chrome CSP prohíbe el código en línea , y esto no está sujeto a anulación. Su 'unsafe-eval' no resuelve el problema, y ​​Chrome ‘ ignorará 'unsafe-inline' .

    Debes deshacerte del código en línea:

      

    Esto debe moverse en un archivo js.

  2. Hay un error tipográfico en su manifest.json, olvidó una coma:

     "version": "1.0", 

    En general, usar un validador JSON puede ayudarlo a detectar esos errores.

Sé que llegué un poco tarde a esto, pero de acuerdo con los comentarios de OP a la respuesta de Xan, otro componente para resolver el problema sería ajustar la llamada AJAX implícita.

Estaba obteniendo el mismo error y ajusté mi llamada de API para que sea:

 dataType: 'json' 

en lugar de:

 dataType: 'jsonp' 

(Resuelto el problema, se concede, todavía será necesario eliminar cualquier secuencia de comandos en línea).

Para mí, la razón es que estoy usando una versión anterior (como v1.7) de jQuery que tiene problemas de CSP , elija una nueva versión (v2.1.3).