Co się dzieje w rozszerzeniach do Chrome?

Amy Steam
Amy Steam

Jak dotąd rok 2023 był bardzo pracowity w świecie rozszerzeń do Chrome. Twoja opinia pozwoliła nam ulepszyć platformę rozszerzeń i naszą dokumentację. Współpracujemy też z innymi dostawcami przeglądarek w grupie społeczności WebExtensions, aby interfejsy API rozszerzeń działały bardziej spójnie w różnych przeglądarkach.

W tym poście omówimy kilka zmian, nad którymi pracował zespół ds. rozszerzeń do Chrome w pierwszej połowie tego roku, oraz informacje o nadchodzących funkcjach, które wprowadzimy w dalszej części tego kwartału. Zaczynajmy!

Nowe interfejsy API i funkcje rozszerzeń

W tej sekcji chcę wymienić kilka najważniejszych interfejsów API, pokrótce omówić ich inne ulepszenia oraz informacje o zbliżających się wersjach.

W skrócie

Dokumenty poza ekranem

Interfejs Offscreen API został wprowadzony w Chrome 109. Umożliwia rozszerzeniom platformy Manifest V3 obsługę przypadków użycia wymagających interakcji z DOM lub oknem, których nie można wykonać w skrypcie usługi rozszerzeń. Poza tym w Chrome 114 wprowadziliśmy 2 dodatkowe przyczyny: 'WORKERS', gdy w dokumencie należy utworzyć instancję roboczą i 'LOCAL_STORAGE', która ułatwia migrację danych z window.localStorage do chrome.storage API.

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

Nowy interfejs API panelu bocznego 🎉

W przeszłości jedynym sposobem tworzenia pasków bocznych w rozszerzeniach było wstrzyknięcie nowego elementu ze skryptami treści na każdej stronie. W Chrome 114 uruchomiono interfejs Side Panel API. Teraz możesz w znacznie prostszy sposób utworzyć dla użytkowników pasek boczny. Dowiedz się więcej o tym, jak interfejs API panelu bocznego zapewnia użytkownikom doskonałe wrażenia.

Rozszerzenie słownika, które pokazuje definicję wybranego słowa
Rozszerzenie słownika w panelu bocznym. Zobacz kod w repozytorium chrome-extensions-samples.

Bardziej niezawodne mechanizmy Service Worker

Wszystkie zdarzenia związane z rozszerzeniami uruchamiają teraz ponownie licznik bezczynności skryptu service worker rozszerzenia. W Chrome 110 limit 5-minutowego okresu działania mechanizmów Service Worker rozszerzeń został usunięty. Poza tym wiadomości wysyłane do aplikacji natywnych i wiadomości w rozszerzeniu ponownie uruchamiają licznik czasu bezczynności. Więcej informacji znajdziesz w artykule Cykl życia skryptu service worker rozszerzenia.

Więcej nowych interfejsów API

  • Action API: od Chrome 110 możesz dostosować tekst plakietki za pomocą funkcji setBadgeTextColor() i getBadgeTextColor(). isEnabled() pozwala też sprawdzić, czy działanie jest włączone na bieżącej karcie.
  • Commands API: błąd polegający na tym, że skróty rozszerzeń (zadeklarowane w pliku manifestu w "commands._execute_action") nie były zachowywane podczas konwersji na MV3, został naprawiony w Chrome 111.
  • Interfejs Downloads API: domyślny interfejs pobierania w Chrome został przeniesiony z półki znajdującej się u dołu po prawej stronie omniboksu. Aby wyłączyć to działanie, możesz użyć elementu downloads.setUiOptions(), który zastępuje ciąg setShelfEnabled().
  • Interfejs History API: chrome.history.getVisits() i chrome.history.search() zwracają też dane z innych urządzeń, które zostały zsynchronizowane z bazą danych historii lokalnej. Może to skutkować większą liczbą wpisów historii i większą liczbą wizyt. Aplikacja isLocal została dodana do aplikacji VisitItem w Chrome 115 (prawdopodobnie nastąpi to jeszcze w tym miesiącu), aby umożliwić filtrowanie tylko według wizyt lokalnych.
  • Identity API: okno uwierzytelniania wyświetla się teraz w wyskakującym okienku, a nie w całym oknie aplikacji. Aby zapewnić większą kontrolę podczas procesu przekierowań JavaScript, dodaliśmy 2 nowe opcje: abortOnLoadForNonInteractive i timeoutMsForNonInteractive.
  • Storage API: w Chrome 112 rozmiar miejsca na dane w chrome.session został zwiększony do 10 MB. Następnie rozmiar miejsca na dane w usłudze chrome.local został zmieniony, aby był zgodny z rozmiarem w Chrome 114.

Już wkrótce...

