附加元件 (Mozilla)
Mozilla附加元件(Mozilla Add-ons)是一種可安裝的增強組件,可以安裝到Mozilla基金會的包括Firefox、Thunderbird、SeaMonkey和Sunbird等及衍生專案。附加元件使用戶可以增加或修改應用程式功能,使用主題裝飾外觀,以及處理本並不支援的內容類型。
附加元件的三種主要類別是:擴充、主題和外掛程式。[1]前兩種附加元件的主要寄存及分發渠道是Mozilla Add-ons網站。
類型
附加元件存在多種類型:
- 擴充:修改現有功能的行為或者添加新功能。該功能可以是用戶介面中的某處,或者執行某個動作時表現出的功能特徵。主題則是一種着重關注用戶介面的擴充。搜尋引擎定義是一種功能性擴充。不完全列表見Firefox擴充列表條目,除此之外還有適用於Thunderbird、SeaMonkey和Sunbird的擴充。
- 主題:原名「Personas」(炫彩風格)。它是一種規範化的修改用戶介面某些元素的標準。其最鮮明的特徵就是將背景圖像添加到瀏覽器主視窗的工具列、選單欄和狀態列。它也可以更改一些文字和背景顏色。
- 外掛程式:彩現應用程式本無法呈現的Web內容。例如Adobe Flash Player就是一個外掛程式,它可以在網頁上呈現Adobe Flash內容。Mozilla外掛程式基於名為NPAPI的框架。Mozilla外掛程式正在被逐步淘汰,Mozilla計劃2016年在Firefox中停止使用大多數外掛程式。[2]
網站
網站類型 | 寄存附加元件 |
---|---|
持有者 | Mozilla基金會 |
創始人 | Andy McKay、Chris Howse、Gregory Koberger、Jeff Balogh、Jorge Villalobos (jorgev)、Justin Scott (fligtar)、Kumar McMillan、Matt Claypotch、Stephen Donner、Wil Clouser等[3] |
網址 | addons |
商業性質 | 否 |
註冊 | 自由,僅開發人員和特殊功能需要 |
現狀 | 活躍 |
同名的Mozilla Add-ons網站是Mozilla基金會為Mozilla軟件的附加元件準備的官方儲存庫,適用包括Mozilla Firefox、Mozilla Thunderbird、SeaMonkey以及Mozilla Sunbird等軟件。這些附加元件包括Mozilla擴充和Personas(炫彩風格)等,但不包括Mozilla外掛程式。
相比為Mozilla相關專案提供免費寄存的mozdev.org,Mozilla Add-ons的服務目標是終端使用者,而不只是軟件開發者。許多Mozilla應用程式包括到達該網站的直接連結,並包含設置以自動檢查擴充和應用程式本身的更新。[來源請求]Firefox 3開始包含一個功能,允許在附加元件管理員中直接檢索和顯示該網站的提供內容。[4]
2008年1月30日,網站宣佈附加元件下載量已達6億次,並且每天服務超過1億次附加元件的自動檢查更新。[5]
2012年7月26日,Mozilla宣佈該網站的附加元件下載量已達30億次。[6]
歷史
在早期,Mozilla Add-ons被稱之為Mozilla Update(或簡稱UMO,主機名為update.mozilla.org
)。該網站在釋出並歷經多次變化後變成了AMO。[7]
- 2006年4月4日,公共頁面的重大覆寫釋出。
- 2006年10月24日,Firefox頁面的新版介面推出,迎接Firefox 2釋出和新版mozilla.com樣式。
- 2007年3月23日,完全重寫的開發者和公共頁面釋出,代號Remora[8]。
- 2008年春季,代號「Remora 3.2」的新版介面推出。
- 2011年,採用PHP/CakePHP編寫的Remora取代採用Python/Django編寫的Zamboni[9]。網站還進行了重新設計[10],代號Impala。
擴充
擴充可以用於修改應用程式現有功能的行為,或者添加全新功能。擴充是Firefox中極受歡迎的一項功能,因為Mozilla開發者希望瀏覽器是一個簡約的應用程式以減少軟件膨脹和缺陷,同時保持高度的可延伸性,使每個用戶都能添加自己喜歡的功能。
擴充技術
擴充可以使用下列技術開發:[11]
- 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可以讓用戶安裝用戶指令碼來以程式的方式修改修改目標網站的特定代碼等。[12]
也有一些擴充的存在目的只是輕鬆、幽默或諷刺。還有一些擴充是為找回存在於舊版Firefox但最新版本已經刪除的功能。
安全
不同於Google Chrome,Mozilla平台沒有限制擴充權限的機制。擴充代碼受到Mozilla應用程式的完全信任。對擴充與作業系統之間的相互通訊也沒有限制。這意味着一個擴充可以讀取和修改另一個擴充使用的數據,以及訪問用戶執行Mozilla應用程式所在系統的任何可訪問檔案。[13]
Mozilla擴充預設安裝到應用程式的用戶設定檔夾中,用戶和用戶執行的任何程式都可以讀寫和覆蓋其中的代碼。由於曾經Mozilla平台不檢查已安裝擴充的完整性,因此這些代碼可以被更改以用於任意代碼執行。[14]
從Firefox 40.0開始,Mozilla將擴充簽章列為正式版和公測版(Beta)的強制要求。從40.0開始,瀏覽器將向終端使用者警告未簽章的擴充;從43.0開始,只有在about:config頁面中啟用一個特殊的參數設置才能安裝未簽章的擴充;從44.0開始,Firefox阻止未簽章擴充的安裝和載入。在Firefox的開發者版本(Developer Edition)和每夜版(Nightly)中,Firefox仍保留一個參數設置及相關功能來禁用或繞過簽章要求。根據計劃,Firefox後期也釋出了「無品牌版本」的正式版和公測版,以允許開發者在特定平台上測試未簽章的擴充。[15][16]
相容性與更新
擴充包含的附有元數據的XML檔案會被附加元件安裝機制使用。在該檔案中,此附加元件適用的Mozilla應用程式專案的最大和最小版本也被標明。如果安裝的附加元件適用版本不再範圍內,安裝可能會被阻止或警告。然而,元數據中的版本範圍並不能保證附加元件在此範圍內與外一定能正常工作,並可使用方法繞過該相容性檢查。
附加元件管理員會定期的自動從Mozilla附加元件網站(或擴充自行定義的地址)檢查是否存在更新,用戶也可自行觸發附加元件的檢查更新。
主題
主題,[17]原名Personas(炫彩風格),它允許用戶快速的改變一個應用程式的外觀。儘管最早的Personas是採用一個擴充來實現,但該功能從Firefox 3.6開始已被內建,並在之後被其他一些應用程式採用。這些「背景主題」與實現為Mozilla擴充的傳統主題、完整主題不同。這種主題更加基礎,也更容易建立和安裝,但能力僅限於更改工具列、選單欄和狀態列的背景圖像、背景顏色和文字顏色。它們不需要以擴充的形式安裝,也不能更改工具列等介面元素的形狀、外觀、功能表現等。安裝它們非常簡單,只需單擊即可下載並啟用,並還支援懸停預覽即時效果。
該類主題最早寄存於GetPersonas.com,後在2013年被轉移到Mozilla Add-ons網站。此外,因為名稱與被稱為「Mozilla Persona」的方案類似,Mozilla停止使用該名稱並改稱之為「主題」,儘管這將基於擴充實現的主題(現稱之為完整主題、傳統主題)與Personas混淆,但它們均由附加元件管理員安裝和管理,並且顯示在同一欄目中(現稱之為「外觀」)。[18][19]
儘管此功能受到了一些好評,但TechCrunch批評Mozilla只着眼於發展瀏覽器的外觀來吸引目光,而沒有將精力更多地放在改進Firefox的速度和可用性上[20]
外掛程式
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不分發第三方外掛程式,附加元件管理員也不能更新它們。[21]
參考資料
- ^ Add-ons. [2016-12-18]. (原始內容存檔於2018-07-24).
- ^ Smedberg, Benjamin. NPAPI Plugins in Firefox. Future Releases. Mozilla Foundation. 8 October 2015 [2016-12-18]. (原始內容存檔於2015-10-09).
- ^ Site Credits. Mozilla Add-ons. Mozilla Foundation. [16 February 2011]. (原始內容存檔於2011-09-20).
- ^ Customizing your Firefox with add-ons: Acquiring add-ons. [2008-07-07]. (原始內容存檔於9 July 2008).
- ^ Scott, Justin. 600,000,000 Add-on Downloads. Blog of Metrics. Mozilla Foundation. 30 January 2008 [2016-12-18]. (原始內容存檔於2012-03-08).
- ^ Firefox Add-ons Cross More Than 3 Billion Downloads!. The Mozilla blog. [1 November 2013]. (原始內容存檔於2017-01-14).
- ^ MozillaWiki: AMO Roadmap. [2008-07-07]. (原始內容存檔於2021-01-16).
- ^ MozillaWiki: Remora. [2008-07-07]. (原始內容存檔於2021-01-26).
- ^ Traces of a new AMO. [2016-12-18]. (原始內容存檔於2015-09-21).
- ^ Previewing AMO's new look. [2016-12-18]. (原始內容存檔於2015-09-03).
- ^ Chapter 2: Technologies used in developing extensions - Firefox addons developer guide | MDN (頁面存檔備份,存於互聯網檔案館).
- ^ User script - GreaseSpot Wiki (頁面存檔備份,存於互聯網檔案館).
- ^ Abusing, Exploiting and Pwning with Firefox Add-ons (PDF). (原始內容 (PDF)存檔於2016-03-05).
- ^ Add-on code stored in profile folder raises security risk. [2016-12-18]. (原始內容存檔於2018-06-14).
- ^ Fisher, Dennis. Firefox 40 Begins Warning Users About Unsigned Add-Ons. Threatpost. [20 August 2015]. (原始內容存檔於2021-03-01).
- ^ Extension Signing. Mozilla.org Wiki. Mozilla. [20 August 2015]. (原始內容存檔於2019-10-10).
- ^ Personas for Firefox: Getting Started. Mozilla Foundation. [2013-03-29]. (原始內容存檔於2013-04-11).
- ^ 存档副本. [2016-12-18]. (原始內容存檔於2015-09-20).
- ^ 存档副本. [2016-12-18]. (原始內容存檔於2020-12-02).
- ^ Make Your Firefox Browser Look Better With Mozilla Labs' Latest Skins. TechCrunch. 2009-03-31 [2013-02-10]. (原始內容存檔於2021-02-11).
- ^ Check Your Plugins. mozilla.org. Mozilla Foundation. [2015-10-09]. (原始內容存檔於2020-04-19).
- ^ Smedberg, Benjamin. NPAPI Plugins in Firefox. Future Releases. Mozilla Foundation. 8 October 2015 [2016-12-18]. (原始內容存檔於2015-10-09).