Jump to content

XPCOM

Кроссплатформенная объектная модель компонентов ( XPCOM ) — это кроссплатформенная модель компонентов от Mozilla . Она похожа на модель компонентных объектов (COM), общую архитектуру брокера объектных запросов (CORBA) и модель системных объектов (SOM). Он имеет несколько языковых привязок и описания языка описания интерфейса (IDL); таким образом, программисты могут подключать свои собственные функции к платформе и связывать ее с другими компонентами.

Наиболее заметное использование XPCOM происходит в веб-браузере Firefox . Многие из его внутренних компонентов взаимодействуют через интерфейсы XPCOM. Кроме того, Firefox раньше предоставлял надстройкам расширенный доступ к XPCOM, но в 2017 году он был удален и заменен менее разрешительным API WebExtensions . [1] [2] (Две версии Firefox по-прежнему поддерживают дополнительные возможности XPCOM: Pale Moon [3] и Василиск . [4] )

XPCOM — это одна из главных вещей, которая делает среду приложений Mozilla настоящей структурой. Это среда разработки, которая предоставляет разработчику кроссплатформенного программного обеспечения следующие функции:

Эта объектная модель компонентов делает практически все функциональные возможности Gecko доступными в виде ряда компонентов или многоразовых кросс-платформенных библиотек , к которым можно получить доступ из веб-браузера или создать сценарий из любого приложения Mozilla. Приложения, которым необходим доступ к различным библиотекам Mozilla XPCOM ( сети , безопасность , DOM и т. д.), используют специальный уровень XPCOM, называемый XPConnect , который отображает интерфейсы библиотеки в JavaScript или других языках. XPConnect объединяет интерфейс с компонентами на основе языков программирования C++ , C или Rust в XPCOM, и его можно расширить, включив поддержку сценариев для других языков: PyXPCOM. [5] уже предлагает поддержку Python . wxWidgets [6] обеспечить поддержку Perl , и предпринимаются усилия по добавлению инфраструктуры общего языка (CLI) и Ruby поддержки языка для XPConnect.

Разработчикам XPCOM позволяет писать компоненты на C++ , C , JavaScript , Python или других языках, для которых созданы специальные привязки, а также компилировать и запускать эти компоненты на десятках различных платформ, включая эти и другие, где поддерживается Mozilla.

Гибкость повторного использования компонентов XPCOM из библиотеки Gecko и разработки новых компонентов, работающих на разных платформах, способствует быстрой разработке приложений , в результате чего приложение становится более продуктивным и простым в обслуживании. Например, сетевая библиотека представляет собой набор компонентов XPCOM, к которым может получить доступ и использовать их любое приложение Mozilla. Файловый ввод-вывод, безопасность, управление паролями и профили также являются отдельными компонентами XPCOM, которые программисты могут использовать при разработке собственных приложений.

Прошлое чрезмерное использование

[ редактировать ]

XPCOM добавляет много кода для сортировки объектов, а в эпоху Netscape XPCOM чрезмерно использовался для внутренних интерфейсов, где это не было действительно необходимо, что приводило к раздуванию программного обеспечения . [7] Это была ключевая причина, по которой в 2001 году Apple создала форк KHTML , а не Gecko, чтобы создать WebKit движок для своего браузера Safari . [8]

С тех пор Mozilla устранила часть раздутого XPCOM. [9] К 2008 году это в сочетании с другими усилиями привело к значительному улучшению производительности Gecko . [10]

  1. ^ Примечания к выпуску Firefox 57
  2. ^ Кев Нидэм (21 августа 2015 г.). «Будущее разработки дополнений Firefox» . blog.mozilla.org . Проверено 2 апреля 2018 г.
  3. ^ «Дорожная карта будущего Pale Moon» . Бледная Луна . Проверено 2 апреля 2018 г.
  4. ^ «Команда Pale Moon выпускает первую версию браузера Basilisk» . ghacks.net . 17.11.2017 . Проверено 2 апреля 2018 г.
  5. ^ ПиXPCOM [ мертвая ссылка ]
  6. ^ Кроссплатформенные разработки на основе Perl
  7. ^ Хорхе О. Кастро (15 июня 2004 г.). «Ars Technica беседует со Скоттом Коллинзом из Mozilla.org» . Арс Техника . Проверено 16 февраля 2017 г.
  8. ^ Пол Феста (14 января 2003 г.). «Пренебрежение Apple уязвляет Mozilla» . Сети CNET . Архивировано из оригинала 25 октября 2012 г. Проверено 16 февраля 2017 г.
  9. ^ «Геккон:ДеКОМтаминация» .
  10. ^ Райан Пол (9 сентября 2008 г.). «Почему Mozilla привержена Gecko по мере роста популярности WebKit» . Проверено 16 февраля 2017 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5e36b554b3306b18410303e724fd737b__1719162720
URL1:https://arc.ask3.ru/arc/aa/5e/7b/5e36b554b3306b18410303e724fd737b.html
Заголовок, (Title) документа по адресу, URL1:
XPCOM - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)