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.