Nowości w rozszerzeniach do Chrome

Zaglądaj na tę stronę często, aby być na bieżąco z informacjami o zmianach w rozszerzeniach do Chrome, dokumentacji rozszerzeń lub powiązanych zasadach i innych zmianach. Inne powiadomienia opublikowane w grupie dyskusyjnej Google poświęconej rozszerzeń. Harmonogram Chrome zawiera daty stabilnych i wersji beta wydań.

Przywracanie wersji w panelu dewelopera Chrome Web Store

Opublikowano

Przywróć rozszerzenie do poprzednio opublikowanej wersji w Chrome Web Store bez dodatkowego sprawdzania. Aby dowiedzieć się więcej, przeczytaj posta na blogu i dokumentację.

Chrome 124: zaawansowany interfejs documentScan API

Opublikowano

W ChromeOS dostępny jest teraz zaawansowany interfejs documentScan API umożliwiający wykrywanie i pobieranie obrazów z dołączonych skanerów dokumentów.

Chrome 124: obsługa WebGPU w skryptach Service Workers

Opublikowano

Od wersji Chrome 124 mechanizmy Service Worker obsługują WebGPU. Na początek zapoznaj się z przykładowym rozszerzeniem WebGPU.

Chrome 123: interfejs Event API obsługuje filtrowanie według bloków CIDR

Opublikowano

Interfejs Event API obsługuje teraz filtrowanie według bloków CIDR (Classless Inter-Domain Routing). Blok CIDR to zbiór adresów IP, które mają taki sam prefiks sieci i taką samą liczbę bitów. Wcześniej deweloper musiał filtrować wiele adresów IP, aby skonfigurować regułę filtrowania dla każdego adresu w zakresie blokad. Teraz gdy rozszerzenie wywołuje addListener(), przekazywana w regule moduł obsługi zdarzeń będzie wywoływany tylko wtedy, gdy część hosta w adresie URL jest adresem IP i znajduje się w dowolnym z bloków CIDR określonych w tablicy.

Chrome Web Store: zmiany wymagań związanych z długością nazwy rozszerzenia

Data publikacji:

W sklepie Chrome Web Store obowiązuje teraz uniwersalny limit 75 znaków w polu "name" rozszerzenia w pliku manifest.json. Wcześniej limit dla języka angielskiego wynosił 45 znaków, a w innych językach nie było ograniczeń dotyczących pola "name".

Jej celem było umożliwienie uchwycenia różnic kulturowych i językowych, których nie da się uchwycić tą samą liczbą znaków. Niestety ta funkcja została użyta przez niewielką liczbę deweloperów do rozsyłania spamu w sklepie. W związku z tym wprowadzamy nowy uniwersalny limit, który zwiększy się do 75 znaków. Ten limit obejmuje obecnie prawie wszystkie rozszerzenia w sklepie, więc najprawdopodobniej nie musisz nic robić w związku z tą zmianą. Jeśli spróbujesz przesłać rozszerzenie o nazwie dłuższej niż maksymalny, to przesłanie zostanie zablokowane przez sklep.

Post na blogu: droga Eyeo do testowania zawieszenia mechanizmów Service Worker

Data publikacji:

W tym poście, który napisał zespół eyeo, Extension Engine, przyjrzymy się problemowi testowania mechanizmów Service Worker rozszerzenia. W platformie Manifest V2 rozszerzenia znajdowały się na stronie w tle, która była aktywna w całym cyklu życia rozszerzenia. Manifest V3 wykorzystuje zamiast tego mechanizmy Service Worker, które z założenia oszczędzają zasoby, zamykając się, gdy nie są potrzebne. Wiąże się to z pewnymi wyzwaniami podczas testowania. W tym poście wyjaśniamy, jak firma Eyeo radziła sobie z tymi wyzwaniami.

Chrome 123: teraz alarmy uruchamiają się, gdy urządzenie jest uśpione

Opublikowano

Alarmy ustawione za pomocą interfejsu API chrome.alarms nie są już opóźnione w momencie przejścia urządzenia w tryb uśpienia. Po wybudzeniu urządzenie wybudzi się bez względu na to, ile alarmów zostało pominiętych. Załóżmy na przykład, że ustawiony jest alarm, który uruchamia się raz na godzinę, a urządzenie, na którym jest włączone, jest w stanie uśpienia od 00:55 do 2:05, wówczas tylko alarm ustawiony na 2:00 wywołuje zdarzenie onAlarm. Włącza się najpóźniej o 2:00 i od razu po wybudzeniu lub w trybie uśpienia.

Ta zmiana pozwala dostosować Chrome do zasad określonych w grupie społeczności rozszerzeń internetowych.

Post na blogu: zmiany w działaniu pamięci podręcznej (bfcache) związane z portami wiadomości rozszerzeń

Data publikacji:

Pamięć podręczna stanu strony internetowej (bfcache) to optymalizacja przeglądarki, która umożliwia błyskawiczną nawigację wstecz i do przodu. 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. Dlatego skrypty rozszerzeń powinny nasłuchiwać zdarzeń cyklu życia, np. onDisconnect, i skonfigurować nowe połączenie po przywróceniu strony z BFCache.

Więcej informacji i przykładowy kod znajdziesz w artykule o zmianach w działaniu BFCache związanych z portami wiadomości rozszerzeń.

Chrome 122: obiecywanie obsługi interfejsów API rozszerzeń asynchronicznych

Data publikacji:

Zakończyliśmy wdrażanie funkcji Promise w przypadku wszystkich metod interfejsu API rozszerzeń asynchronicznych. W ten sposób zmodernizowano metody interfejsu API przez poprawę ergonomii obsługi operacji asynchronicznych. Niektóre metody (np. desktopCapture.chooseDesktopMedia()) nadal obsługują tylko wywołania zwrotne, ponieważ ich obecne platformy nie są zgodne z obietnicami. Aby zapewnić zgodność wsteczną, wywołania zwrotne są nadal obsługiwane. Jeśli znajdziesz obietnicę, która nie działa, zgłoś błąd.

