Wycofania i usuwania interfejsów API w Chrome 52

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óre są dostępne w wersji beta od 9 czerwca. Ta lista może ulec zmianie w każdej chwili.

Wycofanie zdarzenia i atrybutu MediaStream ended oraz atrybutu onended

TL;DR: zdarzenie i atrybut ended oraz moduł obsługi zdarzenia onended są wycofywane, ponieważ zostały usunięte ze specyfikacji Media Capture and Streams.

Intend to Remove | Chromestatus Tracker | Chromium Bug

Ani zdarzenie ended, ani jego obciążnik onended nie są częścią specyfikacji WebRTC od około 3 lat. Deweloperzy, którzy chcą obserwować zdarzenia, powinni zamiast MediaStreams używać MediaStreamTracks.

Usunięcie jest planowane w Chrome 53.

Blokowanie wyskakujących okienek z międzyźródłowych elementów iframe podczas zdarzeń dotykowych z wyjątkiem gestów dotykowych

TL;DR: Chrome zacznie blokować wyskakujące okienka i inne operacje na zdarzeniach dotykowych, które nie odpowiadają kliknięciu wewnątrz elementu iframe w innej domenie.

Intend to Remove | Chromestatus Tracker | Chromium Bug

Zdarzenia dotykowe mogą być niejednoznaczne w porównaniu z odpowiednimi zdarzeniami myszy. Jeśli na przykład użytkownik przesuwa palcem po ekranie, czy przesuwa przełącznik, czy przewija widok? Niektóre treści osób trzecich w elementach iframe korzystają z tej niejasności, aby celowo wyłączyć przewijanie na stronie zawierającej.

Aby temu zapobiec, nie zezwalamy na wyskakujące okienka ani inne wrażliwe operacje w przypadku zdarzeń dotyku z elementów iframe z innych domen. Wydarzenie touchend będzie działać tak jak wcześniej.

wycofanie nadmiarowego obciążenia funkcji postMessage();

W skrócie: wycofujemy niepotrzebny i rzadko używany wariant interfejsu postMessage(), a w szczególności element postMessage(message, transferables, targetOrigin).

Intend to Remove | Chromestatus Tracker | Chromium Bug

Metoda postMessage() to sposób bezpiecznej komunikacji między skryptami stron o różnym pochodzeniu. WebKit/Blink obsługuje 3 wersje:

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

Ostatni element na tej liście to przypadek z historii ewolucji i wdrażania specyfikacji. Ponieważ jest rzadko używany, zostanie wycofany, a później usunięty. Dotyczy to zarówno window.postMessage(), jak i worker.postMessage().

Usunięcie jest planowane w Chrome 54.

Usuwanie obsługi nagłówka X-Frame-Options w przypadku tagi

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

Intend to Remove | Błąd w Chromium

Nagłówek odpowiedzi HTTP X-Frame-Options wskazuje, czy przeglądarka może renderować stronę w tagu <frame>, <iframe> lub <object>. Dzięki temu witryna może uniknąć kradzieży kliknięcia, ponieważ takie strony nie mogą być umieszczane w innych witrynach. Obecna wersja specyfikacji X-Frame-Options wyraźnie zabrania obsługi tego pola przez przeglądarki.<meta>

Aby zachować zgodność ze specyfikacją i zwiększyć spójność z innymi przeglądarkami, usuwamy obsługę tagu X-Frame-Options w tagu <meta>.

Usuwanie zdarzenia kliknięcia przycisku innego niż główny

TL;DR: kliknięcia niepierwotnymi przyciskami myszy nie powodują już zdarzeń kliknięcia, ale tag MouseEvent.button nadal jest dostępny.

Intend to Remove | Chromestatus Tracker | Chromium Bug

Aby dostosować Chrome do specyfikacji UIEvents, usuwamy zdarzenia kliknięcia dla przycisków myszy innych niż główny. Przyciski myszy inne niż główny różnią się w zależności od urządzenia. Oznacza to wszystko inne niż lewy lub prawy przycisk myszy. Pamiętaj, że dokładny przycisk, który został kliknięty, można nadal pobrać za pomocą właściwości MouseEvent.button wysyłanej do zdarzeń takich jak mousedown lub mouseup.

Usuń requestAutocomplete()

Funkcja requestAutocomplete() umożliwiała wypełnianie formularzy na żądanie za pomocą funkcji autouzupełniania przeglądarki. Po ponad 2 latach ta funkcja jest obsługiwana tylko w Blink i nie jest często używana. Z tych powodów funkcja requestAutocomplete() została usunięta w Chrome 52.

Intencja usunięcia