Сервисы импорта Firefox WebExtension

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

Моя цель - найти объект окна в фоновом скрипте Firefox WebExtension.

Проблема, я не могу импортировать Services библиотека, чтобы использовать его для поиска window объект.

Два метода, которые я попробовал:

  1. Components.utils.import("resource://gre/modules/Services.jsm"); Дает предупреждение, что Components исключен, и ошибка: Components.utils не определено
  2. const { Cu } = require("chrome"); let Services = Cu.import("resource://gre/modules/Services.jsm"); Выдает ошибку, которая require не определено

Это фоновый скрипт, укажите мне правильное направление, как импортировать нужные библиотеки / интерфейсы, с которыми мне нужно работать?

1 ответ

Решение

Страница верхнего уровня MDN для надстроек, используемая для обзора различных типов расширений (поскольку в FF57 поддерживаются только расширения).

Components.utils.import

это для перезапускаемых /XUL (устаревших) расширений.

const {Cu} = require ("chrome");

это для расширений SDK.

Ни один из них не будет работать в расширениях.

В отличие от других типов расширений, веб-расширения являются ограничительными, они не предоставляют доступ к низкоуровневым API, которые вы можете найти по всей вики.

Так что придерживайтесь страниц, которые находятся в иерархии webextensions или стандартных веб-API, когда вы ищете документацию, относящуюся к этому типу расширения.

Другие вопросы по тегам