Nowe wskazówki dotyczące komunikacji w czasie rzeczywistym

Opublikowano

Opublikowaliśmy właśnie przewodniki po opcjach rozszerzeń w czasie rzeczywistym. Aktualizacje w czasie rzeczywistym zapewniają natychmiastową ścieżkę komunikacji z serwerów bezpośrednio do instalacji rozszerzeń. Oprócz tego dodaliśmy nowe wskazówki dotyczące korzystania z plików chrome.gcm i Web Push.

Nowe wskazówki i przykład: zakończenie testowania skryptu service worker

Opublikowano

Właśnie opublikowaliśmy przewodnik na temat testowania zakończenia działania skryptu service worker za pomocą rozwiązania Puppeteer. Widać to w powiązanym przykładzie w aplikacjach Puppeteer i Selenium.

Zaktualizowany przykład wiadomości natywnych

Data publikacji:

Właśnie opublikowaliśmy zaktualizowany przykład dotyczący wiadomości natywnych. Ten interfejs API umożliwia uruchamianie rozszerzenia i komunikację z inną aplikacją. Dziękujemy współtwórcy GitHuba, Shubham-Rasal za tę pracę.

Chrome 121: nowa właściwość lastAccessed na kartach

Data publikacji:

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: nieobsługiwane klucze „w tle” powodują teraz ostrzeżenie

Opublikowano

W wyniku zmiany z platformy Manifest V2 na Manifest V3 elementy podrzędne "background" klucza manifestu zostały zmienione, aby uwzględnić zastąpienie skryptów działających w tle skryptami service worker rozszerzeń. Wcześniej dodanie kluczy "scripts", "page" lub "persistent" do klucza "background" w rozszerzeniu platformy Manifest V3 powodowało błąd. Obecność tych kluczy powoduje teraz ostrzeżenie.

Ma to na celu umożliwienie używania jednego pliku manifestu w rozszerzeniach w różnych przeglądarkach, zgodnie z propozycją zawartą w grupie społeczności.

Chrome 120: minimalny poziom szczegółowości alarmu zmniejszono do 30 sekund

Opublikowano

Od wersji Chrome 120 rozszerzenia z platformy Manifest V3 mogą używać interfejsu API chrome.alarms w przypadku opóźnień lub okresów 30-sekundowych, zamiast wymagać wartości co najmniej 60 sekund.

Post na blogu: wznawianie przejścia na platformę Manifest V3

Opublikowano

Oś czasu obsługi platformy Manifest V2 została zaktualizowana. Więcej informacji znajdziesz w poście na blogu z listopada 2023 roku.

Post na blogu: ulepszenia obsługi filtrowania treści w platformie Manifest V3

Opublikowano

W nowym poście na blogu dowiesz się, jak ulepszyliśmy interfejs declarativeNetRequest API.

Post na blogu: nowości w Chrome 120 dotyczące rozszerzeń

Opublikowano

Niedawno udostępniliśmy Chrome 120 w wersji beta. Podsumowanie ważnych aktualizacji dla deweloperów rozszerzeń znajdziesz w naszym nowym poście na blogu: Co nowego w Chrome 120 w zakresie rozszerzeń. Ta wersja stanowi również ważny krok milowy, ponieważ 2 ostatnie elementy (userScripts, moduł obsługi plików w ChromeOS) zostały usunięte z listy krytycznych luk w platformie.

Reklamy społeczne: zmiana sposobu obsługi adresów URL polityki prywatności w Panelu dewelopera

Opublikowano

Polityka prywatności w Panelu dewelopera jest teraz dodana na poziomie produktu. Dzięki temu możesz określić inną politykę prywatności dla każdego produktu. Więcej informacji o tej zmianie znajdziesz w urzędzie charytatywnym.

Film: czat z Mattem Frisbie

Opublikowano

Właśnie opublikowaliśmy nowy film na kanale Chrome dla deweloperów w YouTube na czacie z ekspertem Google Developers i autorem Mattem Frisbie. Obejrzyj go tutaj.

Nowe wskazówki dotyczące testowania rozszerzeń

Opublikowano

Właśnie opublikowaliśmy nowe wskazówki na temat pisania automatycznych testów rozszerzeń, w tym procedury pisania testów jednostkowych, a także ogólne wskazówki i samouczek na temat kompleksowego testowania.

Post na blogu: co się dzieje w rozszerzeniach do Chrome – październik 2023 r.

Opublikowano

Właśnie opublikowaliśmy drugie wydanie artykułu Co się dzieje w rozszerzeniach do Chrome. W poście omówiliśmy, nad czym pracował zespół ds. rozszerzeń od kilku miesięcy, m.in. jak rozwiązywać problemy ze stabilnością mechanizmów Service Worker i jakie postępy usuwać. Udostępniamy też nowe, ciekawe wersje interfejsów API, takie jak Reading List API czy User Scripts API.

Zwiększone limity statycznych zestawów reguł w deklaratywnym interfejsie Net Request API

Opublikowano

Po uwzględnieniu opinii członków grupy 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

Opublikowano

W przypadku platformy Manifest V3 rozszerzenia nie mogą już używać kodu hostowanego zdalnie. Chociaż od początku stanowiło to część naszego przewodnika po migracji, uznaliśmy, że warto ulepszyć wskazówki w tym zakresie. Na tej stronie znajdziesz teraz więcej informacji, opisujących możliwości platformy Manifest V3 i więcej informacji o strategiach uaktualniania.

Oprócz tego znajdziesz też artykuł Rozwiązywanie problemów związanych z naruszeniem zasad Chrome Web Store. W nowej sekcji znajdziesz najczęstsze przyczyny odrzucania rozszerzeń z kodem hostowanym zdalnie.

Chrome 118: parametr isUrlFilterCaseSensitive teraz ma wartość domyślną Fałsz

