Pull to refresh

В движке Gecko 2 (во браузере Firefox 4) переменится способ регистрации кросс-платформенных компонентов (XPCOM)

Reading time 2 min
Views 1.3K
[mozilla.org]В прежней версии движка (существовавшей до июля 2010 года) все XPCOM-компоненты (будь они джаваскриптовыми или же скомпилированными двоичными) сперва подгружались браузером, а затем регистрировали сами себя. Теперь вместо этого все сведения, необходимые для их регистрации, авторам расширений придётся складывать в текстовый файл «chrome.manifest» (где всякий хром описывается), и регистрацией будет заниматься сам браузер.

Те файлы с путями вида «platform/WINNT_x86-msvc/chrome.manifest» (это пример пути для Windows), в которых прежде хранились отдельные хромовые манифесты для каждой платформы, отменяются. Вместо этого в манифестах можно использовать особые пометки о том, что та или иная строка манифеста должна применяться только на некоторой платформе.

Целью этих перемен является упрощённая процедура регистрации компонентов, требующая от браузера меньших усилий — а значит, ускорится начальная загрузка Файерфокса, которая прежде оказывалася неимоверно длинною после обновления самогó браузера или после замены (доустановки, отключения, устранения) его расширений. Также, вероятно, упростится и переход к многопоточности, планируемый в будущем.

Ценою этих перемен станет необходимость переписать абсолютно все те расширения, которые содержали и использовали собственные компоненты XPCOM (на MDC есть инструкции о том, как это сделать). Кроме того, уведомления (notifications) с именами «xpcom-startup» и «app-startup» больше не поступают в компоненты, так как во время событий, соответствующих этим уведомлениям, никаких компонентов ещё нет.

Многие расширения, заброшенные их авторами, придётся переписывать для переноса на Firefox 4: прежние полушаманские трюки, направленные на простую отмену проверки версий (совершаемую либо вручную, либо расширениями наподобие «Nightly Tester Tools», «MR Tech Toolkit», «Add-on Compatibility Reporter»), не заставят их заработать корректно.

Подробнее об этих изменениях браузера вы сможете прочесть в статье MDC, выше мною упомянутой. Исходный код их доступен в Багзилле.
Tags:
Hubs:
+4
Comments 8
Comments Comments 8

Articles