Zabranianie synchronicznego wywołania XMLHTTPRequest() podczas zamykania strony
Chrome nie zezwala teraz na wywołania synchroniczne do XMLHTTPRequest()
podczas zamykania strony, gdy użytkownik przełącza się na inną stronę lub zamyka stronę.
Dotyczy to znaczników beforeunload
, unload
, pagehide
i visibilitychange
.
Aby mieć pewność, że dane zostaną wysłane na serwer po usunięciu strony, zalecamy użycie sendBeacon()
lub Fetch
keep-alive
. Obecnie użytkownicy firmowi mogą używać parametru zasad AllowSyncXHRInPageDismissal
, a deweloperzy mogą używać parametru próbnego allow-sync-xhr-in-page-dismissal
, aby zezwalać na synchroniczne żądania XHR podczas wylogowywania strony. Jest to tymczasowy mechanizm „wycofania się”. Planujemy usunąć tę flagę w Chrome 88.
Szczegółowe informacje o tym i o alternatywnych rozwiązaniach znajdziesz w artykule Zakazywanie synchronicznych wywołań XMLHTTPRequest() podczas zamykania strony.
Intend to Remove | Stan platformy Chrome | Błąd w Chromium
Wycofanie obsługi FTP
Obecna implementacja FTP w Chrome nie obsługuje szyfrowanych połączeń (FTPS) ani serwerów proxy. Korzystanie z FTP w przeglądarce jest na tyle niskie, że nie warto już inwestować w ulepszanie dotychczasowego klienta FTP. Dodatkowo na wszystkich dotkniętych platformach dostępne są bardziej zaawansowane klienci FTP.
W Chrome 72 usunięto obsługę pobierania podzasobów dokumentu przez FTP oraz renderowania zasobów FTP najwyższego poziomu. Obecnie przejście do adresów URL FTP powoduje wyświetlenie listy katalogów lub pobranie w zależności od typu zasobu. W Google Chrome w wersji 74 i nowszych wystąpił błąd, który spowodował utratę obsługi adresów URL FTP przez serwery proxy HTTP. Obsługa serwerów proxy dla FTP została całkowicie usunięta w Chrome 76.
Pozostałe funkcje implementacji FTP w Google Chrome są ograniczone do wyświetlania listy katalogów lub pobierania zasobu przez niezaszyfrowane połączenia.
Harmonogram wycofywania jest wstępnie ustawiony w ten sposób:
Chrome 80 (wersja stabilna w lutym 2020 r.)
Protokół FTP jest domyślnie wyłączony w przypadku klientów innych niż korporacyjne, ale można go włączyć, podając flagi --enable-ftp
lub --enable-features=FtpProtocol
w wierszu poleceń. Można go też włączyć, korzystając z opcji #enable-ftp
na stronie chrome://flags.
Chrome 81 (stabilna wersja z marca 2020 r.)
Protokół FTP jest domyślnie wyłączony we wszystkich instalacjach Chrome, ale można go włączyć za pomocą flagi wiersza poleceń --enable-ftp
lub --enable-features=FtpProtocol
.
Chrome 82 (stabilna wersja z kwietnia 2020 r.)
Obsługa FTP zostanie całkowicie usunięta.
Intend to Remove | Stan platformy Chrome | Błąd w Chromium
Nie zezwalaj na wyskakujące okienka podczas wyładowywania strony
Strony nie mogą już używać window.open()
do otwierania nowej strony podczas wylogowywania. Blokowanie wyskakujących okienek w Chrome już to uniemożliwia, ale teraz jest to zabronione niezależnie od tego, czy blokowanie wyskakujących okienek jest włączone.
Firmy mogą używać flagi zasad AllowPopupsDuringPageUnload
, aby zezwolić na wyskakujące okienka podczas wyładowywania. Chrome usunie tę flagę w Chrome 82.
Intend to Remove | Chromestatus Tracker | Chromium Bug
Usunięto serializację i przenoszenie obiektu ImageBitmap, które nie były zgodne z pochodzeniem.
Gdy skrypt spróbuje zakodować lub przesłać obiekt ImageBitmap, który nie jest czysty pod względem pochodzenia, będą teraz pojawiać się błędy. Obraz ImageBitmap, który nie jest czysty pod względem pochodzenia, zawiera dane z obrazów z różnych źródeł, które nie są weryfikowane przez logikę CORS.
Intend to Remove | Stan platformy Chrome | Błąd w Chromium
Obsługa protokołów wymaga teraz bezpiecznego kontekstu
Metody registerProtocolHandler()
i unregisterProtocolHandler()
wymagają teraz bezpiecznego kontekstu. Te metody umożliwiają zmianę konfiguracji stanów klienta w taki sposób, aby umożliwić przesyłanie potencjalnie wrażliwych danych przez sieć.
Metoda registerProtocolHandler()
udostępnia stronie internetowej mechanizm rejestracji, który umożliwia jej obsługę protokołu po wyrażeniu zgody przez użytkownika. Na przykład aplikacja internetowa do obsługi poczty e-mail może zarejestrować się jako obsługująca schemat mailto:
. Odpowiednia metoda unregisterProtocolHandler()
pozwala witrynie zrezygnować z rejestracji obsługi protokołów.
Intend to Remove | Stan platformy Chrome | Błąd w Chromium
Usunięcie interfejsu Web Components v0
Interfejs Web Components w wersji 0 został usunięty z Chrome. Interfejsy API Web Components w wersji 1 to standard platformy internetowej, który jest dostępny w Chrome, Safari, Firefox i (wkrótce) Edge. Więcej informacji o przechodzeniu na nową wersję znajdziesz w artykule Aktualizacja Web Components: więcej czasu na przejście na interfejsy API w wersji 1. Te funkcje zostały usunięte: Ta wycofana funkcja obejmuje elementy wymienione poniżej.
Elementy niestandardowe
Intend to Remove | Stan platformy Chrome | Błąd w Chromium
Importowanie plików HTML
Intend to Remove | Stan platformy Chrome | Błąd w Chromium
Shadow DOM
Intend to Remove | Stan platformy Chrome | Błąd w Chromium
Usuń -webkit-appearance:button dla dowolnych elementów
Zmiana -webkit-appearance:button
tak, aby działała tylko z przyciskami <button>
i <input>
. Jeśli dla nieobsługiwanego elementu podano wartość button
, element ma domyślny wygląd. Wszystkie inne słowa kluczowe -webkit-appearance
są już objęte takimi ograniczeniami.
Intend to Remove | Stan platformy Chrome | Błąd w Chromium
Zasady wycofywania
Aby platforma działała prawidłowo, czasami usuwamy z niej interfejsy API, które nie są już potrzebne. Możemy usunąć interfejs API z wielu powodów, na przykład:
- Zostały one zastąpione nowszymi interfejsami API.
- Są one aktualizowane, aby odzwierciedlać zmiany w specyfikacjach, co zapewnia zgodność z innymi przeglądarkami.
- Są to wczesne eksperymenty, które nigdy nie zostały wdrożone w innych przeglądarkach, więc mogą zwiększać obciążenie zespołu pomocy dla deweloperów.
Niektóre z tych zmian będą miały wpływ na bardzo niewielką liczbę witryn. Aby uniknąć problemów z wyprzedzeniem, staramy się wcześniej informować deweloperów, aby mogli wprowadzić niezbędne zmiany, które pozwolą utrzymać ich witryny w stanie operacyjnym.
Chrome ma obecnie proces wycofywania i usuwania interfejsów API, który obejmuje:
- Opublikuj ogłoszenie na liście adresowej blink-dev.
- Ustaw ostrzeżenia i uwzględnij skale czasowe w konsoli Narzędzi deweloperskich w Chrome, gdy wykryto użycie na stronie.
- Poczekaj, sprawdź, a potem usuń funkcję, gdy jej użycie spadnie.
Listę wszystkich wycofanych funkcji znajdziesz na stronie chromestatus.com. Wystarczy, że użyjesz filtra wycofanych funkcji , a aby wyświetlić wycofane funkcje, zastosuj filtr wycofanych funkcji. W tych postach postaramy się też podsumować niektóre zmiany, uzasadnienia i ścieżki migracji.