Как связаться с веб-расширением в не асинхронной функции js? - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь создать веб-расширение, которое фильтрует файлы cookie, к которым может получить доступ веб-сайт.Я обнаружил, что самый простой способ ограничить доступ через JS - переписать функцию получения.Мой код выглядит следующим образом:

var cookieDesc = Object.getOwnPropertyDescriptor(Document.prototype, 'cookie') || Object.getOwnPropertyDescriptor(HTMLDocument.prototype, 'cookie');
  if (cookieDesc && cookieDesc.configurable) {
    Object.defineProperty(document, 'cookie', {
      get: function() {
        // get information from content script here...
        return 'hello=world'
      }
    });
  }

Однако вместо того, чтобы возвращать "hello = world", я хочу вернуть фактические файлы cookie, которые должен видеть веб-сайт.Я не хочу сохранять ссылку на исходную функцию получения cookie, поскольку она может использоваться веб-сайтами для обхода моего фильтра.Поэтому мне нужно связаться со скриптом контента моего расширения, чтобы получить куки.runtime.sendMessage недоступно в Firefox для связи с веб-сайтами.Я попытался использовать window.postMessage, но не могу найти способ дождаться ответа.Функция getter должна возвращать строку, а не обещание, как в исходной функции.

Есть ли способ связаться со скриптом содержимого и затем вернуть строку?

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