Архитектура приложений Chrome

Приложения Chrome тесно интегрируются с операционной системой пользователя. Они предназначены для запуска за пределами вкладок браузера, для надежной работы в автономном режиме и в сценариях с плохим подключением и обладают гораздо более мощными возможностями, чем доступны в типичной среде просмотра веб-страниц. Контейнер приложения, модели программирования и безопасности соответствуют этим требованиям приложений Chrome.

Модель контейнера приложения

Контейнер приложения описывает внешний вид и поведение загрузки приложений Chrome. Приложения Chrome выглядят иначе, чем традиционные веб-приложения, поскольку в контейнере приложения не отображаются традиционные элементы управления пользовательским интерфейсом веб-страницы; он просто содержит пустую прямоугольную область. Это позволяет приложению сочетаться с «родными» приложениями в системе и не позволяет пользователю «вмешиваться» в логику приложения, изменяя URL-адрес вручную.

Приложения Chrome загружаются иначе, чем веб-приложения. Оба загружают контент одного и того же типа: HTML-документы с CSS и JavaScript; однако приложение Chrome загружается в контейнер приложения, а не на вкладку браузера. Кроме того, контейнер приложения должен загрузить основной документ приложения Chrome из локального источника. Это заставляет все приложения Chrome быть хотя бы минимально функциональными в автономном режиме и дает возможность применять более строгие меры безопасности.

как работает модель контейнера приложения

Модель программирования

Модель программирования описывает жизненный цикл и поведение окон приложений Chrome. Как и в случае с собственными приложениями, цель этой модели программирования — предоставить пользователям и их системам полный контроль над жизненным циклом приложения. Жизненный цикл приложения Chrome не должен зависеть от поведения окна браузера или сетевого подключения.

«Страница событий» управляет жизненным циклом приложения Chrome, реагируя на жесты пользователя и системные события. Эта страница невидима, существует только в фоновом режиме и может быть автоматически закрыта во время работы системы. Он контролирует, как открываются и закрываются окна, а также когда приложение запускается или завершается. Для приложения Chrome может быть только одна «страница события».

Краткий обзор жизненного цикла приложения

Подробные инструкции по использованию модели программирования см. в разделе «Управление жизненным циклом приложения ». Вот краткое описание жизненного цикла приложения Chrome, которое поможет вам начать:

Этап Краткое содержание
Монтаж Пользователь решает установить приложение и явно принимает разрешения .
Запускать Страница события загружается, срабатывает событие запуска, и страницы приложения открываются в Windows. Вы создаете окна , необходимые вашему приложению, их внешний вид и способ взаимодействия со страницей события и другими окнами.
Прекращение действия Пользователь может закрыть приложения в любое время, и приложение можно быстро восстановить в предыдущее состояние. Хранение данных защищает от потери данных.
Обновлять Приложения можно обновить в любое время; однако код, который запускает приложение Chrome, не может измениться во время цикла запуска/завершения.
Удаление Пользователь может активно удалять приложения. При удалении не остается никакого исполняемого кода или личных данных.

Модель безопасности

Модель безопасности приложений Chrome защищает пользователей, обеспечивая безопасное и надежное управление их информацией. Соответствие CSP включает подробную информацию о том, как соблюдать политику безопасности контента. Эта политика блокирует опасные сценарии, уменьшая количество ошибок межсайтового сценария и защищая пользователей от атак «человек посередине».

Локальная загрузка главной страницы приложения Chrome обеспечивает более строгую безопасность, чем в Интернете. Как и в случае с расширениями Chrome, пользователи должны явно согласиться доверять приложению Chrome при установке; они предоставляют приложению разрешение на доступ и использование своих данных. Каждый API, который использует ваше приложение, будет иметь собственное разрешение. Модель безопасности приложений Chrome также обеспечивает возможность настройки разделения привилегий для каждого окна. Это позволяет вам свести к минимуму код в вашем приложении, имеющий доступ к опасным API, но при этом иметь возможность их использовать.

Приложения Chrome повторно используют изоляцию процесса расширения Chrome и делают еще один шаг вперед, изолируя хранилище и внешний контент. Каждое приложение имеет свою собственную область хранения и не имеет доступа к хранилищу другого приложения или личным данным (например, файлам cookie) веб-сайтов, которые вы используете в своем браузере. Все внешние процессы изолированы от приложения. Поскольку iframe выполняются в том же процессе, что и окружающая страница, их можно использовать только для загрузки других страниц приложения. Вы можете использовать тег object для встраивания внешнего контента ; этот контент выполняется в отдельном от приложения процессе.