Концепции и архитектура расширения

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

Расширение Microsoft Edge — это небольшое приложение, которое пользователи могут выбрать и которое добавляет или изменяет функции 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 . Когда пользователь устанавливает расширение, отображается информация о разрешениях, необходимых для этого расширения. В зависимости от типа требуемого разрешения расширение может извлекать и использовать сведения из браузера.

См. также