Mozilla zacznie akceptować dodatki oparte na trzeciej wersji manifestu Chrome

21 listopada katalog AMO (addons.mozilla.org) zacznie akceptować i weryfikować cyfrowym podpisem dodatki korzystające z trzeciej wersji manifestu Chrome. Wskazane dodatki będzie można testować w nocnych wersjach Firefox. W stabilnych wydaniach wsparcie dla trzeciej wersji manifestu zostanie wprowadzone w Firefox 109, planowanym na 17 stycznia 2023 roku. Wsparcie dla drugiej wersji manifestu zostanie zachowane w przewidywalnej przyszłości, jednak pod koniec 2023 roku, po ocenie dynamiki migracji dodatków do trzeciej wersji manifestu, zostanie podjęta decyzja o możliwości uznania wsparcia dla drugiej wersji manifestu za przestarzałe.

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.

Obecnie w Chrome trwają prace nad przejściem na trzecią wersję manifestu, a wsparcie dla drugiej wersji zostanie zakończone w styczniu 2024 roku. Głównym celem wprowadzonych w nowej wersji zmian jest uproszczenie tworzenia bezpiecznych i wydajnych dodatków oraz utrudnienie możliwości tworzenia niebezpiecznych i wolnych dodatków. Ponieważ trzecia wersja manifestu była obiektem krytyki i doprowadzi do zakłóceń w działaniu wielu dodatków do blokowania niechcianej zawartości i zapewnienia bezpieczeństwa, firma Mozilla postanowiła zrezygnować z zapewnienia pełnej zgodności z manifestem w Firefox i wdrożyć niektóre zmiany w inny sposób.

Główne zastrzeżenie dotyczące trzeciej wersji manifestu wiąże się z przeniesieniem API webRequest w tryb tylko do odczytu, co uniemożliwia podłączanie własnych obsług żądania, które miały pełny dostęp do zapytań sieciowych i mogły w czasie rzeczywistym modyfikować ruch. Wspomniane API jest stosowane w uBlock Origin oraz wielu innych rozszerzeniach służących do blokowania niechcianych treści i zapewnienia bezpieczeństwa. Zamiast API webRequest w trzeciej wersji manifestu zaproponowano ograniczone API declarativeNetRequest, które zapewnia dostęp do wbudowanego silnika filtrowania, samodzielnie przetwarzającego zasady blokowania, nie pozwalającego na stosowanie własnych algorytmów filtrowania i nie umożliwiającego definiowania skomplikowanych zasad, które wzajemnie się nakładają w zależności od warunków.

Wśród cech realizacji nowego 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.
  • W manifeście zdefiniowano zastąpienie stron w tle wersją Service Workers, działającą w formie procesów w tle (Background Service Workers). Aby zapewnić kompatybilność w przyszłości, w Firefox zostanie zaimplementowane wsparcie dla Service Workers, ale w chwili obecnej zamiast nich zaproponowano nowy mechanizm Event Pages, który jest bardziej znany dla deweloperów webowych, nie wymaga całkowitego przekształcenia rozszerzeń i eliminuje ograniczenia związane z używaniem Service Workers. Event Pages umożliwi dostosowanie istniejących rozszerzeń z stronami w tle do wymagań trzeciej wersji manifestu, zachowując jednocześnie dostęp do wszystkich funkcji niezbędnych 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.

    W interfejsie dodano nowy przycisk „Unified Extensions” do zarządzania uprawnieniami, który można już testować w nocnych wersjach Firefox. Przyciski te umożliwiają bezpośrednie zarządzanie dostępem każdego dodatku do poszczególnych witryn – użytkownik może przyznać i cofnąć dostęp dodatku do dowolnej witryny. Zarządzanie uprawnieniami dotyczy tylko dodatków opartych na trzeciej wersji manifestu, w przypadku dodatków na drugiej wersji manifestu nie stosuje się granularnego zarządzania dostępem do witryn.

    Mozilla zacznie akceptować dodatki oparte na 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 przeniesie je do przestrzeni nazw „chrome.*”.
  • Zakaz wykonywania kodu, załadowanego z zewnętrznych źródeł. serwerów (mowa o sytuacjach, kiedy dodatek ładuje i wykonuje zewnętrzny kod). W Firefox blokowane jest zewnętrzne kodowanie, a deweloperzy Mozilli dodali dodatkowe techniki śledzenia ładowania kodu, proponowane w trzeciej wersji manifestu. Dla skryptów przetwarzania treści wprowadzono osobną 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