Deweloperzy często mówią nam, że trudno im nadążać za zmianami w internecie i rozumieć, dlaczego te zmiany się pojawiają. Dzisiaj rozpoczynamy nową serię Chrome Dev Insider, w ramach której będziemy dzielić się informacjami o: (1) ciekawych i wartych uwagi nowościach, (2) sposobie podejmowania decyzji w konkretnej sprawie (np. zmianie FLOC) lub podejściu do pracy nad ekosystemem (np. Interop 2022) oraz (3) rzeczy naprawdę ważnych, które warto wiedzieć (np. zmianach w ciągu User-Agent).
Omówimy nasze projekty w kontekście 4 priorytetów na 2022 r.:
- Zapewnienie przyjemnych wrażeń użytkownikom: zadbaj o to, aby użytkownicy mogli łatwo korzystać z Twojej aplikacji, niezależnie od tego, czy chodzi o wydajność, transakcje, identyfikację czy przejścia.
- Rozwijanie możliwości internetu: wspieranie ewolucji roli internetu z platformy do konsumpcji treści w platformę do korzystania z szerokości usług, w tym tych, które wymagają głębokiej integracji na poziomie systemu operacyjnego i sprzętu.
- Upraszczanie tworzenia stron internetowych: ułatwia podejmowanie decyzji i zwiększa wydajność programistów.
- Poprawa prywatności w internecie: spełnianie oczekiwań użytkowników internetu w zakresie lepszej ochrony prywatności danych w okolicznościach stale rosnącej złożoności śledzenia i kierowania reklam przez deweloperów.
Aktualności: Interop 2022
Podczas planowania harmonogramów bierzemy pod uwagę opinie deweloperów, aby poznać ich największe problemy i potrzeby. Głównym tematem, który pojawia się wielokrotnie, jest zgodność z przeglądarkami, która zapewnia takie samo działanie w różnych przeglądarkach. W ubiegłym roku współpracowaliśmy z ekosystemem nad tym tematem w ramach naszego priorytetu, jakim jest „upraszczanie tworzenia stron internetowych”.
W zeszłym roku Microsoft, Chrome i inni uczestnicy ekosystemu ogłosili program Compat 2021, w którym wszystkie popularne silniki przeglądarek (Chromium, Gecko i WebKit) osiągnęły wynik powyżej 90% w pięciu kluczowych obszarach zidentyfikowanych na ten rok. W ramach Compat 2021 powstała m.in. solidna podstawa dla zaawansowanych funkcji, takich jak siatka CSS (12% użytkowników i stale rosnąca liczba) i Flexbox CSS (77% użytkowników).
W zeszłym miesiącu firmy Apple, Bocoup, Google, Igalia, Microsoft i Mozilla połączyły siły jako osoby wspierające, aby rozwiązać problemy ze zgodnością najpopularniejszych przeglądarek zidentyfikowane przez programistów internetowych i uzgodnić wspólny punkt odniesienia. W efekcie powstał Interop 2022, projekt mający na celu zwiększenie spójności platformy. Test porównawczy koncentruje się na 15 obszarach priorytetowych, które według deweloperów są kluczowe dla zwiększenia produktywności.
Wskazówki: współpraca z innymi programistami przeglądarek
W związku z konferencją Interop 2022 spotkałam się z Robertem Nymanem i Philipem Jägenstedtem, którzy uczestniczyli w tych rozmowach, aby poznać ich opinie. Oto wersja montażowa, która powstała w procesie edycji.
Jak powstała ta inicjatywa?
Robert: wszystko zaczęło się w 2019 r., gdy przeprowadziliśmy ankietę MDN DNA 2019. Problemy ze zgodnością wyraźnie wyróżniały się jako główny problem deweloperów tworzących strony internetowe. Więcej informacji na ten temat znajdziesz w raporcie MDN na temat zgodności przeglądarek w 2020 r. Dzięki temu mieliśmy wystarczającą ilość informacji i przydatnych danych, aby rozpocząć działania związane z kompatibilnością w 2021 roku, które z kolei doprowadziły do kontynuowania tych działań i rozszerzenia ich zakresu w ramach projektu Interop 2022.
Philip: chciałbym też wspomnieć o web-platform-tests i State of CSS 2021. Od wielu lat współpracujemy z innymi dostawcami przeglądarek nad testowaniem za pomocą WPT i bardzo zależało nam na kontynuowaniu tej współpracy. Testy dotyczące tych funkcji były już napisane, więc musieliśmy tylko je sprawdzić i dodać brakujące elementy. Google dużo zainwestował w wpt.fyi, ale sukces WPT to też zasługa Mozilli. Mozilla miała oczywiście duży udział w ankietach dotyczących DNA MDN. Oprócz tego jest też raport State of CSS 2021. Aby móc przygotować Interop 2022, potrzebujemy nowych informacji o potrzebach programistów stron internetowych. Dlatego wspólnie z Sacha, osobą odpowiedzialną za ankietę, dodaliśmy kilka nowych pytań dotyczących problemów ze zgodnością przeglądarek. To bardzo pomogło nam w planowaniu Interop 2022.
Czy masz jakieś spostrzeżenia lub opinie na temat Compat 2021?
Robert: bardzo przydatne było mierzenie i uzyskiwanie wyników oraz statystyk dotyczących działania poszczególnych silników przeglądarek, dzięki czemu mogliśmy śledzić postępy i rozpatrywać problemy, które były niejasne lub wymagały nadania priorytetu. Szybko też zdaliśmy sobie sprawę, że nazwa „Interop” lepiej pasuje do tej inicjatywy. Terminy zgodność i interoperacyjność są zwykle rozróżniane przez dostawców przeglądarek, gdzie zgodność odnosi się do zgodności witryny, a interoperacyjność do sytuacji, gdy co najmniej 2 przeglądarki działają tak samo. W tej terminologii chodzi o interoperacyjność, więc projekt został dostosowany do tej nazwy.
Jakie mamy tu cele?
Robert: aby internet był otwarty, kluczowa jest różnorodność przeglądarek i silników renderujących. Niestety obecnie wiąże się to z wysokimi kosztami dla naszych programistów, którzy muszą nadążać za różnymi poziomami obsługi funkcji w poszczególnych silnikach. Naszym zdaniem deweloperzy powinni postrzegać platformę internetową jako najbardziej odpowiednią i atrakcyjną opcję dla swoich potrzeb. Mogliby wtedy skupić się na tworzeniu jak najlepszych wrażeń zamiast poświęcać dużo czasu na rozwiązywanie problemów z interoperacyjnością. Aby to osiągnąć, musimy udostępnić najbardziej pożądane funkcje we wszystkich głównych silnikach przeglądarek, aby umożliwić deweloperom osiąganie sukcesów na platformie internetowej.
Jak możemy wspólnie rozwijać się, gdy przeglądarki mają (czasami) różne cele?
Philip: Naszym podejściem było szukanie obszarów wspólnych zainteresowań, aby znaleźć współpracę, która przyniesie korzyści obu stronom, a której cele są już mniej więcej zbieżne. Dzięki temu, że skupiamy się na ograniczonej liczbie zadań do wykonania w tym samym czasie, możemy się skupić na tych obszarach, szybciej się rozwijać i osiągać wyższą jakość niż w przypadku pracy osobno. To jest pomysł.
Pamiętaj, że w przypadku podejścia opartego na konsensusie istnieją pewne ograniczenia. Jeśli cele nie są wystarczająco zbieżne, musimy działać w inny sposób. Czasami pomocne może być przedstawienie dowodów na potrzeby programistów i użytkowników, ale dostawcy przeglądarek mogą udostępniać rozwiązania, które nie są powszechnie akceptowane. W najlepszym przypadku wartość funkcji jest demonstrowana przez programistów, którzy testują ją, sprawdzają, czy spełnia ich potrzeby, i proszą o wprowadzenie tej samej funkcji we wszystkich przeglądarkach.
Wracając do Interop 2022: czy w jakimś momencie pojawią się w pipelineie funkcje inne niż funkcje związane z projektowaniem lub układem?
Philip: oczywiście. W ramach Interop 2022 nie ograniczaliśmy się do funkcji stylizacji i układów, ale ostatecznie skoncentrowaliśmy się na CSS. Po części dlatego, że właśnie ukazała się publikacja State of CSS 2021, ale też dlatego, że programiści stron internetowych powiedzieli nam, że właśnie w tym przypadku mają najwięcej problemów z różnicami między przeglądarkami. Wiele obszarów fokusowych, takich jak elementy formularzy i dialogów, wykracza poza CSS. Prowadzimy też działania związane z edycją interfejsów API oraz zdarzeniami wskaźnika i myszy. Mamy nadzieję, że na konferencję Interop 2023 będziemy mieć więcej aktualnych danych o potrzebach deweloperów w internecie i będziemy mogli uwzględnić w niej więcej takich funkcji.
Najważniejsze nadchodzące zmiany
Celem tej serii jest poinformowanie deweloperów o nadchodzących ważnych zmianach, które mają na celu poprawę wygody użytkowników i funkcjonalności platformy.
Poniżej podajemy ramy czasowe, w których spodziewamy się tych zmian. Możliwe jednak, że wersje funkcji mogą się zmienić.
Redukcja klienta użytkownika
Nagłówek User-Agent i powiązane z nim interfejsy JS nie tylko przekazują przydatne informacje o przeglądarce i urządzeniu, ale także zawierają stare dane i nieprawidłowe informacje. Powszechne występowanie błędów związanych z analizowaniem ciągu znaków UA jest mniej problematyczne niż fakt, że ciąg ten jest pasywnie wysyłany na serwery w przypadku wszystkich żądań dotyczących nawigacji i podzasobów. Oznacza to około 10 bitów entropii, których serwery mogą używać do tworzenia stabilnych identyfikatorów śledzenia podczas korzystania przez użytkowników z Internetu.
Naszym obecnym planem jest zmniejszenie obecnego ciągu UA przez dalsze dostarczanie wersji głównej przeglądarki o niskiej entropii, nazwy platformy i mobilności oraz zamrożenie informacji o wysokiej entropii. W przypadku zastosowań, które wymagają dodatkowych informacji niż te zawarte w nagłówku, od wersji Chrome 89 dostarczamy interfejs User-Agent Client Hints API.
Przez 6 miesięcy prowadziliśmy test Origin Trial w celu eksperymentowania i uzyskiwania opinii. Cieszymy się, że pomimo udziału ponad 200 osób nie otrzymaliśmy żadnych opinii dotyczących awarii.
- Harmonogram: w Chrome 101 przechodzimy do etapu 4, czyli ograniczamy informacje
MINOR.BUILD.PATCH
w ciągu UA do0.0.0
. Będziemy też informować właścicieli witryn o nadchodzących zmianach i dawać im czas na przygotowanie się do fazy 5 i kolejnych. Utworzyliśmy też zasady dla przedsiębiorstw, które pozwolą im zrezygnować z tych zmian. Do czasu wydania Chrome 113 będziemy prowadzić testy wycofywania, aby dać witrynom więcej czasu na przygotowanie się do tych zmian. - Wezwanie do działania: przeprowadź migrację witryny na wskazówki dotyczące klienta UA lub weź udział w próbnym wycofaniu.
Interfejs Local Fonts Access API
Chrome wprowadza interfejs Local Font Access API. Chociaż witryny od dawna mogą korzystać z czcionek lokalnych, ten interfejs API wylicza listę czcionek lokalnych i daje dostęp do samych danych czcionek. Ta funkcja umożliwia użytkownikom korzystanie ze wszystkich czcionek w projektach internetowych i innych aplikacjach.
Lokalne czcionki są od dawna znane jako wektor do tworzenia odcisków palców. Chociaż ten nowy interfejs API nie zwiększa możliwości używania czcionek do tworzenia odcisków palców, Chrome wymaga, aby użytkownik przyznał nowej stronie uprawnienia "local-fonts"
, zanim będzie można używać nowego interfejsu API Local Font Access.
W przyszłości będziemy wymagać, aby przed użyciem dowolnego innego interfejsu API, który zapewnia dostęp do czcionek lokalnych, użytkownik przyznał to samo uprawnienie „local-fonts”.
- Harmonogram: kierowanie na Chrome 103 (czerwiec 2022 r.)
- Wezwanie do działania: dowiedz się więcej o interfejsie API i sposobie jego stosowania, aby rozpocząć wdrażanie.
Włączanie obsługi BFCache w przypadku Cache-control: no-store
Zidentyfikowaliśmy znaczną możliwość poprawy częstotliwości, z jaką pamięć podręczna stanu strony internetowej może zapewniać błyskawiczną nawigację w obu kierunkach. Wymaga to zmiany zachowania BFCache na stronach wyświetlanych z nagłówkiem HTTP Cache-control: no-store. Mamy publiczną propozycję, która ma zapobiegać niespodziankom. Polega ona na monitorowaniu różnych sygnałów (np. usuwanie stron z pamięci podręcznej stanu strony internetowej, gdy zmienia się plik cookie tylko dla wersji HTTP) oraz wyjątków (np. zasad grupy dla klientów Enterprise lub Edu) w przypadku nietypowych kontekstów. To skomplikowana, ale ekscytująca możliwość. Chętnie poznamy Twoją opinię na jej temat.
- Harmonogram: wersja Chrome 104 (lipiec 2022 r.), o ile nie wydarzy się żadne niespodzianki.
- Wezwanie do działania: więcej informacji, w tym o włączaniu wdrożenia w toku i sposobach udostępniania opinii, np. o rzeczywistych scenariuszach, w których nasze podejście może stworzyć nowe przeszkody, znajdziesz w propozycji.
Mam nadzieję, że dzięki tej serii programiści poczują, że mogą się skupić i skontaktować z moją społecznością, a także z moją drużyną i jej pracą. Zachęcamy do śledzenia tej strony, aby dowiedzieć się więcej.
Do zobaczenia.
Jak oceniasz pierwszą edycję The Chrome Dev Insider? Prześlij opinię