サーチ…


備考

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で最初の安定版を目指しています。

UPDFirefox 48は02.08.2016をリリースしました。


リンク:

APIサポート状況 - APIのリストとそのステータス。

Chromeの非互換性

WebExtensions - JavaScript API、manifest.jsonのキー、チュートリアルなど

WebExtensionsによる移植

Firefoxの拡張機能を/から移植する方法について説明する前に、 WebExtensions内容を理解しておく必要があります。

WebExtensions - Firefox拡張機能を作成するためのAPIを表すプラットフォームです。

Chromiumと同じ拡張アーキテクチャを使用しているため、このAPIはGoogle ChromeOpera (ChromiumをベースにしたOpera)のAPIと多くの点で互換性があります。多くの場合、これらのブラウザ向けに開発された拡張機能は、いくつかの変更を加えてFirefox動作します。

MDN WebExtensionを新しい拡張機能に使用すること推奨しています。

将来、WebExtensionsはFirefoxアドオンを開発するための推奨方法になり、他のシステムは非推奨になります。

前述の観点から、 Firefoxに拡張機能を移植する場合は、その拡張機能がどのように書かれているかを知る必要があります。

Firefoxの拡張機能は、 WebExtensionAdd-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

アドオンSDKとの比較

同様のアプローチとXUL拡張。

XUL / XPCOM拡張との比較



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow