Chrome 擴充功能有哪些地方?'

愛咪
Amy Steam

到目前為止,2023 年在 Chrome 擴充功能世界中蓬勃發展。我們會根據您的寶貴意見,改善擴充功能平台及說明文件。我們也持續與 WebExtensions Community Group 的其他瀏覽器供應商合作,讓擴充功能 API 在不同瀏覽器間更一致。

本文中,我們將介紹 Chrome 擴充功能團隊今年上半年研發的幾項功能,以及本季稍晚即將推出的功能。開始上課吧!

新的擴充功能 API 和功能

在本節中,我想介紹幾項重要的 API 功能,並簡短說明其他 API 改善項目,並分享即將推出的 API 版本。

重點特色

畫面外文件

Offscreen API 是在 Chrome 109 年推出。可讓 Manifest V3 擴充功能處理需要與 DOM 或視窗互動的用途,而這些用途無法在擴充功能服務工作站中執行。此外,Chrome 114 導入了兩個額外的螢幕外原因:'WORKERS' 適用於需要產生 worker 的文件,以及 'LOCAL_STORAGE' 協助您將資料從 window.localStorage 遷移到 chrome.storage API

從 Chrome 115 版開始,您可以在建立畫面外文件時提供多個原因。這可讓您在同一份文件中執行兩項相關工作。

全新 Side Panel API 🎉?

過去,如要在擴充功能中建立側欄,唯一的方法就是在每個頁面中插入含有內容指令碼的新元素。在 Chrome 114 版中,推出 Side Panel API。您現在可以透過更直接的方式,為使用者開發隨播廣告側欄體驗。進一步瞭解 Side Panel API 如何協助您設計優異的使用者體驗

顯示所選字詞定義的字典擴充功能
側邊面板字典擴充功能。請參閱 chrome-extensions-samples 存放區中的程式碼

更強大的服務工作人員

所有擴充功能事件現在都會重新啟動擴充功能服務 Worker 的閒置計時器。在 Chrome 110 中,已移除擴充功能 Service Worker 的硬生命週期上限五分鐘上限,此外,傳送給原生應用程式擴充功能中的訊息的訊息也會重新啟動閒置計時器。詳情請參閱擴充功能 Service Worker 生命週期一文。

更多 API 功能

  • Action API:從 Chrome 110 以上版本開始,你可以使用 setBadgeTextColor()getBadgeTextColor() 自訂徽章文字。此外,isEnabled() 可讓您檢查目前分頁是否已啟用這個動作。
  • Commands API:在改用 MV3 時,在資訊清單中宣告的擴充功能捷徑 (在 "commands._execute_action" 底下宣告) 在 Chrome 111 中已修正的錯誤。
  • Downloads API:Chrome 預設的下載使用者介面已從網址列底部的檔案櫃移至右側。如要停用這項行為,您可以使用 downloads.setUiOptions() 取代 setShelfEnabled()
  • History APIchrome.history.getVisits()chrome.history.search() 也會傳回已同步到本機記錄資料庫的其他裝置資料。這可能會累積更多記錄項目和造訪次數。Chrome 115 版中已在 VisitItem 中新增「isLocal」(預計本月稍晚將推出),屆時只能依當地造訪篩選。
  • Identity API:系統現在會以彈出式視窗顯示驗證視窗,不會佔用完整的應用程式視窗。為了在 JavaScript 重新導向過程中提供更多控制權限,我們新增了兩個新選項:abortOnLoadForNonInteractivetimeoutMsForNonInteractive
  • Storage API:在 Chrome 112 中,chrome.session 儲存空間大小已提高為 10 MB。之後,chrome.local 的儲存空間大小已變更為與 Chrome 114 一致。

即將推出...

即將推出的 Chrome 版本會推出許多功能,讓擴充功能更容易遷移至 Manifest V3。如需 MV3 遷移作業的近期異動清單,請參閱已知問題頁面。此外,我們計劃新增下列功能:

  • DeclarativeNetRequest APIisUrlFilterCaseSensitive 屬性的預設值是 false。請參閱 WECG 執行緒。
  • File Handling API 可讓 ChromeOS 擴充功能以指定的 MIME 類型和副檔名開啟檔案。這項功能目前在旗標後面
  • Runtime API:我們發布了 runtime.getContexts() 來取代已淘汰的 extension.getViews()。讓擴充功能判斷某個擴充功能頁面 (例如側邊面板或畫面外文件) 是否已開啟。請參閱 WECG 提案。
  • Service Worker:我們將在 Chrome API 中新增強大的保持運作機制,這些 API 會顯示使用者提示:permissions.request()desktopCapture.chooseDesktopMedia()identity.launchWebAuthFlow()management.uninstall()
  • Side Panel API:我們即將推出 sidepanel.open(),此後將透過程式輔助方式開啟擴充功能側邊面板,回應使用者手勢 (例如點選內容選單)。
  • TabCapture API:我們新增了從擴充功能 Service Worker 呼叫 getMediaStreamId() 的功能,也能從畫面外文件的串流 ID 取得 MediaStream。如需範例,請參閱「音訊錄音和螢幕畫面擷取」一文。

擴充功能新功能頁面會在 Chrome Beta 版推出後,請密切留意「擴充功能新功能」頁面,以便掌握這些公告資訊。

說明文件升級和更多 Manifest V3 指南

我們也努力改善開發人員的學習體驗。非常感謝花時間在 chromium-group 中提問,並在 developer.chrome.com 上回報說明文件問題。

重點特色

  • 新的「MV3 遷移」部分提供將 Manifest V2 擴充功能轉換為 Manifest V3 的實用方法。
  • 擴充功能 Service Worker 指南提供擴充功能 Service Worker 主題的詳細資訊。這些元件包括註冊和更新的方式、生命週期、匯入運作方式等。
  • 使用 Service Worker 處理事件」教學課程會介紹擴充功能服務工作站的基本概念。這項工具會建構一個網址列擴充功能,可讓您快速存取擴充功能 API 參考頁面。

更多最新消息

即將推出...

  • 如何將遠端代管的程式碼遷移至 Manifest V3。
  • 如何執行 Chrome 擴充功能的自動化測試。
  • 改善宣告式淨值要求指南。
  • 改善內容指令碼說明。

💡? 你知道嗎?

在總結之前,我們想分享一些實用工具和深入分析資料:

  • Chrome 最初開始支援 WebHID,您可以在 Chrome 115 以上版本中試用這個 API (但請注意,這個 API 目前仍在開發階段)。
  • Puppeteer 現在支援使用 --headless=new 在無頭模式下進行測試。詳情請參閱 Chrome 的無頭模式升級網誌文章。
  • 只要使用擴充功能更新測試工具,就能檢查資訊清單的權限有所變更時,系統會觸發哪些警告。如此一來,您就可以像使用者一樣體驗更新程序。由於某些權限可能會在使用者再次授予存取權前停用擴充功能,因此相當重要。

放心連線!🙌

今年,擴充功能團隊很高興能在 Google I/O Connect 活動期間,親自與擴充功能開發人員見面。我們正努力建立新的聊天室,以便與你互動交流,例如推出焦點團體和聚會活動。

與此同時,您可以繼續在 chromium-groups 中提問,請考慮參與 WECG 計畫,並在 developer.chrome.com GitHub 存放區中回報任何說明文件問題。

再次感謝您加入擴充功能開發人員社群!