Я начинаю разрабатывать расширение для Google Chrome, и я быстро понял, что почти обязательно иметь какую-то модульность.
Тем не менее, я не уверен в том, что лучший способ продолжитьбыло бы.
В идеале, плагины должны быть достаточно простыми для создания и публикации / публикации, даже для неспециалистов (учитывая какой-то API), поэтому я бы предпочел, чтобы они не были другими расширениями Chrome (с передачей сообщений).и т. д.)
Я прочитал довольно много документов и до сих пор не нашел много полезной информации, поэтому любые идеи приветствуются
Обновлено
Извините, если я не прояснил себя настолько, насколько это возможно.Основные проблемы:
- Совместное использование дополнительного кода («плагинов») без изменения / обновления расширения.
- Разрешение использования пользовательского кода без публичного размещения (в частном порядке или в хранилище)и оценили?)
Хотя обе точки противоречат друг другу, все же вполне возможно реализовать разумным образом, если бы не модель безопасности, реализованная в расширениях Google ...
Вызов внешнего кода из расширения (сценария содержимого) не представляется возможным обычным способом, и ни один из них не осуществляет доступ к расширению из контекста веб-страницы.
Новое Обновлено
Недостаточно кофе в последнее время ... Надеюсь, это достаточно ясно, и я снова извиняюсь.
Я в основном делаю выбор из двух вариантов:
- Запустить новый код(из источника или URL-адреса) в контексте скрипта содержимого расширения (не знаю, как).
- Добавление нового кода в документ веб-страницы и реализация передачи сообщений - iЯ посмотрел в MessageEvent HTML5, и он будет работать, но с большим количеством дополнительной работы.
Спасибо за комментарии, я думаю, что это в основном покрыто:
- использовать прослушиватель на фоновой странице, который принимает запросы на скрипты (URL-адреса имеют x-origin)
- устанавливать соответствующие разрешения в манифесте ("tabs", "http:///")
- использовать localStorage для кэширования
использовать chrome.tabs.executeScript для запуска кода, как если бы он был частью расширения.
Разрешить пользователям добавлять новый код (в localStorage)
- содержит некий файл 'plugins.json' (описание, URL и т. Д.) Для публикации нового контента для всех пользователей