Ошибка Chrome Uncaught: SECURITY_ERR: DOM Exception 18 при попытке XHR файла с расширением Chrome - PullRequest
1 голос
/ 02 апреля 2012

Я пытаюсь запросить файл манифеста расширений Chrome (мое собственное расширение)

// MAKE MANIFEST FILE AVAILABLE
chrome.manifest = (function() {
    var manifestObject = false;
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            manifestObject = JSON.parse(xhr.responseText);
        }
    };
    xhr.open("GET", chrome.extension.getURL('/manifest.json'), false);
    try {
        xhr.send();
    } catch(e) {
        log('Couldn\'t load manifest.json');
    }
    return manifestObject;
})();

но я получаю ошибку:

Uncaught Error: SECURITY_ERR: DOM Exception 18 (анонимно функция) cm_background.js: 46 (анонимная функция)

строка 46, являющаяся xhr.open("GET", chrome.extension.getURL('/manifest.json'), false);

Какой должна быть соответствующая манифестная политика безопасности, чтобы позволить мне сделать это, или альтернативный безопасный способ?

Обновление

Файл манифеста

{
  "manifest_version": 2,
  "name": "A plugin",
  "version":"1.3.6",
  "background": {
    "page":"cm_background.html"
  },
  "page_action": {
    "default_icon": "logo.png",
    "default_title": "A plugin",
    "default_popup": "cm_popup.html"
  },
  "content_scripts": [
    {
      "matches": ["http://mail.google.com/*", "https://mail.google.com/*"],
      "js": ["jquery.js",
             "underscore.js",
             "sha256.js",
             "utils.js",
             "cm_content_script.js",
             "cm_content_ui_control.js",
             "cm_first_install.js"]
    }
  ],
  "permissions" : [
    "tabs",
    "http://mail.google.com/*",
    "https://mail.google.com/*",
    "http://*/*",
    "https://*/*",
    "chrome-extension://*/*"
  ],
  "web_accessible_resources": [
    "manifest.json",
    "cm_first_install.js",
    "jquery.js",
    "cm_signature_editor.css",
    "cm_signature_editor.html"
  ],
  "content_security_policy": "default-src 'self'; style-src 'self' 'unsafe-inline'; img-src *;"
}

1 Ответ

1 голос
/ 03 апреля 2012

Предоставляет ли этот метод необходимую вам информацию?

chrome.app.getDetails()

Похоже, что это не документировано в API, но возвращает большую часть данных из манифеста.

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