Często zaglądaj na tę stronę, aby dowiedzieć się o zmianach w rozszerzeniach Chrome, dokumentacji rozszerzeń, powiązanych zasadach i innych zmianach. Inne powiadomienia znajdziesz w grupie dyskusyjnej Google dotyczącej rozszerzeń. W harmonogramie Chrome znajdziesz daty publikacji wersji stabilnych i beta.
Film: Co to jest kod hostowany zdalnie?
Patrick z zespołu ds. rozszerzeń do Chrome wyjaśnia koncepcję kodu RHC (Remotely Hosted Code) w rozszerzeniach do Chrome. Dowiedz się, dlaczego protokół RHC nie jest już dozwolony, jak go wykryć i co zrobić, jeśli rozszerzenie wymaga aktualizacji. Obejrzyj cały film
Chrome 127: nowy interfejs action.openPopup API
Począwszy od Chrome 127 interfejs API action.openPopup
jest dostępny dla wszystkich rozszerzeń. Wcześniej był dostępny tylko w wersji Canary
lub w przypadku rozszerzeń zainstalowanych przez zasadę.
Film: wywiad z zespołem ds. zaufania i bezpieczeństwa
Zespół DevRel ds. rozszerzeń do Chrome skontaktował się z zespołem ds. zaufania i bezpieczeństwa, który prowadzi weryfikację w Chrome Web Store, aby zadać Ci pytania. Obejrzyj cały film
Post na blogu: Rozpoczęcie wycofywania platformy Manifest V2
Od 3 czerwca w wersji Chrome Beta, wersji deweloperskiej i Canary użytkownicy nadal mają zainstalowane rozszerzenia Manifest V2, a u niektórych użytkowników na stronie zarządzania rozszerzeniami (chrome://extensions) pojawi się baner ostrzegawczy informujący, że niektóre zainstalowane rozszerzenia (Manifest V2) wkrótce przestaną być obsługiwane. Więcej informacji znajdziesz w oficjalnym ogłoszeniu
Aktualizacje interfejsu panelu bocznego
Niedawno wprowadziliśmy kilka zmian w interfejsie panelu bocznego, m.in. dodaliśmy ikonę pinezki i usunęliśmy globalną ikonę panelu bocznego. Więcej informacji znajdziesz w reklamie społecznej oraz w zaktualizowana dokumentacja i przykłady.
Post na blogu: Rozszerzenia do Chrome na Google I/O 2024
Za nami kolejna konferencja Google I/O. Omówiliśmy już wszystkie ważne aktualizacje rozszerzeń. Przejdź do YouTube, aby obejrzeć cały film, i przeczytaj naszego posta, aby poznać wybrane informacje.
Pomiń sprawdzanie odpowiednich zmian w deklaratywnych żądaniach netto
Chrome Web Store umożliwia teraz pominięcie sprawdzania kwalifikujących się zmian podczas korzystania z interfejsu Detectative Net Request API. Więcej informacji o wymaganiach i o tym, jak wyrazić zgodę, znajdziesz w dokumentacji Chrome Web Store.
metodadeployPercentage dostępna w interfejsie Chrome Web Store API
Niedawno zaktualizowaliśmy dokumentację interfejsu Chrome Web Store API o informacje na temat elementu deployPercentage
, który umożliwia przypisanie częściowego wdrożenia wdrożenia. Więcej informacji o deployPercentage
.
Chrome 126: wersje próbne origin w rozszerzeniach
W Chrome 126 wprowadziliśmy nowe pole manifest.json – trial_tokens
, które umożliwia włączenie wersji próbnych origin i wersji próbnych na wszystkich platformach rozszerzeń. Więcej informacji znajdziesz w przewodniku.
Post na blogu: Co się dzieje w rozszerzeniach do Chrome – kwiecień 2024 r.
Opublikowaliśmy nowe wydanie Co się dzieje w rozszerzeniach do Chrome. Omawiamy w nim kwestie, nad którymi zespół ds. rozszerzeń pracował w ciągu ostatnich kilku miesięcy. Dotyczy to m.in. przywrócenia wersji w Chrome Web Store, ulepszonej obsługi uwierzytelniania Firebase oraz kolejnych aktualizacji i aktualizacji interfejsu API.
Przywrócenie wersji w panelu dewelopera Chrome Web Store
Przywróć rozszerzenie do poprzednio opublikowanej wersji w Chrome Web Store – bez dodatkowego sprawdzania. Więcej informacji znajdziesz w poście na blogu i w dokumentacji.
Chrome 124: interfejs Advanced documentScan API
W ChromeOS dostępny jest zaawansowany documentScan
API, który umożliwia wykrywanie i pobieranie obrazów z podłączonych skanerów dokumentów.
Chrome 124. Obsługa WebGPU w skryptach Service Worker
Od wersji Chrome 124 mechanizmy Service Worker obsługują WebGPU. Na początek obejrzyj przykład rozszerzenia WebGPU.
Chrome 123. Interfejs Events API obsługuje filtrowanie według bloków CIDR
Interfejs Events API obsługuje teraz filtrowanie za pomocą bloków CIDR (Classless Inter-Domain Routing). Blok CIDR to zbiór adresów IP, które mają wspólny prefiks sieci i tę samą liczbę bitów. Wcześniej programista musiał filtrować wiele adresów IP, aby skonfigurować regułę filtrowania dla każdego adresu w zakresie bloków. Teraz gdy rozszerzenie wywołuje addListener()
, oznacza to, że moduł obsługi zdarzeń będzie wywoływany tylko wtedy, gdy część adresu URL będąca hostem jest adresem IP i znajduje się w dowolnym z bloków CIDR określonych w tablicy.
Chrome Web Store: zmiany wymagań dotyczących długości nazwy rozszerzenia
W Chrome Web Store obowiązuje teraz uniwersalny limit 75 znaków w polu "name"
rozszerzenia w pliku manifestu.json. Wcześniej limit w języku angielskim wynosił 45 znaków, a w pozostałych regionach nie było żadnych ograniczeń dotyczących pola "name"
.
Początkowo miało to na celu umożliwienie uchwycenia różnic kulturowych i językowych, których nie da się zarejestrować przy użyciu takiej samej liczby znaków. Niestety ta funkcja była wykorzystywana przez niewielką liczbę deweloperów do spamowania w sklepie. W związku z tym wprowadzamy nowy uniwersalny limit – zwiększymy go do 75 znaków. Dziś limit ten obejmuje prawie wszystkie rozszerzenia dostępne w sklepie, więc prawdopodobnie nie musisz nic robić w związku z tą zmianą. Jeśli spróbujesz przesłać rozszerzenie o nazwie dłuższej niż maksymalny limit, to przesyłanie zostanie zablokowane przez sklep.
Post na blogu: Eyeo – testowanie zawieszenia mechanizmu Service Worker
W tym poście przygotowanym przez zespół eyeo ds. Extension Engine omawiamy problem testowania mechanizmów Service Worker. W platformie Manifest V2 rozszerzenia znajdowały się na stronie w tle, która była aktywna przez cały cykl życia rozszerzenia. Manifest V3 używa mechanizmów Service Worker, a skrypty service worker z założenia oszczędzają zasoby, wyłączając je, gdy nie są potrzebne. Wiąże się to z pewnymi wyzwaniami związanymi z testowaniem. Ten post wyjaśnia, jak Eyeo radził sobie z tymi wyzwaniami.
Chrome 123: alarmy włączają się teraz po uśpieniu urządzenia
Alarmy ustawione za pomocą interfejsu API chrome.alarms
nie są już opóźnione po uśpieniu urządzenia. Gdy urządzenie się wybudzi, alarm uruchomi się raz, niezależnie od liczby pominiętych alarmów. Załóżmy na przykład, że alarm ma się uruchamiać raz na godzinę, a urządzenie, na którym jest uśpiony, od godziny 00:55 do 2:05, wówczas zdarzenie onAlarm
aktywuje tylko alarm z 2:00.
Wyzwala się możliwie blisko godziny 2:00
i natychmiast po wybudzeniu urządzenia, jeśli było uśpione.
Ta zmiana sprawia, że Chrome jest zgodny z tym, co zostało uzgodnione w grupie społeczności rozszerzeń internetowych.
Post na blogu: zmiany w działaniu pamięci podręcznej stanu strony internetowej po zastosowaniu portów wiadomości rozszerzenia
Pamięć podręczna stanu strony internetowej (bfcache) to optymalizacja przeglądarki, która umożliwia natychmiastowe przejście do tyłu i do przodu. Począwszy od Chrome 123, gdy strona z otwartym portem rozszerzenia jest przechowywana w pamięci podręcznej stanu strony internetowej, kanał wiadomości jest zamknięty, co oznacza, że nie są na nią wysyłane żadne wiadomości.
W związku z tym skrypty rozszerzeń powinny nasłuchiwać zdarzeń cyklu życia, takich jak onDisconnect
, i konfigurować nowe połączenie po przywróceniu strony z BFCache.
Więcej informacji i przykładowy kod znajdziesz w artykule Zmiany w działaniu BFCache z portami komunikatów rozszerzenia.
Chrome 122: obietnica wsparcia interfejsów API rozszerzeń asynchronicznych
Zakończyliśmy wdrażanie obsługi Promise we wszystkich metodach interfejsu API rozszerzeń asynchronicznych. W ten sposób zmodernizowaliśmy metody interfejsów API, poprawiając ergonomię operacji asynchronicznych. Niektóre metody (np. desktopCapture.chooseDesktopMedia()
) nadal obsługują tylko wywołania zwrotne, ponieważ ich obecne platformy nie są zgodne z obiektami Promises. Aby zapewnić zgodność wsteczną, wywołania zwrotne są nadal obsługiwane. Jeśli znajdziesz nieudaną obietnicę, zgłoś błąd.
Nowe wskazówki dotyczące komunikacji w czasie rzeczywistym
Niedawno opublikowaliśmy przewodniki dotyczące opcji w czasie rzeczywistym w rozszerzeniach. Aktualizacje w czasie rzeczywistym zapewniają natychmiastową ścieżkę komunikacji z serwerów bezpośrednio do instalacji rozszerzeń. Opracowaliśmy też nowe wskazówki dotyczące korzystania z chrome.gcm i Web Push.
Nowe wskazówki i przykład: testowanie zakończenia działania mechanizmu Service Worker
Niedawno opublikowaliśmy przewodnik na temat testowania zakończenia procesu Service Worker za pomocą Puppeteer. Pokazuje to przykładową próbkę w językach Puppeteer i Selen.
Zaktualizowany przykład na potrzeby natywnego przesyłania komunikatów
Właśnie opublikowaliśmy zaktualizowany przykład wiadomości natywnych. Dzięki niemu rozszerzenie może uruchomić inną aplikację i komunikować się z nią. Dziękujemy współtwórcy GitHubowi, Shubham-Rasalowi, za pracę nad tym rozwiązaniem.
Chrome 121. Nowa właściwość lastAccessed na kartach. Karta
Do obiektu tabs.Tab
została dodana nowa właściwość o nazwie lastAccessed
. Ta właściwość wskazuje, kiedy karta została ostatnio aktywowana. Zwracana wartość jest wyrażona w milisekundach od początku epoki.
Chrome 121: w przypadku nieobsługiwanych kluczy „w tle” pojawia się ostrzeżenie
W ramach zmiany z platformy Manifest V2 na Manifest V3 elementy podrzędne klucza manifestu "background"
zostały zmienione, aby uwzględnić skrypty działające w tle instancjami roboczymi usługi rozszerzenia. Wcześniej dodanie kluczy platformy Manifest V2 "scripts"
, "page"
lub "persistent"
do klucza "background"
rozszerzenia Manifest V3 powodowało błąd. Obecność tych kluczy aktywuje ostrzeżenie.
W ten sposób umożliwimy używanie 1 pliku manifestu w rozszerzeniach w wielu przeglądarkach zgodnie z propozycją w grupie społeczności.
Chrome 120: minimalna szczegółowość alarmu zmniejszona do 30 sekund
Od wersji Chrome 120 rozszerzenia na platformie Manifest V3 mogą używać interfejsu API chrome.alarms
z opóźnieniami lub okresami wynoszącymi 30 sekund i nie wymagają wartości co najmniej 60 sekund.
Post na blogu: Wznawianie przejścia na platformę Manifest V3
Zaktualizowaliśmy harmonogram udzielania pomocy dotyczącej platformy Manifest V2. Więcej informacji znajdziesz w poście na blogu z listopada 2023 roku.
Post na blogu: Ulepszona obsługa filtrowania treści w platformie Manifest V3
Więcej informacji o ulepszeniu interfejsu declarativeNetRequest API znajdziesz w nowym poście na blogu.
Post na blogu: Co nowego w Chrome 120 o rozszerzeniach
Niedawno opublikowaliśmy Chrome 120 beta. Podsumowanie ważnych informacji dla deweloperów rozszerzeń znajdziesz w naszym nowym poście na blogu: Co nowego w Chrome 120 o rozszerzeniach. Ta wersja jest też ważnym osiągnięciem, ponieważ 2 ostatnie elementy (userScripts, moduł obsługi plików w ChromeOS) zostały usunięte z listy krytycznych luk w zabezpieczeniach.
PSA: zmiana obsługi adresów URL polityki prywatności w panelu dewelopera
Polityka prywatności w Panelu dewelopera została dodana na poziomie elementu. Umożliwia to określenie różnej polityki prywatności dla każdego produktu. Więcej informacji o tej zmianie znajdziesz w reklamie społecznej.
Film: czat z Mattem Frisbie
Na kanale Chrome for Developers w YouTube właśnie opublikowaliśmy nowy film, na którym rozmawiamy z ekspertem Google Developers i autorem, Mattem Frisbie. Obejrzyj tutaj.
Nowe wskazówki dotyczące testowania rozszerzeń
Niedawno opublikowaliśmy nowe wskazówki dotyczące pisania automatycznych testów rozszerzeń, w tym sposobu pisania testów jednostkowych oraz wskazówki ogólne i samouczek na temat kompleksowego testowania.
Post na blogu: Co się dzieje w rozszerzeniach do Chrome – październik 2023 roku
Niedawno opublikowaliśmy drugie wydanie raportu Co się dzieje w rozszerzeniach Chrome. Omawiamy w nim, nad czym pracuje zespół ds. rozszerzeń, nad czym pracował od kilku miesięcy. Dotyczy to m.in. rozwiązywania problemów ze stabilnością mechanizmów Service Worker i postępów w wypełnianiu wszystkich luk w platformie MV3. Udostępniamy też ciekawe nadchodzące wersje interfejsów API, takich jak Reading List API i User Scripts API.
Zwiększone limity statycznego zestawu reguł w interfejsie Detectative Net Request API
Zgodnie z opiniami w grupie społeczności rozszerzeń internetowych znacznie zwiększamy limit włączonych statycznych zestawów reguł z 10 do 50. Dodatkowo zwiększamy łączną liczbę dozwolonych statycznych zestawów reguł z 50 do 100. Ta funkcja jest obecnie dostępna w wersji Canary.
Ulepszone wskazówki dotyczące kodu hostowanego zdalnie
Zgodnie z wymogiem platformy Manifest V3 rozszerzenia nie mogą już używać kodu hostowanego zdalnie. Chociaż od samego początku były one częścią naszego przewodnika po migracji, uznaliśmy, że warto je ulepszyć. Na tej stronie znajdziesz teraz więcej informacji o tym, co nadal można robić na platformie Manifest V3, a także o strategiach uaktualniania.
Dodaliśmy też artykuł Rozwiązywanie problemów związanych z naruszeniem zasad Chrome Web Store. W nowej sekcji opisujemy najczęstsze przyczyny odrzucania rozszerzeń z kodem hostowanym zdalnie.
Chrome 118: parametr isUrlFilterCaseSensitive ma teraz wartość fałsz
Od wersji Chrome 118 właściwość isUrlFilterCaseSensitive
w interfejsie API chrome.declarativeNetRequest jest ustawiona jako domyślna na false
. Jeśli chcesz zachować stare zachowanie, możesz ustawić isUrlFilterCaseSensitive
jako true
w regułach declarativeNetRequest.
Te informacje są omawiane dyskusjami w grupie społeczności dotyczącej rozszerzeń sieciowych. W przeglądarkach i Safari wprowadziliśmy już podobną zmianę.
Dokumentacja interfejsów API do przechowywania plików cookie i przechowywania danych w internecie
Opublikowaliśmy nowy przewodnik, jak działają pliki cookie i interfejsy API do przechowywania danych w internecie w rozszerzeniach do Chrome. Znajdziesz w nim szczegółowe informacje o zmianach w partycjonowaniu plików cookie i miejsca na dane w Piaskownicy prywatności, czyli trwającego projektu, który ma na celu wycofanie plików cookie innych firm przez utworzenie serii nowych interfejsów API platformy internetowej, a także szczegóły dotyczące ich działania w rozszerzeniach.
Przykładowe rozszerzenia są teraz dostępne do przeszukiwania
Niedawno utworzyliśmy stronę, która umożliwia wyszukiwanie przykładowych rozszerzeń do Chrome. Strona wyszukiwania zawiera wiele opcji. Pole wyszukiwania umożliwia wyszukiwanie tekstu w przykładowych tytułach. Możesz ograniczyć wyszukiwanie według uprawnień lub interfejsu API rozszerzenia. Dodatkowy filtr umożliwia ograniczenie wyszukiwania do przykładów użycia interfejsu API lub funkcjonalnych (przypadków użycia).
Ta nowa przykładowa strona została stworzona przez Xuezhou Dai, uczestnika Google Summer of Code, który również przesłał kilka nowych próbek. O ich wrażeniach z zeszłego lata przeczytasz w poście na naszym blogu.
Tak jak wcześniej, nasz przykładowy kod jest nadal dostępny w GitHubie do klonowania lub rozwidlenia.
Chrome 118: zmiany w pliku otwierającym plik – adresy URL schematu
Od wersji Chrome 118 rozszerzenia będą wymagały włączenia ustawienia „Zezwalaj na dostęp do adresów URL plików” na stronie chrome://extensions
, aby móc otwierać adresy URL schematów file:// za pomocą interfejsów API kart lub Windows. Możesz automatycznie sprawdzić ten dostęp, wywołując metodę chrome.extension.isAllowedFileSchemeAccess()
. Firefox już ogranicza adresy URL plików, a Safari obsługuje tę zmianę. Więcej informacji znajdziesz w poście na temat rozszerzeń w grupie dyskusyjnej Google.
Chrome 117: rozszerzona ochrona adresów URL w nawigacji po interfejsie API rozszerzenia
Wcześniej nawigacja aktywowana przez wywołania interfejsu API rozszerzenia tabs.update()
, tabs.create()
i windows.create()
powodowała błąd w przypadku niektórych adresów URL chrome://. Dodatkowo zabronione było wywoływanie tabs.update()
z adresem URL JavaScript. W wersji 117 zabezpieczenia adresów URL JavaScript zostały rozszerzone o metodę tabs.create()
, a do listy niedozwolonych adresów URL, która ma zastosowanie we wszystkich wyżej wymienionych metodach, dodaliśmy wiele dodatkowych adresów URL chrome://.
Ulepszone wskazówki dotyczące interfejsu declarativeNetRequest API
Interfejs API chrome.declarativeNetRequest
blokuje lub modyfikuje żądania sieciowe, określając reguły deklaratywne. Dzięki temu rozszerzenia mogą modyfikować żądania sieciowe bez ich przechwytywania i wyświetlania treści, co zapewnia użytkownikom większą prywatność. Jest też dość skomplikowana w użyciu. Mając to na uwadze, zmieniliśmy wytyczne w sposób, który naszym zdaniem ukazuje jaśniejszy obraz implementacji zestawów reguł deklaratywnych. Przeczytaj nową sekcję, klikając link powyżej.
Korzystanie z konta Google Analytics w sklepie Chrome Web Store
Chrome Web Store oferuje integrację z Google Analytics, dzięki czemu oprócz widoku dostępnego w Panelu dewelopera możesz też zobaczyć statystyki dotyczące swojej strony w Chrome Web Store. Więcej informacji znajdziesz w artykule Korzystanie z konta Google Analytics w Chrome Web Store.
Chrome 115: Narzędzia deweloperskie domyślnie zastępują skrypty treści
Skrypty wstrzykniętej treści znajdują się teraz domyślnie na liście ignorowanych narzędzi deweloperskich. Nie wpływa to na punkty przerwania, ale oznacza, że skrypty treści są pomijane podczas debugowania, a wyjątki od tych skryptów będą ignorowane. Gdy na karcie Źródła otwarty jest skrypt treści, baner informuje, czy to ustawienie jest włączone, i oferuje opcję usunięcia skryptu treści z listy ignorowanych. Aby wyłączyć to zachowanie, otwórz Narzędzia deweloperskie, kliknij Ustawienia, a następnie Lista ignorowanych. Więcej informacji znajdziesz w artykule Co nowego w Narzędziach deweloperskich.
Chrome 116 w wersji beta: nie zmieściliśmy się tutaj
Chrome 116 to duża wersja rozszerzeń. Możesz teraz automatycznie otwierać panele boczne. Nowa metoda pozwala sprawdzić, czy istnieje aktywny dokument poza ekranem. Skrypty service worker otrzymują ulepszenia serwera. W wersji 116 wprowadziliśmy wiele udoskonaleń, że omówiliśmy je w poście na blogu. Chrome 116 jest w wersji beta od 19 lipca.
Post na blogu: Co się dzieje z rozszerzeniami do Chrome
Niedawno opublikowaliśmy omówienie tegorocznych zmian i udoskonaleń dotyczących rozszerzeń. Omawiamy w nim najważniejsze nowe funkcje tego roku, w tym interfejs Side Panel API, ulepszenia mechanizmów Service Worker oraz dokumenty poza ekranem. Znajdziesz tam też informacje o tym, nad czym pracujemy w tym kwartale. Artykuł zawiera wiele dodatkowych informacji, w tym linki do wszystkich.
Nowe wskazówki i przykład: dowiedz się, jak używać Google Analytics 4 w rozszerzeniu do Chrome
Opublikowaliśmy nowe wskazówki i przykłady dotyczące Google Analytics i geolokalizacji:
- Zaktualizowana wersja naszych wskazówek dotyczących Google Analytics wyjaśniająca, jak korzystać z Google Analytics 4 w rozszerzeniu do Chrome. Do naszego przykładowego repozytorium na GitHubie dodaliśmy też działającą próbkę w Google Analytics 4. Na stronie
google-analytics.js
znajdziesz odpowiedni kod związany z Google Analytics. - Nowy przewodnik po geolokalizacji i 3 przykłady pokazujące, jak uzyskać dostęp do geolokalizacji w skryptach service worker, skryptach treści, wyskakujących okienkach i panelach bocznych.
Chrome 115: określanie wielu przyczyn w funkcji chrome.offscreen.createDocument()
Podczas wywoływania chrome.offscreen.createDocument()
możesz teraz określić wiele wyliczeniowych reason
. Używaj, gdy dokument poza ekranem będzie wykorzystywany do wielu różnych celów. Przeglądarka na podstawie podanych przyczyn określa czas przechowywania dokumentu poza ekranem.
Nowe narzędzie: narzędzie do testowania aktualizacji rozszerzeń
Niedawno opublikowaliśmy narzędzie do testowania aktualizacji rozszerzeń – lokalny serwer aktualizacji rozszerzeń, który może służyć do testowania aktualizacji rozszerzeń do Chrome podczas lokalnego programowania (w tym przyznawania uprawnień). Narzędzie pokazuje przepływ aktualizacji przez użytkownika, w tym pozostawianie wyłączonego rozszerzenia do czasu przyznania przez użytkownika nowych wymaganych uprawnień. To narzędzie jest szczególnie przydatne do symulowania zmian uprawnień wymaganych podczas aktualizowania rozszerzenia z platformy Manifest V2 na Manifest V3.
Chrome 114: nowy interfejs API panelu bocznego
Przedstawiamy nowy interfejs Side Panel API – platformę towarzyszącą, która umożliwia użytkownikom dostęp do narzędzi równolegle z przeglądanymi treściami. Aby dowiedzieć się więcej, zapoznaj się z dokumentacją interfejsu Side Panel API. Do przykładowego repozytorium na GitHubie dodaliśmy wiele przykładów paneli bocznych. Więcej informacji o panelach bocznych znajdziesz w nowym poście na blogu Designing a Superior User Experience with the New Side Panel API. Zapoznaliśmy się też z naszymi zasadami dotyczącymi wskazówek dotyczących jakości i sprawdzonymi metodami, aby dostarczyć dodatkowe wskazówki dotyczące tworzenia wysokiej jakości rozszerzeń panelu bocznego.
Twoja opinia jest dla nas ważna podczas tworzenia tego interfejsu API. Możesz podzielić się swoimi przemyśleniami i prośbami o dodanie funkcji w grupach chromium-groups. Będziemy na bieżąco informować o nowych aktualizacjach interfejsu Side Panel API.
Nowe przykłady: WASM w rozszerzeniach
Dostępne są 2 nowe przykłady, które pokazują, jak używać WASM w rozszerzeniu:
- Użycie WASM w platformie Manifest V3 pokazuje ogólną metodę dołączania modułu WASM.
- Używanie WASM jako modułu w platformie Manifest V3 pokazuje, jak używać go w module.
Specjalne podziękowania za te przykłady zostały przekazane współtwórcy GitHub @daidr.
Zaktualizowano wskazówki dotyczące migracji na platformie Manifest V3
Zaktualizowaliśmy sekcję Znane problemy w naszych wskazówkach dotyczących migracji platformy Manifest V3 o zaktualizowana lista luk w platformach rozszerzeń, które zamierzamy usunąć przed ogłoszeniem nowego harmonogramu wycofania platformy Manifest V2.
Nagrywanie dźwięku i obrazu za pomocą platformy Manifest V3
Niedawno opublikowaliśmy nowy artykuł zatytułowany Nagrywanie dźwięku i przechwytywanie ekranu, w którym omawiamy nagrywanie dźwięku i obrazu z karty, okna lub ekranu na platformie Manifest V3. W tym artykule opisujemy różne podejścia do nagrywania za pomocą interfejsu API chrome.tabCapture
i funkcji getDisplayMedia()
.
Chrome 114: większy limit storage.local
Zwiększyliśmy limit usługi storage.local
do około 10 MB. Takie działanie zostało zaakceptowane w grupie Społeczności rozszerzeń sieciowych. Dzięki temu witryna storage.local
staje się zgodna z tabelą storage.session
, która została zmieniona w Chrome 112.
Samouczek i pomoc dotycząca nowego skryptu service worker
Skrypty service worker są integralną częścią rozszerzeń do Chrome. Właśnie opublikowaliśmy samouczek objaśniający podstawy rejestrowania, debugowania i interakcji z instancjami Service Worker. Dodaliśmy też nowy przewodnik po skryptach Service Worker, w którym bardziej szczegółowo wyjaśniamy ważne zagadnienia. W najbliższych miesiącach rozszerzymy tę sekcję.
Więcej wskazówek dotyczących rozwiązywania problemów związanych z naruszeniem zasad Chrome Web Store
Aby ułatwić publikowanie treści w Chrome Web Store, dodaliśmy nowe wskazówki w 2 obszarach. Wskazówki dotyczące minimalnej funkcjonalności skupiają się na zapewnieniu użytkownikom korzyści i ułatwieniu im przeglądania stron. Porady dotyczące reklam partnerskich mają na celu informowanie użytkowników o rozszerzeniach za pomocą linków do witryn partnerskich lub kodów umożliwiających zarabianie oraz na zaoferowanie im pewnej kontroli przez wymaganie od użytkowników podjęcia działań przed ich uwzględnieniem.
Nowe instrukcje dotyczące konwertera pliku manifestu rozszerzenia
Zmieniliśmy plik README narzędzia Extension Manifest Converter, aby łatwiej zobaczyć, co musisz zrobić po uruchomieniu tego narzędzia. Ten konwerter pomaga przenieść rozszerzenia stworzone na platformie Manifest V2 na platformę Manifest V3. Nowy plik README opisuje, co robi to narzędzie, używając słów, które ściśle odpowiadają tym z listy kontrolnej przewodnika po migracji. Konwerter nie robi wszystkiego, ale eliminuje wiele zadań, które nie wymagają weryfikacji manualnej.
Chrome 113: nowe przyczyny wyświetlania dokumentów poza ekranem
Do interfejsu Offscreen Documents API dodaliśmy 2 nowe typy powodów. Użyj LOCAL_STORAGE
, aby uzyskać dostęp do interfejsu API localStorage platformy internetowej. Podczas tworzenia instancji roboczych używaj WORKER
.
Google Analytics 4 teraz w panelu dewelopera
Panel dewelopera Chrome Web Store obsługuje teraz Google Analytics 4 (GA4). Uprościliśmy konfigurację Google Analytics i uprościliśmy zarządzanie dostępem dla wydawców grupowych. Jeśli wcześniej zdarzyło Ci się śledzić aktywność na stronie z informacjami o aplikacji za pomocą Google Universal Analytics, do 1 lipca 2023 r. musisz podjąć działania, aby nadal otrzymywać dane na ten temat. Więcej informacji znajdziesz w poście na grupie dyskusyjnej Google dotyczącej rozszerzeń do Chromium.
Interfejs File handling API trafia do ChromeOS
Interfejs File Handler API jest dostępny do eksperymentów w ChromeOS w Canary w wersjach 112 i 113. Umożliwia rozszerzeniom w ChromeOS otwieranie plików o określonych typach MIME i rozszerzeniach. Aby wdrożyć obsługę plików, dodaj do manifest.json
zestaw reguł. Ta funkcja działa tak samo jak w przypadku progresywnych aplikacji internetowych. Więcej informacji znajdziesz w tym artykule w innym miejscu tej witryny.
Aby włączyć obsługę plików:
- Od wersji 112 uruchom Chrome, używając flagi
--enable-features=ExtensionWebFileHandlers
, zaczynając od wersji 112 - Od wersji 113 wklej
os://flags/#extension-web-file-handlers
w omniboksie Chrome i z menu wybierz „Włączone”.
Planujemy wprowadzić tę funkcję w Chrome 115 pod koniec czerwca. Zaglądaj tu, by być na bieżąco.
Nowe przykłady: deklaracje dynamiczne i wstrzykiwanie automatyczne
Utworzyliśmy nowy przykład interfejsu API chrome.scripting
. Widoczne są w nim deklaracje dynamiczne, w przypadku których skrypt treści jest zarejestrowany w czasie działania, oraz wstrzykiwanie automatyczne, które polega na wykonywaniu skryptu na otwartej karcie.
Nowe przykłady: przypadki użycia deklaratywnych żądań netto
Dostępne są 3 nowe przykłady przedstawiające interfejs Detectative Net Request API. Każdy z nich przedstawia wdrożenie pojedynczego przypadku użycia. Pierwszy pokazuje, jak blokować pliki cookie. Pozostałe 2 pokazują blokowanie i przekierowywanie adresów URL.
Chrome 112: większy limit miejsca na dane
Od wersji Chrome 112 limit usługi storage.session
został zwiększony do około 10 MB. Jest to uzgodnione w grupie społeczności rozszerzeń internetowych: https://github.com/w3c/webextensions/issues/350
Chrome 109: dokumenty poza ekranem
Dokumenty poza ekranem są teraz dostępne w rozszerzeniach platformy Manifest V3. Ułatwiają one przejście ze stron działających w tle na mechanizmy Service Worker rozszerzeń, zapewniając obsługę funkcji i interfejsów API związanych z DOM. Więcej informacji znajdziesz w poście na blogu.
Chrome 110: czy rozszerzenie jest włączone
Metoda chrome.action.isEnabled()
automatycznie sprawdza, czy rozszerzenie zostało włączone na danej karcie. Dzięki temu nie musisz utrzymywać stanu włączenia kart. Ta nowa metoda przyjmuje identyfikator karty i odwołanie do wywołania zwrotnego i zwraca wartość logiczną. Obowiązuje jedno ograniczenie: karty utworzone za pomocą funkcji chrome.declarativeContent
zawsze zwracają wartość fałsz.
W przestrzeni nazw chrome.action
wprowadzono ostatnio nowe metody kontrolowania wyglądu plakietek rozszerzeń. Więcej informacji znajdziesz w artykule Ustawianie kolorów plakietki.
Chrome 110: zmiana limitu czasu bezczynności skryptu service worker
Wcześniej skrypt usługi rozszerzenia często wyłączał się po 5 minutach. Zmieniliśmy to zachowanie, by bardziej przypominało czas działania mechanizmu Service Worker w internecie. Skrypt usługi rozszerzenia zostanie wyłączony po 30 sekundach braku aktywności lub jeśli przetworzenie pojedynczego działania trwa dłużej niż 5 minut. Aby uzyskać więcej informacji, przeczytaj artykuł Dłuższy czas pracy instancji roboczych usługi rozszerzenia.
Post: wstrzymuję wycofanie platformy Manifest V2
Harmonogram wycofywania platformy Manifest V2 jest w trakcie sprawdzania, a eksperymenty zaplanowane na początek 2023 r. zostaną przełożone. Więcej informacji znajdziesz w informacjach o aktualizacji w grupie dyskusyjnej Google dotyczącej rozszerzeń do Chromium.
Chrome 110: ustawianie kolorów plakietek
Przestrzeń nazw chrome.action
udostępnia 2 nowe metody, które dają Ci większą kontrolę nad plakietkami rozszerzeń wyglądu. Metody setBadgeTextColor()
i getBadgeTextColor()
umożliwiają rozszerzeniu zmienianie i wysyłanie zapytań o kolor tekstu plakietki ikony na pasku narzędzi. W połączeniu z setBadgeBackgroundColor
i getBadgeBackgroundColor
te nowe metody pozwolą Ci zapewnić spójność projektu i marki.
Post na blogu: więcej informacji o przejściu na platformę Manifest V3
Doprecyzowaliśmy harmonogram wycofania platformy Manifest V2. Zaktualizowaliśmy też harmonogram pomocy Manifest V2, aby uwzględniał te informacje.
Aktualizacja Dokumentów: znane problemy związane z migracją na Manifest V3
Przygotowaliśmy listę głównych funkcji, nad którymi obecnie pracujemy, oraz tych, w których można jeszcze znaleźć błędy. Na tej stronie chcemy pomóc deweloperom w zrozumieniu obecnego stanu platformy i funkcji, na które mogą liczyć w przyszłości.
Chrome Web Store: usunięto przesyłanie dużego obrazu promocyjnego
Usunęliśmy interfejs przesyłania „duży baner promocyjny” z karty Informacje o aplikacji w panelu dewelopera w Chrome Web Store. Ta zmiana nie wpływa na wrażenia użytkowników, ponieważ obrazy te nie były używane w interfejsie użytkownika. Więcej informacji znajdziesz w tym poście o rozszerzeniach Chromium.
Chrome 106. Zezwalanie stronom z adresów URL typu file:// na dostęp do zasobów dostępnych w internecie
Nieprzezroczyste źródła, takie jak elementy iframe w piaskownicy i import dynamiczny, również powinny mieć dostęp do zasobów dostępnych w internecie, jak opisano na stronie crbug.com/1219825#c11.
Chrome 106: naprawiono błąd polegający na tym, że w niektórych asynchronicznych funkcjach interfejsu API można używać nieprawidłowych argumentów końcowych
Wcześniej wywołujące asynchroniczne interfejsy API platformy Manifest V3 mogły podawać nieprawidłowy argument końcowy, a Chrome nie powodowało błędu. Po wprowadzeniu tej poprawki Chrome będzie prawidłowo wyświetlać komunikat o błędzie i zgłaszać brak pasującego podpisu. Zachęcamy deweloperów, aby sprawdzali swoje rozszerzenia w Canary pod kątem błędów, jeśli przypadkowo nie użyli nieprawidłowego podpisu w wywołaniu interfejsu API, które zostanie uszkodzone przez tę poprawkę.
Post na blogu: nowa analityka w Chrome Web Store
W Chrome Web Store wprowadziliśmy nowy wygląd i sposób analizowania danych o produktach w panelu dewelopera Chrome Web Store. Nowy panel jest łatwiejszy do zrozumienia, a najbardziej przydatne informacje na jego temat znajdują się na pierwszym planie. Więcej informacji znajdziesz w poście na blogu.
Chrome 105: obietnice Identity API
Funkcje w interfejsie Identity API obsługują teraz wywołania oparte na obietnicach. Wprowadzi to niewielką zmianę na powierzchni obiektu identity.getAuthToken()
, gdzie asynchroniczny zwrot ustawiony na wywołanie oparte na obietnicach będzie zawierać parametry „token” i „grantedScopes” jako parametry pojedynczego obiektu (w przeciwieństwie do wersji wywołania zwrotnego, która otrzymuje je jako osobne argumenty).
Chrome 104. Nowy interfejs API favikon na platformie Manifest V3
Rozszerzenia na platformie Manifest V3 mogą teraz uzyskiwać dostęp do favikon za pomocą nowego wzorca adresu URL: chrome-extension://<id>/_favicon/
, gdzie chrome://favicons
dostępny na platformie Manifest V2. Więcej informacji znajdziesz w dokumentacji Favicon API.
Aktualizacja Dokumentów: informacje dotyczące przedsiębiorców i osób niebędących przedsiębiorcami
Dodaliśmy identyfikator przedsiębiorcy/osoby niebędącej przedsiębiorcą, który informuje deweloperów, że powinni samodzielnie zadeklarować swój status przedsiębiorcy/osoby niebędącej przedsiębiorcą.
Chrome 103: Wasm w pliku manifestu V3 wymaga zastosowania Wasm-unsafe-eval
Chrome nie domyślnie zezwala już na rozszerzenia script-src: wasm-unsafe-eval
. Rozszerzenia korzystające z WebAssembly muszą teraz bezpośrednio dodawać tę dyrektywę i wartość do elementu extension_pages
w deklaracjach content_security_policy
.
Chrome 103: zmiana skrótów MV3 zaczyna obowiązywać od razu
Gdy zmienisz skrót klawiszowy rozszerzenia na platformie Manifest V3 na chrome://extensions/shortcuts
, aktualizacje są teraz stosowane natychmiast. Wcześniej, aby zmiana zaczęła obowiązywać, trzeba było załadować ponownie rozszerzenie.
Chrome 102. Skrypty treści dynamicznych w głównym świecie
Dynamicznie zarejestrowane skrypty treści mogą teraz określać świat, w którym zasoby będą wstrzykiwane. Więcej informacji znajdziesz na stronie scripting.registerContentScripts()
.
Chrome 102. Nowe pole manifestu „optional_host_permissions”
Rozszerzenia platformy Manifest V3 mogą teraz określać klucz optional_host_permissions
w pliku manifest.json. Dzięki temu rozszerzenia platformy Manifest V3 mogą deklarować opcjonalne wzorce dopasowania dla hostów, tak jak rozszerzenia na platformie Manifest V2 mogą używać klucza optional_permissions
.
Chrome 102: właściwość injectImmediately in scripting.executeScript()
chrome.scripting.executeScript()
akceptuje teraz opcjonalną właściwość injectImmediately
w swoim argumencie injection
. Jeśli ten tag jest obecny i ma wartość Prawda, skrypt wstrzykuje się do elementu docelowego tak szybko, jak to możliwe, bez czekania na document_idle
. Pamiętaj, że nie gwarantujemy, że skrypt wstrzyknie się przed wczytaniem strony, ponieważ w trakcie wywoływania interfejsu API strona wciąż się ładuje.
Chrome 102. Obsługa interfejsu API omniboksu w platformie Manifest V3
Interfejsu omniboksu API można teraz używać w rozszerzeniach opartych na mechanizmach Service Worker. Wcześniej niektóre metody tego interfejsu API wysyłały wywołania z powodu wewnętrznych zależności od możliwości DOM.
Chrome 102: Wasm-unsafe-eval dozwolone w pliku CSP platformy Manifest V3
Rozszerzenia na platformie Manifest V3 mogą teraz uwzględniać w deklaracjach content_security_policy
atrybuty wasm-unsafe-eval
. Ta zmiana zezwala rozszerzeniom na platformie Manifest V3 na używanie WebAssembly.
Chrome 102. Nowy interfejs API storage.session
Rozszerzenia na platformie Manifest V3 mogą teraz używać w pamięci masowej storage.session .
Aktualizacja Dokumentów: odkrywanie produktów w Chrome Web Store
Artykuł Discovery w Chrome Web Store zawiera omówienie tego, jak użytkownicy znajdują produkty w Chrome Web Store i jak nasi redaktorzy wybierają produkty, które chcą polecić.
Chrome 101. Poprawione warunki domeny declarativeNetRequest
Zaktualizowaliśmy warunki reguły declarativeNetRequest, aby rozszerzenia mogły skuteczniej kierować żądania na podstawie domen „request” i „initiator” żądania. Odpowiednie właściwości warunku to initiatorDomains
, excludedInitiatorDomains
, requestDomains
i excludedRequestDomains
. Zapoznaj się też z tym wątkiem dotyczącym rozszerzeń Chromium.
Chrome 100: rozwiązano problem z skryptem scripting.executeScript() na nowo utworzonych kartach
Rozwiązaliśmy od dawna problem, który powodował, że wywołanie funkcji scripting.executeScript()
w nowo utworzonej karcie lub oknie mogło się nie udać.
Chrome 100: natywny port komunikacji, który utrzymuje aktywność mechanizmu Service Worker
Łączenie się z hostem natywnego przesyłania komunikatów za pomocą chrome.runtime.connectNative()
w skrypcie service worker rozszerzenia powinno pozostawać aktywne, dopóki port będzie otwarty.
Chrome 100: omnibox.setDefaultsuggestion() obsługuje obietnice i wywołania zwrotne
Metoda omnibox.setDefaultSuggestion()
zwraca teraz obietnicę lub akceptuje wywołanie zwrotne, aby umożliwić programistom określenie, kiedy sugestia została prawidłowo ustawiona.
Chrome 100: obsługa funkcji i18n.getMessage() w instancjach roboczych usługi rozszerzenia
Interfejs API chrome.i18n.getMessage()
jest teraz obsługiwany w kontekstach instancji roboczych usługi rozszerzenia.
Chrome 99: match_origin_as_fallback w wersji Canary
Skrypty treści mogą teraz określać klucz match_origin_as_fallback
do wstrzykiwania do ramek powiązanych z pasującą ramką, w tym ramek z adresami URL about:
, data:
, blob:
i filesystem:
. Więcej informacji znajdziesz w dokumentacji skryptów treści.
Chrome 99: obsługa skryptu service worker dla pliku: schematy w wersji Canary
Rozszerzenia platformy Manifest V2 i Manifest V3 oparte na mechanizmach Service Worker w wersji 2 i Manifest V3 mogą teraz używać interfejsu Fetch API do wysyłania żądań adresów URL schematu file:
. Aby uzyskać dostęp do adresów URL schematu file:
, użytkownik musi włączyć na stronie chrome://extensions
opcję „Zezwalaj na dostęp do adresów URL plików”.
Chrome 99: obietnice obsługi interfejsów API do przesyłania wiadomości w wersji Canary
Do tabs.sendMessage
, runtime.sendMessage
i runtime.sendNativeMessage
dodaliśmy obsługę rozszerzeń utworzonych na platformę Manifest V3.
Aktualizacja Dokumentów: dokumentacja dotycząca opinii w Chrome Web Store
Dodaliśmy nową stronę referencyjną, która przedstawia proces sprawdzania w Chrome Web Store i wyjaśnia, jak wygląda egzekwowanie zasad programu dla deweloperów.
Chrome 98: scripting.executeScript() i scripting.insertCSS() akceptują wiele plików
Metody executeScript()
i insertCSS()
interfejsu Scripting API obsługują teraz wiele plików. Wcześniej te metody wymagały tablicy z jednym wpisem w pliku.
Aktualizacja Dokumentów: aktualizacje dotyczące rozwiązywania problemów z naruszeniami zasad
Zaktualizowaliśmy stronę Rozwiązywanie problemów związanych z naruszeniem zasad Chrome Web Store, aby udostępnić deweloperom bardziej szczegółowe wskazówki dotyczące najczęstszych przyczyn odrzucenia.
Chrome 96: rozszerzyliśmy obsługę kolejnych interfejsów API (27)
Ta wersja zawiera znacznie więcej obiecujących aktualizacji niż którakolwiek z poprzednich wersji. Aktualizacje obejmują zarówno ogólne, jak i specyficzne dla ChromeOS interfejsy API rozszerzeń. Rozwiń poniższe sekcje, aby uzyskać szczegółowe informacje.
Interfejsy API rozszerzeń
Wiele interfejsów API obsługuje teraz obietnice w platformie Manifest V3.
chrome.browsingData
chrome.commands
chrome.contentSettings
chrome.debugger
chrome.downloads
chrome.enterprise.hardwarePlatform
chrome.fontSettings
chrome.history
chrome.instanceID
chrome.permissions
chrome.processes
chrome.search
chrome.sessions
chrome.topSites
Poza tym interfejsy API, które korzystają z prototypu ChromeSetting
, obsługują teraz obietnice. Zmiana dotyczy następujących interfejsów API.
Interfejsy API ChromeOS
chrome.certificateProvider
chrome.documentScan
chrome.enterprise.deviceAttributes
chrome.enterprise.networkingAttributes
chrome.fileBrowserHandler
chrome.fileSystemProvider
chrome.loginState
chrome.printingMetrics
chrome.wallpaper
Chrome 96: skrypty treści dynamicznych
Interfejs API chrome.scripting
obsługuje teraz rejestrowanie, aktualizowanie, wyrejestrowanie i pobieranie listy skryptów treści w czasie działania. Wcześniej skrypty treści można było tylko statycznie deklarować w pliku manifest.json rozszerzenia lub automatycznie wstrzykiwać w czasie działania za pomocą narzędzia chrome.scripting.executeScript()
.
Aktualizacja Dokumentów: harmonogram obsługi platformy Manifest V2
Harmonogram przejścia z platformy Manifest V2 na V3 został ogłoszony w tym poście na blogu oraz opublikowano bardziej szczegółową stronę z harmonogramem.
Chrome 96: uprawnienie declarativeNetRequestWithHostAccess
Nowe uprawnienie declarativeNetRequestWithHostAccess
umożliwia rozszerzeniom używanie interfejsu API chrome.declarativeNetRequest
w witrynach, w przypadku których rozszerzenie ma uprawnienia hosta. Spowoduje to też migrację istniejących rozszerzeń na platformie Manifest V2, które korzystają z uprawnień webRequest
i webRequestBlocking
oraz z uprawnień hosta specyficznych dla witryny, do migracji do interfejsu API chrome.declarativeNetRequest
bez konieczności zatwierdzania nowych uprawnień przez użytkownika.
Chrome 95: wstawianie skryptów bezpośrednio na stronach
Metoda executeScript()
interfejsu API chrome.scripting
może teraz wstrzykiwać skrypty bezpośrednio do głównego świata strony. Wcześniej rozszerzenia mogły wstrzykiwać
tylko bezpośrednio do izolowanego świata rozszerzenia. Więcej informacji o izolowanych światach znajdziesz w dokumentacji skryptów treści.
Chrome 95: obietnice wsparcia w zakresie Storage API
Metody w wersji Manifest V3 interfejsu API chrome.storage
zwracają teraz obietnice.
Aktualizacja zasad: wymuszanie weryfikacji dwuetapowej
Post na blogu o aktualizacji zasad opublikowany 29 czerwca 2021 roku został zaktualizowany, aby poprawić harmonogram wdrażania weryfikacji dwuetapowej.
Chrome 94: zmiany w statycznym zestawie reguł deklaratywnego żądania netto
W chrome.declarativeNetRequest
można teraz określać do 50 statycznych zestawów reguł (MAX_NUMBER_OF_STATIC_RULESETS) i włączać do 10 zestawów reguł (MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) jednocześnie.
Chrome 93: obsługa izolacji innych domen
Zarówno rozszerzenia Manifest V2, jak i Manifest V3 mogą teraz korzystać z izolacji od różnych domen. Ta funkcja ogranicza liczbę zasobów z innych domen, które mogą wczytywać strony rozszerzenia, i umożliwia korzystanie z funkcji platformy internetowej niskiego poziomu, takich jak SharedArrayBuffer
. Ta funkcja będzie wymagana od wersji Chrome 95.
Aktualizacja zasad: zaktualizowano zasady programu dla deweloperów
Zasady programu dla deweloperów w Chrome Web Store zaktualizowaliśmy o doprecyzowanie zasad dotyczących nieuczciwych praktyk instalacyjnych, spamu i powtarzających się treści. W ramach tej aktualizacji wprowadzamy też nowy wymóg weryfikacji dwuetapowej związany z publikowaniem w sklepie Chrome Web Store. Więcej informacji znajdziesz w poście na blogu.
Post na blogu: działania rozszerzenia na platformie Manifest V3
Rozszerzenia do Chrome przez lata miały interfejsy API chrome.browserAction
i chrome.pageActions
, ale platforma Manifest V3 zastąpiła je ogólnym interfejsem API chrome.actions
. W tym poście omawiamy historię tych interfejsów API i omawiamy, co się zmieniło w platformie Manifest V3. Przeczytaj posta
Post na blogu: wprowadzenie chrome.scripting
chrome.scripting
API to nowy interfejs Manifest V3 API skoncentrowany na tworzeniu skryptów. W tym poście omówimy powody tej zmiany
i przyjrzymy się bliżej nowym możliwościom, jakie zapewnia ta zmiana. Przeczytaj posta
Chrome 92: obsługa skryptów service worker modułów
Chrome obsługuje teraz moduły JavaScriptu w mechanizmach Service Worker. Aby wskazać moduł w pliku manifestu:
"background": {
"service_worker": "script.js",
"type": "module"
}
Spowoduje to wczytanie skryptu instancji jako moduł ES, co pozwala użyć słowa kluczowego import
w skrypcie instancji roboczej do zaimportowania innych modułów.
Chrome 91: chrome.action.getUserSettings()
Nowa metoda chrome.action.getUserSettings()
pozwala rozszerzeniom sprawdzić, czy użytkownik przypiął rozszerzenie do głównego paska narzędzi.
Chrome 90: chrome.scripting.removeCSS()
Nowa metoda chrome.scripting.removeCSS()
umożliwia rozszerzeniom usuwanie kodu CSS, który został wcześniej wstawiony za pomocą chrome.scripting.insertCSS()
. Zastępuje ono chrome.tabs.removeCSS()
.
Chrome 90: zwracanie obietnic zawartych w kodzie Scripting.executeScript()
chrome.scripting.executeScript()
obsługuje teraz obietnice zwracania. Jeśli wynik wykonania skryptu jest obietnicą, Chrome poczeka na uzgodnienie i zwróci otrzymaną wartość.
Chrome 90: wyniki funkcji chrome.scripting.executeScript() obejmują identyfikator frameId
Wyniki zwrócone z metody chrome.scripting.executeScript()
będą teraz zawierać parametr frameId.
Właściwość frameId
wskazuje klatkę, z której pochodzi wynik, dzięki czemu rozszerzenia mogą łatwo wiązać wyniki z poszczególnymi klatkami podczas wstrzykiwania wielu klatek.
Chrome 89: nowy interfejs API do zarządzania grupami kart
Nowy interfejs API chrome.tabGroups
i nowe funkcje w chrome.tabs
umożliwiają rozszerzeniom odczytywanie grup kart i manipulowanie nimi.
Wymaga platformy Manifest V3.
Chrome 89: konfigurowalne uprawnienia dla zasobów dostępnych w internecie
Definicje zasobów dostępnych przez internet w pliku manifestu V3 zostały zmienione, aby umożliwić rozszerzeniom ograniczanie dostępu do zasobów na podstawie źródła lub identyfikatora rozszerzenia zgłaszającego.
Post na blogu: Konwersja pliku manifestu rozszerzenia
Zespół ds. rozszerzeń do Chrome udostępnił na licencji open source „Extension Manifest Converter” – narzędzie w języku Python, które automatyzuje niektóre mechaniczne aspekty konwertowania rozszerzeń na Manifest V3. Przeczytaj posta na blogu z ogłoszeniem i pobierz go z GitHuba.
Chrome 88. Ogólna dostępność platformy Manifest V3
Manifest V3 to duża aktualizacja platformy rozszerzeń. Podsumowanie nowych i zmienionych funkcji znajdziesz w przeglądzie platformy Manifest V3. Na razie rozszerzenia mogą nadal używać platformy Manifest V2, ale wkrótce ją wycofamy. Zdecydowanie zalecamy, aby w przypadku nowych rozszerzeń używać platformy Manifest V3 i jak najszybciej rozpocząć migrację istniejących rozszerzeń do platformy Manifest V3.