Opublikowano

W Chrome 118 właściwość isUrlFilterCaseSensitive interfejsu API chrome.declarativeNetRequest została zmieniona na domyślną wartość false. Jeśli chcesz zachować stare zachowanie, możesz ustawić isUrlFilterCaseSensitive na true w regułach deklarativeNetRequest.

Ten artykuł jest związany z dyskusją w grupie społeczności rozszerzeń internetowych. W przeglądarkach Firefox i Safari wprowadzono już podobną zmianę.

Dokumentacja plików cookie i internetowych interfejsów API do przechowywania danych

Data publikacji:

Opublikowaliśmy nowy przewodnik, jak działają pliki cookie i interfejsy API do przechowywania danych w internecie w rozszerzeniach do Chrome. Zawiera on szczegółowe informacje o zmianach w partycjonowaniu plików cookie i pamięci w Piaskownicy prywatności – to trwający projekt mający na celu wycofywanie plików cookie innych firm w ramach tworzenia serii nowych interfejsów API platformy internetowej. Znajdziesz w nim też szczegółowe informacje o tym, jak działają one w rozszerzeniach.

Teraz można wyszukiwać próbki rozszerzeń

Opublikowano

Niedawno utworzyliśmy stronę, która pozwala przeszukiwać przykłady 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 interfejsu API lub przykładów funkcjonalnych (przypadków użycia).

Ta nowa przykładowa strona została stworzona przez Xuezhou Dai, uczestnika programu Google Summer of Code, który przekazał również kilka nowych przykładów. O swoich 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 na GitHubie do klonowania lub rozwidlenia.

Chrome 118: zmiany w pliku otwierającym: adresy URL schematów

Opublikowano

Od wersji Chrome 118 rozszerzenia wymagają 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 systemu 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 stronie dotyczącej rozszerzeń w grupie dyskusyjnej Google.

Chrome 117: rozszerzone zabezpieczenia adresów URL przy nawigacji po interfejsach API w rozszerzeniach

Opublikowano

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 funkcji 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 chrome://, która ma zastosowanie do wszystkich wymienionych wcześniej metod.

Ulepszone wskazówki dotyczące interfejsu deklarativeNetRequest API

Opublikowano

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, a tym samym zapewnić użytkownikom większą prywatność. Jest też dość trudny w użyciu. Mając to na uwadze, napisaliśmy wskazówki na nowo w taki sposób, aby uzyskać jaśniejszy obraz sposobu wdrażania reguł deklaratywnego. Przeczytaj nową sekcję, do której prowadzi link powyżej.

Korzystanie z konta Google Analytics w sklepie Chrome Web Store

Opublikowano

Sklep Chrome Web Store oferuje integrację z Google Analytics, dzięki czemu poza widokiem dostępnym w Panelu dewelopera można wyświetlać również dane analityczne dotyczące strony aplikacji w Chrome Web Store. Więcej informacji znajdziesz w artykule Używanie konta Google Analytics w sklepie Chrome Web Store.

Chrome 115: domyślne kroki w Narzędziach deweloperskich nad skryptami treści

Opublikowano

Skrypty wstrzykniętej treści znajdują się teraz domyślnie na liście ignorowanych w Narzędziach deweloperskich. Nie ma to wpływu na punkty przerwania, ale oznacza, że skrypty treści będą sprawdzane 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 o tym, czy ta funkcja jest włączona, i udostępnia opcję usunięcia skryptu z listy ignorowanych. Aby wyłączyć tę funkcję, otwórz Narzędzia deweloperskie, wybierz Ustawienia, a następnie Lista ignorowanych fragmentów kodu. Więcej informacji znajdziesz w artykule Co nowego w Narzędziach deweloperskich.

Chrome 116 w wersji beta: więcej niż możemy tu zmieścić

Opublikowano

Chrome 116 to duża wersja rozszerzeń. Teraz możesz automatycznie otwierać panele boczne. Nowa metoda pozwala sprawdzić, czy istnieje aktywny dokument poza ekranem. Skrypty service worker mają serwerowe ulepszenia. Wersja 116 ma wystarczająco dużo ulepszeń, o których napisaliśmy w poście na blogu. Chrome 116 jest w wersji beta od 19 lipca.

Post na blogu: Co się dzieje w rozszerzeniach do Chrome

Opublikowano

Właśnie opublikowaliśmy podsumowanie tegorocznych zmian i ulepszeń rozszerzeń. W poście omawiamy najważniejsze tegoroczne funkcje, takie jak interfejs Side Panel API, ulepszenia mechanizmu Service Worker i dokumenty niewidoczne na ekranie. Dowiesz się też, nad czym pracujemy w tym kwartale. W artykule znajdziesz znacznie więcej informacji, a także linki do nich.

Nowe wskazówki i przykład: dowiedz się, jak używać Google Analytics 4 w rozszerzeniu do Chrome

Opublikowano

Opublikowaliśmy nowe wskazówki i przykłady dotyczące Google Analytics i geolokalizacji:

Chrome 115: określ wiele przyczyn w funkcji chrome.offscreen.createDocument()

Opublikowano

Możesz teraz określić wiele wyliczeń reason podczas wywoływania chrome.offscreen.createDocument(). Tej opcji należy użyć, gdy dokument poza ekranem może być używany do wielu różnych celów. Na podstawie podanych przyczyn przeglądarka określa czas życia dokumentu poza ekranem.

Nowe narzędzie: narzędzie do testowania aktualizacji rozszerzeń

Opublikowano

Udostępniliśmy narzędzie do testowania aktualizacji rozszerzeń – serwer aktualizacji lokalnych rozszerzeń, który może służyć do testowania aktualizacji rozszerzeń do Chrome w czasie programowania lokalnego, w tym do przyznawania uprawnień. Narzędzie pokazuje proces aktualizacji przez użytkownika, w tym pozostawienie rozszerzenia wyłączonego, dopóki użytkownik nie przyzna nowo oczekiwanych uprawnień. To narzędzie jest szczególnie przydatne do symulowania zmian uprawnień wymaganych podczas aktualizowania rozszerzenia z platformy Manifest V2 do Manifest V3.

Chrome 114: nowy interfejs API panelu bocznego

Opublikowano

Przedstawiamy nowy interfejs Side Panel API – dodatkową platformę, która daje użytkownikom dostęp do narzędzi związanych z przeglądaną treścią. Więcej informacji znajdziesz w materiałach referencyjnych dotyczących interfejsu API panelu bocznego. Dodaliśmy też wiele przykładów z panelu bocznego do naszego przykładowego repozytorium na GitHubie. Więcej informacji o panelach bocznych udostępniamy w nowym poście na blogu: designing a Superior User Experience with the New Side Panel API. Przeanalizowaliśmy również nasze zasady dotyczące jakości i sprawdzone metody, aby zapewnić dodatkowe wskazówki na temat tworzenia wysokiej jakości rozszerzeń panelu bocznego.

Twoja opinia jest dla nas ważna podczas tworzenia tego interfejsu API. Podziel się swoimi przemyśleniami i prośbami o dodanie funkcji na chromium-groups. Będziemy na bieżąco informować o nowościach w zakresie ulepszania interfejsu Side Panel API.

Nowe przykłady: WASM w rozszerzeniach

Opublikowano

Dostępne są 2 nowe przykłady pokazujące, jak korzystać z standardu WASM w rozszerzeniu:

Specjalne podziękowania dla współtwórcy serwisu GitHub @daidr za te próbki.

Zaktualizowaliśmy wskazówki dotyczące migracji platformy Manifest V3

Opublikowano

Zaktualizowaliśmy sekcję Znane problemy w naszym przewodniku po migracji na platformę Manifest V3 o zaktualizowaną listę luk w rozszerzeniach na platformie, które zamierzamy usunąć przed ogłoszeniem nowego harmonogramu wycofywania platformy Manifest V2.

Nagrywanie dźwięku i filmu za pomocą platformy Manifest V3

Opublikowano

Właśnie opublikowaliśmy nowy artykuł zatytułowany Nagrywanie dźwięku i przechwytywanie ekranu, który opisuje nagrywanie dźwięku lub obrazu z karty, okna lub ekranu w platformie Manifest V3. W tym artykule opisujemy różne metody nagrywania z wykorzystaniem interfejsu API chrome.tabCapture i funkcji getDisplayMedia().

Chrome 114: zwiększony limit storage.local

Opublikowano

Zwiększyliśmy limit do około 10 MB dla usługi storage.local. Ta zasada została zgodna z tym w grupie Społeczności rozszerzeń internetowych. Dzięki temu storage.local będzie zgodny z storage.session, który został zmieniony w Chrome 112.

Nowy samouczek i pomoc dotycząca skryptu service worker rozszerzenia

Opublikowano

Skrypty service worker są integralną częścią rozszerzeń do Chrome. Właśnie opublikowaliśmy samouczek wyjaśniający podstawy rejestracji, debugowania i interakcji z skryptami Service Worker. Dodaliśmy też nowy przewodnik skryptu service worker, w którym bardziej szczegółowo wyjaśniamy ważne pojęcia. W najbliższych miesiącach rozszerzymy tę sekcję.

Więcej wskazówek dotyczących rozwiązywania problemów związanych z naruszeniami zasad dotyczących sklepu Chrome Web Store

Opublikowano

Aby ułatwić publikowanie w Chrome Web Store, dodaliśmy nowe wskazówki w 2 obszarach. Wytyczne dotyczące minimalnej funkcjonalności skupiają się na zapewnieniu użytkownikom korzyści i zwiększeniu wygody przeglądania internetu. Wytyczne dotyczące reklam partnerskich dotyczą informowania użytkowników o istnieniu rozszerzeń za pomocą linków lub kodów do witryn partnerskich za pomocą linków lub kodów do witryn partnerskich. Należy też dać im pewien poziom kontroli, ponieważ użytkownik musi wykonać działanie przed dołączeniem rozszerzeń.

Nowe instrukcje dotyczące konwertera pliku manifestu rozszerzenia

Opublikowano

Opracowaliśmy od nowa plik README dla narzędzia do konwertowania pliku manifestu rozszerzenia, aby ułatwić sprawdzanie, co należy zrobić po uruchomieniu tego narzędzia. Konwerter pomaga przenieść rozszerzenia utworzone na platformie Manifest V2 do platformy Manifest V3. Nowe pliki README zawierają opis działania narzędzia, używając słów, które bardzo pasują do tych na liście kontrolnej przewodnika po migracji. Konwerter nie robi wszystkiego, ale eliminuje wiele zadań, które nie wymagają ludzkiego osądu.

Chrome 113: nowe powody, dla których warto wyświetlać dokumenty poza ekranem

Opublikowano

Dodaliśmy 2 nowe typy powodów do interfejsu Offscreen Documents API. Aby uzyskać dostęp do interfejsu API localStorage platformy internetowej, użyj polecenia LOCAL_STORAGE. Podczas tworzenia instancji roboczych używaj WORKER.

Google Analytics 4 teraz w Panelu dewelopera

Opublikowano

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 w przypadku wydawców grupowych. Jeśli do śledzenia aktywności na stronie aplikacji używasz Google Universal Analytics, do 1 lipca 2023 r. musisz podjąć działania, aby nadal otrzymywać informacje o tej stronie. Więcej informacji znajdziesz w poście na stronie grupy dyskusyjnej Google dotyczącej rozszerzeń Chromium.

Interfejs File handling API jest dostępny w ChromeOS

Opublikowano

Interfejs File Handler API jest dostępny do eksperymentów w ChromeOS w wersji 112 i 113 w wersji Canary. 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 artykule w innym miejscu tej witryny.

