2017-08-13 5 views
2

新しいタブページ(URLに割り当てられていない)でコンテンツスクリプトを実行することができません。クロムコンテンツスクリプトとnewtab

私はそれが可能であることを示唆しているように見えるDoes content script have access to newtab page?What is the URL of the google chrome new tab page and how to exclude it from manifest.json

、すなわち、対象の様々な記事を見ました。

私はクローム有効:私が持っている//フラグ/#の拡張・オン・クロムのURL

を:

"permissions": [ 
    "http://*/*", 
    "https://*/*", 
    "chrome://*/*" 
], 

は何...まだ運を

(も"*://*/_/chrome/newtab*"を試していません)私は行方不明ですか?

この回答Can you access chrome:// pages from an extension? mentsions "ワイルドカードは受け入れられません"。これは本当ですか ?どうすればnewtabページを指定するのですか?

Thx!

答えて

5

クロム61以降デフォルトの新しいタブページ(NTP)のexplicitly forbidコンテンツスクリプト。

この変更のためのいくつかの理由があります:rdevlin、Chromeの拡張機能のAPIの開発者の一人を引用

。 1つはポリシーを実施すること、もう1つは一貫性のためです。

私たちはしばらくの間public policyを持っていた今では、( 我々は7月1日まで、多くの場合、このポリシーを適用を開始しませんでしたが)Chrome URL overrides以外通じ NTPの変更が許可されていないと述べています。これは です。拡張機能がNTPを変更していて、ポリシー 違反のために取り下げられた場合は、 の驚きを防ぐのに役立つように、同じポリシーでさらにクロールコードをインライン化するだけです。

NTP でスクリプトを実際に扱ったのは、これまで何年もの間、特定のNTPの魔法が原因だったためです。たとえば、NTPのブラウザで と表示されたURLはchrome:// newtabですが、レンダラーのURLは https://www.google.com/_/chrome/newtabです。 chrome.tabs.executeScriptはブラウザのURLを にチェックするので、コンテンツスクリプト (レンダラーでチェックイン)が許可されていても、スクリプトは拒否されます。理論的には、これらの権限は ではなく、と異なる必要があります。同様に奇妙なことに、ユーザーがローカルのntp (chrome-search://local-ntp/local-ntp.html)を使用している場合、レンダラーとブラウザの両方で注入がすでに になりません。そして、私たちがwaaaaayに戻ったら、 NTPは、chrome:// newtabというURLを持つ純粋なWebUIでした。ここでは、注入 は再び許可されませんでした。拡張機能が使用するスクリプトの種類の に応じて、一貫性のない動作をするのではなく、システム全体で一貫性 が必要です。私はこの 発表と@クロムの拡張機能での発表を投稿することができない場合

は、私が表示されます(ポリシーはしばらく今のところ発表されていていても、少し 余分な露出が傷つけることができませんでした)。

関連する問題