26
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2021-02-10

##概要
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が参考になります。
##参考リンク

26
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?