Расширение: Использовать runtime.sendMessage / port.postMessage только с разрешением activeTab? - PullRequest
0 голосов
/ 20 февраля 2020

Я читаю о передаче сообщений между расширением и веб-страницей, и у меня есть вопрос о разрешениях.

Мой пример использования: мне нужно общаться со всеми веб-страницами, но только активный. На веб-странице, когда пользователь нажимает кнопку «[Connect with my Extension]», он отправляет сообщение на добавочный номер. Что я делаю сейчас, так это вставляю скрипт content_script во все веб-страницы:

// manifest.json snippet

  "permissions": ["storage"],
  "content_scripts": [{
    "js": ["content.js"],
    "matches": ["http://*/*", "https://*/*"],
    "run_at": "document_start"
  }],

и content.js делает chrome.runtime.sendMessage / chrome.runtime.onMessage с фоном. Это работает, но когда я публикую sh мое расширение, Chrome говорит:

Из-за следующей проблемы ваше расширение может потребовать углубленного просмотра:

  • Широкие разрешения хоста

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

Разрешение activeTab позволяет получить доступ к вкладке в ответ на явный жест пользователя.

{   ...   "permissions": ["activeTab"] }

Мой вопрос: есть ли способ достичь того, что я хочу, используя только activeTab, как подсказывает Chrome?

Мое первоначальное понимание - НЕТ. activeTab активируется только для определенных c пользовательских взаимодействий , тогда как мне нужно было бы активировать его по нажатию кнопки на веб-странице. Так что моя единственная надежда - бороться с «подробными обзорами» Chrome. Это правильно?

Спасибо.

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