W prawie każdej wersji Chrome wprowadzamy znaczną liczbę aktualizacji i ulepszeń dotyczących produktu, jego wydajności oraz możliwości platformy internetowej. W tym artykule opisano funkcje, które zostały wycofane lub usunięte w Chrome 57, która na początku lutego była w wersji beta. Ta lista może ulec zmianie w każdej chwili.
Usuwanie atrybutu BluetoothDevice.uuids
Atrybut BluetoothDevice.uuids
jest usuwany, aby dostosować interfejs Web Bluetooth API do bieżącej specyfikacji. Możesz pobrać wszystkie dozwolone usługi GATT, wywołując funkcję device.getPrimaryServices().
Usuwanie elementu generowania klucza
Od wersji 49 Chrome <keygen>
domyślnie zwraca pusty ciąg znaków, chyba że strona ma przyznane uprawnienia. IE/Edge nie obsługują <keygen>
i nie wskazują publicznych sygnałów, które sugerowałyby obsługę <keygen>
.
Firefox już teraz wymaga od użytkownika wykonania czynności, aby włączyć <keygen>
, ale publicznie popiera usunięcie tej funkcji. Safari jest dostarczany z <keygen>
i nie ma informacji na temat jego dalszego wsparcia. W Chrome 57 ten element został usunięty.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Usunięcie interfejsu API do zarządzania buforem opartym na czasie trwania zasobu z prefiksem
2 metody i moduł obsługi zdarzeń, webkitClearResourceTimings()
,
webkitSetResourceTimingBufferSize()
i onwebkitresourcetimingbufferfull
, są przestarzałe i są specyficzne dla dostawcy. Standardowe wersje tych interfejsów API są obsługiwane od wersji 46 przeglądarki Chrome, a funkcje z prefiksem zostały wycofane w tej samej wersji. Te funkcje zostały pierwotnie zaimplementowane w WebKit, ale Safari ich nie włączyło. W przypadku przeglądarek Firefox, IE 10 i nowszych oraz Edge dostępna jest tylko wersja interfejsu API bez prefiksu. Dlatego wersje webkit są usuwane.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Usuń ServiceWorkerMessageEvent na rzecz MessageEvent
Specyfikacja HTML rozszerzyła atrybut MessageEvent
, aby umożliwić użycie wartości ServiceWorker
jako typu atrybutu source
. Funkcja client.postMessage()
i tworzenie zdarzeń wiadomości niestandardowych zostały zmienione tak, aby zamiast ServiceWorkerMessageEvent
używać MessageEvent
.
Element ServiceWorkerMessageEvent
został usunięty.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Usuń aliasy globalne IndexedDB z preiksem webkit
Punkt wejścia IndexedDB
i konstruktory globalne zostały udostępnione z prefiksami webkit
w okolicach Chrome 11. Wersje bez prefiksów zostały dodane w Chrome 24, a wersje z prefiksami zostały wycofane w Chrome 38. Dotyczy to tych interfejsów:
webkitIndexedDB
(główny punkt wejścia)webkitIDBKeyRange
(nie można wywołać konstruktora globalnego, ale zawiera on przydatne metody statyczne)webkitIDBCursor
webkitIDBDatabase
webkitIDBFactory
webkitIDBIndex
webkitIDBObjectStore
webkitIDBRequest
webkitIDBTransaction
(nie można wywoływać konstruktorów globalnych)
Intend to Remove | Chromestatus Tracker | Chromium Bug
WebAudio: usunięcie prefiksem AudioContext i OfflineAudioContext
Chrome obsługuje WebAudio
od połowy 2011 r., w tym AudioContext
.
W następnym roku dodano OfflineAudioContext
. Ze względu na to, jak długo standardowe interfejsy były obsługiwane, oraz na długoterminowy cel Google, którym jest usunięcie funkcji z prefiksem, wersje tych interfejsów z prefiksem zostały wycofane pod koniec 2014 r. i są teraz usuwane.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Wycofanie i usunięcie metody webkitCancelRequestAnimationFrame
Metoda webkitCancelRequestAnimationFrame()
to przestarzały interfejs API specyficzny dla danego dostawcy, a standardowa metoda cancelAnimationFrame()
jest od dawna obsługiwana w Chromium. Dlatego usuwamy wersję webkit.
Intend to Remove | Chromestatus Tracker | Chromium Bug
wycofanie z użycia dopasowania bez rozróżniania wielkości liter w przypadku atrybutu usemap;
Atrybut usemap
był wcześniej zdefiniowany jako nierozróżniający wielkości liter. Niestety wdrożenie tej funkcji było na tyle skomplikowane, że żadna przeglądarka nie wdrożyła jej prawidłowo. Badania wykazały, że tak skomplikowany algorytm nie jest potrzebny, a nawet dopasowanie ASCII z ignorowaniem wielkości liter nie jest konieczne.
W związku z tym specyfikacja została zaktualizowana, aby uwzględnić dopasowywanie z rozróżnianiem wielkości liter. W Chrome 57 wycofujemy starszą metodę działania, a w Chrome 58 zostanie ona całkowicie usunięta.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Wycofanie interfejsu FileReaderSync w skryptach service worker
W specyfikacji usługi Service Worker zawsze znajdowała się (nienormatywna) uwaga, że „w usługach Service Worker nie można inicjować żadnych synchronicznych żądań”, aby uniknąć blokowania usługi. Zablokowanie skryptu service worker uniemożliwiłoby wszystkie żądania sieciowe z kontrolowanych stron. Niestety interfejs API FileReaderSync
jest od dawna dostępny w usługach workerów.
Obecnie tylko Firefox i Chrome udostępniają FileReaderSync
w usługach workerów.
W dyskusji na temat specyfikacji Firefox zgadza się, że należy to naprawić. Usunięcie jest planowane w Chrome 59.
Intend to Remove | Chromestatus Tracker | Chromium Bug
wycofanie starszego wywołującego dla elementów HTMLEmbedElement i HTMLObjectElement,
Jeśli interfejs ma wywołanie starszego typu, oznacza to, że instancję można wywołać jako funkcję. Obecnie tę funkcję obsługują HTMLEmbedElement
i HTMLObjectElement
. W Chrome 57 ta funkcja została wycofana. Po usunięciu, które powinno nastąpić w Chrome 58, wywołanie spowoduje wyjątek.
Ta zmiana wprowadza do Chrome zgodność z niedawnymi specyfikacjami. Starsze zachowanie nie jest obsługiwane w Edge ani Safari i jest usuwane z Firefoxa.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Wycofanie wartości domyślnej „negotiate” dla opcji RTCRtcpMuxPolicy
Chrome używa wartości rtcpMuxPolicy
, aby określić preferowane zasady dotyczące używania multipleksowania RTP/RTCP. W Chrome 57 zmieniliśmy domyślną wartość parametru rtcpMuxPolicy
na „wymagaj”, a parametr „negocjuj” został wycofany z tych powodów:
- Niezmultipleksowany RTCP wykorzystuje dodatkowe zasoby sieciowe.
- Usunięcie opcji „negotiate” uprości interfejs API, ponieważ usługa „RtpSender”/„RtpReceiver” będzie mieć tylko jeden transport.
W Chrome 57 opcja „negotiate” (negocjuj) została wycofana. Uważamy, że ta zmiana nie spowoduje przerwania działania, ponieważ użytkownik otrzyma wiadomość o wycofaniu i nadal będzie można tworzyć RTCPeerConnection
. Usunięcie nastąpi w Chrome 63.
Zamierzamy wycofać | Błąd w Chromium
wycofanie obsługi umieszczanych danych logowania w żądaniach zasobów podrzędnych,
Wstawianie danych logowania w postaci kodu w żądaniach dotyczących zasobów podrzędnych jest problematyczne z perspektywy bezpieczeństwa, ponieważ w przeszłości umożliwiało hakerom stosowanie metody „siłowa” do odgadywania danych logowania. Te zagrożenia są jeszcze większe w przypadku żądań zasobów podrzędnych z danymi logowania, które docierają do wewnętrznych zakresów adresów IP (np. routerów). Biorąc pod uwagę niską częstotliwość korzystania z tej funkcji, zablokowanie tej (małej) luki w zabezpieczeniach wydaje się całkiem rozsądnym rozwiązaniem.
Deweloperzy mogą umieszczać zasoby, które nie wymagają uwierzytelniania podstawowego lub uwierzytelniania metodą digest, a zamiast tego korzystają z plików cookie i innych mechanizmów zarządzania sesją.