Aby włączyć obsługę plików:

  • Począwszy od wersji 112, uruchom Chrome przy użyciu flagi --enable-features=ExtensionWebFileHandlers, począwszy od wersji 112
  • Od wersji 113 wklej os://flags/#extension-web-file-handlers w omniboksie Chrome i wybierz z menu „Włączone”.

Mamy nadzieję, że pod koniec czerwca udostępnimy tę funkcję w Chrome 115. Zaglądaj tu, by być na bieżąco.

Nowe przykłady: deklaracje dynamiczne i wstrzykiwanie automatyczne

Opublikowano

Utworzyliśmy nowy przykład interfejsu API chrome.scripting. Pokazano deklaracje dynamiczne (skrypt treści jest rejestrowany w czasie działania) oraz automatyczne wstrzykiwanie, czyli wykonywanie skryptu w otwartej karcie.

Nowe przykłady: przypadki użycia deklarowanych żądań netto

Opublikowano

Dostępne są 3 nowe przykłady przedstawiające Deklaracja Net Request API. Każda z nich pokazuje implementację jednego przypadku użycia. Pierwszy z nich pokazuje, jak blokować pliki cookie. W pozostałych dwóch pokazano blokowanie i przekierowywanie adresów URL.

Chrome 112: zwiększony limit miejsca na dane.

Opublikowano

Od wersji Chrome 112 limit dla usługi storage.session został zwiększony do około 10 MB. To zostało zaakceptowane w grupie społeczności rozszerzeń internetowych: https://github.com/w3c/webextensions/issues/350.

Chrome 109: dokumenty poza ekranem

Opublikowano

Dokumenty poza ekranem są teraz dostępne w rozszerzeniach na platformie Manifest V3. Pomagają one w przejściu ze stron w tle na mechanizmy Service Worker rozszerzenia, ponieważ zapewniają 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

Opublikowano

Metoda chrome.action.isEnabled() automatycznie sprawdza, czy rozszerzenie zostało włączone na danej karcie. Dzięki temu nie musisz utrzymywać aktywnych kart. Ta nowa metoda pobiera identyfikator karty i odwołanie do wywołania zwrotnego oraz zwraca wartość logiczną. Ma jedno ograniczenie: karty utworzone za pomocą chrome.declarativeContent zawsze zwracają wartość „fałsz”.

W przestrzeni nazw chrome.action niedawno pojawiły się nowe metody kontrolowania wyglądu plakietek rozszerzeń. Więcej informacji znajdziesz w artykule Ustawianie kolorów plakietek.

Chrome 110: zmiana limitu czasu bezczynności skryptu service worker

Opublikowano

Wcześniej mechanizm Service Worker rozszerzenia często wyłączał się po upływie 5 minut. Zmieniliśmy ten sposób działania, aby bardziej przypominało działanie mechanizmów Service Worker w internecie. Skrypt service worker rozszerzenia jest wyłączany po 30 sekundach braku aktywności lub jeśli przetworzenie pojedynczej aktywności trwa dłużej niż 5 minut. Więcej informacji znajdziesz w artykule na temat wydłużania okresu eksploatacji skryptu service worker rozszerzenia.

Post: wstrzymuję wycofanie platformy Manifest V2

Opublikowano

Harmonogram wycofywania platformy Manifest V2 jest w trakcie sprawdzania, a eksperymenty zaplanowane na początek 2023 r. zostały przełożone. Aby dowiedzieć się więcej, przeczytaj tę aktualizację w grupie dyskusyjnej Google dotyczącej rozszerzeń chromium-extensions.

Chrome 110: ustawianie kolorów plakietek

Opublikowano

W przestrzeni nazw chrome.action wprowadziliśmy 2 nowe metody, które dają Ci większą kontrolę nad plakietkami rozszerzeń wyglądu. Metody setBadgeTextColor() i getBadgeTextColor() umożliwiają rozszerzeniu zmianę koloru tekstu plakietki na pasku narzędzi oraz wysyłanie dotyczących go zapytanie. Te nowe metody używane z setBadgeBackgroundColor i getBadgeBackgroundColor umożliwiają zachowanie spójności wyglądu i marki.

Post na blogu: dodatkowe informacje o przejściu na platformę Manifest V3

Opublikowano

Doprecyzowaliśmy harmonogram wycofywania platformy Manifest V2. Zaktualizowaliśmy też oś czasu obsługi platformy Manifest V2, aby uwzględniała tę informację.

Aktualizacja Dokumentów: znane problemy podczas migracji do platformy Manifest V3

Opublikowano

Utworzyliśmy listę głównych funkcji, które są obecnie w fazie rozwoju i rozwiązaliśmy problemy. Na tej stronie chcemy pomóc deweloperom lepiej zrozumieć obecny stan platformy i funkcje, które mogą być dla nich dostępne, przygotowując się na przyszłość.

Chrome Web Store: usunięto obraz „duży kafelek promocyjny”

Opublikowano

Usunęliśmy z Chrome Web Store interfejs przesyłania „duży kafelek promocyjny” z karty Informacje o aplikacji w panelu dewelopera. Ta zmiana nie wpływa na wygodę użytkowników, ponieważ obrazy te nie były używane w interfejsie użytkownika. Więcej informacji znajdziesz w tym poście na temat rozszerzeń chromium.

Chrome 106: zezwalanie stronom pod adresami URL typu file:// na dostęp do zasobów dostępnych w internecie

Opublikowano

Nieprzezroczyste źródła, takie jak elementy iframe w piaskownicy i import dynamiczny, też powinny mieć dostęp do zasobów dostępnych w internecie, zgodnie z opisem na crbug.com/1219825#c11.

Chrome 106: naprawiono błąd polegający na tym, że w niektórych asynchronicznych funkcjach interfejsu API można było używać nieprawidłowych argumentów końcowych

Opublikowano

