如何使用 activeTab 避免 Chrome 网上应用店中的扩展发布延迟
How to use activeTab to avoid extension publishing delays in the Chrome Web Store
我有一个 chrome 扩展程序,用于抓取一些特定页面,然后在扩展程序内置的屏幕上使用该数据生成文档。它需要定期更新。当我去 Chrome 网上商店发布时,我不断收到下面的“发布将被延迟警告”。该消息建议我使用活动选项卡和更窄的主机权限,即使我的清单包含以下内容:
"permissions": ["storage",
"declarativeContent",
"activeTab",
"downloads"],
"background": {
"scripts": ["background.js"],
"persistent": false
},
在 background.js 中,我有一个 chrome.declarativeContent.onPageChanged.addRules 语句,其中 chrome.declarativeContent.PageStateMatcher条件:
pageUrl: {hostContains: ''}
pageUrl: {hostContains: 'secure.vermont.gov'}
pageUrl: {urlContains: 'chrome-extension://'}
我用 codeforbtv.org 替换了第一个(用于本地文件)所以没有通配符。尽管如此,我还是在商店收到了同样的警告。
我使用的唯一选项卡功能在以下代码中:
chrome.tabs.executeScript(null, { file: 'payload.js' });
Payload.js 是两行代码,它抓取一个大的 html 块并通过 chrome.runtime.sendMessage.
发送它
相关代码库可以在 extensionDirectory 文件夹中找到:https://github.com/codeforbtv/expunge-vt.
扩展可以处理 sampleDocketHTML 文件夹中的示例 HTML 文件。
警告是基于权限的,是一般性警告,如果您对扩展程序使用更敏感的权限,审核将需要更长时间。
有趣的是,我最近对已发布的扩展使用了通配符主机权限 (:///*),并收到了相同的警告。审核过程最终需要 3 天才能获得批准。
在使用敏感权限时,您通常应该期望更长的审核时间,因为 Google 手动审核扩展程序的带宽目前正在减少。
hostContains: ''
匹配每个 URL 因为 ''
出现在每个字符串中所以它是一个广泛的主机权限。
要匹配本地文件,您可以使用 schemes: ['file']
,但这仍然是一个广泛的主机权限,所以我想您将不得不忘记文件。
urlContains: 'chrome-extension://'
从网上商店的自动检测器的角度来看也是一个广泛的主机权限,因为显然脚本不分析模式,所以它被认为只是一个子字符串匹配。
一个扩展不能在其他扩展的页面上正常工作,所以你可能不需要这个。
hostContains: 'secure.vermont.gov'
也是广泛的主机权限,因为此模式未锚定到 TLD(顶级域),因此它可能出现在任何地方,因此匹配完全不相关的主机。
使用 hostSuffix: '.secure.vermont.gov'
也可以匹配无点版本和任何子域或 hostEquals
.
我有一个 chrome 扩展程序,用于抓取一些特定页面,然后在扩展程序内置的屏幕上使用该数据生成文档。它需要定期更新。当我去 Chrome 网上商店发布时,我不断收到下面的“发布将被延迟警告”。该消息建议我使用活动选项卡和更窄的主机权限,即使我的清单包含以下内容:
"permissions": ["storage",
"declarativeContent",
"activeTab",
"downloads"],
"background": {
"scripts": ["background.js"],
"persistent": false
},
在 background.js 中,我有一个 chrome.declarativeContent.onPageChanged.addRules 语句,其中 chrome.declarativeContent.PageStateMatcher条件:
pageUrl: {hostContains: ''}
pageUrl: {hostContains: 'secure.vermont.gov'}
pageUrl: {urlContains: 'chrome-extension://'}
我用 codeforbtv.org 替换了第一个(用于本地文件)所以没有通配符。尽管如此,我还是在商店收到了同样的警告。
我使用的唯一选项卡功能在以下代码中:
chrome.tabs.executeScript(null, { file: 'payload.js' });
Payload.js 是两行代码,它抓取一个大的 html 块并通过 chrome.runtime.sendMessage.
发送它相关代码库可以在 extensionDirectory 文件夹中找到:https://github.com/codeforbtv/expunge-vt.
扩展可以处理 sampleDocketHTML 文件夹中的示例 HTML 文件。
警告是基于权限的,是一般性警告,如果您对扩展程序使用更敏感的权限,审核将需要更长时间。 有趣的是,我最近对已发布的扩展使用了通配符主机权限 (:///*),并收到了相同的警告。审核过程最终需要 3 天才能获得批准。
在使用敏感权限时,您通常应该期望更长的审核时间,因为 Google 手动审核扩展程序的带宽目前正在减少。
hostContains: ''
匹配每个 URL 因为''
出现在每个字符串中所以它是一个广泛的主机权限。要匹配本地文件,您可以使用
schemes: ['file']
,但这仍然是一个广泛的主机权限,所以我想您将不得不忘记文件。urlContains: 'chrome-extension://'
从网上商店的自动检测器的角度来看也是一个广泛的主机权限,因为显然脚本不分析模式,所以它被认为只是一个子字符串匹配。一个扩展不能在其他扩展的页面上正常工作,所以你可能不需要这个。
hostContains: 'secure.vermont.gov'
也是广泛的主机权限,因为此模式未锚定到 TLD(顶级域),因此它可能出现在任何地方,因此匹配完全不相关的主机。使用
hostSuffix: '.secure.vermont.gov'
也可以匹配无点版本和任何子域或hostEquals
.