Szukaj…


Wprowadzenie

Dodatki:

Dodatki do przeglądarki Firefox są na ogół pogrupowane w rozszerzenia, a następnie „inne typy” dodatków do przeglądarki Firefox.

Rozszerzenia

Rozszerzenia umożliwiają dostosowanie Firefoksa poprzez dodanie lub modyfikację funkcjonalności Firefoksa. Niektóre rodzaje rzeczy, które można zrobić za pomocą rozszerzeń, to:

  • Zmień wygląd określonych witryn internetowych, ich zawartość lub sposób interakcji z nimi.
  • Dostosuj interfejs użytkownika Firefox
  • Dodaj dodatkowe funkcje do Firefoksa
  • Zmień sposób działania istniejących funkcji Firefoksa

Rozszerzenia Firefoksa są napisane przede wszystkim w JavaScript z dodatkiem niektórych API JavaScript.

Wycofywanie i usuwanie wszystkich typów rozszerzeń innych niż WebExtensions

Dodatki do Firefoksa, szczególnie rozszerzenia, są obecnie w ciągłym ruchu. Mozilla ogłosiła i potwierdziła, że wycofała wszystkie typy rozszerzeń Firefoksa, z wyjątkiem rozszerzeń WebExt, i że wszystkie rozszerzenia nie oparte na rozszerzeniach WebExtensions zostaną wyłączone w przeglądarce Firefox 57, która jest zaplanowana na 14.11.2017 .

Rodzaje rozszerzeń

Firefox ma cztery typy rozszerzeń (wszystkie są powszechnie nazywane dodatkami):

  • Rozszerzenia Web : W przyszłości rozszerzenia WebExtensions są jedynym typem rozszerzenia Firefox, który będzie obsługiwany. Te dodatki są opisane w pliku manifest.json . Ten interfejs API jest podobny do tego, który jest używany dla rozszerzeń Google Chrome. Te dodatki używają HTML i CSS oprócz Javascript. Chociaż Mozilla stwierdziła, że ten interfejs API jest przyszłością rozszerzeń Firefoksa, ten interfejs API jest wciąż w fazie rozwoju. Na razie prawdopodobnie najlepiej jest opracować i przetestować dodatek WebExtension za pomocą Firefox Developer Edition lub Firefox Nightly . Powinieneś także dokładnie zanotować, jakiej wersji Firefoksa wymaga wymagana funkcjonalność. Informacje te są zawarte w sekcji „Kompatybilność przeglądarki” na stronach dokumentacji MDN.

    Rozszerzenia Web używają znacznie innego API niż pozostałe trzy typy rozszerzeń. Celowo nie ma możliwości korzystania z interfejsów innych typów dodatków.

  • Dodatkowy zestaw SDK : [ przestarzałe; zaplanowane do usunięcia ] Te dodatki są opisane w pliku package.json , który jest początkowo generowany przez uruchomienie jpm init . W tych rozszerzeniach często require() użycie funkcji require() celu załadowania interfejsów API wysokiego poziomu lub niskiego poziomu w celu połączenia z Firefoksem. Te dodatki używają HTML i CSS oprócz Javascript. Obecnie dodatki te są pakowane w rozszerzenie bootstrapped, gdy są ładowane do testowania przez jpm run lub skonsolidowane w pliku .xpi przez jpm xpi celu dystrybucji (tj. jpm xpi do AMO / Mozilla). Innymi słowy, są to rozszerzenia ładowane za pomocą opakowania SDK.

    Wydaje się, że Mozilla jest zobowiązana do dalszego wspierania rozszerzeń opartych na dodatkach SDK, o ile rozszerzenie to nie require("chrome") lub w inny sposób zależy od XUL , XPCOM i XBL .

    Większość rzeczy, które można wykonać w rozszerzeniu bootstrapped, można wykonać w dodatku opartym na SDK. Jednak wiele takich rzeczy omija zestaw SDK, który traci znaczną część korzyści wynikających z używania dodatkowego zestawu SDK.

  • Bootstrapped : [ przestarzałe; zaplanowane do usunięcia ] Te rozszerzenia są również powszechnie nazywane „restartami”, ponieważ były pierwszym typem rozszerzenia Mozilli, które nie wymagało ponownego uruchomienia aplikacji w celu załadowania / rozładowania dodatku. Jednak restartless jest deskryptorem tego, jak działają. Używanie „restartu” jako nazwy tego typu dodatku jest mylące, ponieważ zarówno dodatek SDK, jak i dodatki WebExtension również nie wymagają ponownego uruchomienia aplikacji po załadowaniu lub rozładowaniu dodatku. Z tego powodu istnieje tendencja do nieużywania „restartu” jako nazwy tego typu dodatków.

    Te dodatki używają HTML i CSS oprócz Javascript. Wiele osób korzysta także z przeglądarki Firefox za pomocą XUL .

    Te dodatki mają plik JavaScript o nazwie bootstrap.js, który musi zawierać punkty wejścia (funkcje), które są wywoływane w celu startup() dodatków startup() , shutdown() , install() i uninstall() .

    Te dodatki zawierają plik install.rdf , który opisuje dodatek. Zazwyczaj, ale nie zawsze, zawierają także plik chrome.manifest , który opisuje, w jaki sposób pliki i katalogi w rozszerzeniu odnoszą się do aplikacji Mozilla (np. Firefox).

    Większość, ale nie wszystkie rzeczy, które można zrobić w rozszerzeniach nakładki / XUL / Legacy, można osiągnąć w dodatkach bootstrapped. Wszystko, co można zrobić w dodatku SDK, można wykonać w rozszerzeniu bootstrapped (rozszerzenia SDK dodatku są dodatkami bootstrap z niektórymi warstwami API opartymi na JavaScript).

    Mozilla oświadczyła, że planuje wycofać „dodatki, które zależą od XUL , XPCOM i XBL ”. Chociaż nie wszystkie dodatki do ładowania początkowego zależą od tych technologii, istnieje tendencja do tego, by dodatki do ładowania początkowego działały na niższym poziomie niż dodatki SDK i dodatki WebExtension. Dlatego częściej korzystają z tych technologii. Chociaż niektórzy twierdzą, że wszystkie dodatki ładowane są planowo przestarzałe, nie jest to jasne. W końcu rozszerzenia SDK dodatków nie są przestarzałe (chyba że używają require("chrome") lub w inny sposób zależą od XUL, XPCOM lub XBL), a wszystkie rozszerzenia SDK dodatków są rozszerzeniami bootstrapowanymi, tylko z opakowaniem SDK .

  • Nakładka / XUL / Legacy : [ przestarzałe; zaplanowane do usunięcia ] Te dodatki zawierają plik install.rdf , który opisuje dodatek i plik chrome.manifest opisujący, w jaki sposób pliki dodatku odnoszą się (np. do nakładki) na pliki aplikacji. Sposób działania dodatku z aplikacją jest całkowicie zależny od relacji opisanych w pliku chrome.manifest . Jedynymi wyjątkami od tego są kilka rzeczy, takich jak ikony rozszerzenia i plik opisujący opcje rozszerzenia wskazane w pliku install.rdf . Te rozszerzenia współdziałają z aplikacją (np. Firefox) na bardzo niskim poziomie. Powoduje to, że bardziej prawdopodobne jest, że się zepsują podczas wprowadzania zmian w aplikacji.

    Te dodatki używają XUL, HTML i CSS oprócz Javascript. Niektórzy używają również XPCOM i XBL .

    Wszystkie rozszerzenia Overlay / XUL / Legacy są planowane jako przestarzałe.

Inne typy dodatków do Firefoksa

Kiedy większość ludzi myśli o dodatkach do Firefoksa, myśli o opisanych wyżej rozszerzeniach. Istnieją jednak dodatkowe typy dodatków do przeglądarki Firefox:

Ten „przykład” jest głównie kopiowany, z pewnymi modyfikacjami, od mojej, Makyena, odpowiedzi na pytanie dotyczące przepływu stosu .
Niektóre części tej zawartości zostały skopiowane, lub przynajmniej w oparciu o stronę dodatków w Mozilla Developer Network (MDN).
Zostało to pierwotnie opublikowane przez Makyena w sekcji „Uwagi” tagu firefox-addon . Następnie zmodyfikował go Ondřej Doněk , który usunął dodatkowe „za”. W pojedynczej edycji wykonanej przez nus został przeniesiony z „Uwagi” do przypiętego „przykładu” zatytułowanego „Wprowadzenie”. Niestety spowodowało to utratę przez system informacji o atrybucji.

Instalowanie tymczasowego dodatku

Aby przetestować opracowywany dodatek, prawdopodobnie będziesz chciał go tymczasowo zainstalować w przeglądarce Firefox. Możesz to zrobić, ładując go jako dodatek tymczasowy . Aby to zrobić:

  1. Przejdź do about:debugging
  2. Kliknij „Załaduj tymczasowy dodatek”
  3. W selektorze plików przejdź do katalogu zawierającego pliki dodatkowe
  4. Wybierz dowolny plik w folderze
  5. Kliknij „Otwórz”

Poniższa animacja pokazuje ładowanie dodatku o nazwie „aaaaaaaaaaaaaaaaaaa - dodatek demonstracyjny” z about:debugging a następnie dodatek pojawia się w about:addons :

ładowanie tymczasowego dodatku

Jako dodatek tymczasowy możesz załadować rozpakowany dodatek (katalog zawierający wszystkie pliki dodatku, które chciałbyś spakować do pliku .xpi ) lub dodatek, który jest spakowany do pliku .xpi archiwum .xpi . Tymczasowe dodatki nie muszą być podpisywane . Tymczasowy dodatek pozostaje zainstalowany, dopóki nie zostanie ręcznie odinstalowany lub Firefox nie uruchomi się ponownie.

Dokumentacja Mozilli: tymczasowa instalacja w przeglądarce Firefox

Rozszerzenia internetowe

Rozszerzenia Web można ładować jako dodatki tymczasowe. Można to zrobić za pomocą plików dodatkowych rozpakowanych lub spakowanych w pliku xpi .

Dodatek SDK do przeglądarki Firefox

Nie można załadować rozszerzenia SDK dodatku Firefox jako tymczasowego dodatku bez uprzedniego spakowania go do pliku .xpi za pomocą jpm xpi . Zasadniczo za pomocą narzędzia jpm run przetestujesz swoje rozszerzenie SDK dla jpm run Firefox.

Pliki, które są zazwyczaj edytowane dla rozszerzenia SDK Add-on, nie stanowią pełnego rozszerzenia bez niektórych dodatkowych funkcji owijania i tłumaczenia pliku package.json na plik install.rdf i ewentualnie plik chrome.manifest . Ten proces powoduje dodanie rozszerzenia SDK do rozszerzenia Bootstrap / Restartless, które jest zrozumiałe dla Firefoksa. Bez tego procesu Firefox nie będzie mógł załadować dodatku. Ten proces jest wykonywany przez jpm xpi wyniku czego powstaje spakowany plik .xpi . Wykonywanie jpm run również wykonuje ten proces, ale przechowuje powstałe pliki w tymczasowej lokalizacji i wywołuje Firefoksa z zainstalowanym dodatkiem.

Bootstrap / Restartless

Dodatki Bootstrap / Restartless można ładować jako dodatki tymczasowe. Można to zrobić za pomocą plików dodatkowych rozpakowanych lub spakowanych w pliku xpi .

Legacy / Overlay / XUL

Dodatków Legacy / Overlay / XUL nie można załadować jako dodatków tymczasowych.

Instalowanie niepodpisanych dodatków

Aby zainstalować rozszerzenie jako zwykły dodatek do wersji Firefox lub Beta wersji Firefox większej lub równej wersji 48, rozszerzenie musi być podpisane przez Mozillę . Rozszerzenie jest podpisywane przez przesłanie go do AMO . Po podpisaniu rozszerzenie można zainstalować w dowolnej obsługiwanej wersji przeglądarki Firefox. W przypadku wersji Firefoksa wcześniejszych niż wersja 43 rozszerzenia nie musiały być podpisywane przez Mozillę. Typy dodatków inne niż rozszerzenia nie muszą być podpisywane przez Mozillę.

Możesz instalować niepodpisane rozszerzenia jako zwykłe dodatki w innych wersjach Firefoksa (np. Firefox Developer Edition , Firefox Nightly , Unbranded Beta lub Unbranded Release ), ustawiając xpinstall.signatures.required na false w about:config . Ustawienie tej opcji było również skuteczne w wydaniach i Beta Firefox w wersjach 43–48. Ustawienie tej opcji nie działa w wersjach Firefox i Beta wersji Firefox od wersji 48 i późniejszych.

Konieczność instalowania niepodpisanych dodatków podczas opracowywania dodatków została znacznie ograniczona dzięki dostępności rozszerzeń jako dodatków tymczasowych . Tymczasowe dodatki nie muszą być podpisywane i można je załadować do dowolnej bieżącej wersji przeglądarki Firefox. Jak sama nazwa wskazuje, podstawową wadą dodatków tymczasowych jest to, że są tymczasowe. Muszą być ponownie zainstalowane przy każdym uruchomieniu Firefoksa. Istnieją jednak przypadki użycia, w których lepiej zainstalować dodatek jako zwykły, ale niepodpisany, zamiast jako dodatek tymczasowy. Dodatek należy zainstalować jako niepodpisany, jeśli zachodzi potrzeba, aby dodatek pozostał zainstalowany nawet po ponownym uruchomieniu Firefoksa. Może to być pożądane z różnych powodów, w tym: długoterminowych testów użytkowania lub przetestowania działania dodatku podczas uruchamiania Firefoksa.

Instalowanie dodatków do programowania

Dodatki można zainstalować jako:

  1. Normalne dodatki, które są instalowane do momentu odinstalowania
  2. Tymczasowe dodatki (tylko rozszerzenia ): są instalowane tylko do momentu ponownego uruchomienia Firefoksa lub można je wcześniej odinstalować ręcznie.
  3. Używanie jpm run (tylko SDK jpm run ): Automatycznie uruchamia Firefoksa, używając tymczasowego profilu z załadowanym dodatkiem.
  4. Korzystanie web-ext run (tylko rozszerzenia WebExt ): Automatycznie uruchamia Firefoksa przy użyciu tymczasowego profilu z dodatkiem załadowanym jako tymczasowy dodatek. Domyślnie monitoruje pliki rozszerzeń pod kątem zmian i automatycznie ładuje rozszerzenie po zmianie plików.

Normalne dodatki

Instalowanie spakowanych rozszerzeń (np. Pliku .xpi ) może polegać na przeciągnięciu i upuszczeniu do okna przeglądarki Firefox z profilem, w którym ma być zainstalowany. Można je również zainstalować bezpośrednio, pobierając rozszerzenie z AMO . W zależności od celu (jeden profil, wszystkie profile, wszyscy użytkownicy, system operacyjny itp.) Istnieją inne opcje instalacji rozszerzeń .

Te inne opcje obejmują różne katalogi spoza katalogu profilu, w którym można umieścić plik .xpi , aby zainstalować go dla wszystkich użytkowników określonej wersji Firefoksa lub wszystkich profili konkretnego użytkownika. W systemie Windows można również zainstalować rozszerzenie, dodając klucz do rejestru systemu Windows. Ogólnie rzecz biorąc, te inne katalogi nie są katalogami, w których można zainstalować dodatek, w którym obecnie piszesz. Można ich jednak użyć, aby upewnić się, że masz dodatki, których używasz do obsługi testowania / programowania załadowanego w dowolnym profilu Firefox lub używanej wersji Firefoksa. Na przykład, umieszczając plik .xpi w <Firefox install directory>/browser/extensions , możesz mieć rozszerzenie dostępne nawet w tymczasowym profilu utworzonym przez jpm run (używane do testowania rozszerzeń opartych na jpm run Firefox SDK).

W celu programowania / testowania rozszerzenie może znajdować się w dowolnym katalogu na dysku lokalnym za pomocą pliku proxy rozszerzenia Firefox (utwórz plik o nazwie <em:id> (w install.rdf dla Bootstrap / Restartless i Overlay / Starsze) w katalogu rozszerzeń profilu zawierającym jeden wiersz z pełną ścieżką do katalogu zawierającego pliki rozszerzenia). Rozszerzenia zainstalowane w ten sposób prawie zawsze będą niepodpisane (patrz poniżej). Dlatego ta metoda nie jest bardzo przydatna, jeśli chcesz zainstalować rozszerzenie w wersji Firefox lub Beta przeglądarki Firefox.

Ograniczenia dotyczące instalowania normalnych dodatków: podpisywanie dodatków

Aby zainstalować rozszerzenie jako zwykły dodatek do wersji Firefox lub Beta wersji Firefox większej lub równej wersji 48, rozszerzenie musi być podpisane przez Mozillę . Rozszerzenie jest podpisywane przez przesłanie go do AMO . Po podpisaniu rozszerzenie można zainstalować w dowolnej obsługiwanej wersji przeglądarki Firefox. W przypadku wersji Firefoksa wcześniejszych niż wersja 43 rozszerzenia nie musiały być podpisywane przez Mozillę. Typy dodatków inne niż rozszerzenia nie muszą być podpisywane przez Mozillę.

Możesz instalować niepodpisane rozszerzenia jako zwykłe dodatki w innych wersjach Firefoksa (np. Firefox Developer Edition , Firefox Nightly , Unbranded Beta lub Unbranded Release ), ustawiając xpinstall.signatures.required na false w about:config . Ustawienie tej opcji było również skuteczne w wydaniach i Beta Firefox w wersjach 43–48. Ustawienie tej opcji nie działa w wersjach Firefox i Beta wersji Firefox od wersji 48 i późniejszych.

Można jednak całkowicie wyłączyć sprawdzanie podpisów dodatków w przeglądarce Firefox we wszystkich wersjach, w tym w wersji. Odpowiedź na pytanie o przepełnienie stosu Jak mogę wyłączyć sprawdzanie podpisów dla dodatków Firefox? opisuje, jak to zrobić.

Konieczność instalowania niepodpisanych dodatków do celów programistycznych została znacznie ograniczona dzięki dostępności rozszerzeń jako dodatków tymczasowych . Tymczasowe dodatki nie muszą być podpisywane i można je załadować do dowolnej bieżącej wersji przeglądarki Firefox. Jak sama nazwa wskazuje, podstawową wadą dodatków tymczasowych jest to, że są tymczasowe. Muszą być ponownie zainstalowane przy każdym uruchomieniu Firefoksa. Istnieją jednak przypadki użycia, w których lepiej zainstalować dodatek jako zwykły, ale niepodpisany, zamiast jako dodatek tymczasowy. Dodatek należy zainstalować jako niepodpisany, jeśli zachodzi potrzeba, aby dodatek pozostał zainstalowany nawet po ponownym uruchomieniu Firefoksa. Może to być pożądane z różnych powodów, w tym: długoterminowych testów użytkowania lub przetestowania działania dodatku podczas uruchamiania Firefoksa.

Tymczasowe dodatki ( tylko rozszerzenia )

Rozszerzenia WebExt, rozszerzenia oparte na dodatkach SDK do Firefoksa oraz rozszerzenia Restartless / Bootstrap mogą być instalowane jako dodatki tymczasowe z about:debugging . Rozszerzenia można ładować jako dodatki tymczasowe w dowolnej bieżącej wersji Firefoksa. Tymczasowe dodatki nie muszą być podpisywane i można je ładować z rozpakowanego (katalogu z plikami) lub spakowanego (np. Pliku .xpi ).

Aby uzyskać szczegółowe informacje na temat tymczasowego instalowania rozszerzeń, zobacz Instalowanie tymczasowego dodatku .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow