Plany dotyczące wsparcia w Firefox drugiej i trzeciej wersji manifestu Chrome

Deweloperzy z firmy Mozilla zaktualizowali informacje na temat wsparcia w Firefox dla drugiej i trzeciej wersji manifestu Chrome. Firma Google planuje na czerwiec tego roku zakończyć wsparcie dla dodatków wykorzystujących drugą wersję manifestu w testowych wydaniach Chrome 127 (Dev, Canary i Beta). W stabilnej wersji wsparcie dla drugiej wersji manifestu zakończy się nie wcześniej niż w lipcu.

Z kolei firma Mozilla w najbliższej przyszłości nie zamierza kończyć wsparcia dla drugiej wersji manifestu i zachowa możliwość uruchamiania dodatków, które wykorzystują funkcje niedostępne w trzeciej wersji manifestu. Decyzja o niezapewnianiu w Firefox pełnej zgodności z trzecią wersją manifestu Chrome pozostaje w mocy. W Firefox pozostanie pełnoprawne API webRequest, które w Chrome zostanie przekształcone w tryb tylko do odczytu.

W Firefox zachowano także wsparcie dla wykonywania skryptów w tle opartych na DOM dzięki mechanizmowi Event Pages, podczas gdy w trzeciej wersji manifestu zaleca się korzystanie z Service Workers. Skrypty w tle oparte na Service Workers w Firefox nie są na razie wspierane, ale deweloperzy będą mieli możliwość zdefiniowania w dodatku zarówno handlerów opartych na Event Pages, jak i skryptów opartych na Service Workers, co umożliwi tworzenie dodatków zgodnych z trzecią wersją manifestu, które będą działały zarówno w Chrome, jak i Firefox.

Manifest Chrome definiuje możliwości i zasoby dostępne dla dodatków napisanych z użyciem API WebExtensions. Począwszy od wersji 57 Firefox całkowicie przeszedł na korzystanie z API WebExtensions do tworzenia dodatków i zakończył wsparcie dla technologii XUL. Przejście na WebExtensions umożliwiło ujednolicenie rozwoju dodatków z platformami Chrome, Opera, Safari i Edge, uprościło portowanie dodatków pomiędzy różnymi przeglądarkami internetowymi oraz dało możliwość pełnego wykorzystania trybu wieloprocesowego (dodatki WebExtensions mogą działać w osobnych procesach, izolowanych od innych części przeglądarki). Aby ujednolicić rozwój dodatków z innymi przeglądarkami, Firefox zapewnia prawie pełną zgodność z drugą wersją manifestu Chrome.

W ramach inicjatywy mającej na celu uproszczenie tworzenia bezpiecznych i wydajnych dodatków oraz utrudnienie tworzenia niebezpiecznych i wolnych dodatków, firma Google opracowała trzecią wersję manifestu. Główne niezadowolenie z trzeciej wersji manifestu wynika z przekształcenia API webRequest w tryb tylko do odczytu, które pozwalało na podłączanie własnych handlerów mających pełny dostęp do żądań sieciowych i zdolnych do modyfikowania ruchu w locie. Zamiast API webRequest w trzeciej wersji manifestu dodano ograniczone w swoich możliwościach API declarativeNetRequest, które zapewnia dostęp do wbudowanego silnika filtracji, samodzielnie przetwarzającego zasady blokowania, nie pozwalającego na korzystanie z własnych algorytmów filtracji.

Wśród cech implementacji trzeciej wersji manifestu w Firefox:

  • Dodano nowe deklaratywne API filtrowania treści, ale w przeciwieństwie do Chrome, nie wstrzymano wsparcia dla starego blokującego trybu pracy API webRequest.
  • Wprowadzono mechanizm Event Pages, który jest bardziej znany programistom webowym, nie wymaga całkowitej przeróbki rozszerzeń i eliminuje ograniczenia związane z używaniem Service Workers. Event Pages umożliwi dostosowanie istniejących rozszerzeń z tłem do wymagań trzeciej wersji manifestu, jednocześnie zachowując dostęp do wszystkich funkcji potrzebnych do pracy z DOM.
  • Nowy granularny model żądania uprawnień — rozszerzenie nie będzie mogło aktywować się od razu na wszystkich stronach (usunięto uprawnienie „all_urls”), a będzie działać tylko w kontekście aktywnej karty, tzn. użytkownik będzie musiał potwierdzić działanie rozszerzenia dla każdej strony. W Firefox wszystkie żądania dostępu do danych strony będą traktowane jako opcjonalne, a ostateczną decyzję o przyznaniu dostępu podejmie użytkownik, który będzie mógł wybiórczo decydować, któremu rozszerzeniu przyznać dostęp do swoich danych na danej stronie.

    Do zarządzania uprawnieniami w interfejsie dodano przycisk „Unified Extensions” do bezpośredniego zarządzania tym, do jakich stron ma dostęp każde rozszerzenie — użytkownik może przyznać lub cofnąć dostęp rozszerzenia do dowolnej strony. Zarządzanie uprawnieniami stosuje się tylko do rozszerzeń opartych na trzeciej wersji manifestu, a dla rozszerzeń w drugiej wersji manifestu nie ma granulatowego zarządzania dostępem do stron.

    Plany dotyczące wsparcia w Firefox drugiej i trzeciej wersji manifestu Chrome
  • Zmiana w obsłudze zapytań cross-origin – zgodnie z nowym manifestem, na skrypty przetwarzania treści będą miały zastosowanie te same ograniczenia praw, co do głównej strony, do której te skrypty są wbudowane (na przykład, jeśli strona nie ma dostępu do API lokalizacji, skrypt dodatku również nie uzyska tego dostępu). Ta zmiana jest całkowicie wdrożona w Firefox.
  • API oparte na Promise. Firefox obsługuje to API i dla trzeciej wersji manifestu.
  • Zakaz wykonywania kodu, załadowanego z zewnętrznych źródeł. serwerów (mówiąc o sytuacjach, gdy rozszerzenie ładuje i wykonuje zewnętrzny kod). W Firefoxie zastosowano blokowanie zewnętrznego kodu, a programiści Mozilli dodali dodatkowe techniki śledzenia ładowania kodu. Dla skryptów przetwarzania treści wprowadzono oddzielną politykę ograniczenia dostępu do treści (CSP, Content Security Policy).

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster