Firefox 已開始測試第三版 Chrome 清單

Mozilla 宣布已開始測試 Firefox 對 Chrome 清單第三版的實現,該清單定義了使用 WebExtensions API 編寫的附加元件可用的功能和資源。要在 Firefox 101 beta 中測試清單的第三個版本,您應該在 about:config 頁面中將「extensions.manifestV3.enabled」參數設為 true,並將「xpinstall.signatures.required」參數設為 false。若要安裝附加元件,您可以使用 about:debugging 介面。第三個版本的清單計劃在今年底預設啟用。

從版本 57 開始,Firefox 完全轉而使用 WebExtensions API 來開發附加元件,並停止支援 XUL 技術。向WebExtensions的過渡使得Chrome、Opera、Safari和Edge平台統一插件的開發成為可能,簡化了不同Web瀏覽器之間插件的移植,並可以充分利用WebExtensions的多進程模式。操作(WebExtensions 附加元件可以在單獨的進程中執行,與瀏覽器的其餘部分隔離)。為了與其他瀏覽器統一加載項的開發,Firefox 提供了與 Chrome 清單第二版的幾乎完全相容。

Chrome 目前正在努力轉向清單版本 2023,對版本 XNUMX 的支援將於 XNUMX 年 XNUMX 月停止。由於清單的第三個版本受到了攻擊,並且將破壞許多內容阻止和安全附加元件,因此 Mozilla 決定放棄確保與 Firefox 中的清單完全相容的做法,並以不同的方式實施一些更改。

對第三版宣言的主要不滿與將 webRequest API 轉換為唯讀模式有關,這使得連接您自己的處理程序成為可能,這些處理程序可以完全存取網路請求並且可以動態修改流量。 該 API 用於 uBlock Origin 和許多其他附加元件中,以阻止不當內容並提供安全性。 第三個版本的清單提供了一個功能有限的declarativeNetRequest API,而不是webRequest API,該API 提供對內置過濾引擎的訪問,該引擎獨立處理阻止規則,不允許使用自己的過濾演算法,並且不允許使用內置過濾引擎。允許根據條件設定相互重疊的複雜規則。

在 Firefox 中提出的第三版清單的實作中,新增了用於內容過濾的新聲明式 API,但與 Chrome 不同的是,它們並沒有停止支援 webRequest API 的舊阻塞操作模式。 Firefox 中新清單實作的其他功能包括:

  • 清單定義了使用 Service Workers 選項取代後台頁面,該選項會作為背景進程(Background Service Workers)運作。為了確保相容性,Firefox 將實現這一要求,但還將額外提供一種新的事件頁面機制,該機制對於Web 開發人員來說更為熟悉,不需要對附加元件進行完全返工,並消除了與使用Service Workers 相關的限制。事件頁面將允許現有的後台頁面新增符合清單第三版的要求,同時保持對使用 DOM 所需的所有功能的存取。在 Firefox 中可供測試的清單實作中,目前僅支援事件頁面,並承諾稍後會新增對基於 Service Workers 的解決方案的支援。 Apple 支援該提案並在 Safari 技術預覽版 136 中實作了活動頁面。
  • 新的細化權限請求模型 - 此附加元件將無法一次為所有頁面啟動(「all_urls」權限已被刪除),但只能在活動標籤的上下文中工作,即使用者需要確認該附加元件適用於每個網站。 在Firefox 中,所有存取網站資料的請求都將被視為可選,並且授予存取權限的最終決定將由使用者做出,使用者將能夠選擇性地決定哪個加載項授予對其特定網站上的資料的訪問權限。
  • 處理跨來源請求的變更 - 根據新的清單,內容處理腳本將受到與嵌入這些腳本的主頁相同的權限限制(例如,如果該頁面無權訪問location API,那麼腳本附加元件也不會收到此訪問權限)。 此變更已在 Firefox 中完全實現。
  • 基於 Promise 的 API。 Firefox 已經支援此 API 並將其移至清單第三版的「chrome.*」命名空間。
  • 禁止執行從外部伺服器下載的程式碼(我們討論的是加載項載入並執行外部程式碼的情況)。 Firefox 已經使用了外部程式碼阻止,並且 Mozilla 開發人員在清單的第三個版本中添加了額外的程式碼下載追蹤技術。對於內容處理腳本,提供了單獨的內容存取限制策略(CSP,內容安全策略)。

來源: opennet.ru

添加評論