一键导入
extension-migration
Migrate Chrome extensions from MV2 to MV3. Service workers, declarativeNetRequest, API replacements. Use when: migrate, mv2, mv3, manifest v2.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Migrate Chrome extensions from MV2 to MV3. Service workers, declarativeNetRequest, API replacements. Use when: migrate, mv2, mv3, manifest v2.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Generate and manage all Chrome extension assets: icons (16–128px), CWS listing images, promotional tiles, and public/ folder setup. Supports ImageMagick, Gemini API, and manual prompt templates.
Build polished Chrome extension UIs (popup/sidepanel/options). Analyze existing UI, suggest improvements, set up design systems, enforce a11y and UX best practices.
Scan extension source code for Chrome Web Store rejection risks. Generates report with issues, root causes, and fixes. Use when: review, pre-submit, rejection, CWS compliance, store review.
Build backend APIs for Chrome extensions. NestJS + MongoDB (Mongoose) recommended stack. Auth, webhooks, license verification, CORS. Use when: backend, API, server, database, license, webhook.
Integrate payment gateways into Chrome extensions. Stripe, Paddle, Lemon Squeezy, Polar, PayPal, and more. Licensing, subscriptions, freemium. Use when: payment, monetize, subscribe, billing, premium.
Detect Chrome extension framework/stack, find proper docs, implement features, and debug across service worker, content script, and popup contexts.
| name | extension-migration |
| description | Migrate Chrome extensions from MV2 to MV3. Service workers, declarativeNetRequest, API replacements. Use when: migrate, mv2, mv3, manifest v2. |
Official migration guide: https://developer.chrome.com/docs/extensions/develop/migrate
Consider framework adoption: When migrating MV2→MV3, consider adopting WXT or Plasmo for built-in MV3 support, auto-manifest generation, and modern tooling.
manifest_version to 3| Area | MV2 | MV3 |
|---|---|---|
| Background | background.scripts/page | background.service_worker |
| Browser action | browser_action / page_action | action |
| Network blocking | webRequest (blocking) | declarativeNetRequest |
| Script injection | tabs.executeScript(string) | scripting.executeScript({func/files}) |
| Remote code | CDN scripts allowed | Must bundle locally |
| CSP | String value | Object {extension_pages: "..."} |
| Web accessible | string[] | object[] with matches field |
| Host permissions | In permissions array | Separate host_permissions array |
| URL helper | chrome.extension.getURL | chrome.runtime.getURL |
| Persistent storage | localStorage | chrome.storage.local |
manifest_version: 3 setlocalStorage/sessionStorage → chrome.storage.*XMLHttpRequest → fetchsetInterval/setTimeout → chrome.alarmsbrowser_action/page_action → actiontabs.executeScript → scripting.executeScriptchrome.extension.getURL → chrome.runtime.getURLpermissions host entries → host_permissionsweb_accessible_resources updated to object formatcontent_security_policy updated to object formateval, string Function())webRequest blocking → declarativeNetRequest (if used)chrome.extension.getURL() → chrome.runtime.getURL()
chrome.extension.getBackgroundPage() → chrome.runtime.getBackgroundPage() [deprecated, use messaging]
chrome.tabs.executeScript() → chrome.scripting.executeScript()
chrome.tabs.insertCSS() → chrome.scripting.insertCSS()
chrome.browserAction.* → chrome.action.*
chrome.pageAction.* → chrome.action.*
webRequest (blocking) → declarativeNetRequest
localStorage → chrome.storage.local
XMLHttpRequest → fetch()
setInterval (background) → chrome.alarms
document/window (background) → NOT available in service worker
// MV2
{
"manifest_version": 2,
"background": { "scripts": ["bg.js"], "persistent": false },
"browser_action": { "default_icon": "icon.png" },
"permissions": ["webRequest", "webRequestBlocking", "https://example.com/*"],
"content_security_policy": "script-src 'self'; object-src 'self'",
"web_accessible_resources": ["images/*.png"]
}
// MV3
{
"manifest_version": 3,
"background": { "service_worker": "bg.js" },
"action": { "default_icon": "icon.png" },
"permissions": ["declarativeNetRequest"],
"host_permissions": ["https://example.com/*"],
"content_security_policy": { "extension_pages": "script-src 'self'; object-src 'self'" },
"web_accessible_resources": [{ "resources": ["images/*.png"], "matches": ["<all_urls>"] }]
}
extension-manifest - MV3 manifest generationextension-testing - Testing after migrationextension-security - Security audit post-migration