Wycofania i usuwania interfejsów API w Chrome 53

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 zmiany w Chrome 52, która od 9 czerwca będzie dostępna w wersji beta. Ta lista może się w każdej chwili zmienić.

Wycofanie szyfrów opartych na DHE

TL;DR: szyfry oparte na DHE zostały usunięte w Chrome 53 na komputerach, ponieważ są niewystarczające do długoterminowego użytkowania. Serwery powinny stosować szyfr ECDHE, jeśli jest on dostępny, lub zwykły szyfr RSA, jeśli nie jest.

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

W zeszłym roku wprowadziliśmy w Chrome minimalny rozmiar grupy TLS Diffiego-Hellmana z 512-1024-bitowego, jednak 1024-bitowy jest niewystarczający do długoterminowego korzystania. Z danych wynika, że około 95% połączeń DHE widocznych w Chrome korzysta z 1024-bitowego kodowania DHE. Dodatkowo wraz ze sposobem negocjowania DHE w protokole TLS utrudnione jest przejście poza wersję 1024-bitową.

Istnieje wersja robocza specyfikacji, która rozwiązuje ten problem, ale jest to nadal wersja robocza, która wymaga zmian zarówno po stronie klienta, jak i na serwerze. Tymczasem narzędzie ECDHE jest już szeroko wdrożone i wdrożone. Serwery należy uaktualnić do wersji ECDHE, jeśli są dostępne. W przeciwnym razie upewnij się, że włączony jest zwykły zestaw szyfrów RSA.

Mechanizmy szyfry oparte na DHE zostały wycofane od wersji Chrome 51. Wycofujemy obsługę wersji na komputery w Chrome 53.

Ostrzeżenie o wycofaniu błędu pliku

TL;DR: usunięcie wycofanego interfejsu FileError powinno nastąpić w Chrome 54. Zastąp odniesienia do err.code wartością err.name i err.message.

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

Obecna wersja standardu File API nie zawiera interfejsu FileError. Jego obsługa została wycofana jakiś czas w 2013 roku. W Chrome 53 to ostrzeżenie o wycofaniu zostanie wydrukowane w konsoli Narzędzi deweloperskich:

Parametr „FileError” został wycofany i zostanie usunięty w wersji 54. Użyj atrybutu „name” lub „message” błędu, a nie „code”.

Ma to różny skutek w zależności od kontekstu.

  • FileReader.error i FileWriter.error będą zawierać DOMException obiekty, a nie FileError.
  • W przypadku asynchronicznych wywołań metody FileSystem parametr ErrorCallback będzie przekazywany FileError.ErrorCode zamiast FileError.
  • W przypadku synchronicznych wywołań typu FileSystem wysyłanych jest FileError.ErrorCode zamiast FileError.

Ta zmiana dotyczy tylko kodu, który polega na porównywaniu kodu wystąpienia błędu (e.code) bezpośrednio z wartościami wyliczeniowymi FileError (FileError.NOT_FOUND_ERR itp.). Kod, który przeprowadza testy ze stałymi zakodowanymi na stałe (np. e.code === 1), może zakończyć się niepowodzeniem, ponieważ użytkownik zgłasza nieprawidłowe błędy.

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

Przewidujemy usunięcie przeglądarki FileError z Chrome 54.

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

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

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

Wartość results jest zaimplementowana tylko w interfejsie webkit i działa w bardzo niespójny sposób. Na przykład Chrome dodaje ikonę lupy do pola do wprowadzania danych, a w przeglądarce Safari na komputery określa, ile poprzednich wyszukiwań pojawia się w wyskakującym okienku wyświetlanym po kliknięciu ikony lupy. Ten model nie jest częścią żadnego standardu, dlatego został wycofany.

Jeśli w polu do wprowadzania danych nadal musisz umieścić ikonę wyszukiwania, musisz dodać do tego elementu styl niestandardowy. Aby to zrobić, dołącz obraz tła i określ lewe dopełnienie 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.