Cykl aktualizacji rozszerzeń do Chrome

Ten przewodnik zawiera szczegółowy opis całego procesu aktualizacji rozszerzenia, w tym standardowego procesu aktualizacji, ręcznego zastępowania, interfejsów API dla programistów i znaczącego wpływu zasad przedsiębiorstwa.

Standardowy cykl aktualizacji

Chrome automatycznie aktualizuje zainstalowane rozszerzenia do najnowszych wersji, dzięki czemu użytkownicy mają dostęp do nowych funkcji i poprawek zabezpieczeń. Domyślnie Chrome sprawdza dostępność aktualizacji rozszerzeń podczas uruchamiania i co kilka godzin.

Kluczowym aspektem procesu aktualizacji jest to, że aktualizacja jest instalowana tylko wtedy, gdy rozszerzenie jest uznawane za nieaktywne. Aby rozszerzenie było bezczynne, jego komponenty nie mogą być aktywnie używane. W kontekście platformy Manifest V3 oznacza to przede wszystkim, że skrypt service worker rozszerzenia nie działa. Service worker jest zaprojektowany tak, aby działać na podstawie zdarzeń i kończyć działanie po okresie braku aktywności. Ponadto otwarte strony rozszerzeń, takie jak panel boczny, wyskakujące okienko lub strona opcji, uniemożliwiają uznanie rozszerzenia za nieaktywne. Aktywny skrypt treści nie wpływa na to, czy rozszerzenie jest uznawane za nieaktywne.

To wymaganie dotyczące braku aktywności może powodować opóźnienia w aktualizacjach często używanych rozszerzeń. Jeśli proces roboczy usługi rozszerzenia jest stale wywoływany przez zdarzenia, może nigdy nie osiągnąć stanu bezczynności, a aktualizacja zostanie odroczona do czasu ponownego uruchomienia przeglądarki.

Monitorowanie dystrybucji aktualizacji rozszerzeń

Aby dowiedzieć się, ilu użytkowników korzysta z najnowszej wersji rozszerzenia, użyj panelu analitycznego Chrome Web Store. Otwórz panel dewelopera Chrome Web Store i wybierz jedno z opublikowanych rozszerzeń. Na bocznym pasku nawigacyjnym kliknij Analytics –> Użytkownicy i przewiń w dół do wykresu dziennej liczby użytkowników według produktu. Tutaj możesz sprawdzić, ilu użytkowników korzysta już z najnowszej wersji.

Zrzut ekranu pokazujący dzienną liczbę użytkowników przykładowego rozszerzenia według jego wersji.

Ręczne aktualizowanie rozszerzeń

Jeśli użytkownicy chcą od razu otrzymywać najnowsze aktualizacje, Chrome udostępnia mechanizm aktualizacji ręcznej. Jest to też przydatne narzędzie podczas testowania aktualizacji.

Poszczególni użytkownicy mogą wymusić aktualizację wszystkich zainstalowanych rozszerzeń, wykonując te czynności:

  1. Otwórz chrome://extensions.
  2. Włącz Tryb programisty, korzystając z przełącznika w prawym górnym rogu.
  3. Kliknij wyświetlony przycisk Aktualizuj.

Spowoduje to natychmiastowe pobranie przez Chrome najnowszych wersji wszystkich zainstalowanych rozszerzeń ze sklepu Chrome Web Store.

Sprawdzanie aktualizacji z poziomu rozszerzenia

Interfejs chrome.runtime API udostępnia rozszerzeniom narzędzia do korzystania z mechanizmu aktualizacji.

Sprawdzanie dostępności aktualizacji na żądanie

Funkcja chrome.runtime.requestUpdateCheck() umożliwia rozszerzeniu programowe inicjowanie sprawdzania dostępności aktualizacji. Jest to szczególnie przydatne w przypadku rozszerzeń, które są krytycznie zależne od usługi backendu i muszą mieć pewność, że korzystają z najnowszej zgodnej wersji.

Gdy ta funkcja jest wywoływana, Chrome wysyła do Chrome Web Store zapytanie o nową wersję i pobiera ją, jeśli jest dostępna. Funkcja wywołania zwrotnego otrzymuje stan wskazujący wynik weryfikacji.

Sprawdzanie dostępności aktualizacji

Zdarzenie chrome.runtime.onUpdateAvailable jest wywoływane, gdy aktualizacja została pobrana i jest gotowa do zainstalowania. To zdarzenie zawiera w swoich szczegółach nowy numer wersji. Nasłuchując tego zdarzenia, rozszerzenie może określić, czy dostępna jest aktualizacja, i w razie potrzeby przejść w stan bezczynności lub spowodować ponowne załadowanie za pomocą funkcji chrome.runtime.reload().

Poniższy kod przedstawia podstawowy wzorzec implementacji:

W wyjątkowych przypadkach można wymusić sprawdzenie przez przeglądarkę, czy jest dostępna aktualizacja rozszerzenia, za pomocą funkcji chrome.runtime.requestUpdateCheck():

Warto pamiętać, że częste wywołania funkcji requestUpdateCheck() będą ograniczane przez przeglądarkę. Używaj tej funkcji tylko wtedy, gdy wiesz, że aktualizacja jest dostępna. Na przykład gdy zaktualizowany backend wymaga nowszej wersji rozszerzenia.

Kontrolowanie aktualizacji za pomocą zasad korporacyjnych

W zarządzanych środowiskach firmowych standardowy proces aktualizacji rozszerzeń podlega zasadom ustawionym przez administratorów systemu. Te zasady mogą zastępować domyślne działanie, aby zapewnić bezpieczeństwo i stabilność.

Wymuszanie instalacji

Zasada ExtensionInstallForcelist umożliwia administratorom dyskretne instalowanie określonych rozszerzeń na urządzeniach użytkowników. Użytkownicy nie mogą wyłączać ani odinstalowywać rozszerzeń zainstalowanych za pomocą tych zasad.

Przypinanie wersji rozszerzenia

Przedsiębiorstwa często muszą jednak kontrolować dokładną wersję używanego rozszerzenia, aby zapewnić zgodność z innym oprogramowaniem. W tym celu administratorzy mogą „przypiąć” rozszerzenie do określonej wersji. Można to zrobić w konsoli administracyjnej Google, w której administrator może wybrać wymaganą wersję dla jednostki organizacyjnej. Gdy rozszerzenie jest przypięte, Chrome nie będzie go aktualizować do wersji wyższej niż określona.

Zastępowanie źródła aktualizacji

Firmy mogą hostować własne wersje rozwidlone rozszerzeń ze względów bezpieczeństwa lub w celu dostosowania ich do swoich potrzeb. o Wymusza to pobieranie rozszerzenia i jego aktualizacji z określonego adresu URL, a nie ze sklepu Chrome Web Store.

Ustawianie minimalnej wersji Chrome

W pliku manifestu rozszerzenia możesz określić minimum_chrome_version. Dzięki temu rozszerzenie będzie instalowane tylko w wersjach Chrome, które obsługują używane przez nie interfejsy API.

W przypadku nowych instalacji sklep Chrome Web Store uniemożliwi użytkownikom starszych wersji Chrome zainstalowanie rozszerzenia, wyświetlając komunikat „Nie jest zgodne”. Jeśli w przypadku dotychczasowych użytkowników aktualizacja rozszerzenia zwiększy wartość minimum_chrome_version do wersji wyższej niż zainstalowana wersja Chrome, użytkownicy przestaną otrzymywać aktualizacje tego rozszerzenia. Deweloperzy powinni o tym pamiętać i informować użytkowników, jeśli problem może dotyczyć znacznej części ich bazy użytkowników.