Wycofania i usunięcia w Chrome 58

Jan Kowalski
Joe Medley

W niemal każdej wersji Chrome obserwujemy znaczną liczbę aktualizacji i ulepszeń produktu, jego wydajności, a także możliwości platformy internetowej. W tym artykule opisujemy wycofywanie i usuwanie przeglądarki Chrome 58, która od 16 marca znajduje się w fazie beta. Ta lista może się w każdej chwili zmienić.

Mysz na Androidzie przestaje uruchamiać TouchEvents

Do wersji Chrome 57 niskopoziomowe zdarzenia myszy na Androidzie pojawiały się w Chrome głównie po ścieżce zdarzeń zaprojektowanej z myślą o interakcjach dotykowych. Na przykład ruch myszą wykonany przy naciśnięciu przycisku myszy generuje element MotionEvents, który jest realizowany przez View.onTouchEvent.

Ponieważ jednak zdarzenia dotknięcia nie obsługują najechania kursorem, ruch kursora myszy odbywa się po innej ścieżce. Projekt miał wiele efektów ubocznych, takich jak interakcje myszą: TouchEvents, wszystkie przyciski myszy wyglądały jak lewy przycisk myszy oraz pomijanie MouseEvents przez TouchEvents.

Od wersji Chrome 58 mysz w Androidzie M lub nowszym:

  • Nie uruchamiaj już pliku TouchEvents.
  • Uruchom spójną sekwencję MouseEvents z odpowiednimi przyciskami i innymi właściwościami.

Intencja usunięcia | Narzędzie do śledzenia stanu Chrome | Błąd Chromium

Usuń dopasowanie bez rozróżniania wielkości liter dla atrybutu usemap

Atrybut usemap nie był wcześniej zdefiniowany jako niewielkość liter. Wdrożenie tych rozwiązań było jednak na tyle skomplikowane, że żadna z przeglądarek nie zaimplementowała jej prawidłowo. Z badań wynika, że taki skomplikowany algorytm jest niepotrzebny i nie jest konieczne nawet dopasowywanie wielkości liter w standardzie ASCII.

W związku z tym zaktualizowaliśmy specyfikację, aby zastosować dopasowywanie z uwzględnieniem wielkości liter. Stare zachowanie zostało wycofane w Chrome 57 i jest teraz usunięte.

Intencja usunięcia | Narzędzie do śledzenia stanu Chrome | Błąd Chromium

Usuń inicjowane przez treść nawigowania po górnej ramce prowadzące do adresów URL danych

Ze względu na to, że te przeglądarki są nieznane użytkownikom niewymagającym wiedzy technicznej, coraz częściej obserwujemy, jak schemat data: jest wykorzystywany do podszywania się pod inne osoby i prób wyłudzenia informacji. Aby temu zapobiec, blokujemy wczytywanie adresów URL data: w górnej ramce przez strony internetowe. Dotyczy to tagów <a>, window.open, window.location i podobnych mechanizmów. Schemat data: będzie nadal działać w przypadku zasobów ładowanych poniżej przez stronę.

Ta funkcja zostanie usunięta w Chrome 60.

Intencja usunięcia | Narzędzie do śledzenia stanu Chrome | Błąd Chromium

Usuń wycofane nazwy 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ą wdrożono w Chrome 45 kilka usług. Nazwy tych właściwości zostały zmienione w specyfikacji w połowie 2016 roku. Chrome wdrożył nowe nazwy w Chrome 55 i Chrome 56. Wdrożono też ostrzeżenia o wycofaniu konsoli.

W Chrome 58 stare nazwy usług są usuwane. Poniżej znajdziesz właściwości, których dotyczy problem, i ich nowe nazwy.

Usunięta usługa Bieżąca nazwa
ścieżka animacji ścieżka-przesunięcia
przesunięcie ruchu odległość przesunięcia
obrót ruchu przesunięcie-obrót
ruch przesunięcie

Zamiar usunięcia

Usuwanie EME z niezabezpieczonych kontekstów

Niektóre zastosowania rozszerzeń zaszyfrowanych multimediów (EME) zwiększają możliwości zarządzania prawami cyfrowymi, które nie są rozwiązaniami open source, wymagają dostępu do trwałych unikalnych identyfikatorów lub działają poza piaskownicą bądź z dostępem uprzywilejowanym. W przypadku witryn otwieranych przez niezabezpieczone strony HTTP zagrożenia bezpieczeństwa są większe, ponieważ mogą one zostać atakowane przez wszystkich użytkowników kanału. Poza tym, jeśli wymagana jest zgoda użytkownika, osoba przeprowadzająca atak może wykorzystać tę możliwość w przypadku niezabezpieczonej witryny HTTP.

