Co się dzieje w rozszerzeniach do Chrome?

Jak dotąd rok 2023 był bardzo intensywny pod względem rozszerzeń do Chrome. Wasze cenne opinie pomogły nam ulepszyć platformę rozszerzeń i dokumentację. Nadal współpracujemy też z innymi dostawcami przeglądarek w WebExtensions Community Group, aby interfejsy API rozszerzeń działały bardziej spójnie w różnych przeglądarkach.

W tym poście przedstawimy kilka zmian, nad którymi zespół ds. rozszerzeń do Chrome pracował w pierwszej połowie tego roku, a także informacje o planowanych funkcjach, które zostaną wprowadzone w dalszej części tego kwartału. Zaczynajmy!

Nowe interfejsy API i funkcje rozszerzeń

W tej sekcji chcę przedstawić kilka ważnych funkcji interfejsu API, krótko przejrzeć inne ulepszenia interfejsu API i przedstawić nadchodzące wersje interfejsu API.

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, które wymagają interakcji z DOM lub oknem, których nie można wykonać w skrypcie service worker. W Chrome 114 wprowadziliśmy też 2 dodatkowe przyczyny poza ekranem: 'WORKERS' – przypadki, gdy dokument musi wygenerować instancję roboczą, oraz 'LOCAL_STORAGE', aby ułatwić migrację danych z window.localStorage do interfejsu API chrome.storage.

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

Nowy interfejs API panelu bocznego 🎉

W przeszłości jedynym sposobem tworzenia pasków bocznych w rozszerzeniach było wstrzykiwanie nowego elementu ze skryptami treści na każdej stronie. W Chrome 114 został uruchomiony interfejs Side Panel API. Teraz możesz w znacznie łatwiejszy sposób opracować dodatkowy pasek boczny dla użytkowników. Dowiedz się więcej o tym, jak interfejs Side Panel API umożliwia dbanie o wygodę użytkowników.

Rozszerzenie słownikowe, 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 rozszerzenia ponownie uruchamiają teraz licznik bezczynności instancji roboczej usługi rozszerzenia. W Chrome 110 maksymalny czas trwania wynoszący 5 minut został usunięty w przypadku instancji roboczych usługi rozszerzeń. Poza tym wiadomości wysyłane do aplikacji natywnych i wiadomości w rozszerzeniu uruchamiają ponownie licznik bezczynności. Więcej informacji na ten temat znajdziesz w artykule Cykl życia instancji roboczych usługi rozszerzeń.

Więcej nowych interfejsów API

  • Action API: od Chrome 110 możesz dostosowywać tekst plakietki za pomocą setBadgeTextColor() i getBadgeTextColor(). Narzędzie isEnabled() pozwala też sprawdzić, czy działanie jest włączone na bieżącej karcie.
  • Commands API: w Chrome 111 poprawiliśmy błąd polegający na tym, że skróty do rozszerzeń zadeklarowane w pliku manifestu "commands._execute_action" nie utrzymywały się podczas konwersji do MV3.
  • Interfejs API pobierania: domyślny interfejs pobierania w Chrome został przeniesiony z półki u dołu po prawej stronie omniboksu. Aby wyłączyć to zachowanie, możesz użyć parametru downloads.setUiOptions(), który zastępuje setShelfEnabled().
  • History API: chrome.history.getVisits() i chrome.history.search() zwracają też dane z innych urządzeń, które zostały zsynchronizowane z lokalną bazą danych historii. Może to skutkować większą liczbą wpisów w historii i większą liczbą wizyt. Użytkownik isLocal został dodany do sekcji VisitItem w Chrome 115 (spodziewana wersja stabilna pod koniec tego miesiąca), aby umożliwić filtrowanie tylko według wizyt lokalnych.
  • Identity API: okno uwierzytelniania wyświetla się teraz w formie wyskakującego okienka, a nie zajmuje całego okna aplikacji. Aby zapewnić większą kontrolę nad procesem przekierowań JavaScript, dodaliśmy 2 nowe opcje: abortOnLoadForNonInteractive i timeoutMsForNonInteractive.
  • Storage API: w Chrome 112 rozmiar miejsca na dane chrome.session został zwiększony do 10 MB. Następnie rozmiar miejsca na dane chrome.local został zmieniony na zgodny z Chrome 114.

