Niedawno ogłosiliśmy zmiany w harmonogramie wycofywania platformy Manifest V2. Jesteśmy mocno przywiązani do wdrożenia platformy Manifest V3 i wiemy, że czeka nas jeszcze wiele pracy.
- Przed ogłoszeniem nowego harmonogramu wycofywania usług zakończyliśmy usuwanie priorytetowych luk w platformach i zamknęliśmy krytyczne błędy, które zostały opisane na tej stronie.
- Daliśmy deweloperom czas na tworzenie, gwarantując co najmniej 6 miesięcy między ogłoszeniem harmonogramu a oczekującymi eksperymentami dotyczącymi wyłączenia obsługi platformy Manifest V2.
Wypełnianie luki w platformie
Przed ogłoszeniem nowego harmonogramu wycofywania platformy Manifest V2 staramy się usunąć te luki:
Informacje o problemach zostały zebrane na podstawie opinii partnerów, raportów o błędach i deweloperów. Będziemy kontynuować nasze prace nad poprawą stabilności i ogólnej wydajności platformy rozszerzeń.
Obecnie nie ma otwartych problemów uznawanych za krytyczną lukę na platformie.
Niedawno rozwiązaliśmy następujące problemy:
- Obsługa obsługi plików w ChromeOS zastępująca wersję
chrome.fileBrowserHandler
[Chrome 120]. - Obsługa skryptów użytkownika: zezwalaj na rejestrowanie skryptów treści za pomocą dowolnego kodu za pomocą nowego interfejsu userScripts API [Chrome 120].
- Dodatkowe silne utrzymywania aktywności mechanizmów Service Worker w przypadku niektórych operacji trwających dłużej niż 5 minut.
- Dodano w Chrome 116 na urządzeniach z systemem
permissions.request()
,desktopCapture.chooseDesktopMedia()
,identity.launchWebAuthFlow()
imanagement.uninstall()
. - Dodano w Chrome 118 na koncie
chrome.debugger
- Dodano w Chrome 116 na urządzeniach z systemem
- Zwiększ liczbę statycznych i włączonych zestawów reguł na potrzeby deklaratywnego żądania netto (DNR). Zwiększono liczbę włączonych statycznych zestawów reguł z 10 do 50, a łączną liczbę takich zestawów reguł z 50 do 100 [Chrome 120].
- Rozszerz funkcję Dokumentów poza ekranem, aby uwzględnić więcej powodów, dla których warto korzystać z dokumentu niewyświetlanego na ekranie. Dodano
GEOLOCATION
w Chrome 116. - Ulepszyliśmy obsługę interfejsu API
chrome.tabCapture
[Chrome 116]:- Zezwalaj na wywoływanie funkcji
getMediaStreamId()
w skrypcie service worker. - Obsługa uzyskiwania
MediaStream
z identyfikatora strumienia w dokumencie poza ekranem.
- Zezwalaj na wywoływanie funkcji
- Wydłużenie czasu trwania mechanizmów Service Worker w przypadku aktywnych połączeń
WebSocket
[Chrome 116].
Najczęstsze pytania na temat platformy Manifest V3
P: Czy planujemy obsługiwać trwałe mechanizmy Service Workers?
O: Jedną z głównych przyczyn przejścia ze skryptów działających w tle na mechanizmy Service Worker jest bardziej wydajne pod względem pamięci model programowania oparty na zdarzeniach, który wynika z efemerycznej natury mechanizmów Service Worker. W związku z tym nie planujemy wspierać trwałych pracowników usługowych. Wychodząc jednak na specyficzne potrzeby programistów rozszerzeń, stale wprowadzamy wiele ulepszeń w mechanizmach Service Worker. W szczególności:
- Wszystkie zdarzenia rozszerzeń i wywołania interfejsu API wydłużają czas trwania skryptu service worker.
- W niektórych przypadkach użycia, takich jak komunikaty natywne, mechanizmy Service Worker rozszerzeń będą aktywne przez ponad 5 minut.
P: Czy istnieje sposób dostępu do DOM w skryptach service worker?
O: Realizujemy strategię platformy internetowej, która polega na nieuwzględnianiu dostępu DOM w swoich instancjach roboczych (w tym skryptu service worker). Aby obsługiwać przypadki użycia, w których mechanizmy Service Worker mają dostęp do modelu DOM w tle, wprowadziliśmy możliwość przekazywania pracy w tle do krótkotrwałych dokumentów nieekranowych, które zapewniają pełny dostęp DOM.
P: Czy w platformie Manifest V3 będzie można obsługiwać kod zdalny?
O: Aby zwiększyć bezpieczeństwo rozszerzeń do Chrome, nadal będziemy zabraniać wykonywania dowolnych zdalnie hostowanych kodów w rozszerzeniach do Chrome. Nie oznacza to jednak, że zabraniamy wszelkiego rodzaju dynamicznego wykonywania kodu. Nadal obsługujemy różne opcje dynamicznego wykonywania kodu w rozszerzeniach do Chrome:
- Obsługa funkcji
eval()
w rozszerzeniach Narzędzi deweloperskich - Obsługa skryptów użytkownika.
- Wykonywanie kodu hostowanego zdalnie w elementach iframe w trybie piaskownicy
- Zdalne hostowanie plików konfiguracji, które można interpretować w czasie działania w pakiecie rozszerzeń. Możliwe jednak, że ścieżki wykonania muszą być wstępnie określone.
P: Rozszerzenie My Manifest V2 korzysta z metody webRequestRequest, która nie jest obsługiwana w platformie Manifest V3. Co mogę zrobić, aby nadal udostępniać te same funkcje w platformie Manifest V3?
O: Jesteśmy przekonani, że większość przypadków użycia blokowania żądań można rozwiązać dzięki nowemu interfejsowi API declarativeNetRequest
. Dodatkową zaletą takiego rozwiązania jest uniknięcie obciążenia związanego z komunikacją międzyprocesową, wykonywanie kodu przy każdym żądaniu i wymaganie aktywnego procesu rozszerzenia w momencie wysyłania żądania. Jednak w złożonych przypadkach użycia w firmach (lub instytucjach edukacyjnych) dynamiczne blokowanie żądań jest nadal obsługiwane.
Czy coś pominęliśmy? Daj nam znać.