Mozilla扩展

**Mozilla 附加元件**（**Mozilla Add-ons**）是一種可安裝的增強組件，可以安裝到 Mozilla 基金會的包括 Firefox、Thunderbird、SeaMonkey 和 Sunbird 等及衍生專案。附加元件使使用者可以增加或修改應用程式功能，使用主題裝飾外觀，以及處理本並不支援的內容類型。

附加元件的三種主要類別是：擴充、主題和外掛程式。前兩種附加元件的主要代管及分發管道是 Mozilla Add-ons 網站。

## 類型

附加元件存在多種類型：

* **擴充**：修改現有功能的行為或者添加新功能。該功能可以是使用者介面中的某處，或者執行某個動作時表現出的功能特徵。主題則是一種著重關注使用者介面的擴充。搜尋引擎定義是一種功能性擴充。不完全列表見 Firefox 擴充列表條目，除此之外還有適用於 Thunderbird、SeaMonkey 和 Sunbird 的擴充。
* **主題**：原名「Personas」（炫彩風格）。它是一種規格化的修改使用者介面某些元素的標準。其最鮮明的特徵就是將背景圖像添加到瀏覽器主視窗的工具列、選單欄和狀態列。它也可以更改一些文字和背景顏色。
* **外掛程式**：彩現應用程式本無法呈現的 Web 內容。例如 Adobe Flash Player 就是一個外掛程式，它可以在網頁上呈現 Adobe Flash 內容。Mozilla 外掛程式基於名為 NPAPI 的框架。Mozilla 外掛程式正在被逐步淘汰，Mozilla 計劃 2016 年在 Firefox 中停止使用大多數外掛程式。

## 網站

同名的 **Mozilla Add-ons** 網站是 Mozilla 基金會為 Mozilla 軟體的附加元件準備的官方儲存庫，適用包括 Mozilla Firefox、Mozilla Thunderbird、SeaMonkey 以及 Mozilla Sunbird 等軟體。這些附加元件包括 Mozilla 擴充和 Personas（炫彩風格）等，但不包括 Mozilla 外掛程式。

相比為 Mozilla 相關專案提供免費代管的 mozdev.org，Mozilla Add-ons 的服務目標是終端使用者，而不只是軟體開發者。許多 Mozilla 應用程式包括到達該網站的直接連結，並包含設定以自動檢查擴充和應用程式本身的更新。Firefox 3 開始包含一個功能，允許在附加元件管理員中直接檢索和顯示該網站的提供內容。

2008 年 1 月 30 日，網站宣布附加元件下載量已達 6 億次，並且每天服務超過 1 億次附加元件的自動檢查更新。

2012 年 7 月 26 日，Mozilla 宣布該網站的附加元件下載量已達 30 億次。

### 歷史

在早期，**Mozilla Add-ons** 被稱之為 Mozilla Update（或簡稱 UMO，主機名為 `update.mozilla.org`）。該網站在釋出並歷經多次變化後變成了 **AMO**。

* 2006 年 4 月 4 日，公共頁面的重大覆寫釋出。
* 2006 年 10 月 24 日，Firefox 頁面的新版介面推出，迎接 Firefox 2 釋出和新版 mozilla.com 樣式。
* 2007 年 3 月 23 日，完全重寫的開發者和公共頁面釋出，代號 Remora。
* 2008 年春季，代號「Remora 3.2」的新版介面推出。
* 2011 年，採用 PHP/CakePHP 編寫的 Remora 取代採用 Python/Django 編寫的 Zamboni。網站還進行了重新設計，代號 Impala。

 

## 擴充

擴充可以用於修改應用程式現有功能的行為，或者添加全新功能。擴充是 Firefox 中極受歡迎的一項功能，因為 Mozilla 開發者希望瀏覽器是一個簡約的應用程式以減少軟體膨脹和缺陷，同時保持高度的可延伸性，使每個使用者都能添加自己喜歡的功能。

### 擴充技術

擴充可以使用下列技術開發：

* XUL：定義使用者介面和與使用者互動的元素
* 層疊樣式表（CSS）
* 文件物件模型（DOM）：即時更改 XUL 代碼和編輯被載入的 HTML 內容
* JavaScript：Mozilla 瀏覽器的主要語言
* XPCOM
* XPConnect
* XPI
* Mozilla Jetpack：一個開發工具包，旨在降低製作附加元件的學習曲線和開發時間
* WebExtensions

### 使用

**改變使用者介面**
: 一些擴充的用途是改變應用程式的介面。這與功能為主題管理的 Personas（炫彩風格）不同。舉例來說，有幾個附加元件的功能是更改「Firefox 按鈕」的顏色，例如 ColorizedButton。還有一個擴充是，將 Windows 上的選單欄移動到標題列的位置。

**增加功能**
: 許多擴充也可為瀏覽器增添功能。可能添加的功能有許多，例如 RSS 閱讀器、書籤管理器、工具列、特定網站的客戶端程式、FTP、電子郵件、滑鼠手勢、代理伺服器切換器、開發者工具等等。許多 Firefox 擴充實現了早前的 Mozilla 套件的一些功能，例如 ChatZilla IRC 客戶端以及日曆等。

