migration-guide

Guide Chrome extension upgrades from Manifest V2 to Manifest V3.

1|Updated Dec 4, 2025
One-click install
npx skills add https://github.com/francanete/fran-marketplace --skill migration-guide-francanete
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: migration-guide
Source: https://github.com/francanete/fran-marketplace/tree/main/chrome-extension-expert/skills/migration-guide
Command: npx skills add https://github.com/francanete/fran-marketplace --skill migration-guide-francanete

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This migration guide helps developers update Chrome extensions from Manifest V2 to Manifest V3, addressing breaking changes and compatibility concerns.

Core Features & Use Cases

  • Background page to service worker migration guidance
  • API changes coverage (webRequest to declarativeNetRequest, host_permissions, and new permissions)
  • Remediation patterns for remote code removal, executeScript updates, and persistence strategies

Quick Start

Follow these steps to migrate your MV2 extension to MV3: update manifest_version to 3, replace background scripts with a service worker, adapt permissions and content scripts, and configure declarativeNetRequest rules.

Frequently Asked Questions about migration-guide

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate a Chrome extension from Manifest V2 to Manifest V3?

To migrate a Chrome extension from Manifest V2 to Manifest V3, update the manifest_version field to 3, replace background scripts with a service worker, adapt permissions and content scripts, and configure declarativeNetRequest rules.

How do I replace background pages with service workers in Manifest V3?

Background pages are replaced by service workers in Manifest V3 to handle extension events. You must register the service worker in the manifest and adapt your background scripts to manage state persistence without DOM access.

How do I migrate webRequest blocking to declarativeNetRequest in Manifest V3?

Migrating webRequest blocking to declarativeNetRequest in Manifest V3 involves defining static or dynamic rules in JSON format and declaring the declarativeNetRequest permission instead of using imperative webRequest interceptors.

Do I need to remove remote code to upgrade my Chrome extension to Manifest V3?

Yes, upgrading to Manifest V3 requires removing remote code. You must bundle all logic locally and update executeScript calls to inject static files or strings rather than loading external scripts dynamically.

What are the persistence strategies for service workers in Manifest V3?

Persistence strategies for Manifest V3 service workers involve using chrome.storage and alarms APIs to manage state, because service workers are ephemeral and terminate when idle, unlike persistent background pages.

Why does my Chrome extension break after updating the manifest_version to 3?

Updating the manifest_version to 3 breaks Chrome extensions because MV3 introduces architectural changes, requiring background page to service worker migration, host_permissions separation, and declarativeNetRequest API adoption.