manifest.json
を作成ここまで、Webページで動くContent Scripts、Browser(Page) Actionのポップアップ、Background(Event) Pageと、3つのJavascriptの実行コンテキストが出てきました。これらはそれぞれ独立して動いており、異なるコンテキストを跨いで互いに変数や関数を参照することは出来ません。 そこで、それぞれの環境から互いにメッセージを送り、スクリプト間の連携を実現するMessage Passingという概念が登場します。 Message Passingはchrome.*APIによって実現します。これは実際に例を見てみたほうが理解できると思うので、まずは例を見てみましょう。
https://qiita.com/k7a/items/26d7a22233ecdf48fed8#chromestorageapi%E3%81%A8option-page
Content scripts are files that run in the context of web pages. By using the standard Document Object Model (DOM), they are able to read details of the web pages the browser visits, make changes to them, and pass information to their parent extension.
https://developer.chrome.com/docs/extensions/mv3/content_scripts/
Content scripts can access Chrome APIs used by their parent extension by exchanging messages with the extension. They can also access the URL of an extension's file with chrome.runtime.getURL() and use the result the same as other URLs.
https://developer.chrome.com/docs/extensions/mv3/content_scripts/
manifest.json
のcontent_scripts
プロパティでメタ情報定義ポップアップ画面を設定できる。拡張のアイコンがクリックされたときに実行。
Content Scriptでローカルファイルを読み込む例
data.csv
)const dataPath = chrome.runtime.getURL( dataSource );
const response = await fetch( dataPath );
const csvText = await response.text();
ref. https://developer.chrome.com/docs/extensions/mv3/content_scripts/