Obsługa niezabezpieczonych kontekstów została usunięta ze specyfikacji EME w wersji 1 i nie jest obsługiwana w proponowanej rekomendacji ani przewidziana w późniejszej ostatecznej rekomendacji. Nie będzie ona uwzględniana w kolejnej proponowanej rekomendacji ani w kolejnej ostatecznej rekomendacji. Od wersji Chrome 44 (maj 2015 r.) interfejs API wyświetla komunikat o wycofaniu go w niezabezpieczonych źródłach. W Chrome 58 została usunięta. Ta zmiana jest częścią naszych szeroko zakrojonych działań na rzecz usuwania zaawansowanych funkcji z niezabezpieczonych źródeł.

Intencja usunięcia | Narzędzie do śledzenia stanu Chrome | Błąd Chromium

Usuń starszą wersję elementu wywołującego HTMLEmbedElement i HTMLObjectElement

To, że interfejs zawiera starszy element wywołujący, oznacza, że instancję można wywołać jako funkcję. Obecnie tę funkcję obsługują HTMLEmbedElement i HTMLObjectElement. W Chrome 57 ta możliwość została wycofana. Od wersji Chrome 58 wywołania generują wyjątek.

Dzięki tej zmianie wprowadziliśmy najnowsze zmiany w specyfikacji urządzeń Chrome. Starsze zachowanie nie jest obsługiwane w przeglądarkach Edge ani Safari i jest usuwane z Firefoksa.

Intencja usunięcia | Narzędzie do śledzenia stanu Chrome | Błąd Chromium

Usuwanie wstępnie standardowych szyfrów ChaCha20-Poly1305

W 2013 roku w Chrome 31 wdrożyliśmy nowe zestawy szyfrów TLS oparte na algorytmach ChaCha20 i Poly1305 prof. Dana Bernsteina. Później zostały one ustandaryzowane w ramach drobnych poprawek na etapie IETF zgodnie ze standardem RFC 7539 i RFC 7905. Na początku 2016 roku udostępniliśmy wersję ustandaryzowaną z Chrome 49. Usuwamy obecnie wersje wstępne.

Intencja usunięcia | Narzędzie do śledzenia stanu Chrome | Błąd Chromium

Usunięcie obsługi dopasowania wspólnego imienia i nazwiska w certyfikatach

RFC 2818 opisuje 2 metody dopasowywania nazwy domeny do certyfikatu: korzystanie z nazw dostępnych w rozszerzeniu subjectAlternativeName lub – w przypadku braku rozszerzenia SAN – zwracanie się do commonName. Usługa zastępcza commonName została wycofana w dokumencie RFC 2818 (opublikowanym w 2000 roku), ale obsługa wielu klientów TLS jest nadal obsługiwana, często nieprawidłowo.

Użycie pól subjectAlternativeName pozwala jednoznacznie określić, czy certyfikat określa powiązanie z adresem IP czy z nazwą domeny, i jest w pełni zdefiniowane pod względem interakcji z ograniczeniami nazw. Zasada commonName jest jednak niejednoznaczna, dlatego jej obsługa jest źródłem błędów w zabezpieczeniach Chrome, używanych przez nią bibliotek, a także całego ekosystemu TLS.

Usunięcie elementu commonName wiąże się z niewielkim ryzykiem zgodności. Dokument RFC 2818 wycofuje tę funkcję od prawie 2 dekad, a wymagania podstawowe (które muszą przestrzegać wszystkie publicznie zaufane urzędy certyfikacji) wymagają obecności subjectAltName. Firefox wymaga już subjectAltName w przypadku wszystkich nowo wystawionych publicznie zaufanych certyfikatów od czasu Firefox w wersji 48.

Intencja usunięcia | Narzędzie do śledzenia stanu Chrome | Błąd Chromium

Elementy interfejsu regions, addRegion() i removeRegion() zostały usunięte ze specyfikacji WebVTT i zostały usunięte w Chrome 58, aby zapewnić zgodność z najnowszą specyfikacją. Nie spodziewamy się, by to usunięcie miało niewielki wpływ, ponieważ ta funkcja nie była włączona domyślnie (co oznacza, że znajdowała się za flagą). Jeśli potrzebujesz alternatywnej metody, możesz użyć właściwości VTTCue.region, która jest dodawana w Chrome 58.

