Gdy inżynierowie chcą wprowadzić zmianę w silniku renderującym Blink, publikują post na liście mailingowej blink-dev, aby uzyskać zgodę na dalsze działania. Posty na listach adresowych są nazywane Blink Intents.
Przeglądarki internetowe oparte na Chromium używają silnika renderowania Blink do przekształcania kodu i zasobów w strony internetowe, które możesz wyświetlać i z którymi możesz wchodzić w interakcje.
Dowiedz się, jak działają intencje Blink, dlaczego są ważne i jak nowe funkcje trafiają do Blink.
Chromium i Blink
Chromium to projekt przeglądarki o otwartym kodzie źródłowym, na którym opierają się Chrome i niektóre inne przeglądarki oraz platformy. Blink to mechanizm renderowania używany przez Chromium.
Aby nowa funkcja trafiła do Blink, musi przejść otwarty proces rozwoju projektu Chromium. „Nowa funkcja” to każda zmiana lub dodanie w kodzie lub architekturze przeglądarki. Może to być nowy interfejs API JavaScript, znaczne zwiększenie wydajności kodu Blink lub inna zmiana wyglądu lub działania przeglądarki.
Otwarty proces współpracy
Chromium to ogromny, złożony projekt, w którego tworzeniu uczestniczą tysiące osób. Gdy w Chromium zachodzą zmiany, każdy etap to okazja, aby zaprosić szerszy ekosystem internetowy do komentowania projektu i wdrożenia.
W miarę możliwości nowe funkcje muszą być interoperacyjne na całej platformie internetowej i nie mogą być wdrażane wyłącznie w jednej przeglądarce. Programiści stron internetowych nie lubią niespodzianek: gdy przeglądarki nie działają tak, jak tego oczekujesz, lub gdy musisz pisać inny kod dla różnych przeglądarek i platform. Intencje Blink pomagają strukturyzować i regulować proces zmian, aby były bardziej przewidywalne i mniej zaskakujące, co jest korzystne dla programistów stron internetowych.
W przypadku użytkowników dostawcy przeglądarek muszą uważać, aby zmiany nie spowodowały zaprzestania działania witryn. Właściciele witryn często przestają je utrzymywać. Niektóre witryny nie były aktualizowane od dziesięcioleci. Producenci przeglądarek muszą wziąć to pod uwagę, wprowadzając zmiany, które mogą spowodować problemy.
Od pomysłu do oferty
Propozycje zmian i aktualizacji platformy internetowej wynikają z badań, w tym konsultacji z użytkownikami, firmami, inżynierami przeglądarek, deweloperami stron internetowych i innymi zainteresowanymi stronami. Te badania pozwalają zespołowi Chrome ustalić, czego brakuje na platformie lub co należy zmienić. Początkowo propozycja zmiany lub nowej funkcji na platformie internetowej to tylko słowa na stronie. Inżynierowie udostępniają dokumenty, aby uzyskać opinie i wziąć udział w dyskusji ze współpracownikami.
Przykład: FedCM
Federated Credential Management (FedCM) to interfejs API, który oferuje przyjazne dla użytkownika i skoncentrowane na ochronie prywatności podejście do rejestracji i logowania użytkowników, znane jako tożsamość sfederowana. Dotyczy to na przykład logowania przez Google i innych logowań społecznościowych.
Aby utworzyć interfejs API przeglądarki, najpierw przygotuj propozycję do publicznej dyskusji. Propozycja FedCM została opublikowana w GitHubie jako wyjaśnienie. Każdy może zadawać pytania lub komentować projekty funkcji, tworząc zgłoszenie w GitHub w repozytorium z wyjaśnieniami. Opinie mogą zawierać opisy dodatkowych przypadków użycia, ograniczeń, pomysły na ulepszenia lub deklaracje wsparcia.
Gdy propozycja zostanie przyjęta przez organizację normalizacyjną, np. W3C, zainteresowane strony mogą dołączyć do dyskusji i oglądać prezentacje w grupach zajmujących się standardami internetowymi, takich jak grupy robocze W3C.
Intencje Blink: ważne momenty i postępy
Na każdym etapie, gdy inżynierowie pracują nad nową funkcją lub zmianą w silniku renderującym Blink, publikują post w grupie dyskusyjnej blink-dev, w którym wyjaśniają, że zamierzają przejść do następnej fazy wdrażania funkcji. Te posty są nazywane „intencjami”. Każdy może zasubskrybować grupę blink-dev, aby otrzymywać powiadomienia o postępach w pracach nad nowymi funkcjami w Blinku, lub zasubskrybować poszczególne funkcje, aby otrzymywać aktualizacje.
Intencja prototypu
Na tym etapie inżynierowie Chromium mogą zacząć wdrażać funkcję. Oznacza to, że prototypowa funkcjonalność tej funkcji może zostać udostępniona deweloperom do testowania za flaga funkcji, początkowo w Chrome Canary, a potem w innych kanałach wersji. Każdy użytkownik może ustawić flagę na stronie chrome://flags, aby aktywować i przetestować funkcję w przeglądarce.
Nie wszystkie flagi można jednak ustawić na stronie chrome://flags. Aby mieć większą kontrolę, możesz uruchomić Chrome z terminala, używając flag wiersza poleceń. Pamiętaj, że niektóre nowe funkcje są dostępne dopiero po udostępnieniu ich do testowania w Chrome Canary, choć zdarza się to dość rzadko. Niektóre funkcje nie mają własnej flagi, ale są udostępniane, jeśli włączona jest flaga experimental-web-platform-features. Dotyczy to zwykle „mniejszych” funkcji, których wdrożenie zajmuje maksymalnie od 3 do 6 miesięcy.
Zbieranie opinii o prototypach
Gdy rozpocznie się tworzenie prototypu nowej funkcji, inżynierowie Chromium zapraszają do dyskusji i wczesnych eksperymentów. Opinie na tym etapie są kluczowe dla weryfikacji propozycji i wprowadzania w nich zmian. Błędy w Chromium to miejsce, w którym możesz komentować implementację w Chrome.
Zamiar przeprowadzenia eksperymentu: testowanie w rzeczywistych warunkach
Post na liście blink-dev z informacją o zamiarze przeprowadzenia eksperymentu jest opcjonalnym kolejnym krokiem, jeśli inżynierowie Chrome chcą poprosić o przeprowadzenie testu origin.
Wersje próbne origin to sposób na testowanie nowych lub eksperymentalnych funkcji platformy internetowej. Rejestrujesz się w testowaniu origin funkcji, a następnie otrzymujesz token. Funkcja zostanie aktywowana na każdej stronie, która udostępnia token.
Zgoda właścicieli interfejsu Blink API
Aby można było kontynuować wdrażanie funkcji, właściciele interfejsu Blink API muszą wyrazić zgodę, odpowiadając na zgłoszenie intencji postem „looks good to me” (LGTM).
Właściciele interfejsu Blink API to niewielka grupa współtwórców Chromium, którzy mają duże doświadczenie w zakresie platformy internetowej i jej interfejsów API. Zgodnie z opinią społeczności Blink są oni godni zaufania i zaangażowani w realizację misji i wartości Blink. Właściciele interfejsów API nie tylko zatwierdzają (lub odrzucają) funkcje, które mają zostać wdrożone, ale też nadzorują sam proces Blink Intent.
Wniosek o przeprowadzenie eksperymentu musi uzyskać co najmniej 1 potwierdzenie od właścicieli interfejsu API.
Wartość testowania origin
Deweloperzy mogą zarejestrować się w programie testów origin funkcji, a następnie testować ją w środowisku produkcyjnym w rzeczywistych warunkach z udziałem prawdziwych użytkowników. Nie muszą oni podejmować żadnych działań, aby funkcja została aktywowana. Deweloperzy mogą udostępniać wyniki swoich testów, co zapewnia cenne informacje i dane, które pomagają ulepszać i rozwijać funkcję.
Zamiar wysłania: ostatni etap
Sygnał Intent to Ship oznacza, że funkcja jest gotowa do wdrożenia i udostępnienia w ramach ogólnej dostępności wszystkim użytkownikom wersji stabilnej Chrome bez konieczności używania flagi lub tokena wersji próbnej. Zanim będzie można wdrożyć zmianę, zgłoszenie zamiaru wysłania musi uzyskać 3 potwierdzenia od właścicieli interfejsów API.
Wprowadzanie nowych funkcji
Po zatwierdzeniu funkcja jest scalana z nadchodzącą wersją, a następnie przechodzi przez kanały wersji Chrome. Testowanie i wdrażanie nowych funkcji często wymaga szczególnej uwagi. Niektóre funkcje są wdrażane stopniowo, dla coraz większej liczby użytkowników. W razie wystąpienia nieoczekiwanych skutków ubocznych funkcje mogą zostać wycofane i przerobione.
Zarządzanie wycofywaniem i usuwaniem
Istnieją 2 inne rodzaje intencji Blink:
- Intencja wycofania
- Zamiar usunięcia
Może to brzmieć trochę smutno, ale w rzeczywistości ma kluczowe znaczenie dla rozwoju Blink.
Zamiar wycofania jest publikowany przez inżynierów, gdy chcą zacząć ostrzegać programistów, że dana funkcja ma zostać wycofana. Na przykład poprzez udostępnianie pomocy i informacji o wycofaniu w konsoli Narzędzi deweloperskich w Chrome.
Zamiar usunięcia jest publikowany, gdy inżynierowie zamierzają domyślnie dezaktywować kod.
Znaczenie wycofywania i usuwania
Wycofywanie i usuwanie funkcji mają kluczowe znaczenie dla kondycji platformy internetowej. Dzięki temu Chrome może usuwać funkcje, które nie działają dobrze w przypadku użytkowników lub programistów stron internetowych, a także zmniejszać złożoność bazy kodu. Na przykład problemy z projektem AppCache zostały wykryte dopiero po użyciu tej funkcji w witrynach produkcyjnych w stabilnych przeglądarkach, a interfejs API został ostatecznie usunięty. Wycofywanie i usuwanie funkcji pomaga też zachować bezpieczeństwo Chrome, ponieważ zmniejsza potencjalne wektory ataku.
Podobnie jak w przypadku wszystkich intencji Blink, zespół Chrome dokłada wszelkich starań, aby podejmować decyzje z należytą starannością. Przed podjęciem decyzji sprawdzają wskaźniki wykorzystania funkcji i inne dane. Próg usuwania funkcji jest bardzo wysoki. Funkcja zostanie usunięta tylko wtedy, gdy korzysta z niej bardzo mały odsetek użytkowników i gdy dostępne są lepsze alternatywy.
Bądź na bieżąco z Blink Intents
Postępy prac nad funkcjami możesz śledzić na stronie Chrome Status, gdzie możesz subskrybować aktualizacje, zgłaszać błędy i znajdować inne zasoby.
Aby śledzić nowe funkcje, obserwuj bloga Chromium i dołącz do grupy dyskusyjnej blink-dev. Grupa może generować wiele e-maili, więc możesz woleć subskrybować pojedynczą intencję. Możesz wyświetlić arkusz kalkulacyjny z intencjami Blink.
Jeśli bardzo lubisz Blink Intents, możesz nawet skorzystać z automatycznych usług śledzenia Blink Intent.
Dalsze kroki
Więcej informacji znajdziesz w artykule Czym są kanały wersji Chrome?.