Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
XPCOM
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Model== XPCOM is one of the main things making the [[Mozilla]] application environment an actual framework. It is a development environment that provides the following features for the cross-platform software developer: * Component management * File abstraction * [[Message passing|Object message passing]] * [[Memory management]] This component object model makes virtually all of the functionality of [[Gecko (layout engine)|Gecko]] available as a series of components, or reusable cross-platform [[software library|libraries]], that can be accessed from the [[web browser]] or scripted from any Mozilla application. Applications that must access the various Mozilla XPCOM libraries ([[Computer network|networking]], [[Computer security|security]], [[Document Object Model|DOM]], etc.) use a special layer of XPCOM called [[XPConnect]], which [[Reflection (computer programming)|reflects]] the library interfaces into [[JavaScript]], or other languages. XPConnect glues the front end to the [[C++]], [[C (programming language)|C]], or [[Rust (programming language)|Rust]] programming language based components in XPCOM, and it can be extended to include scripting support for other languages: PyXPCOM<ref>{{Cite web |url=https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Language_bindings/PyXPCOM |title=PyXPCOM |access-date=2018-01-02 |archive-date=2020-10-20 |archive-url=https://web.archive.org/web/20201020073948/https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Language_bindings/PyXPCOM |url-status=dead }}</ref> already offers support for [[Python (programming language)|Python]]. wxWidgets<ref>{{usurped|1=[https://web.archive.org/web/20240402042937/https://gravitechdreams.com/blog/category/desktop-application-development-a-guide-to-powerful-cross-platform-options/ Perl Based Cross Platforms Developments]}}</ref> provide support for [[Perl]], and there are efforts underway to add [[Common Language Infrastructure]] (CLI) and [[Ruby (programming language)|Ruby]] language support for XPConnect. For developers, XPCOM allows writing components in [[C++]], [[C (programming language)|C]], [[JavaScript]], [[Python (programming language)|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 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.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)