Wcześniej wywołanie asynchronicznego interfejsu API na platformie Manifest V3 mogło podawać nieprawidłowy argument końcowy, a Chrome nie zwracał błędów. Dzięki tej poprawce Chrome będzie teraz prawidłowo wyświetlać błędy i zgłaszać brak pasującego podpisu. Zachęcamy deweloperów do sprawdzania rozszerzeń w Canary pod kątem błędów – mogą oni przypadkowo użyć nieprawidłowego podpisu w wywołaniu interfejsu API, które zostanie przerwane w wyniku tej poprawki.

Post na blogu: ulepszona analityka w Chrome Web Store

Opublikowano

W Chrome Web Store dodaliśmy udoskonalony interfejs analizy produktów w panelu dewelopera Chrome Web Store. Nowy panel jest łatwiejszy do zrozumienia i skonsoliduje najbardziej przydatne informacje. Więcej informacji znajdziesz w tym poście na blogu.

Chrome 105: obiecacje dotyczące interfejsu Identity API

Opublikowano

Funkcje Identity API obsługują teraz wywołania oparte na obietnicach. Wiąże się to z drobną zmianą w wyglądzie interfejsu identity.getAuthToken(), gdzie asynchroniczny zwrot ustawiony na wywołanie oparte na obietnicy będzie mieć parametry „token” i „grantedScopes” jako parametry w pojedynczym obiekcie (w przeciwieństwie do wersji wywołania zwrotnego odbierającej je jako osobne argumenty wywołania zwrotnego).

Chrome 104: nowy interfejs API favikon dla platformy Manifest V3

Opublikowano

Rozszerzenia na platformie Manifest V3 mają teraz dostęp do favikon za pomocą nowego wzorca adresu URL: chrome-extension://<id>/_favicon/, gdzie to identyfikator Twojego rozszerzenia. Zastępuje on interfejs API chrome://favicons platformy Manifest V2. Więcej informacji znajdziesz w dokumentacji Favicon API.

Aktualizacja Dokumentów: informacje dla przedsiębiorców (deweloperów lub osób niebędących przedsiębiorcami)

Opublikowano

Dodaliśmy identyfikator dewelopera: przedsiębiorca/niebędący przedsiębiorcą, który informuje deweloperów, że mogą samodzielnie zadeklarować swój status przedsiębiorcy.

Chrome 103: Wasm w platformie Manifest V3 wymaga wasm-unsafe-eval

Opublikowano

Chrome nie zezwala już domyślnie na rozszerzenia script-src: wasm-unsafe-eval. Rozszerzenia, które korzystają z WebAssembly, muszą teraz bezpośrednio dodać tę dyrektywę i wartość do elementu extension_pages w deklaracjach content_security_policy.

Chrome 103: zmiany skrótów do wersji MV3 obowiązują natychmiast

Opublikowano

Gdy zmienisz skrót klawiszowy rozszerzenia Manifest V3 w chrome://extensions/shortcuts, aktualizacje są stosowane natychmiast. Wcześniej, aby zmiana została wprowadzona, trzeba było ponownie załadować rozszerzenie.

Chrome 102: skrypty zawartości dynamicznej w świecie głównym

Opublikowano

Skrypty zarejestrowane dynamicznie mogą teraz określać świat, do którego będą wstawiane zasoby. Więcej informacji znajdziesz w sekcji scripting.registerContentScripts().

Chrome 102: nowe pole manifestu „optional_host_permissions”

Opublikowano

Rozszerzenia platformy Manifest V3 mogą teraz określać klucz optional_host_permissions w pliku manifest.json. Umożliwia to rozszerzeniom platformy Manifest V3 deklarowanie opcjonalnych wzorców dopasowania dla hostów, tak samo jak rozszerzenia platformy Manifest V2 mogą używać klucza optional_permissions.

Chrome 102: właściwość injectImmediately w metodzie scripting.executeScript()

Opublikowano

chrome.scripting.executeScript() akceptuje teraz opcjonalną właściwość injectImmediately w argumencie injection. Jeśli ten parametr jest obecny i ma wartość Prawda, skrypt jak najszybciej wstawia go do elementu docelowego, zamiast czekać na document_idle. Nie gwarantujemy, że skrypt uruchomi się przed wczytaniem strony, ponieważ w trakcie wykonywania wywołania interfejsu API strona wciąż się wczytuje.

Chrome 102: obsługa interfejsu Omnibox API w platformie Manifest V3

Opublikowano

Interfejsu Omnibox API można teraz używać w rozszerzeniach opartych na mechanizmach Service Worker. Wcześniej niektóre metody tego interfejsu API zgłaszały wywoływanie z powodu wewnętrznych zależności od funkcji DOM.

Chrome 102: zasady wasm-unsafe-eval są dozwolone w przypadku CSP platformy Manifest V3

Opublikowano

Rozszerzenia na platformie Manifest V3 mogą teraz zawierać w deklaracjach content_security_policy element wasm-unsafe-eval. Ta zmiana umożliwia używanie WebAssembly przez rozszerzenia platformy Manifest V3.

Chrome 102: nowy interfejs API storage.session

Opublikowano

Rozszerzenia platformy Manifest V3 mogą teraz używać w pamięci masowej storage.session .

Aktualizacja Dokumentów: odkrywanie produktów w Chrome Web Store

Opublikowano

W Discover w Chrome Web Store znajdziesz omówienie tego, jak użytkownicy znajdują produkty w Chrome Web Store i jak nasi redaktorzy wybierają elementy, które mają być polecane.

Chrome 101: ulepszone warunki domeny deklarativeNetRequest

Opublikowano

Zaktualizowaliśmy warunki reguły declarativeNetRequest, aby umożliwić rozszerzeniom lepsze kierowanie na żądania na podstawie domen „żądania” i „inicjatora”. Odpowiednie właściwości warunku to initiatorDomains, excludedInitiatorDomains, requestDomains i excludedRequestDomains. Zapoznaj się też z tym wątkiem chromium-extensions.

Chrome w wersji 100: rozwiązano problem z funkcją scripting.executeScript() na nowo tworzonych kartach

