J'essaie de faire de l'extension chrome du flux radio mais il y a un problème. Quand je cours mon script dans le navigateur comme JS + HTML + CSS normal fonctionne, mais quand j'essaie de l'exécuter comme une extension Chrome, j'ai cette erreur:
Refus d'exécuter le script en ligne car il enfreint la directive suivante sur la politique de sécurité de contenu: "script-src 'self' chrome-extension-resource:". Soit le mot-clé «inseut-in-line», un hash («sha256 -…»), soit un nonce («nonce -…») est nécessaire pour permettre l'exécution en ligne.
Ensuite, j'ai ajouté ceci à mon manifeste:
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
Mais après cela, je recevais un message d'erreur (erreur dans la ligne de manifeste avec le code ci-dessus)
C'est mon manifeste:
{ "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'" }
Il s'agit du fichier html principal:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="jquery.js"></script> <script src="jquery-ui.js"></script> <script src="main.js"></script> <script>$(function(){$("#radioplayere").plate({playlist: [{file:"http://RADIO_STATION_STREAM_URL/;"}], phpGetter: "http://hostingshoutcast.com/stream/plate/php/plate.php"});});</script> </head> <body> <div id="radioplayer">If you are seeing this then an error has occurred!</div> </body> </html>
Vos problèmes sont les suivants:
Chrome CSP interdit le code en ligne , ce qui n'est pas sujet à la suppression. Votre 'unsafe-eval'
ne résout pas le problème, et 'unsafe-inline'
qui aurait aidé sera ignoré par Chrome.
Vous devez vous débarrasser du code en ligne:
<script>$(function(){$("#radioplayere").plate({playlist: [{file:"http://RADIO_STATION_STREAM_URL/;"}], phpGetter: "http://hostingshoutcast.com/stream/plate/php/plate.php"});});</script>
Cela doit être déplacé dans un fichier js.
Il y a une faute de frappe dans votre manif.json, vous avez oublié une virgule:
"version": "1.0",
En général, l'utilisation d'un validateur JSON peut vous aider à attraper ces erreurs.
Je sais que je suis un peu en retard, mais en fonction des commentaires de OP à la réponse de Xan, un autre composant de résoudre le problème serait d'ajuster l'appel AJAX impliqué.
J'avais la même erreur et réglé mon appel API pour être:
dataType: 'json'
au lieu de:
dataType: 'jsonp'
(Résolu le problème, accordé, il faudra encore supprimer tous les scripts en ligne).
Pour moi, la raison en est que j'utilise une ancienne version (comme v1.7) de jQuery qui a des problèmes CSP , choisissez une nouvelle version (v2.1.3).