Wycofywanie i usuwanie w Chrome 99

Przeglądarka Chrome 99 została opublikowana 3 lutego 2022 roku. Przewiduje się, że na początku marca 2022 r. stanie się wersją stabilną.

Usunięcie interfejsu Battery Status API w niezabezpieczonych źródłach

Interfejs Battery Status API nie jest już obsługiwany w przypadku niezabezpieczonych źródeł, takich jak strony HTTP lub elementy iframe HTTPS umieszczone na stronach HTTP. Interfejs Battery Status API umożliwia deweloperom internetowym dostęp m.in. do informacji o poziomie naładowania baterii w systemie oraz o tym, czy jest ona ładowana. To zaawansowana funkcja dostępna od ponad 10 lat, dlatego została pierwotnie zaprojektowana z uwzględnieniem różnych ograniczeń związanych z bezpieczeństwem.

Usuń rodzinę czcionek -webkit-standard

W tej wersji Chrome wycofano obsługę wartości font-family "-webkit-standard". Ta wartość jest tylko aliasem zastrzeżonego słowa kluczowego "-webkit-body" i jest widoczna tylko dlatego, że jest dziedziczona z WebKit. Usunięcie tej opcji zapewnia zgodność ze specyfikacjami CSS i przeglądarkami Firefox.

Usuń listę GamepadList

Metoda navigator.getGamepads() zwraca teraz tablicę obiektów Gamepad zamiast GamepadList. Polecenie GamepadList nie jest już obsługiwane w Chrome. Dzięki temu Chrome jest zgodny ze specyfikacjami oraz z Gecko i Webkit. Ogólne informacje o padach do gier znajdziesz w artykule Gra z dinozaurem w Chrome na padzie do gier.

Zaktualizuj kodeki WebCodecs zgodnie ze specyfikacją

Z powodu ostatnich zmian w specyfikacji WebCodecs usunęliśmy z Chrome 2 elementy.

Metoda EncodedVideoChunkOutputCallback() korzysta ze słownika EncodedVideoChunkMetadata. Wcześniej użytkownik o nazwie temporalLayerId znajdował się w tym miejscu: EncodedVideoChunkMetadata.temporalLayerId. Zgodnie ze specyfikacją znajduje się obecnie EncodedVideoChunkMetadata.SvcOutputMetadata.temporalLayerId.

Specyfikacja wymaga, aby konstrukt VideoFrame() zawierał argument sygnatury czasowej (VideoFrameInit.timestamp) dla typów CanvasImageSource, które nie mają domyślnie sygnatury czasowej (np. HTMLCanvasElement). Jeśli nie uwzględniono sygnatury czasowej, powinna pojawić się wartość TypeError, ale Chrome wcześniej ustawił domyślną wartość czasu na 0. Wydaje się to pomocne, ale problematyczne może być, jeśli wyślesz VideoFrame do urządzenia VideoEncoder, gdzie do kontrolowania szybkości transmisji bitów służą sygnatury czasowe.

Zasady wycofywania

Aby zapewnić prawidłowe działanie platformy, czasami usuwamy z niej interfejsy API, które działają zgodnie z oczekiwaniami. Jest wiele powodów, dla których możemy usunąć interfejs API, na przykład:

  • Zastąpią je nowsze interfejsy API.
  • Są one aktualizowane w sposób odzwierciedlający zmiany w specyfikacjach w celu zapewnienia zgodności i spójności z innymi przeglądarkami.
  • Są to wczesne eksperymenty, które nigdy nie zadziałały w innych przeglądarkach, przez co mogą zwiększyć pracochłonność pomocy programistów.

Niektóre z tych zmian będą miały wpływ na niewielką liczbę witryn. Aby zapobiegać takim sytuacjom z wyprzedzeniem, staramy się powiadamiać o tym deweloperów, aby mogli wprowadzić niezbędne zmiany i utrzymać działanie witryny.

W Chrome obowiązuje obecnie proces wycofywania i usuwania interfejsów API. Ogólnie rzecz biorąc:

  • Ogłoszenie na liście adresowej blink-dev.
  • Gdy na stronie zostanie wykryte użycie, w konsoli Narzędzi deweloperskich w Chrome możesz ustawić ostrzeżenia i podać skalę czasu.
  • Zaczekaj, monitoruj, a potem usuń tę funkcję w miarę spadku wykorzystania.

Listę wszystkich wycofanych funkcji znajdziesz na stronie chromestatus.com za pomocą wycofanego filtra, a usunięte funkcje – usuniętego filtra. Postaramy się też w nich podsumować niektóre zmiany, rozumowanie i ścieżki migracji.