XPCOM

XPCOM

XPCOM (Cross Platform Component Object Model) is a cross-platform component model from Mozilla. It is similar to Microsoft COM and CORBA. It has multiple language bindings and IDL descriptions so programmers can plug their custom functionality into the framework and connect it with other components.

Contents

The model

XPCOM is one of the main things that makes the Mozilla application environment an actual framework. It is a development environment that provides the following features for the cross-platform software developer:

This component object model makes virtually all of the functionality of Gecko available as a series of components, or reusable cross-platform libraries, that can be accessed from the web browser or scripted from any Mozilla application. Applications that want to access the various Mozilla XPCOM libraries (networking, security, DOM, etc.) use a special layer of XPCOM called XPConnect, which reflects the library interfaces into JavaScript (or other languages). XPConnect glues the front end to the C++ or C programming language-based components in XPCOM, and it can be extended to include scripting support for other languages: PyXPCOM already offers support for Python, PerlConnect [1] and plXPCOM [2] provide support for Perl, and there are efforts underway to add .NET and Ruby language support for XPConnect.

On the developer side, XPCOM lets you write components in C++, C, JavaScript, Python, or other languages for which special bindings have been created, and compile and run those components on dozens of different platforms, including these and others where Mozilla itself is supported.

The flexibility to reuse the XPCOM components from the Gecko library and develop new components that run on different platforms facilitates rapid application development and results in an application that is more productive and easier to maintain. The networking library, for example, is a set of XPCOM components that can be accessed and used by any Mozilla application. File I/O, security, password management, and profiles are also separate XPCOM components that programmers can use in their own application development.

Criticism

XPCOM adds a lot of code for marshalling objects between different usage contexts (e.g. different languages). This leads to code bloat in XPCOM based systems. This was one of the reasons why Apple chose KHTML to create the WebKit engine (which is used in the web browser Safari) over the XPCOM-based Gecko rendering engine for their Web Browser.[1][2]

The Gecko developers are currently trying to reduce superfluous uses of XPCOM in the Gecko layout engine. This process is commonly referred to as deCOMtamination within Mozilla.[3]

Future

On October 13, 2006, Brendan Eich, Mozilla's Chief Technology Officer, wrote about the plans for Mozilla 2.0, the platform on which Firefox 4.0 is likely to be based. These changes include improving and removing XPCOM APIs boilerplate, switching to the C++ standard library, just-in-time compilation with JavaScript 2 (known as the Tamarin project), tool-time and runtime security checks.[4][5] As of 2010, Eich's post no longer necessarily reflects the Mozilla roadmap[citation needed].

References

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • XPCOM — (англ. Cross Platform Component Object Model, «кросплатформенная объектная модель компонентов»)  кросплатформенная компонентно ориентированная модель разработки ПО от Mozilla. Она схожа с CORBA и Microsoft COM. XPCOM позволяет… …   Википедия

  • XPCOM — (Cross Platform Component Object Model) est un modèle libre de composants développé par la Fondation Mozilla. Il s agit d une bibliothèque logicielle qui, schématiquement, permet de concevoir une application comme un ensemble de plugins. Ces… …   Wikipédia en Français

  • XPCOM — Cross Platform Component Object Model (XPCOM) ist ein plattformunabhängiges Komponentenmodell von Mozilla. Es funktioniert ähnlich wie CORBA oder COM mit Hilfe von Schnittstellen. Es verfügt über verschiedene Sprachanbindungen und… …   Deutsch Wikipedia

  • Cross-Platform Component Object Model — XPCOM XPCOM (Cross Platform Component Object Model) est un modèle libre de composants développé par la Fondation Mozilla. Il s agit d une bibliothèque logicielle qui, schématiquement, permet de concevoir une application comme un ensemble de… …   Wikipédia en Français

  • Cross Platform Component Object Model — XPCOM XPCOM (Cross Platform Component Object Model) est un modèle libre de composants développé par la Fondation Mozilla. Il s agit d une bibliothèque logicielle qui, schématiquement, permet de concevoir une application comme un ensemble de… …   Wikipédia en Français

  • Cross Platform Component Object Model — (XPCOM) ist ein plattformunabhängiges Komponentenmodell von Mozilla. Es funktioniert ähnlich wie CORBA oder COM mit Hilfe von Schnittstellen. Es verfügt über verschiedene Sprachanbindungen und Schnittstellenbeschreibungen, so dass Programmierer… …   Deutsch Wikipedia

  • XPConnect — (Cross Platform Connect) is a technology which enables simple interoperation between XPCOM and JavaScript. Object connection XPConnect allows JavaScript objects to transparently access and manipulate XPCOM objects. It also enables JavaScript… …   Wikipedia

  • Netscape Plugin Application Programming Interface — (NPAPI) is a cross platform plugin architecture used by many web browsers.It was first developed for the Netscape family of browsers starting with Netscape Navigator 2.0 but has subsequently been implemented in other browsers including Mozilla… …   Wikipedia

  • NPAPI — Netscape Plugin Application Programming Interface (NPAPI) is a cross platform plugin architecture used by many web browsers. It was first developed for the Netscape family of browsers starting with Netscape Navigator 2.0 but was subsequently… …   Wikipedia

  • Mozilla application framework — Free software portal The Mozilla application framework is a collection of cross platform software components that make up the Mozilla applications. It was originally known as XPFE, an abbreviation of cross platform front end. It was also known as …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”