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