如何在隐身模式下为chrome扩展启用pageAction图标



即使在选择"允许在匿名模式下"后,我的扩展(使用pageaction在某些URL中渲染)也不会在匿名模式中显示。background.js包含以下内容。

chrome.runtime.onInstalled.addListener(function() {
  // Replace all rules ...
  chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
    // With a new rule ...
    chrome.declarativeContent.onPageChanged.addRules([
      {
        // That fires when a page's URL contains a 'g' ...
        conditions: [
          new chrome.declarativeContent.PageStateMatcher({
            pageUrl: { urlContains: 'sears' },
          })
        ],
        // And shows the extension's page action.
        actions: [ new chrome.declarativeContent.ShowPageAction() ]
      }
    ]);
  });
});

看起来像是一个错误,所以我在这里报告了它:crbug.com/408326

作为解决方案,您可以通过在清单文件中添加以下内容来启用拆分隐姓埋名模式:

"incognito": "split"

不幸的是,在隐姓埋名模式下,扩展不会触发chrome.runtime.onInstalled,因此当扩展在隐姓隐名模式下运行时,应避免使用此事件,如下所示:

if (chrome.extension.inIncognitoContext) {
    doReplaceRules();
} else {
    chrome.runtime.onInstalled.addListener(doReplaceRules);
}
function doReplaceRules() {
  chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
    // ... add rules
  });
}

相关内容

  • 没有找到相关文章

最新更新