Ошибка: Политика безопасности контента: настройки страницы заблокировали загрузку ресурса

#javascript #html #firefox-addon-webextensions

#javascript #HTML #firefox-дополнение-webextensions

Вопрос:

Я пытался перенести простую программу, которую я создал на jQuery / HTML, в Firefox WebExtension для упрощения развертывания. Ошибка, которую я получаю, заключается в:

 Content Security Policy: The page’s settings blocked the loading of a resource at https://code.jquery.com/jquery-1.12.4.js (“script-src moz-extension://ef8f1295-1912-4912-ab2e-121053b6781a”).
  

Я уверен, что я просто неправильно использую файл manifest.json, но, хоть убейте, я не знаю, где:

 {
  "description": "Makes tasks from different underwriters uniform",
  "manifest_version": 2,
  "name": "Task Creator",
  "version": ".5",
  "permissions": [
    "http://*/*", "tabs", "https://*/*"
  ],

  "icons": {
    "48": "icons/page-48.png"
  },
  "web_accessible_resources": [
    "style/popUpStyle.css",
    "script/popUpTask.js",
    "script/logicTaskFiller.js",
    "js/autosize.js",
    "style/https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css",
    "js/https://code.jquery.com/jquery-1.12.4.js",
    "js/https://code.jquery.com/ui/1.12.1/jquery-ui.js"
  ],

  "background": {
    "scripts": ["background.js"]
  },

  "browser_action": {
    "default_icon": "icons/page-32.png"
  }
}
  

Комментарии:

1. js/https://code.jquery.com/jquery-1.12.4.js указан неверный путь к файлу. Используйте js/jquery-1.12.4.js и убедитесь, что файл есть.

2. Могу ли я не загружать jquery с внешнего веб-сайта?

3. Вы можете сделать это вручную, но не через manifest.json

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

5. «Могу ли я не загружать jquery с внешнего веб-сайта?» Вы можете. Должны ли вы? В чем улучшение?

Ответ №1:

По умолчанию расширения не могут загружать скрипты или другие ресурсы объекта из Интернета. Все содержимое CSS и JavaScript, используемое вашим расширением, должно быть частью пакета расширения.

(Эта документация из Chrome, но точно такие же политики применяются к Firefox WebExtensions.)

Можно несколько ослабить эти ограничения, но обычно этого следует избегать — загрузка ресурсов с удаленного сервера приведет к сбою в работе вашего расширения, если у пользователя нет доступа в Интернет или если он находится за ограничительным брандмауэром. Кроме того, addons.mozilla.org не будут приниматься дополнения, которые выполняют Javascript, размещенный удаленно.

Комментарии:

1. Как указано, это неправильно, поскольку вы можете ослабить политику.

2. @Xan, Хотя вы можете технически ослабить политику, если вы собираетесь размещать WebExtension на AMO («обычный» метод распространения расширений Firefox), любой используемый вами JavaScript должен быть включен в пакет расширения. Любые такие распространенные библиотеки должны точно соответствовать копиям, доступным для загрузки. То, что они совпадают, будет проверено в процессе проверки. Если вы загружаете JavaScript с внешнего ресурса, вы вряд ли пройдете проверку на хостинг на AMO.

3. Я не согласен. Но исходное утверждение по-прежнему было неверным, и теперь исправлено.

4. @Makyen Это тоже хороший момент! Я добавил примечание об этом.