Sök…


Anmärkningar

Om du använder en Firefox- version före 48, behöver du också en ytterligare nyckel i manifest.json applikationer:

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

tillämpningar


Notera:

Förlängningssignering :

När Firefox 48 släpps kan inte längre signering av förlängning inaktiveras i utgåvan och betakanalens byggnad med hjälp av en preferens. Som beskrivits när tilläggssignering tillkännagavs publicerar vi specialiserade builds som stöder denna preferens så att utvecklare kan fortsätta testa mot koden som beta- och release-build genereras från.

Status för WebExtensions :

WebExtensions är för närvarande i ett experimentellt alfa-tillstånd. Från Firefox 46 kan du publicera WebExtensions till Firefox-användare, precis som alla andra tillägg. Vi siktar på en första stabil version i Firefox 48.

UPD : Firefox 48 släppt 02.08.2016.


länkar:

API-supportstatus - Listan över API: er och deras status.

Inkompatibiliteter med Chrome

WebExtensions - JavaScript API: er, nycklar till manifest.json, handledning osv.

Porting via WebExtensions

Innan man pratar om porting av Firefox- tillägg från / till, bör man veta vad WebExtensions är.

WebExtensions - är en plattform som representerar ett API för att skapa Firefox- tillägg.

Den använder samma förlängningsarkitektur som Chromium , som ett resultat är detta API kompatibelt på många sätt med API i Google Chrome och Opera (Opera som baseras på Chromium). I många fall fungerar tillägg som utvecklats för dessa webbläsare i Firefox med några ändringar eller till och med utan dem alls.

MDN rekommenderar att använda WebExtension för nya tillägg:

I framtiden kommer WebExtensions att vara det rekommenderade sättet att utveckla Firefox-tillägg, och andra system kommer att avskrivas.

Med hänsyn till det föregående, om du vill porta tillägg till Firefox , måste du veta hur tillägget skrevs.

Extensions för Firefox kan baseras på WebExtension , Add-on SDK eller XUL .


Kompatibla tillägg baserade på WebExtension

När man använder WebExtension måste man titta igenom listan över inkompatibiliteter , eftersom vissa funktioner stöds helt eller delvis, det vill säga, man bör kontrollera sin manifest.json .

Det gör det också möjligt att använda samma namnutrymme :

För närvarande är alla API: er tillgängliga via chrome. * Namnutrymme. När vi börjar lägga till våra egna API: er förväntar vi oss att lägga till dem i webbläsaren. * Namnutrymme. Utvecklare kan använda funktionsdetektering för att avgöra om ett API är tillgängligt i webbläsaren. *.

En enkel förlängning som kan fungera i Firefox och 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);

Packa projekt som standard zip fil, men med .xpi tillägg.

Packa projektet

Sedan måste du ladda tillägget i Firefox .

Öppna sidan about:addons , tillgänglig via Meny> Tillägg .

Klicka på Verktyg för alla tilläggsknapp .

Installera tillägg

När tillägget laddas kommer sidan about:addons att se ut så här:

Resultat av installationen

Instruktioner om hur du laddar tillägget i Google Chrome finns i ett annat ämne - Komma igång med Chrome-tillägg .

Resultatet av förlängningsoperationen blir samma i båda webbläsarna ( Firefox / Google Chrome ):

Resultat av arbetet


Om det nuvarande tillägget är baserat på tillägg SDK eller XUL

När tillägg som porteras baseras på Add-on SDK måste man titta igenom jämförelsetabellen för Add-on SDK => WebExtensions , eftersom dessa teknologier har liknande funktioner, men skiljer sig åt i implementeringen. Varje tabellavsnitt beskriver motsvarigheten till Add-on SDK för WebExtension .

Jämförelse med tilläggs-SDK

En liknande strategi och för XUL-tillägg.

Jämförelse med XUL / XPCOM-tillägg



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow