Plany dotyczące obsługi przeglądarki Firefox dla wersji 2 i 3 manifestu Chrome

Programiści z Mozilli zaktualizowali informacje o planach związanych z obsługą wersji 127 i XNUMX manifestu Chrome w przeglądarce Firefox. Google zamierza zaprzestać wspierania dodatków korzystających z drugiej wersji manifestu w wersjach testowych przeglądarki Chrome XNUMX (Dev, Canary i Beta) w czerwcu tego roku. W stabilnej gałęzi obsługa drugiej wersji manifestu zostanie zatrzymana najpóźniej w lipcu.

Z kolei Mozilla w najbliższej przyszłości nie przestanie wspierać drugiej wersji manifestu i zachowa możliwość uruchamiania dodatków wykorzystujących funkcje niedostępne w trzeciej wersji manifestu. Decyzja o braku pełnej zgodności Firefoksa z wersją 3 manifestu Chrome pozostaje w mocy. Firefox zachowa pełnoprawny interfejs API webRequest, który w przeglądarce Chrome zostanie przełączony w tryb tylko do odczytu.

Firefox będzie także korzystał z mechanizmu Event Pages, aby zachować obsługę wykonywania skryptów działających w tle w oparciu o DOM, zamiast czego trzecia wersja manifestu wymaga użycia Service Workerów. Skrypty działające w tle oparte na Service Workerach nie są jeszcze obsługiwane w przeglądarce Firefox, ale programiści będą mieli możliwość zdefiniowania w dodatku zarówno modułu obsługi opartego na stronach zdarzeń, jak i skryptów opartych na Service Workerach, co umożliwi im tworzenie dodatków które są zgodne z trzecią wersją manifestu i działają w przeglądarkach Chrome i Firefox.

Manifest Chrome definiuje możliwości i zasoby dostępne dla rozszerzeń napisanych przy użyciu interfejsu API WebExtensions. Począwszy od wersji 57, Firefox całkowicie przestawił się na korzystanie z API WebExtensions do tworzenia dodatków i przestał wspierać technologię XUL. Przejście na WebExtensions umożliwiło ujednolicenie rozwoju dodatków z platformami Chrome, Opera, Safari i Edge, uprościło przenoszenie dodatków pomiędzy różnymi przeglądarkami internetowymi oraz umożliwiło pełne wykorzystanie trybu wieloprocesowego działanie (dodatki WebExtensions mogą być uruchamiane w oddzielnych procesach, odizolowanych od reszty przeglądarki). Aby ujednolicić rozwój dodatków z innymi przeglądarkami, Firefox zapewnia prawie pełną kompatybilność z drugą wersją manifestu Chrome.

W ramach inicjatywy mającej na celu ułatwienie tworzenia bezpiecznych, wydajnych dodatków i utrudnienie tworzenia niebezpiecznych i powolnych dodatków, firma Google opracowała trzecią wersję manifestu. Główne niezadowolenie z trzeciej wersji manifestu spowodowane jest przetłumaczeniem webRequest API na tryb tylko do odczytu, co umożliwiło podłączenie własnych handlerów, które mają pełny dostęp do żądań sieciowych i mogą na bieżąco modyfikować ruch. Zamiast webRequest API, w trzeciej wersji manifestu dodano deklarativeNetRequest API, które ma ograniczone możliwości, zapewniając dostęp do wbudowanego silnika filtrującego, który samodzielnie przetwarza reguły blokowania i nie pozwala na stosowanie własnych algorytmów filtrujących .

Wśród funkcji implementacji trzeciej wersji manifestu w przeglądarce Firefox:

  • Dodano nowy deklaratywny interfejs API do filtrowania treści, ale w przeciwieństwie do Chrome nie zaprzestano obsługi starego trybu blokowania interfejsu API webRequest.
  • Zaimplementowano mechanizm Event Pages, który jest bardziej znany twórcom stron internetowych, nie wymaga całkowitej przeróbki dodatków i eliminuje ograniczenia związane z wykorzystaniem Service Workerów. Strony zdarzeń umożliwią dostosowanie istniejących dodatków do stron tła do wymagań trzeciej wersji manifestu, przy jednoczesnym zachowaniu dostępu do wszystkich możliwości potrzebnych do pracy z DOM.
  • Nowy model szczegółowego żądania uprawnień - dodatek nie będzie mógł być aktywowany dla wszystkich stron jednocześnie (usunięto uprawnienie „all_urls”), ale będzie działał tylko w kontekście aktywnej karty, tj. użytkownik będzie musiał potwierdzić, że dodatek działa dla każdej witryny. W przeglądarce Firefox wszystkie prośby o dostęp do danych witryny będą traktowane jako opcjonalne, a ostateczna decyzja o przyznaniu dostępu zostanie podjęta przez użytkownika, który będzie mógł selektywnie decydować, który dodatek udzieli dostępu do jego danych w konkretnej witrynie.

    Aby zarządzać uprawnieniami, do interfejsu dodano przycisk „Ujednolicone rozszerzenia”, który bezpośrednio kontroluje, do których witryn każde rozszerzenie ma dostęp - użytkownik może przyznać i odebrać dostęp rozszerzenia do dowolnej witryny. Zarządzanie uprawnieniami dotyczy tylko dodatków opartych na trzeciej wersji manifestu; w przypadku dodatków opartych na drugiej wersji manifestu nie jest wykonywana szczegółowa kontrola dostępu do witryn.

    Plany dotyczące obsługi przeglądarki Firefox dla wersji 2 i 3 manifestu Chrome
  • Zmiana w obsłudze żądań Cross-Origin - zgodnie z nowym manifestem, skrypty przetwarzające treść będą podlegały takim samym ograniczeniom uprawnień, jak w przypadku strony głównej, na której te skrypty są osadzone (np. jeśli strona nie ma dostępu do Location API, wówczas dodatki skryptowe również nie otrzymają tego dostępu). Ta zmiana została w pełni zaimplementowana w przeglądarce Firefox.
  • API oparte na obietnicach. Firefox obsługuje ten interfejs API dla trzeciej wersji manifestu.
  • Zakaz wykonywania kodu pobranego z serwerów zewnętrznych (mówimy o sytuacjach, gdy dodatek ładuje i wykonuje kod zewnętrzny). Firefox wykorzystuje blokowanie kodu zewnętrznego, a Mozilla dodała dodatkowe techniki śledzenia pobrań kodu. W przypadku skryptów przetwarzających treść dostępna jest osobna polityka ograniczeń dostępu do treści (CSP, Content Security Policy).

Źródło: opennet.ru

Dodaj komentarz