Chrome расширение, которое взаимодействует с несколькими вкладками одновременно - PullRequest
0 голосов
/ 18 июня 2020

Мне не удается настроить расширение chrome для одновременной работы с несколькими вкладками. Общий поток моего расширения:

Фоновый скрипт открывает новое окно в начале, где находится расширение js.

  1. Расширение, чем вставляет файл js в активной вкладке браузера через executeScript api
  2. В своем обратном вызове отправляет сообщение на эту же вкладку, с помощью которого мой код js выполняет операции с DOM вкладки
  3. активная вкладка отправляет сообщение на вкладку расширения
  4. расширение изменяет адрес активной вкладки, снова через executeScript
  5. фоновый скрипт прослушивает tabs.onUpdate, чтобы определить, когда адрес страницы был изменен завершенным (статус === 'complete'), чтобы вставить js в активную вкладку браузера.

Шаги 2-5 go до тех пор, пока не будут выполнены заданные критерии, определенные в пользовательском интерфейсе вкладки расширения, и процесс остановится. Это отлично работает, но мне нужно использовать это, чтобы это происходило одновременно на нескольких вкладках.

Первая идея, которая появляется, - это создать несколько вкладок с использованием tabs.create api и при условии, что просто пропустите соответствующую вкладку идентификаторы в потоке выше - будет работать. Но это не так. В простейшем сценарии создания только 2 вкладок, 2 изменяют адрес в начале, но первая вкладка делает это только один раз. Процесс продолжается только со второй вкладкой.

Есть ли врожденная проблема с описанным выше потоком и «инфраструктурой» расширения, которая не может поддерживать такое поведение? Мне не хватает использования web workers в фоновом скрипте - потому что он синхронизирует прослушивание нескольких вкладок, отправляющих ему сообщения?

Любые указания будут очень признательны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...