Почему необязательное предоставление разрешений разрешено пользователем, но не обнаружено в функции chrome.permissions.contains? - PullRequest
0 голосов
/ 16 марта 2019

Я разрабатываю расширение для Chrome. Что странно, так это то, что он отлично работает на локальном компьютере (используя способ «Загрузить распакованную папку»).

Однако, когда я отправил его в Интернет-магазин Chrome, он не работает.

Вот подробности:

В manifest.json:

"optional_permissions": [ "\u003Call_urls"],
"permissions": [ "activeTab", "contextMenus" ],

In option.js:

// First of all, check whether I've got the permissions
chrome.permissions.contains({
  origins: ['\u003Call_urls>']
}, function(result) {
  if (result) {
    // If I have the permission, remove the "grant" button.
    $('#grant_button').remove();
  } else {
    // If I don't have the permission, let the "grant" button be able to invoke a permission request
    $('#grant_button').click(function(){
      chrome.permissions.request({
        origins: ['\u003Call_urls>']
      }, function(granted) {}
    });
  }
});

Странно, что все отлично работает в локальном режиме:

  1. Кнопка предоставления разрешена сначала
  2. Когда я нажимаю кнопку предоставления, появляется окно подтверждения разрешения.
  3. Когда я нажимаю кнопку «Разрешить» и обновляю страницу параметров, кнопка предоставления пропадает.

Но в выпущенной версии в Chrome Web Store:

  1. Кнопка предоставления разрешена сначала
  2. Когда я нажимаю кнопку предоставления, появляется окно подтверждения разрешения.
  3. Когда я нажимаю кнопку «Разрешить» и обновляю свою страницу параметров, кнопка предоставления остается ВСЕ ЕЩЕ. И chrome.permissions.contains вернул ложь. И нет возможности снова позвонить chrome.permissions.request.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...