12
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

自作のChrome拡張機能をManifestV3に移行してみた

概要

ManifestV3が使えるChrome 88が少し前に正式リリースされたので試しに移行してみた時の感想や注意点を雑にまとめた記事です。
ちなみに移行したのはMouseGestureという自作のChrome拡張機能です。

実際にManifestV3してみる

取り敢えずmanifest.jsonmanifest_versionを3に変更してみます。

manifest.json
- "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.
マニフェストを読み込めませんでした。

指示通りbackgroundscriptsservice_workerをに変更してみました。

manifest.json
     "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を移動後

manifest.json
     "background": {
-         "service_worker": "js/background.js"
+         "service_worker": "background.js"
      }

しかしまだ他のエラーが発生します。

'browser_action' requires manifest version of 2 or lower.

こっちの解決方法は単純でbrowser_actionactionに変えればいいだけでした。

manifest.json
-     "browser_action": { "default_popup": "html/popup.html" }
+     "action": { "default_popup": "html/popup.html" }

たったこれだけの修正でManifestV3に更新できました。

まとめ

バックグラウンドページやイベントページはサービスワーカーへ移行する必要があります。
その時ファイルの位置をmanifest.jsonと同じディレクトリにします。
browser_actionpage_actionactionに変える必要があります。
移行に必要なことについてはManifest V3 migration checklistが参考になります。

参考リンク

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
12
Help us understand the problem. What are the problem?