Co się dzieje w rozszerzeniach do Chrome?

Rok 2023 był do tej pory bardzo pracowitym rokiem w świecie rozszerzeń do Chrome. Twoja cenna opinia pozwoliła nam ulepszyć platformę rozszerzeń i naszą dokumentację. Współpracujemy też z innymi dostawcami przeglądarek w ramach grupy społeczności WebExtensions, aby interfejsy API rozszerzeń działały bardziej spójnie w różnych przeglądarkach.

W tym poście opisujemy kilka zmian wprowadzonych przez zespół ds. rozszerzeń Chrome w pierwszej połowie tego roku oraz funkcje, które zostaną udostępnione w tym kwartale. Zaczynajmy!

Nowe interfejsy API i funkcje rozszerzeń

W tej sekcji omówimy ważne nowe interfejsy API, omówimy inne ulepszenia interfejsów API i przedstawimy nadchodzące wersje interfejsów API.

Najciekawsze

Dokumenty poza ekranem

Interfejs Offscreen API został wprowadzony w Chrome 109. Umożliwia ono rozszerzeniom korzystającym z platformy Manifest V3 obsługę przypadków użycia, które wymagają interakcji z DOM lub oknem, co nie jest możliwe w workerze usługi rozszerzenia. W Chrome 114 wprowadzono też 2 dodatkowe przyczyny niewyświetlania: 'WORKERS' w przypadku, gdy dokument musi utworzyć proces roboczy, oraz 'LOCAL_STORAGE' w celu ułatwienia migracji danych z window.localStorage do interfejsu chrome.storage API.

Od wersji 115 Chrome możesz podać wiele powodów podczas tworzenia dokumentu poza ekranem. Dzięki temu możesz wykonywać 2 powiązane zadania w tym samym dokumencie.

Nowy interfejs API panelu bocznego 🎉

Wcześniej jedynym sposobem tworzenia pasków bocznych w rozszerzeniach było wstrzyknięcie nowego elementu z skryptami treści na każdej stronie. W Chrome 114 udostępniliśmy interfejs Side Panel API. Teraz możesz tworzyć dla użytkowników znacznie prostsze paski boczne. Dowiedz się więcej o tym, jak interfejs Side Panel API pozwala tworzyć lepsze wrażenia użytkowników.

rozszerzenie słownika, które wyświetla definicję wybranego słowa.
Rozszerzenie słownika w panelu bocznym. Zapoznaj się z kodem w repozytorium chrome-extensions-samples.

bardziej niezawodne skrypty service worker;

Wszystkie zdarzenia rozszerzenia powodują teraz ponowne uruchomienie licznika czasu bezczynności dla rozszerzenia. W Chrome 110 usunięto maksymalny czas działania 5 minut dla wątków usługi rozszerzenia. Ponadto wiadomości wysyłane do natywnej aplikacji i wiadomości w rozszerzeniu uruchamiają ponownie licznik czasu bezczynności. Więcej informacji na ten temat znajdziesz w artykule Cykl życia rozszerzenia typu service worker.

Więcej informacji o wprowadzaniu interfejsów API

  • Action API: od wersji Chrome 110 możesz dostosowywać tekst plakietki za pomocą funkcji setBadgeTextColor()getBadgeTextColor(). Ponadto isEnabled() pozwala sprawdzić, czy działanie jest włączone na bieżącej karcie.
  • Interfejs Commands API: w wersji Chrome 111 naprawiliśmy błąd, który powodował, że skróty rozszerzeń zadeklarowane w pliku manifestu pod kluczem "commands._execute_action" nie były zachowywane podczas konwersji na MV3.
  • Interfejs API pobierania: domyślny interfejs pobierania w Chrome został przeniesiony z poziomej półki na dole na prawą stronę pola wyszukiwania. Aby wyłączyć to działanie, możesz użyć downloads.setUiOptions(), która zastępuje setShelfEnabled().
  • History API: chrome.history.getVisits()chrome.history.search() zwracają też dane z innych urządzeń, które zostały zsynchronizowane z lokalną bazą danych historii. Może to spowodować zwiększenie liczby wpisów w historii i liczby wizyt. Aby umożliwić filtrowanie według wizyt tylko w miejscowości, w Chrome 115 (której stabilna wersja ma się pojawić jeszcze w tym miesiącu) dodaliśmy parametr isLocal do VisitItem.
  • Interfejs Identity API: okno uwierzytelniania wyświetla się teraz jako wyskakujące okienko, a nie zajmuje całego okna aplikacji. Aby zapewnić większą kontrolę podczas procesu przekierowań JavaScript, dodaliśmy 2 nowe opcje: abortOnLoadForNonInteractivetimeoutMsForNonInteractive.
  • Storage API: w Chrome 112 rozmiar pamięci chrome.session został zwiększony do 10 MB. Następnie rozmiar pamięci chrome.local został zmieniony, aby odpowiadał rozmiarowi w Chrome 114.

Już wkrótce...

