Closed6

自作Chrome拡張をManifest v3に対応させる

Shingo YamazakiShingo Yamazaki

チェックリスト: Manifest V3 migration checklist - Chrome Developers

API Checklist

  • Do you have host permissions in your manifest? → No
  • 🙋‍♂️ Are you using background pages?
  • 🙋‍♂️ Are you using the browser_action or page_action property in manifest.json?
  • 🙋‍♂️ Are you using the chrome.browserAction or chrome.pageAction JavaScript API?
  • Are you currently using the blocking version of chrome.webRequest ?
  • Are you using these scripting/CSS methods in the chrome.tabs API?
  • Are you executing remote code or arbitrary strings?
  • Are you executing functions that expect an Manifest V2 background context?

Security Checklist

  • Are you making CORS requests in content scripts?
  • Are you using a custom content_security_policy in manifest.json?
Shingo YamazakiShingo Yamazaki

🙋‍♂️ Are you using background pages?

Migrating from background pages to service workers - Chrome Developers

background.html や background.js は廃止。

これが変更としてはおそらく一番大きくて、Service Workerになったことでdocument触れないとかありそう。

https://github.com/pokutuna/chrome-cocopy
の実装とか参考にする。 background は使ってなかった

Shingo YamazakiShingo Yamazaki

🙋‍♂️ Are you using the browser_action or page_action property in manifest.json?

🙋‍♂️ Are you using the chrome.browserAction or chrome.pageAction JavaScript API?

https://developer.chrome.com/docs/extensions/mv3/intro/mv3-migration/#action-api-unification
ここを参照。action はすべて action に統一。

manifest だけでなくソースコード内の chrome.browserAction なども chrome.action に変更する必要あり。

あと、わかりづらいけど
https://developer.chrome.com/docs/extensions/reference/commands/#action-commands
manifest の commands でショートカットキーを設定してる場合、ここも _execute_browser_action -> _execute_action に変える必要がある。

Chrome を再起動しないとショートカットキーが動作しない?

Shingo YamazakiShingo Yamazaki

なお、これを機にクリップボードにコピーしている箇所を navigator.clipboard.writeText に変えようかと思ったけど

DOMException: Document is not focused.

エラーが出るのは変わらずだったので断念。

このスクラップは2022/05/31にクローズされました