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.
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
() igetBadgeTextColor()
. NarzędzieisEnabled()
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ępujesetShelfEnabled()
. - History API:
chrome.history.getVisits()
ichrome.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żytkownikisLocal
został dodany do sekcjiVisitItem
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
itimeoutMsForNonInteractive
. - Storage API: w Chrome 112 rozmiar miejsca na dane
chrome.session
został zwiększony do 10 MB. Następnie rozmiar miejsca na danechrome.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 interfejsruntime.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()
imanagement.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
- W artykule Korzystanie z Google Analytics 4 pokazujemy, jak śledzić wykorzystanie wyskakującego okienka rozszerzenia i zdarzeń skryptu service worker.
- Używanie geolokalizacji pokazuje, jak uzyskać położenie geograficzne rozszerzenia za pomocą interfejsu Offscreen API.
- Nagrywanie dźwięku i przechwytywanie ekranu uczy, jak przechwytywać dźwięk i obraz z kart, okien lub ekranów za pomocą interfejsów API
chrome.tabCapture
inavigator.mediaDevices.getDisplayMedia()
. - Do przewodnika Rozszerzenia debugowania dodaliśmy nowe wskazówki na temat debugowania.
- Zaktualizowaliśmy wytyczne dotyczące ostrzeżeń o uprawnieniach, by ułatwić zrozumienie, jak działają ostrzeżenia o uprawnieniach i jak poprawić wrażenia użytkowników. Istnieją też praktyczne sposoby na sprawdzenie, jakie ostrzeżenia będą wyświetlane użytkownikowi.
- Nasz zespół i współtwórcy dodali też nowe przykłady rozszerzeń Manifest V3: WASM w rozszerzeniach, wersje demonstracyjne interfejsu Scripting API, książki kucharskie interfejsu Side Panel API i przykłady interfejsu DetectativeNetRequest API. Inne przykłady rozszerzeń znajdziesz w naszym repozytorium przykładowych rozszerzeń na GitHubie.
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ń.