Основные понятия и архитектура расширения

В этой статье рассматриваются основные понятия о создании расширения Microsoft Edge. Следуйте инструкциям, чтобы понять, как работают браузеры с несколькими вкладками.

Расширение Microsoft Edge — это небольшое приложение, в которое пользователи могут согласиться, которое добавляет или изменяет функции Microsoft Edge для предоставления специализированного интерфейса или функции, важных для целевой аудитории. Общие сведения см. в статье Общие сведения о расширениях Microsoft Edge.

Узнайте, как работают браузеры

В следующем списке приведены полезные сведения, которые необходимо понять перед созданием расширения.

Вкладки браузера — это изолированные потоки

Каждая вкладка браузера изолирована от всех остальных вкладок. Каждая вкладка выполняется в отдельном потоке, изолированном от других вкладок и потоков браузера.

Один поток на вкладку браузера

Каждая вкладка обрабатывает один запрос GET.

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

Обмен данными между каждой вкладкой и удаленным сервером

Обмен данными происходит между каждой вкладкой и удаленным сервером. Каждая вкладка выполняется в изолированной среде. Каждая вкладка по-прежнему подключена к Интернету, но изолирована от других вкладок. Вкладка может запустить JavaScript для взаимодействия с сервером. Сервер является сервером-источником для первого запроса GET, который был введен в строку URL-адреса вкладки.

Модель коммуникации

Модель расширения использует другую модель взаимодействия. Как и на странице вкладки, расширение выполняется в отдельном потоке, изолированном от других потоков страницы вкладки. Вкладка отправляет один запрос GET на удаленные серверы, а затем отрисовывает страницу. Однако расширение работает аналогично удаленному серверу. При установке расширения в браузере создается автономный веб-сервер в браузере. Расширение изолировано от всех страниц вкладок.

Расширения используют другую модель взаимодействия

Архитектура расширения

В следующем списке приведены полезные сведения, связанные с архитектурой расширения.

Пакет веб-сервера расширений

Расширение — это пакет веб-ресурсов. Веб-ресурсы похожи на другие ресурсы, которые вы (веб-разработчик) публикуете на веб-серверах. Веб-ресурсы объединяются в ZIP-файл при создании расширения.

ZIP-файл содержит файлы HTML, CSS, JavaScript и изображений. В корневой папке ZIP-файла требуется еще один файл. Другой файл — это файл манифеста с именем manifest.json. Файл манифеста является схемой расширения и включает версию расширения, заголовок, разрешения, необходимые для запуска расширения, и т. д.

Запуск сервера расширений

Веб-серверы содержат ваш веб-пакет. Браузер переходит по URL-адресам на сервере и загружает файл для отрисовки в браузере. Браузер выполняет навигацию с помощью сертификатов, файлов конфигурации и т. д. index.html Если указан файл, он хранится в специальном расположении на веб-сервере.

При использовании расширения страница вкладки браузера попадает в веб-пакет расширения с помощью среды выполнения расширения. Среда выполнения расширения обслуживает файлы из URL-адреса extension://{some-long-unique-identifier}/index.html, где {some-long-unique-identifier} — уникальный идентификатор, назначенный расширению во время установки. Каждое расширение использует свой уникальный идентификатор. Каждый идентификатор указывает на веб-пакет, установленный в браузере.

Взаимодействие с вкладками и панелью инструментов браузера

Расширение может взаимодействовать с вкладками и панелью инструментов браузера. Расширение может взаимодействовать с панелью инструментов браузера. Каждое расширение управляет запущенными страницами вкладок в отдельных потоках, а управление DOM на каждой странице вкладки изолировано. Расширение использует API расширений для обмена данными между расширением и страницами вкладок. API расширений предоставляет дополнительные возможности, включая управление уведомлениями, управление хранилищем и т. д.

Как и веб-серверы, расширение ожидает уведомлений при открытии браузера. Страницы расширений и вкладок выполняются в потоках, изолированных друг от друга. Чтобы разрешить расширению работать с любой вкладкой, используйте API расширений и задайте разрешения в файле манифеста.

Согласие на получение разрешений во время установки

Расширение предоставляет разрешения на включение во время установки. Разрешения расширения указываются manifest.json в файле. Когда пользователь устанавливает расширение, отображаются сведения о разрешениях, необходимых для расширения. В зависимости от типа необходимого разрешения расширение может извлекать и использовать сведения из браузера.

Дальнейшие действия

Сведения о начале работы с расширением см. в руководстве по созданию расширения, часть 1.