FirefoxとWebExtensionとExtensionIDと。

はじめに

FirefoxのWebExtensionとNativeMessagingHostで通信をしようとしていまいちうまくいかなくていろいろ触ってみました。

まずは結論

ExtensionIDの確認がしたければ、とりあえず

console.log(chrome.runtime.id)

で吐かせましょう。

どうやってExtensionIDは決まるのか。

 "applications": {
     "gecko": {
         "id": "/^([a-z0-9-._]*@[a-z0-9-._]+|\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]
 {12}-\})$/i"
     }
 }

f:id:paihu:20170906222440p:plain

  • 署名済みなら addons.firefox.com の署名ページ f:id:paihu:20170906224651p:plain

  • 未署名をabout:debugging 経由で読み込んだら

毎回変わる [a-f0-9]+@temporary-addon というもの
これは、 chrome.runtime.id を表示させないとわからない気がします。
内部UUIDとは関係なさそう。

開発中どうすれば

素直に manifest.jsonに書くのがよさそうな気がします。

でも、これ書くとクロスブラウザ的な開発したいとき、 chromeに読み込ませると警告が出るのがいやらしい。。

とはいえ、開発中くらいID固定しないととってもつらいです。