Narzędzie do śledzenia stanu Chrome | Błąd Chromium

WebAudio: usunięcie interfejsu AudioSourceNode

Interfejs AudioSourceNode nie jest częścią specyfikacji Web Audio, nie jest konstruktywny i nie ma atrybutów, więc w ogóle nie ma funkcji dostępnych dla programistów. W związku z tym jest ona usuwana.

Intencja usunięcia | Narzędzie do śledzenia stanu Chrome | Błąd Chromium

Usuń globalny atrybut webkitdropzone

Globalny atrybut dropzone został wprowadzony w specyfikacji przeciągania i upuszczania w HTML5 jako deklaratywnej metody określania chęci elementu HTML jako miejsca docelowego operacji przeciągania i upuszczania, typów treści, jakie można upuścić na tym elemencie, oraz operacji przeciągania i upuszczania (kopiuj/przenieś/link).

Nie udało się zwiększyć rozpoznawalności atrybutu wśród dostawców przeglądarek. Blink i WebKit implementują tylko przedrostek atrybutu webkitdropzone. Ponieważ na początku marca 2017 r. atrybut dropzone został usunięty ze specyfikacji, wersja z prefiksem zostanie usunięta z Chrome.

Intencja usunięcia | Narzędzie do śledzenia stanu Chrome | Błąd Chromium

Zrezygnuj z niezabezpieczonego korzystania z powiadomień

Powiadomienia są bardzo skuteczną funkcją, ponieważ umożliwiają witrynom wywoływanie interfejsu użytkownika systemu w celu przesłania informacji prywatnych lub sygnału, że te informacje zostały zmienione. Osoby przeprowadzające atak mogą podsłuchiwać lub kraść informacje wysyłane w powiadomieniach przez niezabezpieczone połączenie. Web push wymaga bezpiecznego źródła, więc ta zmiana spowoduje połączenie powiadomień innych niż push z powiadomieniami push. Ta zmiana jest częścią naszych szeroko zakrojonych działań na rzecz usuwania zaawansowanych funkcji z niezabezpieczonych źródeł.

Intencja usunięcia | Narzędzie do śledzenia stanu Chrome | Błąd Chromium

Zrezygnuj z używania powiadomień z niezabezpieczonych elementów iframe

Prośby o przyznanie uprawnień z elementów iframe mogą wprowadzać użytkowników w błąd, ponieważ trudno jest odróżnić źródło strony zawierającej stronę od źródła elementu iframe, który wysyła żądanie. Gdy zakres żądań jest niejasny, użytkownicy mają trudności z rozstrzygnięciem, czy przyznać lub odebrać uprawnienia.

Wyłączenie powiadomień w elementach iframe spowoduje też dostosowanie wymagań dotyczących uprawnień do powiadomień z wymaganiami dotyczącymi powiadomień push, co ułatwi deweloperom pracę.

Deweloperzy, którzy potrzebują tej funkcji, mogą otworzyć nowe okno i poprosić o zgodę na wysyłanie powiadomień.

Funkcja usuwania jest dostępna w Chrome 62.

Intencja usunięcia | Narzędzie do śledzenia stanu Chrome | Błąd Chromium

Usuwanie interfejsu CrawlDB.webkitGetDatabaseNames()

Dodaliśmy tę funkcję, gdy indeksowana baza danych była stosunkowo nowa w Chrome, a wprowadzanie prefiksów było bardzo popularne. Asynchronicznie zwraca listę nazw istniejących baz danych w źródle, co wydawało się wystarczająco rozsądne.

Niestety ten projekt jest uszkodzony, ponieważ wyniki po zwróceniu mogą być nieaktualne, więc tak naprawdę można ich używać tylko do logowania, a nie do poważnych aplikacji. Problem z githubem śledzi lub linki do wcześniejszych dyskusji na temat alternatywnych rozwiązań, które wymagają innego podejścia. Deweloperzy nieprzerwanie interesowali się programami, ale ze względu na brak postępów w różnych przeglądarkach ten problem został już rozwiązany przez autorów bibliotek.

Deweloperzy, którzy potrzebują tej funkcji, muszą opracować własne rozwiązanie. Na przykład biblioteki takie jak Dexie.js używają tabeli globalnej, która jest kolejną bazą danych do śledzenia nazw baz danych.

Ta funkcja jest usuwana w Chrome 60.

Intencje do wycofania | Narzędzie do śledzenia stanu Chrome | Błąd Chromium