この問題を克服することはできません。誰かアドバイスをいただけますか?
Chrome 拡張機能で実行する必要がある ExtJS ライブラリを使用するこのアプリケーションがあります。メッセージング ブリッジ ( ) を正常に作成し、
postMessage
アプリケーション全体をサンドボックス化して、すべてが通常どおりに動作します。ExtJS が読み込まれ、アプリケーションが実行されています。次に、ExtJS ビューポートで HTML スニペットの一部をプレビューする必要があるロジックを作成します。それ自体に を作成し、
iframe
その中にスニペットを書き込もうとしました。これは私が使用するコードです:Panel
afterrender
html: '<iframe src="about:blank" style="width:100%;height:100%;border:none;"></iframe>'; ...... //p is the panel found in afterrender p.body.down('iframe').dom.contentDocument.write(content);
次にエラー:
安全でない JavaScript が、URL chrome-extension://fcnpmlgapilgclcelfanblpbglmkghbc/core/themes/default/app.html のフレームから URL about:blank のフレームにアクセスしようとしています。ドメイン、プロトコル、およびポートが一致する必要があります。
サンドボックス内でこの動的 iframeを試してみましこれが唯一の方法であり、機能します。以下の私の答えを見てください。postMessage
たが、何も起こりません。マニフェストで属性を設定してsandbox
も機能しません。
質問:
- この種のユースケースをサポートするには、マニフェストをどのように設定する必要がありますか?
- または、を使用せずに HTML スニペットをプレビューするより良い方法はあります
iframe
か?iframe
親CSSを台無しにすることなくスニペットをサンドボックス化したので、Afaikのプレビューは最高です。
ノート
このコードはマニフェスト v1 で問題なく動作していましたが、マニフェスト v2 に移行する予定でした。Content Security Policy (CSP) がここまで厳しくなっているとは知りませんでした。
問題を説明する画面 ;)