Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。354件0WEBサイト内にiframeを表示するChrome拡張を開発しているのですが、Twitterのページでcontent_security_policyに関するエラーが出てiframeを表示出来なくて困っています。(Twitter以外のページではiframeを表示出来ています。)manufest.jsonのcontent_security_policyを適宜設定すれば良いと思うのですが、リファレンスを見て色々試してみたのですが、全く上手くいきません。どなたか解決までいかずとも、御指南、アドバイスを頂けないでしょうか。Overflowにおける同様の質問にリンクしておきます。拡張機能にパッケージされたページ(frame.html)を経由することでCSPを回避するのがポイントのようです。票1そのエラーはmanifest.jsonのcontent_security_policyにはあまり関係ありません。それは拡張機能のコンテキストで実行されるスクリプトのセキュリティを指定するものです。今回のエラーはTwitterが設定しているCSPによって引き起こされています。contentScriptは各Webサイト上(Twitterを表示している場合はTwitterのWebサイト上)で動作するため、そのサイトが設定するCSPの影響を受けるのです。Overflowにおける同様の質問で回答されている、web_accesible_resourcesを用いてCSPを迂回する手法を紹介します。web_accessible_resourcesはその名の通り、拡張機能からウェブページ内に提供されるリソースを宣言するものです。ここで宣言されているリソースは(ウェブページが設定しているCSPに制限されずに)contentScriptから利用することができます。そこで、frame.htmlというページを拡張機能内に用意して、それをcontentScriptから読み込むようにします。このcontentScriptはTwitterのウェブページ上ではなく拡張機能内に存在するページですから、Twitterが設定したCSPの影響を受けずにさらに他のページを埋め込むことができるのです。具体的な方法は、まずmanifest.jsonのweb_accessible_resourcesを宣言してframe.htmlを追加します。"0.672"}contentScript.jsの中からはchrome.runtime.getURLを使用してframe.htmlのURLを得ることができます。black',});document.body.appendChild(iframe);そして、frame.htmlの中でさらにiframeを用いて目的のサイトを埋め込みます。</body></html>以上の方法で、TwitterのようにCSPが設定されたサイトでも外部のサイトを埋め込むことができました。今回埋め込む外部サイトはframe.html内にベタ書きですが、動的に指定する必要がある場合は適当にpostMessageなどで通信すれば可能です。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。extensionでbackground.jsからpopup.jsの関数を呼びたい。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。