расширение Google Chrome - добавление модулей / плагинов - PullRequest
1 голос
/ 20 мая 2011

Я начинаю разрабатывать расширение для Google Chrome, и я быстро понял, что почти обязательно иметь какую-то модульность.

Тем не менее, я не уверен в том, что лучший способ продолжитьбыло бы.

В идеале, плагины должны быть достаточно простыми для создания и публикации / публикации, даже для неспециалистов (учитывая какой-то API), поэтому я бы предпочел, чтобы они не были другими расширениями Chrome (с передачей сообщений).и т. д.)

Я прочитал довольно много документов и до сих пор не нашел много полезной информации, поэтому любые идеи приветствуются

Обновлено

Извините, если я не прояснил себя настолько, насколько это возможно.Основные проблемы:

  1. Совместное использование дополнительного кода («плагинов») без изменения / обновления расширения.
  2. Разрешение использования пользовательского кода без публичного размещения (в частном порядке или в хранилище)и оценили?)

Хотя обе точки противоречат друг другу, все же вполне возможно реализовать разумным образом, если бы не модель безопасности, реализованная в расширениях Google ...

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

Новое Обновлено

Недостаточно кофе в последнее время ... Надеюсь, это достаточно ясно, и я снова извиняюсь.

Я в основном делаю выбор из двух вариантов:

  1. Запустить новый код(из источника или URL-адреса) в контексте скрипта содержимого расширения (не знаю, как).
  2. Добавление нового кода в документ веб-страницы и реализация передачи сообщений - iЯ посмотрел в MessageEvent HTML5, и он будет работать, но с большим количеством дополнительной работы.

Спасибо за комментарии, я думаю, что это в основном покрыто:

  • использовать прослушиватель на фоновой странице, который принимает запросы на скрипты (URL-адреса имеют x-origin)
  • устанавливать соответствующие разрешения в манифесте ("tabs", "http:///")
  • использовать localStorage для кэширования
  • использовать chrome.tabs.executeScript для запуска кода, как если бы он был частью расширения.

  • Разрешить пользователям добавлять новый код (в localStorage)

  • содержит некий файл 'plugins.json' (описание, URL и т. Д.) Для публикации нового контента для всех пользователей
...