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 58, która od 16 marca jest w wersji beta. Ta lista może ulec zmianie w każdej chwili.
Mysz na Androidzie przestaje wywoływać zdarzenia TouchEvents
Do Chrome 57 zdarzenia myszy na niskim poziomie w Chrome na Androida były obsługiwane głównie przez ścieżkę zdarzeń przeznaczoną do interakcji dotykowych. Na przykład przeciąganie myszy podczas naciśnięcia przycisku myszy generuje zdarzenie MotionEvents
, które jest wysyłane przez View.onTouchEvent
.
Ponieważ jednak zdarzenia dotyku nie obsługują najechania kursorem, ruchy kursora podczas najeżdżania na element śledzą osobną ścieżkę. Ta konstrukcja miała wiele efektów ubocznych, m.in. wywoływanie TouchEvents
przez interakcje z myszą, wyświetlanie wszystkich przycisków myszy jako lewego oraz tłumienie MouseEvents
przez TouchEvents
.
Począwszy od wersji 58 Chrome mysz na Androidzie M lub nowszym:
- Nie wywołuje już funkcji
TouchEvents
. - Wywoływanie spójnej sekwencji
MouseEvents
za pomocą odpowiednich przycisków i innych właściwości.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Usuwanie z atrybutu usemap dopasowania bez rozróżniania wielkości liter
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. Stare zachowanie zostało wycofane w Chrome 57 i nie jest już dostępne.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Usuwanie inicjowanych przez treści przejść do adresów URL danych w górnym okienku
Ponieważ użytkownicy nietechniczni nie są z nimi zaznajmieni, coraz częściej obserwujemy, że schemat data:
jest wykorzystywany w atakach spoofingowych i phishingowych. Aby temu zapobiec, blokujemy wczytywanie stron z adresami URL data:
w ramce górnej. Dotyczy to tagów <a>
, window.open
, window.location
i podobnych mechanizmów. Schemat data:
nadal będzie działać w przypadku zasobów wczytywanych poniżej przez stronę.
Ta funkcja zostanie usunięta w Chrome 60.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Usuwanie nieużywanych nazw właściwości ścieżki animacji
Właściwości CSS ścieżki animacji umożliwiają autorom animowanie dowolnego obiektu graficznego wzdłuż ścieżki określonej przez autora. Zgodnie ze specyfikacją w Chrome 45 zaimplementowano kilka właściwości. W połowie 2016 r. zmieniono nazwy tych usług w specyfikacji. Chrome wdrożył nowe nazwy w Chrome 55 i Chrome 56. Wprowadziliśmy też ostrzeżenia o wycofaniu konsoli.
W Chrome 58 stare nazwy właściwości są usuwane. Poniżej znajdziesz listę usług, których to dotyczy, oraz ich nowe nazwy.
Usunięta usługa | Bieżąca nazwa |
---|---|
ścieżka animacji | offset-path |
motion-offset | offset-distance |
motion-rotation | offset-rotate |
ruch | przesunięcie |
Usuwanie szyfrowania na poziomie elementu z kontekstów niezabezpieczonych
Niektóre zastosowania zaszyfrowanych rozszerzeń multimediów (EME) ujawniają implementacje zarządzania prawami cyfrowymi, które nie są oparte na kodzie źródłowym, umożliwiają dostęp do trwałych identyfikatorów unikalnych lub są uruchamiane bez piaskownicy lub z uprzywilejowanym dostępem. Zagrożenia dla bezpieczeństwa zwiększają się w przypadku stron udostępnianych za pomocą niezabezpieczonego protokołu HTTP, ponieważ mogą one być atakowane przez każdego użytkownika na kanale. Dodatkowo, gdy wymagana jest zgoda użytkownika, przechowywanie zgody na niezabezpieczoną witrynę HTTP może zostać wykorzystane przez takiego atakującego.
Obsługa kontekstów niezabezpieczonych została usunięta ze specyfikacji EME w wersji 1 i nie jest obsługiwana w zalecanej specyfikacji ani w planowanej specyfikacji końcowej. Nie będzie też uwzględniona w przyszłej zalecanej specyfikacji ani w planowanej specyfikacji końcowej. Od wersji 44 Chrome (maj 2015 r.) interfejs API wyświetla komunikat o wycofaniu w przypadku niezabezpieczonych źródeł. W Chrome 58 został on usunięty. Ta zmiana jest częścią naszych szerszych działań mających na celu usunięcie zaawansowanych funkcji z niezabezpieczonych źródeł.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Usuń wywołującego starszego typu w przypadku 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. Od wersji 58 Chrome wywołanie powoduje 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
Usuń szyfry ChaCha20-Poly1305 zgodne ze standardem wstecz.
W 2013 r. w Chrome 31 wdrożyliśmy nowe zestawy szyfrów TLS oparte na algorytmach ChaCha20 i Poly1305 prof. Dana Bernsteina. Zostały one później z niewielkimi zmianami sformalizowane przez IETF w standardach RFC 7539 i RFC 7905. Wersja zestandaryzowana została wydana na początku 2016 r. w ramach Chrome 49. Obecnie usuwamy wersje wstępnie standardowe.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Usunięcie obsługi dopasowywania nazwy wspólnej w certyfikatach
RFC 2818 opisuje 2 metody dopasowywania nazwy domeny do certyfikatu: za pomocą dostępnych nazw w rozszerzeniu subjectAlternativeName
lub, w przypadku braku rozszerzenia SAN, z wykorzystaniem commonName
. Użycie commonName
zostało wycofane w specyfikacji RFC 2818 (opublikowanej w 2000 roku), ale nadal jest obsługiwane przez wielu klientów TLS, często nieprawidłowo.
Korzystanie z pol subjectAlternativeName
sprawia, że nie ma wątpliwości, czy certyfikat jest powiązany z adresem IP czy nazwą domeny, oraz czy jest w pełni zdefiniowany pod kątem interakcji z ograniczeniami nazw. Jednak commonName
jest niejednoznaczny, przez co jego obsługa była źródłem błędów zabezpieczeń w Chrome, bibliotekach, których używa, oraz w całym ekosystemie TLS.
Usunięcie commonName
spowoduje niewielkie ryzyko niezgodności. Standard RFC 2818 został wycofany prawie 20 lat temu, a podstawowe wymagania (których muszą przestrzegać wszystkie publicznie zaufane urzędy certyfikacji) wymagają obecności subjectAltName
od 2012 roku. Od wersji Firefoxa 48 Firefox wymaga już subjectAltName
w przypadku nowo wydanych publicznie zaufanych certyfikatów.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Bity TextTrack związane z VTTRegion
Elementy interfejsu regions
, addRegion()
i removeRegion()
zostały usunięte ze specyfikacji WebVTT i usunięte w Chrome 58, aby zachować zgodność z najnowszą specyfikacją. Spodziewamy się, że usunięcie tych elementów nie będzie miało większego wpływu, ponieważ funkcja nigdy nie była domyślnie włączona (była dostępna tylko po włączeniu flagi). Osoby, które potrzebują alternatywy, mogą użyć właściwości VTTCue.region
, która jest dodawana w Chrome 58.
Chromestatus Tracker | Chromium Bug
WebAudio: usuń interfejs AudioSourceNode
Interfejs AudioSourceNode
nie jest częścią specyfikacji Web Audio, nie można go tworzyć, nie ma atrybutów, więc nie ma żadnych funkcji dostępnych dla deweloperów. Dlatego został usunięty.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Usuwanie atrybutu globalnego webkitdropzone
Atrybut globalny dropzone
został wprowadzony w specyfikacji HTML5 dotyczącej przeciągania i upuszczania jako deklaratywna metoda określania, czy element HTML może być celem operacji przeciągania i upuszczania, typów treści, które można upuścić na element, oraz operacji przeciągania i upuszczania (kopiowanie/przenoszenie/linkowanie).
Atrybut nie zyskał popularności wśród dostawców przeglądarek. Blink i WebKit implementują tylko wersję z prefiksem atrybutu, webkitdropzone
. Atrybut dropzone
został usunięty ze specyfikacji na początku marca 2017 r., dlatego wersja z prefiksem jest usuwana z Chrome.
Intend to Remove | Chromestatus Tracker | Chromium Bug
wycofanie nieprawidłowego sposobu używania powiadomień;
Powiadomienia są potężną funkcją, ponieważ umożliwiają witrynom wywołanie interfejsu systemu w celu przesłania informacji prywatnych lub sygnału o zmianie tych informacji. Osoby przeprowadzające atak mogą podsłuchiwać lub kraść informacje wysyłane za pomocą powiadomienia przez niezabezpieczone połączenie. Powiadomienia web push wymagają bezpiecznego źródła, więc ta zmiana dopasuje powiadomienia niebędące powiadomieniami push do powiadomień push. Ta zmiana jest częścią naszych szerszych działań mających na celu usunięcie zaawansowanych funkcji z niezabezpieczonych źródeł.
Intend to Remove | Chromestatus Tracker | Chromium Bug
wycofanie obsługi powiadomień z niezabezpieczonych ramek iframe;
Prośby o przyznanie uprawnień z ramek iframe mogą wprowadzać użytkowników w błąd, ponieważ trudno jest odróżnić pochodzenie strony zawierającej od pochodzenia ramki iframe, która wysyła żądanie. Gdy zakres żądań jest niejasny, użytkownicy mają trudności z zadaniem, czy przyznać uprawnienia, czy też nie.
Zablokowanie powiadomień w ramkach iframe pozwoli też dostosować wymagania dotyczące zgody na powiadomienia do wymagań dotyczących powiadomień push, co ułatwi pracę deweloperom.
Deweloperzy, którzy potrzebują tej funkcji, mogą otworzyć nowe okno, aby poprosić o uprawnienia dotyczące powiadomień.
Został usunięty w Chrome 62.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Usuń indexedDB.webkitGetDatabaseNames()
Dodaliśmy tę funkcję, gdy Indexed DB była stosunkowo nową w Chrome, a prefiksowanie było na topie. Interfejs API asynchronicznie zwraca listę nazw istniejących baz danych w źródle, co wydaje się rozsądne.
Niestety ta konstrukcja ma wadę polegającą na tym, że wyniki mogą być nieaktualne w momencie ich zwrócenia, więc można jej używać tylko do rejestrowania, a nie do poważnej logiki aplikacji. Problem na GitHubie zawiera informacje o poprzedniej dyskusji na temat alternatyw, które wymagają innego podejścia. Deweloperzy interesują się tym tematem, ale ze względu na brak postępów w rozwiązaniu tego problemu w różnych przeglądarkach autorzy bibliotek znaleźli sposób na obejście go.
Deweloperzy, którzy potrzebują tej funkcji, muszą opracować własne rozwiązanie. Biblioteki takie jak Dexie.js używają globalnej tabeli, która jest kolejną bazą danych służącą do śledzenia nazw baz danych.
Ta funkcja została usunięta w Chrome 60.