Я работал над плагином chrome для одного из облачных продуктов. Для Chrome мы использовали третьи частично JS-библиотеки, такие как BackboneJS и т. Д. Теперь мне нужно разработать расширение Firefox, я пытаюсь выяснить, сколько кода мы можем использовать повторно. По-видимому, проводя несколько часов с сайта Mozilla Developer, похоже, что для расширения Firefox мы должны использовать XUL для пользовательского интерфейса. Не уверен, можем ли мы использовать функции html и javascript из приложения Chrome для расширения Firefox, или каким будет подход для оценки усилий. Мое понимание заключается в том, что мы должны делать это с нуля, так как Chrome в FF у нас нет таких понятий, как справочная страница и т. Д.Реализация расширения Firefox и реализация плагина Chome
ответ
Существует ничего не присущего, что мешает вам реализовать интерфейс в HTML/JS. Возможно, вам придется обернуть его в XUL <iframe>
или <browser>
(потенциально другие элементы) в пределах <window>
(Firefox откроет чистый HTML).
Ключевая проблема, связанная с расширением, заключается в том, что они выполняются в контексте повышенной безопасности и веб-страницах. Таким образом, они могут влиять на гораздо больший диапазон вещей в браузере и в системе пользователей. Когда используются <iframe>
или <browser>
, они имеют свойство type
, которое по умолчанию имеет содержимое, работающее в повышенном контексте безопасности. Значение по умолчанию: type="chrome"
, что делает открытый контент в расширенном контексте безопасности расширения.
Дополнительные документы от MDN относительно проблем безопасности с содержанием открытия в <iframe>
или <browser>
элементов, которые не получены из дистрибутива расширения: Security best practices in extensions и Displaying web content in an extension without security issues
Как к вашему JavaScript: Вы должны быть в состоянии повторно использовать значительное его количество. Как минимум, логика. Очевидно, что будут более существенные различия в том, как вы достигаете взаимодействия с аспектами браузеров, которые не охвачены стандартными документами (например, DOM-манипуляция должна быть очень близкой, как и для веб-страницы JS).
- 1. Реализация системы плагина Javascript для расширений Firefox
- 2. Реализация разработки плагина Eclipse
- 3. Методы расширения и реализация GetBytes
- 4. Реализация плагина prettyPhoto jQuery
- 5. Реализация плагина в PhoneGap
- 6. Реализация общего расширения
- 7. Реализация встроенного расширения
- 8. Где реализация расширения класса?
- 9. Реализация WebSocket Mozilla Firefox
- 10. CakePHP- cakeDC реализация плагина поиска
- 11. Реализация расширения Лапласа в Фортране
- 12. Реализация ConvertAll как метод расширения
- 13. Реализация толкателя внутри расширения хрома
- 14. Реализация IEndpointBehavior для расширения привязок
- 15. Недавний firefox и webshim реализация деталей
- 16. bxSlider реализация плагина jquery в Wordpress
- 17. jQuery реализация плагина vTicker в Rails 3
- 18. Реализация простого плагина Java-писателя для collectd
- 19. Реализация простой javascript карусели (без плагина)
- 20. Реализация AppContext как плагина для воспроизведения
- 21. Лучшая практика - реализация интерфейса как плагина
- 22. JAX-RS реализация расширения линии связи/элемента?
- 23. реализация кнопки включения/выключения расширения Chrome
- 24. Реализация интерфейса представления расширения Windows Explorer
- 25. Реализация Где) метод расширения (на System.Collections.Generic.SortedList
- 26. Реализация метода расширения WebRequest.GetResponseAsync с поддержкой CancellationToken
- 27. Eclipse RCP - реализация точки расширения. Где оценивать?
- 28. Реализация (^)
- 29. Внереализационная реализация иерархического раскрывающегося списка для Firefox
- 30. Конкретная реализация базового базового класса и метода расширения
Чтобы быть более конкретным, когда я сравниваю архитектуру расширения Chrome с расширением Firefox, я не нашел справочную страницу в эквиваленте Chrome в Firefox. – sidd
Существует множество методов, которые можно использовать для выполнения сценария, который всегда работает. Как это сделать, зависит от множества соображений. Как минимум, что [тип надстройки] (https://developer.mozilla.org/en-US/Add-ons) вы делаете ([Оверлей] (https://developer.mozilla.org/en -US/Add-ons/Overlay_Extensions), [Bootstrapped] (https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions) или [Add-on SDK] (https: //developer.mozilla .org/en-US/Add-ons/SDK)) и то, что вы хотите, чтобы код выполнял. – Makyen
Я следую шагам Add-on SDK для создания расширения. – sidd