Już wkrótce...

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

  • DetectativeNetRequest API: domyślna wartość właściwości isUrlFilterCaseSensitive zmieni się na false. Zobacz wątek WECG.
  • File handling API umożliwi rozszerzeniom ChromeOS otwieranie plików o określonych typach MIME i rozszerzeniach. Ta funkcja jest obecnie oznaczona flagą.
  • Środowisko wykonawcze API: aby zastąpić wycofywany interfejs extension.getViews(), wprowadzamy interfejs runtime.getContexts(). Dzięki temu rozszerzenia będą mogły określać, czy otwarta jest strona rozszerzenia, na przykład panel boczny lub dokument poza ekranem. Zobacz pakiet WECG.
  • Skrypty service worker: do interfejsów API Chrome, które wyświetlają prośby o zgodę na wykorzystanie danych, dodajemy silne mechanizmy utrzymywania aktywności: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() i management.uninstall().
  • Interfejs Side Panel API: wprowadzamy sidepanel.open(), który automatycznie otworzy panel boczny rozszerzenia w odpowiedzi na gest użytkownika, np. kliknięcie menu kontekstowego.
  • Interfejs TabCapture API: dodajemy możliwość wywoływania getMediaStreamId() z skryptu usługi rozszerzenia i uzyskiwania MediaStream z identyfikatora strumienia w dokumencie spoza ekranu. Przykłady znajdziesz w artykule Nagrywanie dźwięku i przechwytywanie ekranu.

Zaglądaj na stronę Co nowego w rozszerzeniach, na której znajdziesz nowe informacje, gdy tylko udostępnimy je w Chrome Beta.

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

Włożyliśmy dużo pracy w usprawnienie procesu edukacyjnego dla programistów. Dziękuję wszystkim, którzy znaleźli czas, by zadawać pytania zespołowi chromium-group i zgłaszać problemy z dokumentacją na stronie developer.chrome.com.

W skrócie

  • Nowa sekcja Migracja MV3 zawiera praktyczne sposoby na konwersję rozszerzeń Manifest V2 na Manifest V3.
  • Przewodnik Skrypty service worker rozszerzenia zawiera szczegółowe informacje na temat tematów związanych z tym procesem. Obejmują one m.in. sposób rejestracji i aktualizacji, cykl życia i działanie importowania.
  • Samouczek Obsługa zdarzeń za pomocą mechanizmów Service Worker zawiera podstawowe informacje o instancjach roboczych usługi rozszerzeń. Tworzy rozszerzenie omniboksu, które zapewnia szybki dostęp do stron z informacjami o interfejsie 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 wskazówki dotyczące deklaratywnych żądań netto.
  • Ulepszenia objaśnienia skryptu treści.

💡 Czy wiesz, że...

Na zakończenie chcemy przekazać Ci kilka przydatnych narzędzi i statystyk:

  • Zespół Chrome rozpoczął prace nad obsługą interfejsu WebHID. Z interfejsu API możesz korzystać już w Chrome 115 (ale pamiętaj, że nadal pracujemy nad jego rozwiązaniem).
  • Puppeteer obsługuje teraz testowanie w trybie bez interfejsu graficznego przy użyciu interfejsu --headless=new . Więcej informacji na ten temat znajdziesz w poście na blogu na temat uaktualnienia trybu bez interfejsu graficznego w Chrome.
  • Za pomocą narzędzia do testowania aktualizacji rozszerzeń możesz sprawdzić, jakie ostrzeżenia są wyświetlane po zmianie uprawnień w pliku manifestu. Dzięki temu możesz śledzić proces aktualizacji tak samo jak użytkownik. To ważne, ponieważ niektóre uprawnienia mogą spowodować wyłączenie rozszerzenia, dopóki użytkownik nie przyzna ponownie dostępu.

Łączmy się! 🙌

W tym roku zespół ds. rozszerzeń mógł osobiście spotkać się z deweloperami rozszerzeń podczas wydarzeń Google I/O Connect. Pracujemy nad tworzeniem nowych miejsc do kontaktowania się z Tobą, np. nad zorganizowaniem grup fokusowych i wydarzeniami spotkań.

Tymczasem nadal zadawaj pytania w grupach chromium-groups, rozważ udział w WECG i zgłaszaj wszelkie problemy z dokumentacją w repozytorium GitHub Developers.chrome.com.

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