Can you summarize the following document?
        
  XPCOM的一項主要目的是將Mozilla應用程式環境做成一個實際的框架。它為跨平臺軟體的開發人員提供一個有下列特性的開發環境: 元件物件模型使Gecko的幾乎所有功能可作為一系列元件或可重用的跨平臺函式庫使用,它可以通過網頁瀏覽器或任何Mozilla應用程式的指令碼使用。應用程式必須訪問各個Mozilla XPCOM程式庫(網路、安全、DOM等)以使用XPCOM的一個被稱為XPConnect的特殊層,這將程式庫反射到JavaScript或其他語言。XPConnect基於XPCOM中的元件,將前端膠合為C++或C程式語言,並且可以擴充套件為包含對其他指令碼語言的支援:PyXPCOM已提供對Python的支援。PerlConnect和plXPCOM 提供對Perl的支援,並且仍在努力增加通用語言架構(CLI)和Ruby語言對XPConnect支援。  對開發者來說,XPCOM允許使用C++、C、JavaScript、Python等已提供“繫結”的語言編寫元件,並可在幾十個Mozilla支援的平臺上編譯和執行這些元件。  靈活的重用來自Gecko程式庫的XPCOM元件和開發能執行在不同平臺的新元件有助於快速應用程式開發,並能使應用程式更高效和易於維護。例如,XPCOM元件集中的網路程式庫就可以被任何Mozilla應用程式訪問和使用。檔案I/O、安全、密碼管理以及配置檔案也都有單獨的XPCOM元件,程式設計師可以在開發自己的應用程式時使用。

  XPCOM為不同使用上下文(例如不同語言)下的編組物件新增了大量程式碼。這導致XPCOM中基於系統的程式碼出現膨脹。這也是蘋果公司復刻KHTML(現在已被多個網頁瀏覽器使用,包括Safari)來建立WebKit引擎而非在其瀏覽器中採用基於XPCOM的Gecko渲染引擎的原因之一。  Gecko的開發人員目前正在嘗試減少Gecko排版引擎中XPCOM的過剩使用。此過程在Mozilla內通常被稱為"deCOMtamination"。
跨平臺元件物件模型(英語:Cross Platform Component Object Model,簡稱XPCOM)是Mozilla的一個跨平臺元件模型。它類似微軟的元件物件模型(COM)和公共物件請求代理體系結構(CORBA)。它有多個語言繫結和介面描述語言(IDL)描述符,因此程式設計師可以將自己的自定義函式插入到框架中並與其他元件連線。