概要
ManifestV3が使えるChrome 88が少し前に正式リリースされたので試しに移行してみた時の感想や注意点を雑にまとめた記事です。
ちなみに移行したのはMouseGestureという自作のChrome拡張機能です。
実際にManifestV3してみる
取り敢えずmanifest.json
のmanifest_version
を3に変更してみます。
- "manifest_version": 2
+ "manifest_version": 3
エラーが発生しました。
~\projects\MouseGesture_Chrome-Extensions
The "background.scripts" key cannot be used with manifest_version 3. Use the "background.service_worker" key instead.
マニフェストを読み込めませんでした。
指示通りbackground
のscripts
をservice_worker
をに変更してみました。
"background": {
- "scripts": ["js/background.js"],
- "persistent": false
+ "service_worker": "js/background.js"
}
登録はできましたがまたエラーが発生しました。
Service worker registration failed
色々調べてみて分かりましたがどうやらservice_worker
のスクリプトはmanifest.json
と同じフォルダにないと駄目みたいです。
├─css
├─html
├─icons
├─js
├─background.js
└─manifest.json
background.js
を移動後
"background": {
- "service_worker": "js/background.js"
+ "service_worker": "background.js"
}
しかしまだ他のエラーが発生します。
'browser_action' requires manifest version of 2 or lower.
こっちの解決方法は単純でbrowser_action
をaction
に変えればいいだけでした。
- "browser_action": { "default_popup": "html/popup.html" }
+ "action": { "default_popup": "html/popup.html" }
たったこれだけの修正でManifestV3に更新できました。
まとめ
バックグラウンドページやイベントページはサービスワーカーへ移行する必要があります。
その時ファイルの位置をmanifest.json
と同じディレクトリにします。
browser_action
やpage_action
はaction
に変える必要があります。
移行に必要なことについてはManifest V3 migration checklistが参考になります。