Architektura aplikacji Chrome

Aplikacje Chrome ściśle integrują się z systemem operacyjnym użytkownika. Zostały zaprojektowane do działania poza kartą przeglądarki, dzięki czemu działają wydajnie w trybie offline i przy słabym połączeniu oraz mają znacznie mocniejsze funkcje niż w typowym środowisku przeglądania internetu. Kontener aplikacji, programowanie i modele zabezpieczeń obsługują te wymagania dotyczące aplikacji Chrome.

Model kontenera aplikacji

Kontener aplikacji opisuje wygląd i działanie aplikacji Chrome. Aplikacje Chrome wyglądają inaczej niż tradycyjne aplikacje internetowe, ponieważ kontener aplikacji nie zawiera żadnych tradycyjnych elementów interfejsu stron internetowych. Zawiera po prostu pusty, prostokątny obszar. Dzięki temu aplikacja może łączyć się z aplikacjami „natywnymi” w systemie i zapobiega ingerencji użytkownika w logikę aplikacji po ręcznej zmianie adresu URL.

Aplikacje Chrome są wczytywane inaczej niż aplikacje internetowe. Obie opcje wczytują ten sam typ treści: dokumenty HTML za pomocą CSS i JavaScriptu; z kolei aplikacja Chrome wczytuje się w kontenerze aplikacji, a nie na karcie przeglądarki. Kontener aplikacji musi też wczytywać główny dokument aplikacji Chrome ze źródła lokalnego. Powoduje to, że wszystkie Aplikacje Chrome działają w trybie offline przynajmniej do minimum i pozwalają egzekwować rygorystyczne środki bezpieczeństwa.

jak działa model kontenera aplikacji

Model programowania

Model programowania opisuje cykl życia i działanie okien aplikacji Chrome. Podobnie jak w przypadku aplikacji natywnych, celem tego modelu programowania jest zapewnienie użytkownikom i ich systemom pełnej kontroli nad cyklem życia aplikacji. Cykl życia aplikacji Chrome powinien być niezależny od działania okna przeglądarki czy połączenia sieciowego.

„Strona zdarzenia” zarządza cyklem życia aplikacji Chrome, reagując na gesty użytkownika i zdarzenia systemowe. Ta strona jest niewidoczna, istnieje tylko w tle i może zostać automatycznie zamknięta przez środowisko wykonawcze systemu. Kontroluje sposób otwierania i zamykania okien oraz uruchamiania i zamykania aplikacji. Aplikacja Chrome może mieć tylko jedną „stronę wydarzenia”.

Cykl życia aplikacji w skrócie

Szczegółowe instrukcje na temat korzystania z modelu programowania znajdziesz w artykule Zarządzanie cyklem życia aplikacji. Oto krótkie podsumowanie cyklu życia aplikacji Chrome na początek:

EtapPodsumowanie
InstalacjaUżytkownik decyduje się zainstalować aplikację i jawnie akceptuje jej uprawnienia.
UruchamianieStrona zdarzenia się wczytuje, uruchamia się zdarzenie „launch” i otwierają się strony aplikacji w oknach. Tworzysz okna, których wymaga aplikacja, a także jak wyglądają oraz jak komunikują się ze stroną wydarzenia i innymi oknami.
Zakończenie.Użytkownik może w każdej chwili zakończyć działanie aplikacji, a aplikacja może zostać szybko przywrócona do poprzedniego stanu. Masowanie danych chroni przed utratą danych.
AktualizujAplikacje można aktualizować w dowolnym momencie, ale kod uruchomionych aplikacji Chrome nie może zmieniać się w trakcie cyklu uruchamiania/zamykania.
OdinstalowanieUżytkownik może aktywnie odinstalowywać aplikacje. Po odinstalowaniu nie zostanie zachowany żaden uruchomiony kod ani prywatne dane.

Model zabezpieczeń

Model zabezpieczeń Aplikacji Chrome chroni użytkowników, zapewniając, że ich informacje są zarządzane w bezpieczny sposób. Sekcja Zgodność z CSP zawiera szczegółowe informacje o tym, jak zachować zgodność z zasadami dotyczącymi bezpieczeństwa treści. Ta zasada blokuje niebezpieczne skrypty, zmniejsza liczbę błędów typu cross-site scripting na swoim koncie i chroni użytkowników przed atakami typu „man in the middle”.

Wczytywanie strony głównej aplikacji Chrome lokalnie umożliwia wymuszenie stosowania bardziej rygorystycznych zabezpieczeń niż w przypadku internetu. Podobnie jak w przypadku rozszerzeń do Chrome użytkownicy muszą wyraźnie wyrazić zgodę na zaufanie aplikacji Chrome podczas instalacji i przyznać jej uprawnienia dostępu do swoich danych i korzystania z nich. Każdy interfejs API, którego używa Twoja aplikacja, ma własne uprawnienia. Model zabezpieczeń Aplikacji Chrome umożliwia też skonfigurowanie rozdzielenia uprawnień dla poszczególnych okien. Dzięki temu możesz zminimalizować w aplikacji kod, który ma dostęp do niebezpiecznych interfejsów API, i jednocześnie mieć możliwość ich używania.

Aplikacje Chrome ponownie korzystają z izolacji procesu rozszerzeń do Chrome, a także izolują pamięć masową i treści zewnętrzne. Każda aplikacja ma własny prywatny obszar do przechowywania danych innych aplikacji ani dane osobowe (np. pliki cookie) z witryn, z których korzystasz w przeglądarce. Wszystkie procesy zewnętrzne są oddzielone od aplikacji. Elementy iframe działają w tym samym procesie co strona otaczająca, więc można ich używać tylko do wczytywania innych stron aplikacji. Do umieszczania treści zewnętrznych możesz użyć tagu object. Treści te są uruchamiane w innym procesie niż aplikacja.