Rozwiązaliśmy wieloletni problem, który powodował, że wywoływanie funkcji scripting.executeScript() na nowo utworzonej karcie lub nowym oknie mogło się nie udać.

Chrome 100: natywny port do przesyłania wiadomości zapewnia działanie mechanizmów Service Worker

Data publikacji:

Połączenie z hostem natywnego przesyłania komunikatów za pomocą chrome.runtime.connectNative() w skrypcie service worker rozszerzenia powinno utrzymywać działanie skryptu service worker, dopóki port jest otwarty.

Chrome w wersji 100: omnibox.setDefaultsuggestion() obsługuje obietnice i wywołania zwrotne

Data publikacji:

Metoda omnibox.setDefaultSuggestion() zwraca teraz obietnicę lub akceptuje wywołanie zwrotne, aby umożliwić deweloperom ustalenie, kiedy sugestia została prawidłowo ustawiona.

Chrome 100: obsługa i18n.getMessage() w skryptach service worker rozszerzenia

Opublikowano

Interfejs chrome.i18n.getMessage() API jest teraz obsługiwany w kontekstach skryptu service worker rozszerzenia.

Chrome 99: match_origin_as_fallback w wersji Canary

Opublikowano

Skrypty treści mogą teraz określać klucz match_origin_as_fallback, który ma być wstawiony do ramek powiązanych z pasującą ramką, w tym ramek z adresami URL about:, data:, blob: i filesystem:. Szczegółowe informacje znajdziesz w dokumentacji skryptów treści.

Chrome 99: obsługa skryptów service worker rozszerzenia dla plików: schematy w wersji Canary

Opublikowano

Rozszerzenia oparte na mechanizmach Service Worker V2 i Manifest V3 mogą teraz używać interfejsu Fetch API do żądania adresów URL schematu file:. Aby uzyskać dostęp do adresów URL schematu file:, użytkownik nadal musi włączyć dla rozszerzenia na stronie chrome://extensions opcję „Zezwalaj na dostęp do adresów URL plików”.

Chrome 99: obiecująca obsługa interfejsów API do przesyłania wiadomości w wersji Canary

Opublikowano

W przypadku rozszerzeń utworzonych na potrzeby platformy Manifest V3 w tabs.sendMessage, runtime.sendMessage i runtime.sendNativeMessage dodaliśmy obsługę obietnic.

Aktualizacja Dokumentów: dokumentacja sprawdzania w Chrome Web Store

Opublikowano

Dodaliśmy nową stronę referencyjną, która zawiera omówienie procesu sprawdzania w Chrome Web Store i wyjaśnia, w jaki sposób egzekwujemy zasady programu dla deweloperów.

Chrome 98: scripting.executeScript() i scripting.insertCSS() akceptują wiele plików

Opublikowano

Metody executeScript() i insertCSS() interfejsu Scripting API akceptują teraz wiele plików. Wcześniej te metody wymagały tablicy z 1 wpisem pliku.

Aktualizacja Dokumentów: aktualizacje dotyczące rozwiązywania problemów z naruszeniem zasad

Opublikowano

Zaktualizowaliśmy stronę Rozwiązywanie problemów z naruszeniem zasad Chrome Web Store, aby zapewnić deweloperom bardziej szczegółowe wskazówki dotyczące najczęstszych powodów odrzucenia.

Chrome 96: ulepszona obsługa kolejnych 27 interfejsów API

Opublikowano

Ta wersja zawiera znacznie więcej obiecujących aktualizacji niż jakakolwiek poprzednia wersja. Aktualizacje obejmują zarówno ogólne interfejsy API rozszerzeń, jak i interfejsy API rozszerzeń typowe dla ChromeOS. Aby dowiedzieć się więcej, rozwiń sekcje poniżej.

Interfejsy API rozszerzeń

Wiele interfejsów API obsługuje teraz obietnice zawarte w platformie Manifest V3.

Poza tym interfejsy API korzystające z prototypu ChromeSetting również obsługują teraz prognozy. Ta zmiana ma wpływ na następujące interfejsy API.

Interfejsy API ChromeOS

Chrome 96: skrypty zawartości dynamicznej

Opublikowano

Interfejs chrome.scripting API obsługuje teraz rejestrowanie, aktualizowanie, wyrejestrowywanie i pobieranie listy skryptów treści w czasie działania. Wcześniej skrypty treści mogły być zadeklarowane statycznie w pliku manifest.json rozszerzenia lub były wstrzykiwane automatycznie w czasie działania za pomocą metody chrome.scripting.executeScript().

Aktualizacja Dokumentów: oś czasu obsługi platformy Manifest V2

Opublikowano

Harmonogram przejścia z platformy Manifest V2 na wersję 3 został ogłoszony w tym poście na blogu. Opublikowaliśmy też bardziej szczegółową stronę z osią czasu.

Chrome 96: uprawnienie deklarativeNetRequestWithHostAccess

Opublikowano

Nowe uprawnienie declarativeNetRequestWithHostAccess umożliwia rozszerzeniom korzystanie z interfejsu API chrome.declarativeNetRequest w witrynach, w których rozszerzenie ma uprawnienia hosta. Umożliwi to też dotychczasowym rozszerzeniom platformy Manifest V2, które korzystają z webRequest i webRequestBlocking oraz uprawnień hosta w danej witrynie, aby przejść do interfejsu chrome.declarativeNetRequest API bez konieczności zatwierdzania nowych uprawnień przez użytkownika.

Chrome 95: wstawianie skryptów bezpośrednio na stronach

Opublikowano

Metoda executeScript() interfejsu API chrome.scripting może teraz wstrzykiwać skrypty bezpośrednio w głównym świecie strony. Wcześniej rozszerzenia można było wstawiać bezpośrednio do izolowanego świata. Więcej informacji na temat odizolowanych światów znajdziesz w dokumentacji skryptów treści.

Chrome 95: obiecująca obsługa interfejsu Storage API

