2013-05-09 1 views
4

Je suis membre d'une équipe en charge de la création d'une application Firefox OS intégrée. En raison de la politique de CSP restreint pour Firefox OS des applications privilégiées J'ai ajouté la directive ng-csp au corps de l'application:Utilisation de la directive Angular JS ng-csp pour créer des applications Firefox OS privilégiées

<body ng-app="the-app" ng-csp> 

La spécification CSP pour Firefox OS des applications privilégiées est: default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'

Selon les journaux que je peux obtenir à partir du périphérique Firefox OS Angular semble appeler eval() ou le constructeur Function() et les deux sont bloqués dans les applications privilégiées de Firefox OS et l'application arrête simplement le rendu.

Je voudrais savoir si c'est un comportement attendu, un problème connu ou est-ce que j'applique incorrectement la directive?

Toute personne ayant un problème similaire?

Merci d'avance.

Version angulaire: v1.0.1

Journal des erreurs:

05-07 19:31:10.048: ERROR/GeckoConsole(1397): [JavaScript Error: "CSP ERROR: Couldn't parse invalid source 'unsafe-inline'"] 
05-07 19:31:10.048: ERROR/GeckoConsole(1397): [JavaScript Warning: "CSP WARN: Failed to parse unrecognized source 'unsafe-inline'"] 

< - Lâché balises CSS ->

05-07 19:31:13.892: ERROR/GeckoConsole(1397): [JavaScript Error: "Error: call to Function() blocked by CSP" {file: "app://788ceebd-a9b7-4a98-a8b0-1ff248e40f52/scripts/vendor/d10639ae.angular.js" line: 6337}] 
05-07 19:31:13.912: ERROR/GeckoConsole(1397): [JavaScript Warning: "CSP WARN: Directive eval script base restriction violated" {file: "app://788ceebd-a9b7-4a98-a8b0-1ff248e40f52/scripts/vendor/d10639ae.angular.js" line: 6337 column: 0 source: "call to eval() or related function blocked by CSP"}] 
+0

CSP ne permet pas non plus pour le CSS en ligne ou javascript. Eval n'est pas autorisé bien sûr, mais angulaire n'est pas censé utiliser eval() en mode CSP. Vérifiez pour vous assurer que votre utilisation inline css/js serait le meilleur pari. –

+0

Juste un peu plus d'informations. J'ai essayé de déployer l'application avec et sans la directive ng-csp alors que sans la directive, Firefox OS dit de manière explicite qu'un appel à eval() a été bloqué. Lorsque vous utilisez ng-csp si vous voyez ci-dessus l'erreur est "appel à Function() bloqué par CSP". Ma question est même en mode sans échec Angular utilise Function() pour faire sa magie. – Ltmatos

Répondre

4

J'ai réussi repérer la cause de ce problème. Apparemment Angular appelle le constructeur Function même en mode CSP-safe (ng-csp) si je tente de créer un observateur dans le $ rootscope de l'application. J'ai déjà fait un post dans les groupes angulaires de Google car cela semble être un bug. J'ai fait une modification dans la bibliothèque Angular JS et l'ai fait fonctionner sur le périphérique Firefox OS. Le lien vers le message est le suivant:

link

Vive

Questions connexes