google-chrome-extension
Firefoxとの間の移植
サーチ…
備考
48より前のバージョンのFirefoxを使用している場合は、アプリケーションと呼ばれる
manifest.json
も追加のキーが必要です。
"applications": {
"gecko": {
"id": "[email protected]",
"strict_min_version": "42.0",
"strict_max_version": "50.*",
"update_url": "https://example.com/updates.json"
}
}
注意:
拡張署名 :
Firefox 48のリリースでは、環境設定を使用して、リリースおよびベータ版のビルドで拡張機能の署名を無効にすることはできなくなりました。拡張署名が発表されたときに概説したように、開発者はベータ版とリリースビルドが生成されたコードに対してテストを続けることができるように、この設定をサポートする特殊なビルドを公開しています。
WebExtensions
ステータス:
WebExtensionsは現在、実験的なアルファ状態です。 Firefox 46から、他のアドオンと同様に、WebExtensionsをFirefoxユーザーに公開することができます。私たちはFirefox 48で最初の安定版を目指しています。
UPD : Firefox 48は02.08.2016をリリースしました。
リンク:
WebExtensions - JavaScript API、manifest.jsonのキー、チュートリアルなど
WebExtensionsによる移植
Firefoxの拡張機能を/から移植する方法について説明する前に、 WebExtensions
内容を理解しておく必要があります。
WebExtensions
- Firefox拡張機能を作成するためのAPIを表すプラットフォームです。
Chromiumと同じ拡張アーキテクチャを使用しているため、このAPIはGoogle ChromeとOpera (ChromiumをベースにしたOpera)のAPIと多くの点で互換性があります。多くの場合、これらのブラウザ向けに開発された拡張機能は、いくつかの変更を加えてFirefoxで動作します。
MDN は 、 WebExtension
を新しい拡張機能に使用することを推奨しています。
将来、WebExtensionsはFirefoxアドオンを開発するための推奨方法になり、他のシステムは非推奨になります。
前述の観点から、 Firefoxに拡張機能を移植する場合は、その拡張機能がどのように書かれているかを知る必要があります。
Firefoxの拡張機能は、 WebExtension
、 Add-on SDK
またはXUL
基づいてAdd-on SDK
。
WebExtensionに基づく互換性のある拡張機能
WebExtension
を使用する場合、一部の関数が完全にまたは部分的にサポートされているため、 非互換性のリストを調べなければなりません。つまり、 manifest.json
をチェックする必要があります。
現時点では、すべてのAPIにchrome。*名前空間を使用してアクセスできます。独自のAPIを追加するときは、ブラウザ。* namespaceに追加する予定です。開発者は、機能検出を使用して、APIがブラウザで利用できるかどうかを判断できます。
FirefoxとGoogle Chromeで動作するシンプルな拡張機能
manifest.json
:
{
"manifest_version": 2,
"name": "StackMirror",
"version": "1.0",
"description": "Mirror reflection of StackOverflow sites",
"icons": {
"48": "icon/myIcon-48.png"
},
"page_action": {
"default_icon": "icon/myIcon-48.png"
},
"background": {
"scripts" : ["js/background/script.js"],
"persistent": false
},
"permissions": ["tabs", "*://*.stackoverflow.com/*"]
}
background
スクリプト:
function startScript(tabId, changeInfo, tab) {
if (tab.url.indexOf("stackoverflow.com") > -1) {
chrome.tabs.executeScript(tabId,
{code: 'document.body.style.transform = "scaleX(-1)";'}, function () {
if (!chrome.runtime.lastError) {
chrome.pageAction.show(tabId);
}
});
}
}
chrome.tabs.onUpdated.addListener(startScript);
標準のzip
ファイルとしてプロジェクトをパックしますが、拡張子は.xpi
です。
その後、 Firefoxで拡張機能を読み込む必要があります。
メニュー about:addons
からアクセスできるabout:addons
ページを開きます 。
すべてのアドオンボタンのツールをクリックします。
拡張機能が読み込まれると、次のようなページが表示されますabout:addons
は次のようになります:
Google Chromeで拡張機能を読み込む方法については、他のトピック、「Chrome拡張機能の使い方」を参照してください 。
拡張操作の結果は、両方のブラウザ( Firefox / Google Chrome )で同じになります。
現在のアドオンがアドオンSDKまたはXULに基づいている場合
拡張機能が移植されている場合は、 Add-on SDK
Add-on SDK
=> WebExtensions
の比較表を調べる必要があります。これは、これらの技術は機能は似ていますが実装は異なります。表の各セクションでは、 WebExtension
用のAdd-on SDK
相当するものについて説明Add-on SDK
。
同様のアプローチとXUL拡張。