**修改使用者查閱的網頁**
: 許多擴充可以改變所呈現的網頁內容。比如說，Adblock 擴充可以阻止瀏覽器載入廣告性質的圖片。Greasemonkey 可以讓使用者安裝使用者指令碼來以程式的方式修改修改目標網站的特定代碼等。

也有一些擴充的存在目的只是輕鬆、幽默或諷刺。還有一些擴充是為找回存在於舊版 Firefox 但最新版本已經刪除的功能。

### 安全

不同於 Google Chrome，Mozilla 平台沒有限制擴充權限的機制。擴充代碼受到 Mozilla 應用程式的完全信任。對擴充與作業系統之間的相互通信也沒有限制。這意味著一個擴充可以讀取和修改另一個擴充使用的資料，以及存取使用者執行 Mozilla 應用程式所在系統的任何可存取檔案。

Mozilla 擴充預設安裝到應用程式的使用者設定檔夾中，使用者和使用者執行的任何程式都可以讀寫和覆蓋其中的代碼。由於曾經 Mozilla 平台不檢查已安裝擴充的完整性，因此這些代碼可以被更改以用於任意代碼執行。

從 Firefox 40.0 開始，Mozilla 將擴充簽章列為正式版和公測版（Beta）的強制要求。從 40.0 開始，瀏覽器將向終端使用者警告未簽章的擴充；從 43.0 開始，只有在 about:config 頁面中啟用一個特殊的偏好設定才能安裝未簽章的擴充；從 44.0 開始，Firefox 阻止未簽章擴充的安裝和載入。在 Firefox 的開發者版本（Developer Edition）和每夜版（Nightly）中，Firefox 仍保留一個偏好設定及相關功能來禁用或繞過簽章要求。根據計劃，Firefox 後期也釋出了「無品牌版本」的正式版和公測版，以允許開發者在特定平台上測試未簽章的擴充。

### 相容性與更新

擴充包含的附有元資料的 XML 檔案會被附加元件安裝機制使用。在該檔案中，此附加元件適用的 Mozilla 應用程式專案的最大和最小版本也被標明。如果安裝的附加元件適用版本不再範圍內，安裝可能會被阻止或警告。然而，元資料中的版本範圍並不能保證附加元件在此範圍內與外一定能正常工作，並可使用方法繞過該相容性檢查。

附加元件管理員會定期的自動從 Mozilla 附加元件網站（或擴充自行定義的位址）檢查是否存在更新，使用者也可自行觸發附加元件的檢查更新。

## 主題

主題，原名 Personas（炫彩風格），它允許使用者快速的改變一個應用程式的外觀。儘管最早的 Personas 是採用一個擴充來實現，但該功能從 Firefox 3.6 開始已被內建，並在之後被其他一些應用程式採用。這些「背景主題」與實現為 Mozilla 擴充的傳統主題、完整主題不同。這種主題更加基礎，也更容易建立和安裝，但能力僅限於更改工具列、選單欄和狀態列的背景圖像、背景顏色和文字顏色。它們不需要以擴充的形式安裝，也不能更改工具列等介面元素的形狀、外觀、功能表現等。安裝它們非常簡單，只需單擊即可下載並啟用，並還支援懸停預覽即時效果。

該類主題最早代管於 GetPersonas.com，後在 2013 年被轉移到 Mozilla Add-ons 網站。此外，因為名稱與被稱為「Mozilla Persona」的方案類似，Mozilla 停止使用該名稱並改稱之為「主題」，儘管這將基於擴充實現的主題（現稱之為完整主題、傳統主題）與 Personas 混淆，但它們均由附加元件管理員安裝和管理，並且顯示在同一欄目中（現稱之為「外觀」）。

儘管此功能受到了一些好評，但 TechCrunch 批評 Mozilla 只著眼於發展瀏覽器的外觀來吸引目光，而沒有將精力更多地放在改進 Firefox 的速度和可用性上

## 外掛程式

Mozilla 外掛程式是為呈現應用程式本無法呈現的 Web 內容而準備的瀏覽器擴充，採用 NPAPI 框架建立。Firefox 41.0 本身預裝兩個外掛程式：思科提供的「開放 H.264 影片編解碼器」和 Adobe Systems 提供的「Primetime 內容解密模組」。常見的第三方 Mozilla 外掛程式包括：Adobe Flash Player、Acrobat Reader、Adobe Shockwave Player、Java SE、QuickTime 和 RealPlayer。不同於其他類型的附加元件，Mozilla 不分發第三方外掛程式，附加元件管理員也不能更新它們。

Mozilla 外掛程式正在被逐漸淘汰。Mozilla 計劃 2016 年在 Firefox 中停止使用大多數外掛程式。

## 參考資料

## 外部連結

* 官方網站
* Mozilla 開發者中心上的附加元件相關文件 （頁面存檔備份，存於網際網路檔案館）