2014-09-23 3 views
2

Я работал над плагином chrome для одного из облачных продуктов. Для Chrome мы использовали третьи частично JS-библиотеки, такие как BackboneJS и т. Д. Теперь мне нужно разработать расширение Firefox, я пытаюсь выяснить, сколько кода мы можем использовать повторно. По-видимому, проводя несколько часов с сайта Mozilla Developer, похоже, что для расширения Firefox мы должны использовать XUL для пользовательского интерфейса. Не уверен, можем ли мы использовать функции html и javascript из приложения Chrome для расширения Firefox, или каким будет подход для оценки усилий. Мое понимание заключается в том, что мы должны делать это с нуля, так как Chrome в FF у нас нет таких понятий, как справочная страница и т. Д.Реализация расширения Firefox и реализация плагина Chome

ответ

1

Существует ничего не присущего, что мешает вам реализовать интерфейс в 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).

+0

Чтобы быть более конкретным, когда я сравниваю архитектуру расширения Chrome с расширением Firefox, я не нашел справочную страницу в эквиваленте Chrome в Firefox. – sidd

+0

Существует множество методов, которые можно использовать для выполнения сценария, который всегда работает. Как это сделать, зависит от множества соображений. Как минимум, что [тип надстройки] (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

+0

Я следую шагам Add-on SDK для создания расширения. – sidd

Смежные вопросы