Share to: share facebook share twitter share wa share telegram print page

XPCOM

Cross Platform Component Object Model (XPCOM) is a cross-platform component model from Mozilla. It is similar to Component Object Model (COM),Common Object Request Broker Architecture (CORBA) and system object model (SOM). It features multiple language bindings and interface description language (IDL) descriptions; thus programmers can plug their custom functions into the framework and connect it with other components.

The most prominent usage of XPCOM is within the Firefox web browser. Many of its internal components interact via XPCOM interfaces. Furthermore, Firefox used to allow add-ons extensive XPCOM access, but this was removed in 2017 and replaced with the less-permissive WebExtensions API.[1][2] (Two forks of Firefox still support XPCOM add-on capability: Pale Moon[3] and Basilisk.[4])

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:

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 must 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++, C, or Rust programming language based components in XPCOM, and it can be extended to include scripting support for other languages: PyXPCOM[5] already offers support for Python. wxWidgets[6] provide support for Perl, and there are efforts underway to add Common Language Infrastructure (CLI) and Ruby language support for XPConnect.

For developers, XPCOM allows writing 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 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.

Past overuse

XPCOM adds a lot of code for marshalling objects, and in the Netscape era XPCOM was overused for internal interfaces where it wasn't truly necessary, resulting in software bloat.[7] This was a key reason why in 2001 Apple forked KHTML, not Gecko, to create the WebKit engine for its Safari browser.[8]

Mozilla has since cleaned up some of the XPCOM bloat.[9] By 2008, this combined with other efforts resulted in big performance improvements for Gecko.[10]

References

  1. ^ Firefox 57 release notes
  2. ^ Kev Needham (2015-08-21). "The Future of Developing Firefox Add-ons". blog.mozilla.org. Retrieved 2018-04-02.
  3. ^ "Pale Moon future roadmap". Pale Moon. Retrieved 2018-04-02.
  4. ^ "Pale Moon team releases first version of Basilisk browser". ghacks.net. 2017-11-17. Retrieved 2018-04-02.
  5. ^ "PyXPCOM". Archived from the original on 2020-10-20. Retrieved 2018-01-02.
  6. ^ Perl Based Cross Platforms Developments
  7. ^ Jorge O. Castro (2004-06-15). "Ars Technica sits down with Scott Collins from Mozilla.org". Ars Technica. Retrieved 2017-02-16.
  8. ^ Paul Festa (2003-01-14). "Apple snub stings Mozilla". CNET Networks. Archived from the original on 2012-10-25. Retrieved 2017-02-16.
  9. ^ "Gecko:DeCOMtamination".
  10. ^ Ryan Paul (2008-09-09). "Why Mozilla is committed to Gecko as WebKit popularity grows". Retrieved 2017-02-16.

Read other articles:

Pertempuran Perimeter PusanBagian dari Perang KoreaPasukan Infanteri ke-27 AS menunggu serangan Korea Utara di sepanjang Sungai Nankong dari posisi di Perimeter Pusan, 4 September 1950.Tanggal4 Agustus – 18 September 1950LokasiPusan, Korea SelatanHasil Kemenangan Perserikatan Bangsa-BangsaPihak terlibat  Perserikatan Bangsa-Bangsa  Korea Selatan  Amerika Serikat  Britania Raya  Australia  Selandia Baru  Kanada  Belanda  Korea UtaraTokoh dan pem…

Questa voce o sezione sull'argomento sport è priva o carente di note e riferimenti bibliografici puntuali. Sebbene vi siano una bibliografia e/o dei collegamenti esterni, manca la contestualizzazione delle fonti con note a piè di pagina o altri riferimenti precisi che indichino puntualmente la provenienza delle informazioni. Puoi migliorare questa voce citando le fonti più precisamente. Segui i suggerimenti del progetto di riferimento. ARTVA ARTVA con schermo LCD L'apparecchio di ricerca…

Sistem bilangan Hindu-Arab Arab barat Arab timur Bengali Gurmukhi India Sinhala Tamil Bali Burma Dzongkha Gujarati Jawa Khmer Lao Mongolia Sunda Thai Asia Timur Tiongkok Suzhou Hokkien Jepang Korea Vietnam Alfabet Abjad Armenian Āryabhaṭa Ge'ez Georgia Ibrani Kiril Romawi Yunani Dulu Aegean Attic Babilonia Brahmi Chuvash Etruscan Inuit Kharosthi Maya Mesir Muisca Quipu Prasejarah Berdasarkan basis 2 3 4 5 6 8 10 12 16 20 60 Daftar Numerasi bijektif (1) Representasi digit bertanda (sistem bila…

