Основные понятия и архитектура расширения
В этой статье рассматриваются основные понятия о создании расширения 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. Отображение изображения во всплывающем окне.