W nadchodzących wersjach Chrome pojawi się wiele funkcji ułatwiających migrację rozszerzeń do wersji Manifest V3. Listę nadchodzących zmian związanych z migracją do MV3 znajdziesz na stronie znanych problemów. Dodatkowo planujemy wprowadzić te funkcje:

  • Interfejs API deklaratywnego NetRequest: domyślna wartość właściwości isUrlFilterCaseSensitive zmieni się na false. Zobacz wątek WECG.
  • Interfejs File Handling API pozwoli rozszerzeniom w ChromeOS otwierać pliki o określonych typach MIME i rozszerzeniach. Ta funkcja jest obecnie zablokowana za pomocą flagi.
  • Interfejs Runtime API: udostępniamy interfejs runtime.getContexts(), który zastępuje interfejs extension.getViews(), którego nie zalecamy używać. Dzięki temu rozszerzenia będą mogły określić, czy otwarta jest strona rozszerzenia, np. panel boczny, czy dokument poza ekranem. Zapoznaj się z ofertą WECG.
  • Workery: do interfejsów API Chrome, które wyświetlają prośbę do użytkownika, dodajemy silne mechanizmy utrzymywania połączenia: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow()management.uninstall().
  • Interfejs API panelu bocznego: wprowadzamy interfejs sidepanel.open(), który otwiera panel boczny rozszerzenia w odpowiedzi na działanie użytkownika, np. kliknięcie menu kontekstowego.
  • Interfejs TabCapture API: dodajemy możliwość wywołania getMediaStreamId() z workera usługi rozszerzenia i uzyskania MediaStream z identyfikatora strumienia w dokumencie poza ekranem. Przykłady znajdziesz w artykule Nagrywanie dźwięku i zrzuty ekranu.

Aby dowiedzieć się o tych zmianach, gdy tylko zostaną udostępnione w Chrome Beta, sprawdzaj stronę Nowości w rozszerzeniach.

Uaktualnienia dokumentacji i dodatkowe wskazówki dotyczące pliku manifestu w wersji 3

Pracujemy też nad ulepszaniem procesu nauki deweloperów. Dziękujemy wszystkim, którzy poświęcili czas na zadawanie pytań na chromium-group i zgłaszanie problemów z dokumentacją na developer.chrome.com.

Najciekawsze

  • Nowa sekcja Konwertowanie na Manifest V3 zawiera praktyczne wskazówki dotyczące konwertowania rozszerzeń Manifest V2 na Manifest V3.
  • Przewodnik dla pracowników obsługi klienta zawiera szczegółowe informacje na temat pracowników obsługi klienta. Dotyczy to m.in. sposobu rejestrowania i aktualizowania, cyklu życia, importowania itp.
  • W samouczku Obsługa zdarzeń za pomocą skryptów service worker znajdziesz podstawowe informacje o skryptach service worker. Tworzy ono rozszerzenie omniboksa, które zapewnia szybki dostęp do stron referencyjnych interfejsu API rozszerzenia.

Więcej nowych informacji

Już wkrótce...

  • Jak przenieść kod hostowany zdalnie na platformę Manifest V3.
  • Jak przeprowadzać testy automatyczne rozszerzeń Chrome.
  • Ulepszone wskazówki dotyczące deklaratywnego żądania sieciowego.
  • Ulepszenia opisu skryptu treści.

💡 Czy wiesz, że…

Zanim zakończymy, chcemy podzielić się z Tobą kilkoma przydatnymi narzędziami i statystykami:

  • Chrome zaczęło obsługiwać WebHID. Możesz wypróbować ten interfejs API od wersji Chrome 115 (ale pamiętaj, że jest on nadal w trakcie opracowywania).
  • Puppeteer obsługuje teraz testowanie w trybie bez interfejsu graficznego za pomocą --headless=new . Więcej informacji na ten temat znajdziesz w poście na blogu o uaktualnieniu trybu bez interfejsu graficznego w Chrome.
  • Za pomocą narzędzia do testowania aktualizacji rozszerzeń możesz sprawdzić, jakie ostrzeżenia są wywoływane, gdy zmieniają się uprawnienia w pliku manifestu. Dzięki temu możesz przetestować proces aktualizacji tak, jak użytkownik. Jest to ważne, ponieważ niektóre uprawnienia mogą wyłączyć rozszerzenie, dopóki użytkownik nie przyzna dostępu.

Może umówimy się na rozmowę na ten temat? 🙌

W tym roku zespół ds. rozszerzeń miał okazję spotkać się osobiście z deweloperami rozszerzeń podczas wydarzeń Google I/O Connect. Pracujemy nad tworzeniem nowych miejsc, w których będziesz mógł/mogła nawiązać z nami kontakt, np. grup fokusowych i spotkań.

W tym czasie zadawaj pytania w chromium-groups, weź pod uwagę udział w WECG i zgłaszaj problemy z dokumentacją w repozytorium GitHub developer.chrome.com.

Jeszcze raz dziękujemy za udział w społeczności deweloperów rozszerzeń.