модуль отладки не работает на странице событий после включения разрешения «хранилище» - PullRequest
0 голосов
/ 16 мая 2018

У меня очень простое расширение Chrome со страницей событий, которое использует модуль debug :

localStorage.debug = '*';

var debug = require('debug')('test');
debug('Test message');

console.log('debug:', localStorage.debug);
console.log('enabled:', debug.enabled);

В моем манифесте у меня есть:

"permissions": ["storage"],
"background": {
  "scripts": [
    "main/build.js"
  ]
},

Когда я проверяю страницу события, вывод будет:

debug: *
enabled: false

Однако, если я изменю разрешения на:

"permissions": []

И перезагрузим расширение, вывод будет:

test Test message +0ms
debug: *
enabled: true

Почему это происходит?


Я создал архив с расширением.Не стесняйтесь извлечь его и загрузить расширение как распакованное в Chrome, чтобы увидеть проблему самостоятельно.

1 Ответ

0 голосов
/ 16 мая 2018

После поиска исходного кода модуля отладки в build.js я обнаружил:

exports.storage = 'undefined' != typeof chrome
               && 'undefined' != typeof chrome.storage
                  ? chrome.storage.local
                  : localstorage();

Так что, очевидно, он обнаруживает, доступен ли chrome.storage.local, и использует it .В репозитории GitHub модуля есть проблема .

Однако chrome.storage.local является асинхронным, и модуль, похоже, использует его синхронно, поэтому он не 't работа.

Оказывается, ошибка в модуле отладки.

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