Wycofania i usuwania interfejsów API w Chrome 52

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ć.

Wycofaj zdarzenie oraz atrybut i dodany atrybut

TL;DR: zdarzenia i atrybut ended oraz moduł obsługi zdarzeń onended zostały wycofane, ponieważ zostały usunięte ze specyfikacji przechwytywania multimediów i strumieni.

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

Ani zdarzenie ended, ani moduł obsługi zdarzeń onended nie są częścią specyfikacji WebRTC od około 3 lat. Deweloperzy, którzy chcą oglądać wydarzenia, powinni używać parametru MediaStreamTracks zamiast MediaStreams.

Usunięcie zostanie przewidziane w Chrome 53.

Blokuj wyskakujące okienka z elementów iframe z innych domen podczas zdarzeń dotyku z wyjątkiem gestu kliknięcia

TL;DR: Chrome będzie blokować wyskakujące okienka i inne działania poufne w przypadku zdarzeń dotknięcia, które nie odpowiadają kliknięciu wewnątrz elementów iframe z innych domen.

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

Ze względu na swój charakter zdarzenia dotyku mogą być niejednoznaczne w porównaniu z odpowiadającymi im zdarzeniami myszy. Na przykład jeśli użytkownik przesuwa palcem po ekranie, czy mówi, że korzysta z przesuwania przełącznika czy przewijania widoku? Niektóre treści firm zewnętrznych w elementach iframe skorzystały z tej niepewności, by celowo wyłączyć przewijanie strony, na której się one znajdują.

W tym celu korzystanie z wyskakujących okienek i innych wrażliwych działań będzie zabronione w przypadku zdarzeń dotknięcia pochodzących z elementów iframe z innych domen. Zdarzenie dotknięcia będzie nadal działać tak jak wcześniej.

Zrezygnuj z przeciążenia postMessage()

TL;DR: zbędna i rzadko używana wersja interfejsu postMessage() jest wycofywana, w szczególności postMessage(message, transferables, targetOrigin).

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

Metoda postMessage() zapewnia bezpieczną komunikację między skryptami stron w różnych źródłach. WebKit/Blink obsługuje trzy wersje:

  • postMessage(message, targetOrigin)
  • postMessage(message, targetOrigin, transferables)
  • postMessage(message, transferables, targetOrigin)

Ostatnią pozycję na tej liście było przypadek z historii rozwoju i implementacji specyfikacji. Ponieważ rzadko jest używana, zostanie wycofana, a później usunięta. Dotyczy to zarówno window.postMessage(), jak i worker.postMessage().

Usunięcie powinno zostać przeprowadzone w Chrome 54.

Wyłącz obsługę opcji X-Frame-Options w tagi

TL;DR: aby zapewnić zgodność ze specyfikacją i zwiększyć spójność z innymi przeglądarkami, wycofujemy obsługę X-Frame-Options w tagu <meta>.

Intencja usunięcia | Błąd Chromium

Nagłówek odpowiedzi HTTP X-Frame-Options wskazuje, czy przeglądarka może wyrenderować stronę w tagu <frame>, <iframe> lub <object>. Pozwala to witrynie uniknąć przechwytywania kliknięć, bo takich stron nie można umieszczać w innych witrynach. Obecna wersja specyfikacji X-Frame-Options wyraźnie ogranicza obsługę tego pola w tagu <meta> przez klienty użytkownika.

Aby zapewnić zgodność ze specyfikacją i zwiększyć spójność z innymi przeglądarkami, wycofujemy obsługę zasady X-Frame-Options wewnątrz tagu <meta>.

Usuń zdarzenie kliknięcia przycisku innego niż główny

TL;DR: kliknięcia inne niż główne nie wywołują już zdarzeń kliknięcia, ale MouseEvent.button wciąż jest dostępne.

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

Aby zapewnić zgodność Chrome ze specyfikacją UIEvents, usuwamy zdarzenia kliknięć dotyczące innych niż podstawowe przyciski myszy. Inne niż główne przyciski myszy różnią się w zależności od urządzenia. Zwykle oznacza to wszystko inne niż prawy lub lewy przycisk myszy. Pamiętaj, że dokładnie kliknięty przycisk można pobrać za pomocą właściwości MouseEvent.button wysyłanej do zdarzeń takich jak mousedown czy mouseup.

Usuń requestAutocomplete()

Funkcja requestAutocomplete() zezwalała na wypełnianie formularzy na żądanie przez funkcję autouzupełniania przeglądarki. Ta funkcja działa już od ponad 2 lat tylko w Blink, a niewielkie wykorzystanie. Z tego powodu w Chrome 52 został usunięty plik requestAutocomplete().

Zamiar usunięcia