Suche…


Bemerkungen

Wenn Sie eine Firefox- Version vor 48 verwenden, benötigen Sie in manifest.json einen zusätzlichen Schlüssel, der als Anwendungen bezeichnet wird:

"applications": {
  "gecko": {
    "id": "[email protected]",
    "strict_min_version": "42.0",
    "strict_max_version": "50.*",
    "update_url": "https://example.com/updates.json"
  }
}

Anwendungen


Hinweis:

Erweiterungssignatur :

Mit dem Release von Firefox 48 kann die Erweiterungssignierung in den Release- und Beta-Channel-Builds nicht mehr mithilfe einer Voreinstellung deaktiviert werden. Wie bereits bei der Ankündigung der Erweiterungssignatur beschrieben, veröffentlichen wir spezialisierte Builds, die diese Einstellung unterstützen, sodass Entwickler weiterhin den Code testen können, aus dem Beta- und Releasebuilds generiert werden.

Status von WebExtensions :

WebExtensions befinden sich derzeit in einem experimentellen Alpha-Zustand. Mit Firefox 46 können Sie WebExtensions wie jedes andere Add-On für Firefox-Benutzer veröffentlichen. Wir streben eine erste stabile Veröffentlichung in Firefox 48 an.

UPD : Firefox 48 veröffentlicht am 02.08.2016.


Links:

API-Unterstützungsstatus - Die Liste der APIs und deren Status.

Chrome Inkompatibilitäten

WebExtensions - JavaScript-APIs, Schlüssel von manifest.json, Tutorials usw.

Portierung über WebExtensions

Bevor Sie über die Portierung von Firefox- Erweiterungen von / nach sprechen, sollten Sie wissen, was WebExtensions ist.

WebExtensions - ist eine Plattform, die eine API zum Erstellen von Firefox- Erweiterungen darstellt.

Es verwendet dieselbe Erweiterungsarchitektur wie Chromium . Daher ist diese API in vielerlei Hinsicht mit der API in Google Chrome und Opera (Opera, die auf Chromium basiert) kompatibel. In vielen Fällen funktionieren Erweiterungen, die für diese Browser entwickelt wurden, in Firefox mit einigen Änderungen oder sogar ohne diese.

MDN empfiehlt die Verwendung von WebExtension für neue Erweiterungen:

In Zukunft werden WebExtensions die empfohlene Methode zur Entwicklung von Firefox-Add-Ons sein, und andere Systeme werden nicht mehr weiterentwickelt.

Wenn Sie Erweiterungen in Firefox portieren möchten, müssen Sie wissen, wie die Erweiterung geschrieben wurde.

Erweiterungen für Firefox können auf WebExtension , Add-on SDK oder XUL basieren.


Kompatible Erweiterungen basierend auf WebExtension

Bei der Verwendung von WebExtension muss die Liste der Inkompatibilitäten durchgesehen werden, da einige Funktionen vollständig oder teilweise unterstützt werden, das heißt, man sollte manifest.json überprüfen.

Es ermöglicht auch die Verwendung desselben Namensraums :

Derzeit sind alle APIs über den Chrome. * -Namensraum zugänglich. Wenn wir mit dem Hinzufügen eigener APIs beginnen, erwarten wir, dass sie dem Browser * hinzugefügt werden. * Namespace. Entwickler können mithilfe der Featureerkennung feststellen, ob eine API im Browser verfügbar ist. *.

Eine einfache Erweiterung, die in Firefox und Google Chrome verwendet werden kann

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);

Packet das Projekt als Standard- zip Datei, jedoch mit der Erweiterung .xpi .

Projekt packen

Dann müssen Sie die Erweiterung in Firefox laden.

Öffnen Sie die about:addons Seite, die Sie über Menü> Add-Ons aufrufen können.

Klicken Sie für alle Add- On - Schaltflächen auf Extras .

Erweiterung installieren

Wenn die Erweiterung geladen ist, sieht die Seite about:addons aus:

Ergebnis der Installation

Anweisungen zum Laden der Erweiterung in Google Chrome finden Sie in einem anderen Thema - Erste Schritte mit Chrome Extensions .

Das Ergebnis der Erweiterungsoperation ist in beiden Browsern ( Firefox / Google Chrome ) gleich:

Ergebnis der Arbeit


Wenn das aktuelle Add-On auf Add-On-SDK oder XUL basiert

Wenn die Erweiterung, die portiert wird, auf dem Add-on SDK basiert, muss die Vergleichstabelle nach Add-on SDK => WebExtensions . Jeder Abschnitt der Tabelle beschreibt das Äquivalent des Add-on SDK für WebExtension .

Vergleich mit dem Add-On-SDK

Ein ähnlicher Ansatz und für XUL-Erweiterungen.

Vergleich mit XUL / XPCOM-Erweiterungen



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow