Chrome 83 jest już wdrażany w wersji stabilnej.
Oto, co musisz wiedzieć na ten temat:
- Zaufane typy pomagają zapobiegać lukom w zabezpieczeniach związanym z atakami typu cross-site scripting.
- Elementy formularzy przeszły ważną przemianę.
- Jest nowy sposób na wykrywanie wycieków pamięci.
- Natywna funkcja interfejsu API systemu plików rozpoczyna nowy okres próbny pochodzenia z dodatkową funkcjonalnością.
- Istnieją nowe zasady dotyczące innych domen.
- Wprowadziliśmy program wskaźników internetowych, aby zapewnić ujednolicone wskazówki dotyczące sygnałów jakości, które naszym zdaniem są niezbędne do zapewnienia użytkownikom wrażeń w internecie.
- i inne.
Nazywam się Pete LePage i pracuję oraz nagrywam filmy z domu. Zobaczmy, co nowego w Chrome 83 dla programistów.
Zaufane typy
Skrypty między witrynami oparte na modelu DOM to jedna z najczęstszych luk w zabezpieczeniach internetowych. Łatwo można go przypadkowo wprowadzić na stronę. Zaufane typy mogą zapobiegać tego typu podatnościom, ponieważ wymagają przetworzenia danych przed przekazaniem ich do potencjalnie niebezpiecznej funkcji.
Weźmy na przykład innerHTML
. Jeśli włączysz zaufane typy, a próbujesz przekazać ciąg znaków, pojawi się błąd TypeError, ponieważ przeglądarka nie wie, czy może zaufać temu ciągowi znaków.
// Trusted types turned on
const elem = document.getElementById('myDiv');
elem.innerHTML = `Hello, world!`;
// Will throw a TypeError
Zamiast tego musisz użyć bezpiecznej funkcji, takiej jak textContent
, przekazać zaufany typ lub utworzyć element i użyć appendChild()
.
// Use a safe function
elem.textContent = ''; // OK
// Pass in a trusted type
import DOMPurify from 'dompurify';
const str = `Hello, world!`;
elem.innerHTML = DOMPurify.sanitize(str, {RETURN_TRUSTED_TYPE: true});
// Create an element
const img = document.createElement('img');
img.src = 'xyz.jpg';
elem.appendChild(img);
Zanim włączysz zaufane typy, musisz zidentyfikować i usunąć wszelkie naruszenia za pomocą nagłówka report-only
CSP.
Content-Security-Policy-Report-Only: require-trusted-types-for 'script'; report-uri //example.com
Gdy wszystko będzie gotowe, możesz włączyć je prawidłowo. Pełne informacje znajdziesz w artykule Zapobieganie lukom w skryptach XSS w DOM za pomocą zaufanych typów na stronie web.dev.
Aktualizacje elementów sterujących formularza
Na co dzień używamy elementów sterujących formularzy HTML i są one kluczem do zwiększania interaktywności internetu. Są łatwe w użyciu, mają wbudowane ułatwienia dostępu i są znane użytkownikom. Styl elementów sterujących formularza może być niespójny w różnych przeglądarkach i systemach operacyjnych. Często musimy wysyłać wiele reguł CSS, aby uzyskać spójny wygląd na różnych urządzeniach.
Jestem pod wrażeniem pracy, jaką Microsoft wykonał, aby unowocześnić wygląd elementów sterujących formularzem. Oprócz ładniejszego stylu wizualnego oferują one lepszą obsługę ekranów dotykowych i ułatwienia dostępu, w tym ulepszone wsparcie dla klawiatury.
Nowe elementy sterowania formularzem są już dostępne w Microsoft Edge, a teraz są też dostępne w Chrome 83. Więcej informacji znajdziesz w artykule Updates to Form Controls and Focus na blogu Chromium.
Wersje próbne origin
Pomiar pamięci za pomocą measureMemory()
Od wersji 83 Chrome performance.measureMemory()
to nowy interfejs API, który umożliwia pomiar wykorzystania pamięci przez stronę i wykrywanie wycieków pamięci.
Wycieki pamięci są łatwe do wprowadzenia:
- zapomnisz zarejestrować detektora zdarzeń.
- Przechwytywanie obiektów z elementu iframe
- Nie zamykanie instancji roboczej
- Zbieranie obiektów w tablicach
- i tak dalej.
Wycieki pamięci powodują, że strony wydają się wolne i przeładowane.
if (performance.measureMemory) {
try {
const result = await performance.measureMemory();
console.log(result);
} catch (err) {
console.error(err);
}
}
Więcej informacji o nowym interfejsie API znajdziesz w artykule Monitorowanie całkowitego wykorzystania pamięci przez stronę za pomocą measureMemory()
na web.dev.
Aktualizacje interfejsu Native File System API
W ramach wersji próbnej interfejsu Native File System API w Chrome 83 rozpoczęliśmy testowanie nowej wersji origin z obsługą strumieni do zapisu i możliwością zapisywania uchwytów plików.
async function writeURLToFile(fileHandle, url) {
// Create a FileSystemWritableFileStream to write to.
const writable = await fileHandle.createWritable();
// Make an HTTP request for the contents.
const response = await fetch(url);
// Stream the response into the file.
await response.body.pipeTo(writable);
// pipeTo() closes the destination pipe automatically.
}
Zapisywalne strumienie znacznie ułatwiają zapisywanie danych w pliku. Ponieważ jest to strumień, możesz łatwo przesyłać odpowiedzi z jednego strumienia do drugiego.
Zapisanie uchwytów plików w IndexedDB umożliwia przechowywanie stanu lub zapamiętanie, nad którymi plikami pracował użytkownik. Możesz na przykład zachować listę ostatnio edytowanych plików, otworzyć ostatni plik, nad którym użytkownik pracował itd.
Aby korzystać z tych funkcji, potrzebujesz nowego tokena testowego origin, aby korzystać z tych funkcji, dlatego zapoznaj się ze zaktualizowanym artykułem o interfejsie Native File System API: prostszym dostępie do plików lokalnych na web.dev. Znajdziesz w nim informacje o tym, jak uzyskać nowy token wersji próbnej origin.
Inne wersje próbne
Pełną listę funkcji dostępnych w wersji próbnej origin znajdziesz
Nowe zasady dotyczące innych domen
Niektóre interfejsy API zwiększają ryzyko ataków typu side-channel, takich jak Spectre.
Aby ograniczyć to ryzyko, przeglądarki oferują odizolowane środowisko oparte na opcjonalnym zgłaszaniu, zwane izolowanym od zasobów z innych domen. Stan izolacji zasobów z innych domen
zapobiega też modyfikacjom obiektu document.domain
. Możliwość modyfikowania elementu document.domain
umożliwia komunikację między dokumentami w tej samej witrynie i jest uznawana za lukę w zasadach dotyczących tego samego źródła.
Więcej informacji znajdziesz w poście Eiji na temat tworzenia izolowanej witryny między domenami przy użyciu COOP i COEP.
Parametry życiowe w internecie
Pomiar jakości wrażeń użytkownika ma wiele aspektów. Chociaż niektóre aspekty wrażeń użytkownika zależą od konkretnej strony internetowej i kontekstu, istnieje wspólny zestaw sygnałów (tzw. podstawowe wskaźniki internetowe), który ma kluczowe znaczenie dla wszystkich wrażeń związanych z internetem. Te podstawowe potrzeby związane z wrażeniami użytkownikaobejmują łatwość wczytywania, interaktywność i stabilność wizualną zawartości strony. Te podstawowe wskaźniki internetowe na rok 2020 stanowią podstawę Twoich podstawowych wskaźników internetowych.
- Wskaźnik największego wyrenderowania treści mierzy wyczuwalną szybkość wczytywania i oznacza na osi czasu wczytywania strony moment, w którym prawdopodobnie załadowano jej główną zawartość.
- Opóźnienie przy pierwszym działaniu mierzy czas reakcji i określa ilość odczuć użytkownika podczas pierwszej interakcji ze stroną.
- Skumulowane przesunięcie układu mierzy stabilność wizualną i określa wielkość nieoczekiwanego przesunięcia układu widocznych treści strony.
Wszystkie te wskaźniki rejestrują ważne wyniki ukierunkowane na użytkowników, są wymierne w terenie oraz mają odpowiedniki w ramach laboratoriów i narzędzia. Na przykład, chociaż głównym wskaźnikiem wczytywania treści jest największe wyrenderowanie treści, to w dużym stopniu zależy on od pierwszego wyrenderowania treści (FCP) i czasu do pierwszego bajtu (TTFB), które są kluczowe w monitorowaniu i ulepszaniu.
Więcej informacji znajdziesz w artykule Wskaźniki internetowe: ważne dane, które pomogą Ci utrzymać stronę w dobrej kondycji na blogu Chromium.
I nie tylko
- Chrome obsługuje teraz interfejs Barcode Detection API, który umożliwia wykrywanie i dekodowanie kodów kreskowych.
- Nowa funkcja CSS
@supports
umożliwia wykrywanie funkcji w selektorach CSS. - Nowe adnotacje ARIA ułatwiają korzystanie z czytników ekranu w przypadku komentarzy, sugestii i wyróżnień tekstu z znaczeniami semantycznymi (podobnymi do
<mark>
). - Zapytanie o multimedia
prefers-color-scheme
pozwala autorom obsługiwać własny ciemny motyw, dzięki czemu mają pełną kontrolę nad tworzonymi przez siebie treściami. - Język JavaScript obsługuje teraz moduły w ramach współdzielonych instancji roboczych.
Ciekawi Cię, co wydarzy się w przyszłości? Sprawdź Fugu API Tracker.
Więcej informacji
Obejmuje to tylko niektóre najważniejsze informacje. Aby dowiedzieć się więcej o dodatkowych zmianach w Chrome 83, kliknij linki poniżej.
- Nowości w Narzędziach deweloperskich w Chrome (83)
- Funkcje wycofane i usunięte z Chrome 83
- Aktualizacje ChromeStatus.com dotyczące Chrome 83
- Nowości w JavaScript w Chrome 83
- Lista zmian w repozytorium kodu Chromium
Subskrybuj
Jeśli chcesz być na bieżąco z naszych filmów, zasubskrybuj nasz kanał w YouTube dla deweloperów Chrome. Otrzymasz wtedy e-maila z powiadomieniem, gdy tylko opublikujemy nowy film.
Nazywam się Pete LePage i potrzebuję fryzjera, ale gdy tylko Chrome 84 zostanie wydany, opowiem Ci, co nowego w tej przeglądarce.