Update modes
| Mode | What happens | Typical impact |
|---|---|---|
| Hot module replacement (HMR) | Module/style updates apply in-place | Fastest iteration, no full extension relaunch |
Hard reload | The target browser reloads the extension runtime | Extension context restarts, but dev process keeps running |
Restart required | Compile-time diagnostic asks you to restart extension dev | Needed for structural entrypoint/list changes |
Common examples
| Change | Expected behavior |
|---|---|
| Edit content script/component code | HMR/remount path (when supported) |
| Edit style imports used by content scripts/pages | HMR-style update path (context-dependent) |
Edit manifest.json values (non-structural) | Hard reload flow |
| Add/remove manifest entrypoint references | Restart required |
Add/remove pages/ or scripts/ entrypoints | Restart required |
Edit _locales/*/messages.json | Hard reload flow |
What to do when you need to restart
When Extension.js reportsRestart required, stop and rerun extension dev before continuing.
Typical triggers:
- Adding or removing manifest entrypoint references
- Adding or removing files under
pages/orscripts/used as extension entrypoints - Structural script/style entry changes in HTML entrypoints
Practical guidance
- Prefer editing existing modules/assets during active dev sessions for fastest feedback.
- Batch structural manifest changes (entrypoint list edits) so you restart once.
- Treat restart required diagnostics as authoritative; continuing without restart can leave your runtime in a stale state.

