Chrome拡張機能の内部構造を理解しようとしています。これについてもっと詳細を述べることができれば嬉しいです。独自のプロセスで実行Chrome拡張機能
- 拡張機能を次のように
私の理解です。
- 拡張機能は、IPCを介してブラウザプロセスとやりとりします。
私の質問: 1.我々は(例えばchrome.module.functionとして拡張APIを呼び出すたび)の拡張、ユーザスクリプトから、私は関数が最初のレンダリングプロセスに移動して、このようなIPCを送ることを期待します必要な操作を行うためにExtensionHostMsg_ABCをブラウザプロセスに追加します。
Extension Process Browser Process
ExtensionHostMsg_Req
chrome.module.function() ----------------> Handle the msg
ExtensionMsg_Response
Send the result back to js <-----------------
しかし、私の驚きに
は、私はすべての拡張API関数が宣言され、クロム/ブラウザ/拡張/ xyz_api.h &の.ccファイルで定義されていることがわかります。だから、jsからapiが呼び出されたときのように、私たちはブラウザプロセスに直接行きます。この魔法はどこでどのように起こるのですか?- 私はまた、いくつかの拡張機能のバインディングC++クロム/レンダラ/拡張/ abc_bindings.ccのコードとクロム/レンダラ/拡張/リソース/ abc.jsでjsの対応するコードを参照してください。拡張レンダラーとjsコードの間でいくつかの情報を共有するこのコードがあると思います。そうですか?このためのシナリオ例を教えてください。
これらの基本的な質問には申し訳ありません。私は本当にあなたの助けに感謝します。