Firefox 48 と Edge(Windows 10 Anniversary Update) が、Chrome拡張機能(extension API)互換のWebExtensionsに正式対応しました
基本は以下のページを参考にしています
ゼロからはじめる Microsoft Edge 用の拡張の作り方 – monoe's blog
WebExtensions - Mozilla | MDN
manifest.json - Mozilla | MDN
Extensions: Supported APIs - Microsoft Edge Development
目次
Edgeとmanifest.json
Edgeではmanifest.jsonの"background"に"persistent"が必要
この書式はChromeでもFifefoxでもエラーは起きない
"background": { "scripts": ["background.js"] },
↓
"background": { "scripts": ["background.js"], "persistent": false }, },
Edgeではmanifest.jsonの"browser_action"に19・38の大きさのアイコンが必要
この書式はChromeでもFifefoxでもエラーは起きない
"browser_action": { "default_icon": "images/icon32.png" },
↓
"browser_action": { "default_icon": { "19": "images/icon19.png", "38": "images/icon38.png" } },
Firefoxとmanifest.json
Firefoxでは「"options_page"」は使えず「"options_ui"」を使う
"options_ui"を使う時にはさらに"applications"の指定が必要→アドオンのデバッグの時だけかもしれない
idには「(拡張機能名)@(自分が持ってるオリジナルなドメイン名)」あたり?idの値について詳しくは以下のURL参照
Install Manifests - Mozilla | MDN
この書式はFirefoxの時のみ使う
"options_page" : "options.html",
↓
"applications": { "gecko": { "id": "extensionname@example.org" } }, "options_ui": { "page": "options.html", "open_in_tab": true },
Edgeと*.js
Edgeでは名前空間の「chrome」を「browser」に置換する
Edgeではbrowserのみ使える
Fifefoxではchromeとbrowser両方使える
Chromeではchromeのみ使える
url = chrome.extension.getURL(url);
url = browser.extension.getURL(url);
jsファイルの一番上に以下の書式を書く事で、Chrome・Edge・Firefox一律で名前空間「browser」で使えるようになる(今後もこの方法が使えるかどうかの保障はしません)
//chromeとbrowserの名前空間対策 if (!("browser" in window)) { window.browser = chrome; }
Edgeでは日本語環境のnavigator.languageの戻り値が"ja-JP"で帰って来る
Chromeだと"ja"が帰って来る
この書式はChromeでもFifefoxでもエラーは起きない
var lang = navigator.language; if(lang == "ja"){ }
↓
var lang = navigator.language; if(lang == "ja" || lang == "ja-JP"){ }
Firefoxと*.js
Firefoxではtabs.createのパラメータに"selected"は使えず"active"を使う
この書式はChromeでもFifefoxでもエラーは起きない
chrome.tabs.create({ "url": url, //URL "selected": true //タブをアクティブにする });
↓
browser.tabs.create({ "url": url, //URL "active": true //タブをアクティブにする });
トラックバック URL
https://moondoldo.com/wordpress/wp-trackback.php?p=1240