0

オプションのアクセス許可を使用して特定のサイト (例: amazon.fr) へのアクセス許可を動的に取得しようとしています。アクセス許可を取得したら、宣言型コンテンツ API の RequestContentScript関数を使用してアクセス許可を要求したサイトに JS を挿入します。

ブラウザを閉じるか、スクリプトが最初に挿入されたすべてのページを閉じるまで、これはすべて初めて正常に機能します。しかし、ページ注入後、これらのサイトには JS が注入されません。拡張機能のアクセス許可とサイトを確認すると、必要に応じて要求したすべてのアクセス許可が、アクセス許可 API を介してまだ存在していることがわかります。

許可を要求し、スクリプトを挿入するために使用しているバックグラウンド js コードは次のとおりです。

const conditions = [];
chrome.permissions.request({
  permissions: ['declarativeContent'],
  origins:['https://www.amazon.fr/'],
}, (granted) => {
  console.log({ granted });
  if (granted) {
     conditions.push(new chrome.declarativeContent.PageStateMatcher({
        pageUrl: { hostEquals: 'www.amazon.fr', schemes: ['https'] },
        css: ['div'],
      }));
    const rule2 = {
          conditions,
          actions: [
         new chrome.declarativeContent.RequestContentScript({ 
         js: ['page_injects/index.js'], 
         css: ['page_injects/index.css'] })],
    };
chrome.declarativeContent.onPageChanged.removeRules(undefined,() => {
           chrome.declarativeContent.onPageChanged.addRules([rule2]);
         });
    console.log('chrome.declarativeContent.onPageChanged.addRules done');
  }
});


これは初めて機能するため、2回目以降に同じ動作をする際に何が問題になるのかわかりません。

これを進める方法に関するヒントはありますか?

このSO の質問を使用して、オプションでスクリプトを挿入することにしました。

4

0 に答える 0