Opublikowano

Metody w komponencie Manifest V3 interfejsu API chrome.storage zwracają teraz obietnice.

Aktualizacja zasad: wymuszanie weryfikacji dwuetapowej

Opublikowano

Post na blogu o aktualizacji zasad opublikowany 29 czerwca 2021 r. zaktualizowaliśmy, aby poprawić harmonogram wdrażania weryfikacji dwuetapowej.

Chrome 94: zmiany w statycznym zestawie reguł deklaratywnego żądania netto

Opublikowano

chrome.declarativeNetRequest umożliwia teraz określanie maksymalnie 50 statycznych zestawów reguł (MAX_NUMBER_OF_STATIC_RULESETS) i włączanie maksymalnie 10 zestawów reguł (MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) naraz.

Chrome 93: obsługa izolacji z innych domen

Opublikowano

Zarówno rozszerzenia Manifest V2, jak i Manifest V3 mogą teraz korzystać z izolacji z innych domen. Ta funkcja określa, które zasoby z innych domen mogą wczytywać strony rozszerzenia, i umożliwia korzystanie z niskopoziomowych funkcji platformy internetowej, takich jak SharedArrayBuffer. Ta funkcja będzie wymagana od wersji Chrome 95.

Aktualizacja zasad: aktualizacja zasad programu dla deweloperów

Opublikowano

Zasady programu dla deweloperów Chrome Web Store zostały zaktualizowane, aby doprecyzować zasady dotyczące wprowadzających w błąd taktyk instalacji, spamu oraz powtarzających się treści. Wprowadzamy też nowe wymaganie związane z weryfikacją dwuetapową podczas publikowania aplikacji w Chrome Web Store. Więcej informacji znajdziesz w tym poście na blogu.

Post na blogu: działania rozszerzeń w platformie Manifest V3

Opublikowano

Rozszerzenia do Chrome od lat korzystały z interfejsów API chrome.browserAction i chrome.pageActions, ale platforma Manifest V3 zastąpiła je ogólnym interfejsem API chrome.actions. W tym poście przedstawiamy historię tych interfejsów API i przedstawiamy, co się zmieniło w platformie Manifest V3. Przeczytaj posta

Post na blogu: wprowadzamy chrome.scripting

Opublikowano

Interfejs API chrome.scripting to nowy interfejs API Manifest V3, w którym koncentruje się na skryptach. W tym poście przeanalizujemy powody tej zmiany i przyjrzymy się jej nowym funkcjom. Przeczytaj posta

Chrome 92: obsługa modułów service worker

Opublikowano

Chrome obsługuje teraz moduły JavaScript w skryptach service worker. Aby wskazać moduł w pliku manifestu:

"background": {
  "service_worker": "script.js",
  "type": "module"
}

Spowoduje to wczytanie skryptu instancji roboczej jako moduł ES, co pozwoli na użycie w skrypcie instancji słowa kluczowego import, aby zaimportować inne moduły.

Chrome 91: chrome.action.getUserSettings()

Opublikowano

Nowa metoda chrome.action.getUserSettings() pozwala rozszerzeniom ustalić, czy użytkownik przypiął rozszerzenie do głównego paska narzędzi.

Chrome 90: chrome.scripting.removeCSS()

Opublikowano

Nowa metoda chrome.scripting.removeCSS() umożliwia rozszerzeniom usuwanie kodu CSS, który został wcześniej wstawiony przez chrome.scripting.insertCSS(). Zastępuje parametr chrome.tabs.removeCSS().

Chrome 90: zwracanie obietnic z scripting.executeScript()

Data publikacji:

Usługa chrome.scripting.executeScript() obsługuje teraz obietnice zwracania. Jeśli wynikowa wartość wykonania skryptu jest obietnica, Chrome poczeka na ustabilizowanie się obietnicy i zwrócenie jej wartości.

Chrome 90: wyniki polecenia chrome.scripting.executeScript() zawierają identyfikator ramki

Opublikowano

Wyniki zwracane przez chrome.scripting.executeScript() zawierają teraz element frameId. Właściwość frameId wskazuje klatkę, z której pochodzi wynik, dzięki czemu rozszerzenia mogą łatwo kojarzyć wyniki z poszczególnymi klatkami podczas wstrzykiwania ich w wielu klatkach.

Chrome 89: nowy interfejs API do zarządzania grupami kart

Opublikowano

Nowy interfejs API chrome.tabGroups i nowe możliwości w chrome.tabs umożliwiają rozszerzeniom odczytywanie grup kart i wykonywanie na nich operacji. Wymaga platformy Manifest V3.

Chrome 89: dostosowywanie uprawnień do zasobów dostępnych w internecie

Opublikowano

Definicje zasobów dostępnych w internecie w pliku manifestu w wersji 3 zostały zmienione, aby umożliwić rozszerzeniom ograniczanie dostępu do zasobów na podstawie źródła żądania lub identyfikatora rozszerzenia.

Post na blogu: konwerter pliku manifestu rozszerzenia

Opublikowano

Zespół ds. rozszerzeń do Chrome udostępnił narzędzie typu open source „Extension Manifest Converter” w języku Python, które automatyzuje niektóre mechaniczne aspekty konwertowania rozszerzeń na platformę Manifest V3. Przeczytaj posta na blogu z ogłoszeniem i pobierz go z GitHuba.

Chrome 88: ogólna dostępność platformy Manifest V3

Opublikowano

Manifest V3 to duża aktualizacja platformy rozszerzeń. Podsumowanie nowych i zmienionych funkcji znajdziesz w jej opisie. Na razie rozszerzenia mogą nadal używać platformy Manifest V2, ale w najbliższej przyszłości zostanie ona wycofana. Zdecydowanie zalecamy korzystanie z platformy Manifest V3 w przypadku wszystkich nowych rozszerzeń i jak najszybsze rozpoczęcie migracji istniejących rozszerzeń do platformy Manifest V3.