延伸模組概念和架構
本文介紹建置 Microsoft Edge 擴充功能的概念。 請遵循 以瞭解多索引標籤瀏覽器的運作方式。
Microsoft Edge 擴 充功能是一個小型應用程式,使用者可以加入加入它來新增或修改 Microsoft Edge 的功能,以提供對目標物件很重要的特殊體驗或功能。 如需簡介,請 參閱 Microsoft Edge 擴充功能概觀。
了解瀏覽器的運作方式
下列清單概述建置延伸模組之前要了解的實用資訊。
瀏覽器索引標籤是隔離線程
每個瀏覽器索引標籤都會與其他索引標籤隔離。每個索引標籤都會在與其他瀏覽器索引標籤和線程隔離的個別線程中執行。
每個索引標籤都會處理一個 GET 要求
每個索引標籤都會處理一個 GET 要求。 每個索引標籤都會使用 URL 來取得單一數據流,這通常是 HTML 檔。 該單一數據流或頁面包含 JavaScript 之類的指示,包括標籤、影像參考、CSS 參考等等。 所有資源都會下載到該索引標籤面,然後在索引卷標中呈現頁面。
每個索引標籤與遠端伺服器之間會進行通訊
每個索引標籤與遠端伺服器之間會進行通訊。 每個索引標籤都會在隔離的環境中執行。 每個索引標籤仍然連線到因特網,但每個索引標籤都與其他索引卷標隔離。 索引標籤可以執行 JavaScript 來與伺服器通訊。 伺服器是第一個 GET 要求的來源伺服器,該要求已輸入索引標籤的 URL 列中。
通訊模型
延伸模組模型會使用不同的通訊模型。 類似於索引標籤面,延伸模組會在與其他索引標籤面線程隔離的個別線程中執行。 索引標籤會將單一 GET 要求傳送至遠端伺服器,然後轉譯頁面。 不過,擴充功能的運作方式類似於遠端伺服器。 在瀏覽器中安裝擴充功能會在瀏覽器中建立獨立網頁伺服器。 延伸模組會與所有索引標籤面隔離。
延伸模組架構
下列清單概述與擴充功能架構相關的實用資訊。
延伸模組 Web 伺服器套件組合
擴充功能是 Web 資源的組合。 Web 資源類似於您 (Web 開發人員) 發佈至網頁伺服器的其他資源。 建置擴充功能時,您會將 Web 資源組合成 zip 檔案。
zip 檔案包含 HTML、CSS、JavaScript 和圖像檔。 zip 檔案的根目錄中還需要一個檔案。 另一個檔案是名為的 manifest.json
指令清單檔。 指令清單檔是延伸模組的藍圖,包含延伸模組的版本、標題、執行擴充功能所需的許可權等等。
啟動擴充伺服器
網頁伺服器包含您的 Web 套件組合。 瀏覽器會瀏覽至伺服器上的 URL,並下載要在瀏覽器中呈現的檔案。 瀏覽器會使用憑證、組態檔等來巡覽。
index.html
如果指定了檔案,檔案會儲存在網頁伺服器上的特殊位置。
當您使用擴充功能時,瀏覽器的索引標籤面會使用擴充功能運行時間進入延伸模組的 Web 套件組合。 擴充功能運行時間會提供 URL extension://{some-long-unique-identifier}/index.html
中的檔案,其中 {some-long-unique-identifier}
是安裝期間指派給擴充功能的唯一標識碼。 每個延伸模組都會使用不同的唯一標識符。 每個標識碼都會指向您瀏覽器中安裝的 Web 套件組合。
與索引標籤和瀏覽器工具列通訊
擴充功能可以與索引標籤和瀏覽器工具列通訊。 擴充功能可以與瀏覽器的工具列互動。 每個延伸模組都會在個別的線程中管理執行中的索引標籤面,而且每個索引卷標頁面上的 DOM 操作都會隔離。 擴充功能會使用擴充功能 API 在擴充功能和索引標籤面之間進行通訊。 擴充功能 API 提供額外的功能,包括通知管理、記憶體管理等等。
就像網頁伺服器一樣,擴充功能會在瀏覽器開啟時等候通知。 延伸模組和索引標籤會在彼此隔離的線程中執行。 若要允許擴充功能使用任何索引標籤面,請使用擴充功能 API 並設定指令清單檔中的許可權。
安裝時加入加入許可權
擴充功能會在安裝時提供選擇加入許可權。 您可以在檔案中 manifest.json
指定擴充功能許可權。 當使用者安裝擴充功能時,會顯示擴充功能所需的許可權相關信息。 根據所需的許可權類型,延伸模組可以從瀏覽器擷取和使用資訊。
後續步驟
如需開始使用延伸模組的資訊,請參閱 教學課程第1部分:在彈出視窗中顯示影像。