W nadchodzących wersjach Chrome wprowadzimy wiele funkcji, które ułatwią rozszerzeniom migrację do platformy Manifest V3. Listę nadchodzących zmian związanych z migracją MV3 znajdziesz na stronie ze znanymi problemami. Dodatkowo planujemy dodać te funkcje:

  • ClaimativeNetRequest API: wartość domyślna właściwości isUrlFilterCaseSensitive zmieni się na false. Zobacz wątek WECG.
  • Interfejs File handling API zezwoli rozszerzeniom do ChromeOS na otwieranie plików o określonych typach MIME i rozszerzeniach. Ta funkcja jest obecnie za flagą.
  • Runtime API: wdrażamy interfejs runtime.getContexts(), który zastąpi wycofany extension.getViews(). Dzięki temu rozszerzenia będą mogły ustalić, czy strona rozszerzenia, taka jak panel boczny lub dokument poza ekranem, jest otwarta. Zobacz propozycję WECG.
  • Skrypty service worker: do interfejsów API Chrome, które wyświetlają komunikaty użytkownika, permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() i management.uninstall().
  • Interfejs API panelu bocznego: wprowadzamy sidepanel.open(), który automatycznie otwiera panel boczny rozszerzenia w odpowiedzi na gest użytkownika, taki jak kliknięcie menu kontekstowego.
  • TabCapture API: dodaliśmy możliwość wywoływania getMediaStreamId() w skrypcie service worker rozszerzeń i uzyskiwania MediaStream z identyfikatora strumienia w dokumencie poza ekranem. Przykłady znajdziesz w artykule Nagrywanie dźwięku i przechwytywanie ekranu.

Na stronie Co nowego w rozszerzeniach znajdziesz te ogłoszenia, gdy tylko udostępnimy je w Chrome Beta.

Aktualizacje dokumentacji i więcej wskazówek dotyczących platformy Manifest V3

Ciężko pracowaliśmy też nad ulepszeniem środowiska edukacyjnego dewelopera. Bardzo dziękujemy wszystkim, którzy poświęcili czas, aby zadać pytania na stronie chromium-group i zgłosić problemy z dokumentacją na stronie developer.chrome.com.

W skrócie

  • Nowa sekcja Migracja MV3 zawiera praktyczne sposoby konwertowania rozszerzeń z platformy Manifest V2 na Manifest V3.
  • Przewodnik po skryptach service worker rozszerzeń zawiera szczegółowe informacje o tematach związanych z skryptami service worker rozszerzeń. Obejmują one sposób ich rejestrowania i aktualizowania, wygląda cykl życia oraz działanie importu.
  • Samouczek obsługi zdarzeń za pomocą mechanizmów Service Worker zawiera podstawowe informacje o mechanizmach Service Worker rozszerzeń. Tworzy ono rozszerzenie omniboksa, które zapewnia szybki dostęp do stron referencyjnych interfejsu API rozszerzeń.

Więcej nowych informacji

Już wkrótce...

  • Jak przenieść kod hostowany zdalnie do platformy Manifest V3.
  • Jak przeprowadzać automatyczne testy rozszerzeń do Chrome.
  • Ulepszone wytyczne dotyczące deklaratywnego żądania netto.
  • Ulepszenia objaśnienia skryptu treści.

💡 Czy wiesz, że...

Zanim skończymy, chcemy przedstawić Ci kilka przydatnych narzędzi i informacji:

  • Rozpoczęliśmy pracę nad obsługą WebHID. Z tego interfejsu możesz korzystać w wersji Chrome 115 (ale pamiętaj, że prace nad nim wciąż trwają).
  • Aplikacja Puppeteer obsługuje teraz testy w trybie bez interfejsu graficznego za pomocą metody --headless=new . Więcej informacji na ten temat znajdziesz w poście na blogu na temat aktualizacji trybu bez interfejsu graficznego w Chrome.
  • Za pomocą narzędzia do testowania aktualizacji rozszerzeń możesz sprawdzić, jakie ostrzeżenia są wywoływane, gdy w pliku manifestu zmieniają się uprawnienia. Dzięki temu proces aktualizacji możesz przebiegać tak samo jak użytkownik. To ważne, ponieważ niektóre uprawnienia mogą wyłączyć rozszerzenie, dopóki użytkownik nie przyzna dostępu ponownie.

Łączymy się! 🙌

W tym roku zespół ds. rozszerzeń cieszył się osobiście, że podczas wydarzeń Google I/O Connect spotkał się z deweloperami rozszerzeń. Pracujemy nad utworzeniem nowych miejsc, które będą mogły nawiązywać z Tobą kontakt, na przykład organizowane będą grupy fokusowe i spotkania.

Tymczasem nadal możesz zadawać pytania na chromium-groups, wziąć udział w programie WECG i zgłaszać ewentualne problemy z dokumentacją w repozytoriumdeveloper.chrome.com na GitHubie.

Jeszcze raz dziękujemy, że jesteś częścią społeczności deweloperów rozszerzeń.