XPCOM
Cross Plattform -Komponenten -Objektmodell (XPCOM) ist ein plattformübergreifend Komponentenmodell aus Mozilla. Es ähnelt Microsoft Komponentenobjektmodell (Com) und Maklerarchitektur der gemeinsamen Objektanfragen (CORBA).[1] Es verfügt über mehrere Sprachbindungen und Schnittstellenbeschreibung Sprache (IDL) Beschreibungen; So können Programmierer ihre benutzerdefinierten Funktionen in das Framework anschließen und mit anderen Komponenten verbinden.
Die bekannteste Verwendung von XPCOM liegt in der Feuerfuchs Webbrowser. Viele seiner internen Komponenten interagieren über XPCOM -Schnittstellen. Darüber hinaus war Firefox früher zuzulassen Add-Ons Umfangreicher XPCOM-Zugriff, dies wurde jedoch 2017 entfernt und durch weniger Permissive ersetzt Webextensions -API.[2][3] (Drei Gabeln von Firefox unterstützen immer noch die Legacy-Add-On-Fähigkeit: Blasser Mond,[4] Basilisk,[5] Waterfox.[6]))
Modell
XPCOM ist eines der wichtigsten Dinge, die das machen Mozilla Anwendungsumgebung Ein tatsächliches Framework. Es handelt sich um eine Entwicklungsumgebung, die die folgenden Funktionen für den plattformübergreifenden Softwareentwickler bietet:
- Komponentenverwaltung
- Dateiabstraktion
- Objektnachricht bestehen
- Speicherverwaltung
Dieses Komponentenobjektmodell macht praktisch die gesamte Funktionalität von Gecko Erhältlich als eine Reihe von Komponenten oder wiederverwendbare plattformübergreifende plattformübergreifende Bibliotheken, auf das kann von der zugegriffen werden Webbrowser oder von einer beliebigen Mozilla -Anwendung geschrieben. Anwendungen, die auf die verschiedenen Mozilla XPCOM -Bibliotheken zugreifen müssen (Networking, Sicherheit, Domusw.) Verwenden Sie eine spezielle Ebene von XPCOM aufgerufen XPConnect, die spiegelt Die Bibliothek überflutet in JavaScriptoder andere Sprachen. Xpconnect kleb C ++, C, oder Rost Programmiersprachebasierte Komponenten in XPCOM und kann erweitert werden, um die Unterstützung von Skripts für andere Sprachen zu enthalten: Pyxpcom[7] bietet bereits Unterstützung für Python. Perlconnect und PLXPCOM[8] Unterstützung für Perlund es gibt Anstrengungen, um hinzuzufügen Gemeinsame Sprachinfrastruktur (Cli) und Rubin Sprachunterstützung für XPConnect.
Für Entwickler ermöglicht XPCOM das Schreiben von Komponenten in C ++, C, JavaScript, Python, oder andere Sprachen, für die spezielle Bindungen erstellt wurden, und diese Komponenten auf Dutzenden verschiedener Plattformen, einschließlich dieser und anderer und anderer, in denen Mozilla unterstützt wird, kompilieren und ausführen.
Die Flexibilität, die XPCOM -Komponenten aus der Gecko -Bibliothek wiederzuverwenden und neue Komponenten zu entwickeln, die auf verschiedenen Plattformen ausgeführt werden Schnelle Anwendungsentwicklung und führt zu einer Anwendung, die produktiver und leichter zu warten ist. Die Networking -Bibliothek ist beispielsweise eine Reihe von XPCOM -Komponenten, auf die von jeder Mozilla -Anwendung zugegriffen und verwendet werden kann. Datei -E/A, Sicherheit, Kennwortverwaltung und Profile sind auch separate XPCOM -Komponenten, die Programmierer in ihrer eigenen Anwendungsentwicklung verwenden können.
Vergangenheit überbeansprucht
XPCOM fügt viel Code für hinzu Marshalle Objekte und in der Netscape ERA XPCOM wurde für interne Schnittstellen überbeansprucht, wo es nicht wirklich notwendig war, was dazu führte Software aufblähen.[9] Dies war ein wichtiger Grund, warum 2001 im Jahr 2001 Apfel gegabelt Khtml, nicht Gecko, um das zu erschaffen Webkit Motor für seine Safari Browser.[10]
Mozilla hat inzwischen einen Teil des XPCOM -Aufblähens aufgeräumt.[11] Bis 2008 führte dies kombiniert mit anderen Bemühungen zu großen Leistungsverbesserungen für Gecko.[12]
Verweise
- ^ Vergleich mit COM, Gobject, Som, Objective-C, Windows Runtime
- ^ Firefox 57 Release -Notizen
- ^ Kev Needham (2015-08-21). "Die Zukunft der Entwicklung von Firefox-Add-Ons". blog.mozilla.org. Abgerufen 2018-04-02.
- ^ "Pale Moon Future Roadmap". Blasser Mond. Abgerufen 2018-04-02.
- ^ "Das Pale Moon -Team veröffentlicht die erste Version des Basilisk -Browsers". ghacks.net. 2017-11-17. Abgerufen 2018-04-02.
- ^ "Waterfox, sein Erbe und schauen in die Zukunft". Waterfox -Blog. 2018-04-28. Abgerufen 2018-06-20.
- ^ Pyxpcom
- ^ Perl XPCOM -Projekt
- ^ Jorge O. Castro (2004-06-15). "ARS Technica setzt sich mit Scott Collins von Mozilla.org zusammen". ARS Technica. Abgerufen 2017-02-16.
- ^ Paul Festa (2003-01-14). "Apple Snub Stings Mozilla". CNET -Netzwerke. Archiviert von das Original Am 2012-10-25. Abgerufen 2017-02-16.
- ^ "Gecko: Dekomtaminierung".
- ^ Ryan Paul (2008-09-09). "Warum Mozilla Gecko mit wächst Webkit -Popularität verpflichtet". Abgerufen 2017-02-16.