このページ内容は2021年1月21日以降、再調査・再検証してません。実際に扱う際は最新の情報にアクセスしてください。

link
Chrome Extension Manifest V3

2021年にはChrome Extension Manifest V3が正式リリースされましたchrome_mv3。Manifest V3ではV2の機能を制限することで、セキュリティ的な安全性の向上を図っています。2023年6月にはManifest V2で作られたものは動かなくなるため、それまでに拡張機能の書き換えが必要ですmv2_sunset。Manifest V2とV3の主な違いは以下の点にありますmv3_features

    バックグラウンドページの代わりにサービスワーカーを利用
    リモートでホストされるコードの禁止
    多くのメソッドにPromiseをサポート
    いくつかAPIを廃止、追加

大きな変化はサービスワーカーの利用です。DOMへのアクセスが不可になるだけでなく、localStorageへのアクセスもできなくなります。DOMへのアクセスはcontent_script経由で、localStorageは使えないのでStorage APIを使うことで対応できます。

また、windowオブジェクトへのアクセスもできないため、chrome.windows.create APIでChrome拡張からウィンドウを作ることはできますが、setSelfAsOpenerが指定できなくなってます。つまり、Chrome拡張が開いたウィンドウを閉じるときに、postMessageとchrome.windows.remove APIを併用して書く必要があり、従来と比べてコードが書きづらくなってます。


自己紹介
はじめまして Pilefortです。
東京でエソジニアをしてます。
興味のあるスタックは、JavaScript (React, Vue), TypeScript, Rust, WebAssembly, AWS, Pulumi, Serverless Frameworkです。
このブログでは、普段の業務や趣味で気になったことをまとめたり、フロントやAWS, GitHubやTwitterで見かけた面白い記事やニュースをまとめるためのものです。少しでも何かの役に立てば幸いです。
サイトマップ
Notes
業務や趣味での気づき・メモ
Snippets
記事にするまでもないけど、便利なコマンドや豆知識
Works
同人誌一覧