Cet article est une ébauche concernant une localité italienne et le Piémont. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Cartignano Armoiries Noms Nom français Cartignan Nom occitan Cartignan Nom piémontais Cartignan Administration Pays Italie Région Piémont  Province Coni  Code postal 12020 Code ISTAT 004044 Code cadastral B845 Préfixe tel. 0171 Démographie Population 180 hab. (31-12-201…

Ini adalah nama Tionghoa; marganya adalah Ma (nama pernikahan) dan Chow (nama maiden). Christine Chow MaChow Mei-ching周美青 Ibu Negara Republik ChinaMasa jabatan20 Mei 2008 – 20 Mei 2016 PendahuluWu Shu-chenPenggantiJabatan lowong Informasi pribadiLahir30 November 1952 (1952-11-30) (usia 71)Hong Kong BritaniaKebangsaan Republik TiongkokSuami/istriMa Ying-jeouAnak2 putriAlma materUnuversitas Chengchi NasionalUniversitas New York (LL.M.)Sunting kotak info • L …

For Iranian male name, see Manuchehr (name). Emir of the Ziyarid dynasty ManuchihrEmir of the Ziyarid dynastyManuchihr addresses his assembled people and armyReign1012–1031PredecessorQabusSuccessorAnushirvan Sharaf al-Ma'aliDied1031GorganIssueAnushirvan Sharaf al-Ma'aliHouseZiyaridFatherQabusReligionSunni Islam Falak al-Ma'ali Manuchihr (Persian: فلک‌المعالی منوچهر), better known as Manuchihr (died c. 1031), was the ruler of the Ziyarids (1012 at the latest – c. 1031). He w…

Energy insecurity redirects here. For issues at the national level as opposed to the household level, see Energy security. Household energy insecurity refers to a household's inability to meet its energy needs. Household energy insecurity is a broad framework that includes a household's inability to afford energy costs as one of several factors in a household's ability to meet energy needs. Household energy insecurity is influenced by both internal and external factors such as energy cost, house…

Chemical compound AZ-11713908Identifiers IUPAC name N-(1-(cyclohexylmethyl)-2-((5-ethoxypyridin-2-yl)methyl)-1H-benzo[d]imidazol-5-yl)-N-methylthiophene-2-sulfonamide CAS Number1309682-69-6 NChemSpider26286889 YUNIIMN7RR3VQL7Chemical and physical dataFormulaC27H32N4O3S2Molar mass524.70 g·mol−13D model (JSmol)Interactive image SMILES c5ccsc5S(=O)(=O)N(C)c3ccc1c(c3)nc(Cc(cc2)ncc2OCC)n1CC4CCCCC4 InChI InChI=1S/C27H32N4O3S2/c1-3-34-23-13-11-21(28-18-23)16-26-29-24-17-22(30(2)36(32,…

Disambiguazione – Se stai cercando altri significati, vedi Bologna (disambigua). Bolognacomune (dettagli) (dettagli) Bologna – Veduta LocalizzazioneStato Italia Regione Emilia-Romagna Città metropolitana Bologna AmministrazioneSindacoMatteo Lepore (PD) dall'11-10-2021 TerritorioCoordinate44°29′38″N 11°20′34″E / 44.493889°N 11.342778°E44.493889; 11.342778 (Bologna)Coordinate: 44°29′38″N 11°20′34″E / 44.493889°N 11…

Eyalet di AdrianopoliEyalet di Adrianopoli - LocalizzazioneL'eyalet di Adrianopoli negli anni 1850 Dati amministrativiNome completoEyalet-i Edirne Lingue ufficialiturco ottomano Lingue parlateturco ottomano, greco CapitaleEdirne Dipendente daImpero ottomano PoliticaForma di StatoEyalet Forma di governoEyalet elettivo dell'Impero ottomano Capo di StatoSultani ottomani Nascita1826 Fine1864 Territorio e popolazioneBacino geograficoGrecia Popolazione1.200.000 nel 1844 EconomiaCommerci conImpero otto…

مبلمرمعلومات عامةصنف فرعي من مزيج[1][2][3]مادة الأسباب بلمرة يدرسه علم البوليمرات طريقة التصنيع بلمرة مُعرِّف مَكنَز المعهد القومي للسرطان (NCI) C48803 لديه جزء أو أجزاء جزيء ضخم[4] النقيض مونومر تعديل - تعديل مصدري - تعديل ويكي بيانات مظهر بوليمر خطي حقيقي كما صور ب…

Drogön Chögyal Phagpa, salah satu dari lima pendiri mazhab Sakyapa dalam Buddhisme Tibet. Zhogön Qögyä Pagba, Zhogoin Qoigyai Phagspa atau Drogön Chögyal Phagpa (Tibet: འགྲོ་མགོན་ཆོས་རྒྱལ་འཕགས་པ་; Wylie: 'Gro mgon Chos rgyal 'Phags pa; juga ditulis Dongon Choegyal Phakpa, Dromtön Chögyal Pagpa, etc.), lahir dengan nama Lochö Gyäcän atau Lochoi Gyaicain (1235–1280), adalah pemimpin kelima mazhab Sakya dalam Buddhisme Tibet…

Ultimate Avengersfilm d'animazione direct-to-video Gli Ultimates in una scena del film Lingua orig.inglese PaeseStati Uniti RegiaBob Richardson Produttore esecutivoAvi Arad, Ken Katsumoto, Craig Kyle, Eric S. Rollman ProduttoreBob Richardson SoggettoGreg Johnson, Boyd Kirkland, Craig Kyle SceneggiaturaGreg Johnson Char. designSteven E. Gordon MusicheGuy Michelmore StudioMarvel Studios, MLG Productions 1 1ª edizione21 febbraio 2006 Rapporto16:9 Durata72…

Voce principale: Unione europea. Organigramma delle istituzioni Grafico alternativo del sistema politico. I sette organi dell'Unione sono in blu, elementi nazionali / intergovernativi in arancione. Diagramma che descrive il funzionamento delle istituzioni europee e la loro interazione reciproca e con gli Stati membri Le istituzioni dell'Unione europea sono sette: il Parlamento europeo, il Consiglio europeo, il Consiglio dell'Unione europea, la Commissione europea, la Corte di giustizia dell'Unio…

信徒Believe类型奇幻、科幻开创阿方索·卡隆主演 Johnny Sequoyah Jake McLaughlin Delroy Lindo 凯尔·麦克拉克伦 西耶娜·盖尔利 鄭智麟 Tracy Howe Arian Moayed 国家/地区美国语言英语季数1集数12每集长度43分钟制作执行制作 阿方索·卡隆 J·J·艾布拉姆斯 Mark Friedman 布赖恩·伯克 机位多镜头制作公司坏机器人制片公司华纳兄弟电视公司播出信息 首播频道全国广播公司播出日期2014年3月10日 (…

For other things named Burlington, see Burlington (disambiguation). City in North Dakota, United StatesBurlington, North DakotaCityNickname: The ForksLocation of Burlington, North DakotaCoordinates: 48°15′26″N 101°24′52″W / 48.25722°N 101.41444°W / 48.25722; -101.41444CountryUnited StatesStateNorth DakotaCountyWardTownshipBurlingtonTownshipKirkelieFounded1883IncorporatedFebruary 28, 1884Government • MayorParker HillArea[1] •…

2016年美國總統選舉 ← 2012 2016年11月8日 2020 → 538個選舉人團席位獲勝需270票民意調查投票率55.7%[1][2] ▲ 0.8 %   获提名人 唐納·川普 希拉莉·克林頓 政党 共和黨 民主党 家鄉州 紐約州 紐約州 竞选搭档 迈克·彭斯 蒂姆·凱恩 选举人票 304[3][4][註 1] 227[5] 胜出州/省 30 + 緬-2 20 + DC 民選得票 62,984,828[6] 65,853,514[6] 得…

Populasi dunia dari 10.000 SM hingga 2000 M Argumen kiamat adalah argumen probabilistik yang diklaim bisa memprediksi jumlah manusia yang akan dilahirkan di masa depan dengan perkiraan jumlah total manusia yang lahir sejauh ini. Sederhananya, dikatakan bahwa seandainya semua manusia dilahirkan dalam urutan acak, kemungkinan ada satu manusia yang lahir kira-kira di tengah. Argumen ini pertama kali diusulkan secara eksplisit oleh astrofisikawan Brandon Carter pada tahun 1983,[1] sehingga t…

2020年夏季奥林匹克运动会波兰代表團波兰国旗IOC編碼POLNOC波蘭奧林匹克委員會網站olimpijski.pl(英文)(波兰文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員206參賽項目24个大项旗手开幕式:帕维尔·科热尼奥夫斯基(游泳)和马娅·沃什乔夫斯卡(自行车)[1]闭幕式:卡罗利娜·纳亚(皮划艇)[2…

American science fiction comedy drama web series This article is about the American web series. For the Australian TV series, see Crunch Time (TV series). Crunch TimeGenreScience fictionComedyDramaCreated byAndrew DisneyBradley JacksonStarringAvery MonsenJessy HodgesNicholas RutherfordSamm LevineKirk C. JohnsonBrent MorinMichael HyattMusic bySteve MooreCountry of originUnited StatesOriginal languageEnglishNo. of seasons1No. of episodes6ProductionExecutive producersAndrew DisneyBradley JacksonBur…

Kembali kehalaman sebelumnya