Wycofania i usuwania interfejsów API w Chrome 53

Joe Medley
Joe Medley

W prawie każdej wersji Chrome wprowadzamy znaczną liczbę aktualizacji i ulepszeń dotyczących produktu, jego wydajności oraz możliwości platformy internetowej. Ten artykuł opisuje zmiany w Chrome 52, która od 9 czerwca jest w wersji beta. Ta lista może ulec zmianie w każdej chwili.

Wycofywanie szyfrów opartych na DHE

TL;DR: szyfry oparte na DHE zostały usunięte z Chrome 53 na komputery, ponieważ nie nadają się do długotrwałego stosowania. Serwery powinny używać szyfrowania ECDHE, jeśli jest ono dostępne, lub szyfrowania RSA, jeśli nie.

Intend to Remove | Chromestatus Tracker | Chromium Bug

W zeszłym roku zwiększyliśmy w Chrome minimalny rozmiar grupy TLS Diffie-Hellman z 512-bitów do 1024-bitów. Jednak 1024-bity nie wystarczają na dłuższą metę. Dane wskazują, że około 95% połączeń DHE zarejestrowanych przez Chrome korzysta z 1024-bitowego DHE. To, co w połączeniu ze sposobem negocjowania protokołu DHE w protokole TLS, utrudnia przejście poza wersję 1024-bitową.

Chociaż istnieje specyfikacja, która rozwiązuje ten problem, to nadal jest to wersja robocza i wymaga zmian zarówno po stronie klienta, jak i serwera. Tymczasem szyfrowanie ECDHE jest już powszechnie wdrażane. Serwery powinny przejść na szyfrowanie ECDHE, jeśli jest dostępne. W przeciwnym razie upewnij się, że włączony jest zestaw szyfrów RSA.

Szyfry oparte na DHE zostały wycofane w wersji Chrome 51. W Chrome 53 wycofujemy obsługę na komputerach.

Ostrzeżenie o wycofaniu FileError

TL;DR: w Chrome 54 wycofany zostanie interfejs FileError. Zastąp odniesienia do err.code elementami err.name i err.message.

Intend to Remove | Chromestatus Tracker | Chromium Bug

Obecna wersja standardu File API nie zawiera interfejsu FileError, a jego obsługa została wycofana w 2013 r. W Chrome 53 w konsoli Narzędzi deweloperskich pojawi się to ostrzeżenie o wycofaniu:

Interfejs „FileError” został wycofany i zostanie usunięty w wersji 54. Zamiast atrybutu „code” użyj atrybutu „name” lub „message”.

W różnych kontekstach może to mieć różne skutki.

  • Obiekty FileReader.errorFileWriter.error będą obiektami DOMException, a nie FileError.
  • W przypadku asymetrycznych wywołań FileSystem parametr ErrorCallback będzie zawierać wartość FileError.ErrorCode zamiast FileError.
  • W przypadku synchronicznych wywołań FileSystem zamiast FileError zostanie wywołany błąd FileError.ErrorCode.

Ta zmiana ma wpływ tylko na kod, który porównuje kod wystąpienia błędu (e.code) bezpośrednio z wartościami wyliczenia FileError (FileError.NOT_FOUND_ERR itd.). Kod, który testuje stałe zakodowane na stałe (np. e.code === 1), może spowodować błąd, zgłaszając użytkownikowi nieprawidłowe błędy.

Na szczęście typy błędów FileError, DOMError i DOMException mają takie same właściwości name i message, które dają spójne nazwy przypadków błędów (czyli e.name === "NotFoundError"). Kod powinien korzystać z tych właściwości, które działają w różnych przeglądarkach i nadal działają po usunięciu interfejsu FileError.

Usunięcie FileError jest planowane w Chrome 54.

Usuń atrybut wyników dla <input type=search>

TL;DR: atrybut results jest usuwany, ponieważ nie jest częścią żadnego standardu i jest niespójnie implementowany w różnych przeglądarkach.

Intend to Remove | Chromestatus Tracker | Chromium Bug

Wartość results jest implementowana tylko w webkit i działa bardzo niekonsekwentnie w przypadku przeglądarek, które ją obsługują. Na przykład w Chrome ikona lupy jest dodawana do pola wprowadzania, a w Safari na komputerze określa, ile poprzednich wyszukiwań jest wyświetlanych w oknie, które pojawia się po kliknięciu ikony lupy. Ponieważ nie jest to część żadnego standardu, wycofujemy tę funkcję.

Jeśli nadal chcesz umieścić ikonę wyszukiwania w polu tekstowym, musisz dodać do tego elementu niestandardowy styl. W tym celu dodaj obraz tła i określ dopełnienie z lewej strony w polu do wprowadzania danych.

    input[type=search] {
      background: url(some-great-icon.png) no-repeat scroll 15px 15px;
      padding-left:30px;
    }
 ```   

This attribute has been deprecated since Chrome 51.