4

私は、パッケージ化された Firefox OS アプリケーションの構築を担当するチームのメンバーです。Firefox OS 特権アプリケーションの CSP ポリシーが制限されているため、アプリケーションの本文に ng-csp ディレクティブを追加しました。

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

Firefox OS 特権アプリの CSP 仕様は次のとおりです。 default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'

Firefox OS デバイスから取得できるログによると、Angular は eval() または Function() コンストラクターを呼び出しているようで、どちらも Firefox OS 特権アプリでブロックされ、アプリは単にレンダリングを停止します。

これが予想される動作なのか、既知の問題なのか、それともディレクティブを正しく適用していないのかを知りたいです。

同様の問題を抱えている人はいますか?

前もって感謝します。

角度バージョン: v1.0.1

エラーログ:

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'"] 

<-- 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"}] 
4

1 に答える 1

4

この問題の原因を突き止めることができました。アプリケーションの $rootscope でウォッチャーを作成しようとすると、Angular は CSP セーフ モード (ng-csp) でも Function コンストラクターを呼び出すようです。これはバグのように見えるので、既に Angular Google グループに投稿しました。Angular JS ライブラリに変更を加え、Firefox OS デバイスで動作するようにしました。投稿へのリンクは次のとおりです。

リンク

乾杯

于 2013-05-13T14:28:11.160 に答える