請經常查看這個頁面,瞭解 Chrome 擴充功能、擴充功能說明文件或相關政策的異動情形,或其他異動。您可以在 Extensions Google 網路論壇上找到其他通知。Chrome 發布時間表會列出穩定版和 Beta 版的發布日期。
Chrome 132:Tabs API 中的新凍結屬性
自 Chrome 132 版起,分頁 API 中的 frozen
屬性會指出瀏覽器是否已將分頁凍結。傳送至已凍結分頁的訊息會排入佇列,並在分頁解凍時處理。
Chrome 擴充功能中的提示 API
Prompt API for Extensions 現已開放來源試用,您可以在瀏覽器中建構使用 Gemini Nano (Google 最有效率的語言模型) 的 Chrome 擴充功能。
加入 Prompt API 來源試用 (在 Chrome 131 到 136 版執行),並提供意見回饋。您的意見將直接影響我們建構及實作此 API 後續版本,以及所有內建 AI API 的方式。
網誌文章:Chrome 擴充功能最新消息 (2024 年 10 月)
又到了總結 Chrome 擴充功能最新動態的時候了:我們帶來了 AI 整合、新的 API、事件和影片等精彩更新。如要進一步瞭解,請參閱 Chrome 擴充功能十月版的最新消息!
加入內建 AI 挑戰
Chrome 推出了內建 AI 挑戰賽:歡迎您使用 Chrome 整合的 AI 模型和 API 建立創新的網頁應用程式和 Chrome 擴充功能,有機會贏得總值 $65,000 美元的獎金。
如要瞭解詳情並報名參加,請前往 內建 AI 挑戰網站。我們非常期待看到你在網頁中加入 AI 技術後的創作成果!
Chrome 130:action.onUserSettingsChanged
自 Chrome 130 版起,action.onUserSettingsChanged 事件已開放使用。這項變更是根據 WebExtensions 社群群組的提案所做的調整。感謝 Microsoft 對 Chromium 的貢獻。
Chrome 130:StorageArea.getKeys()
從 Chrome 130 開始,StorageArea 介面 (chrome.storage
API 所用) 會提供 getKeys() 方法。這項變更是根據 WebExtensions 社群群組的提案所做的調整。
Chrome 128:宣告式網路要求中的回應標頭比對
自 Chrome 128 版起,我們將在宣告式網路要求 API 中新增回應標頭比對支援功能。這是常見的要求,特別是與 Content-Type 標頭相符的要求。我們與 WebExtensions 社群群組合作,設計了合適的 API。
我們更新了 API 參考資料,加入新的 responseHeaders
和 excludedResponseHeaders
欄位。您可以使用這些方法,檢查指定標頭是否存在,以及其值為何。
在本次更新中,我們在說明文件中新增了規則評估一節,說明規則的配對方式。特別是標頭比對,規則只能在收到回應標頭後執行,因此會比其他規則晚一點套用。這表示要求在遭到封鎖或重新導向前,確實已傳送至伺服器。
影片:什麼是內容指令碼?
瞭解 Chrome 擴充功能中的內容指令碼,包括如何註冊 CSS 和 JavaScript,以便在特定網頁上執行。觀看完整影片。
重要政策更新
Chrome 線上應用程式商店團隊已在「開發人員計畫政策」頁面發布一系列更新,目的是鼓勵開發人員開發高品質產品、防止欺騙行為,並確保使用者在知情同意的情況下進行操作。Chrome 線上應用程式商店政策管理員 Rebecca Soares 在 Chrome 擴充功能:重要政策更新的部落格文章中總結了所有更新內容。
部落格文章:Chrome 擴充功能最新消息 (2024 年 7 月)
過去三個月,我們推出了多項重大更新和新功能,包括開始淘汰資訊清單 V2。歡迎參閱 Chrome 擴充功能 7 月版新功能,掌握最新動態!
影片:什麼是遠端代管程式碼?
Chrome 擴充功能團隊的 Patrick 說明 Chrome 擴充功能中的遠端代管程式碼 (RHC) 概念。瞭解為何不再允許使用 RHC、如何偵測 RHC,以及如果擴充功能需要更新時該怎麼做。觀看完整影片。
Chrome 127:新 action.openPopup API
自 Chrome 127 起,所有擴充功能都能使用 action.openPopup
API。先前這項功能僅適用於 Canary 或政策安裝的擴充功能。
影片:信任與安全團隊訪談
Chrome 擴充功能開發人員關係團隊與負責 Chrome 線上應用程式商店審查的「信任與安全性」團隊坐下來,回答你的問題。觀看完整影片。
網誌文章:Manifest V2 淘汰計畫開始
自 6 月 3 日起,如果使用者仍安裝了資訊清單 V2 擴充功能,Chrome Beta、Dev 和 Canary 管道中的部分使用者會在造訪擴充功能管理頁面 (chrome://extensions) 時,看到警告橫幅,說明他們安裝的部分 (資訊清單 V2) 擴充功能即將不再受支援。詳情請參閱官方公告
側邊面板 UI 更新
我們最近對側邊面板 UI 做了一些變更,包括新增圖釘圖示和移除全域側邊面板圖示。詳情請參閱這篇公開說明文章,並查看我們更新的說明文件和範例。
網誌文章:2024 年 Google I/O 大會的 Chrome 擴充功能
又到了 Google I/O 大會的季節,我們也將帶來所有令人興奮的擴充功能更新!歡迎前往 YouTube 觀看完整影片,並閱讀這篇網誌文章,瞭解其中的亮點。
針對符合資格的宣告式網路要求變更略過審查
使用宣告式網路要求 API 時,Chrome 線上應用程式商店現在可讓您略過符合資格的變更審查。如要進一步瞭解資格條件和選擇加入方式,請參閱 Chrome 線上應用程式商店說明文件。
Chrome 線上應用程式商店 API 中可用的 deployPercentage
我們最近更新了 Chrome 線上應用程式商店 API 說明文件,加入了 deployPercentage
的相關資訊,讓您為部分推播部署作業指派百分比。瞭解 deployPercentage
。
Chrome 126:擴充功能中的原始來源試用
Chrome 126 推出了新的 manifest.json 欄位 - trial_tokens
,可讓您在所有擴充功能途徑中選擇參與來源測試和淘汰測試。詳情請參閱指南。
部落格文章:Chrome 擴充功能最新消息 - 2024 年 4 月
我們發布了最新版的 Chrome 擴充功能新消息。這篇文章會說明擴充功能團隊過去幾個月的工作內容。包括:Chrome 線上應用程式商店的版本回溯功能、更完善的 Firebase Auth 支援功能,以及更多 API 推出和更新。
在 Chrome 線上應用程式商店開發人員資訊主頁中回復版本
將擴充功能回溯至 Chrome 線上應用程式商店中先前發布的版本,無須額外審查!如需更多資訊,請參閱網誌文章和說明文件。
Chrome 124:進階 documentScan API
進階 documentScan
API 現已在 ChromeOS 上推出,可用於探索及擷取連接的文件掃描器中的圖片。
Chrome 124:Service Worker 中的 WebGPU 支援
自 Chrome 124 起,服務工作者就支援 WebGPU。如要快速上手,請查看 WebGPU 擴充功能範例。
Chrome 123:Events API 支援依 CIDR 區塊篩選
Events API 現在支援依據無類別跨網域路由 (CIDR) 區塊篩選。CIDR 區塊是一組共用網路前置碼和位元數量的 IP 位址。先前,如果開發人員需要篩除多個 IP 位址,就必須為封鎖範圍中的每個位址設定篩選器規則。從現在開始,當擴充功能呼叫 addListener()
時,傳入的規則表示只有在網址的主機部分為 IP 位址,且包含在陣列中指定的任何 CIDR 區塊時,才會呼叫事件處理常式。
Chrome 線上應用程式商店:更新擴充功能名稱長度規定
在 Chrome 線上應用程式商店中,現在對 manifest.json 中擴充功能的 "name"
欄位設有 75 個字元的通用限制。先前,英文的限制為 45 個字元,其他語言代碼的 "name"
欄位則沒有限制。
這項功能原本的用意是為了因應文化和語言差異,因為這些差異可能無法透過相同數量的字元來呈現。不幸的是,少數開發人員濫用這項功能,在商店發布垃圾內容。因此,我們將推出新的通用限制,增加至 75 個字元。這項限制涵蓋目前商店中的所有擴充功能,因此您可能不需要採取任何行動來因應這項異動。如果您嘗試上傳的擴充功能名稱長度超過上限,商店就會封鎖上傳作業。
網誌文章:eyeo 測試服務暫停功能的歷程
eyeo 擴充功能引擎團隊在這篇文章中探討了測試擴充功能服務 worker 的問題。在 Manifest V2 中,擴充功能會在背景頁面中運作,並在整個擴充功能生命週期中保持喚醒狀態。資訊清單 V3 則改用服務工作者,而服務工作者在設計上會在不需要時關閉,以節省資源。這會帶來特定的測試挑戰。這篇文章說明 eyeo 如何克服這些挑戰。
Chrome 123:鬧鐘現在會在裝置休眠時運作
使用 chrome.alarms
API 設定的鬧鐘,在裝置進入休眠狀態時,不再延遲。裝置喚醒時,無論錯過多少鬧鐘,鬧鐘都會觸發一次。舉例來說,假設鬧鐘設定為每小時響一次,而裝置在凌晨 12 點 55 分到凌晨 2 點 5 分處於休眠狀態,那麼只有凌晨 2 點的鬧鐘會觸發 onAlarm
事件。這項作業會盡可能在凌晨 2 點觸發,如果裝置處於休眠狀態,則會在裝置喚醒時立即觸發。
這項異動可讓 Chrome 符合 Web Extensions Community Group 中同意的行為。
部落格文章:使用擴充功能訊息端口時,bfcache 行為的變更
往返快取 (bfcache) 是一種瀏覽器最佳化功能,能讓使用者迅速往返網頁,從 Chrome 123 開始,如果含有開放式擴充功能連接埠的網頁儲存在 bfcache 中,則訊息管道會關閉,也就是說不會將任何訊息傳送至該網頁。因此,擴充功能指令碼應監聽 onDisconnect
等生命週期事件,並在從 BFCache 還原網頁時設定新的連線。
如需更多資訊和程式碼範例,請參閱「使用擴充訊息通訊埠時,BFCache 行為的變更」。
Chrome 122:非同步擴充功能 API 的承諾支援
我們已完成為所有非同步擴充功能 API 方法實作 Promise 支援功能。這麼做是為了改善處理非同步作業的人體工學,進而使 API 方法更為現代化。少數方法 (例如 desktopCapture.chooseDesktopMedia()
) 仍只支援回呼,因為其目前的途徑與 Promise 不相容。為了回溯相容性,我們仍支援回呼。如果您發現 Promise 失敗,請回報錯誤。
即時通訊的新指南
我們剛發布了擴充功能的即時選項指南。即時更新可提供從伺服器直接傳送至擴充功能安裝位置的即時通訊路徑。此外,我們也提供新的指南,說明如何使用 chrome.gcm 和 Web Push。
新指南和範例:測試服務工作站終止
我們剛發布了如何使用 Puppeteer 測試服務工作程終止的指南。隨附範例會在 Puppeteer 和 Selenium 中示範這項功能。
更新原生訊息的範例
我們剛發布了更新版範例,供原生訊息使用。這個 API 可讓擴充功能啟動並與其他應用程式通訊。感謝 GitHub 貢獻者 Shubham-Rasal 協助完成這項工作。
Chrome 121:在 tabs.Tab 上新增 lastAccessed 屬性
新增名為 lastAccessed
的屬性至 tabs.Tab
物件。這個屬性會指出分頁上次啟用時的時間。傳回值以 Epoch 紀元時間起算的毫秒數為單位。
Chrome 121:不支援的「background」鍵現在會發出警告
從資訊清單 V2 改為資訊清單 V3 時,"background"
資訊清單鍵的子項已變更,以便將背景指令碼替換為擴充功能服務 worker。先前,如果將 Manifest V2 鍵 "scripts"
、"page"
或 "persistent"
新增至 Manifest V3 擴充功能的 "background"
鍵,系統會擲回錯誤。這些鍵現在會觸發警告。
這項變更是為了讓開發人員在多個瀏覽器的擴充功能中使用單一資訊清單檔案,這項變更是根據社群群組中的提案所做的調整。
Chrome 120:將鬧鐘最小精細度縮短至 30 秒
自 Chrome 120 起,資訊清單 V3 擴充功能可使用 chrome.alarms
API,並設定 30 秒的延遲或時間間隔,而不需要設定 60 秒以上的值。
網誌文章:恢復轉換至 Manifest V3
我們已更新 Manifest V2 支援時程表。詳情請參閱 2023 年 11 月的網誌文章。
網誌文章:改善 Manifest V3 的內容篩選支援功能
如要瞭解我們如何改善 declarativeNetRequest API,請參閱新網誌文章。
部落格文章:Chrome 120 版擴充功能的新功能
Chrome 120 Beta 版最近已發布。如要查看與擴充功能開發人員相關的重要更新摘要,請參閱我們的新網誌文章:Chrome 120 擴充功能的新功能。這個版本也標誌著重大里程碑,因為它從重大平台差距清單中移除了最後兩項項目 (userScripts、ChromeOS 上的檔案處理常式)。
重要訊息:開發人員資訊主頁中隱私權政策網址的處理方式異動
開發人員資訊主頁中的隱私權政策現在會在項目層級新增。這樣一來,您就能為每項商品提供不同的隱私權政策。如要進一步瞭解這項異動,請參閱我們的公共安全宣導信。
影片:與馬特弗里斯比的對談
我們剛在 Chrome for Developers YouTube 頻道上發布了新影片,與 Google 開發人員專家兼作者 Matt Frisbie 進行對談。請按這裡觀看。
擴充功能測試的新指南
我們剛發布了新的指引,說明如何為擴充功能編寫自動化測試,包括如何編寫單元測試,以及一般指引和端對端測試教學課程。
網誌文章:Chrome 擴充功能的最新動態 - 2023 年 10 月
我們剛發布第二版的 Chrome 擴充功能最新消息。這篇文章討論了擴充功能團隊過去幾個月來的工作內容,包括解決服務工作站穩定性問題,以及在彌補所有 MV3 平台缺口方面取得良好進展。我們也會分享即將推出的令人期待的 API,例如 Reading List API 和 User Scripts API。
在宣告式網路要求 API 中提高靜態規則限制
根據 Web Extensions 社群群組的意見回饋,我們將啟用靜態規則集的上限從 10 大幅提高至 50。此外,我們也將允許的靜態規則總數從 50 個增加到 100 個。這項功能目前適用於 Canary。
改善遠端代管程式碼的相關指南
根據 Manifest V3 規定,擴充功能不得再使用遠端代管的程式碼。雖然這項資訊一開始就列在遷移指南中,但我們認為有必要改善這項問題的指引。該頁面現在提供更多資訊,說明 Manifest V3 仍可執行的功能,並提供升級策略的更多資訊。
Chrome 線上應用程式商店違規事項疑難排解中也有相關內容。新增一節,說明含有遠端代管程式的擴充功能遭拒的常見原因。
Chrome 118:isUrlFilterCaseSensitive 的預設值現在為 false
自 Chrome 118 版起,chrome.declarativeNetRequest API 中的 isUrlFilterCaseSensitive
屬性預設為 false
。如果您想保留舊行為,可以在 declarativeNetRequest 規則中明確將 isUrlFilterCaseSensitive
設為 true
。
這項決定是根據 Web Extensions 社群群組的討論所做出。Firefox 和 Safari 已實作類似的變更。
Cookie 和 Web Storage API 說明文件
我們發布了新的指南,說明 Cookie 和 Web Storage API 在 Chrome 擴充功能中的運作方式。其中包含詳細說明 Privacy Sandbox 中的 Cookie 和儲存空間分區變更,這是一項正在進行的專案,旨在透過建立一系列新的網路平台 API 淘汰第三方 Cookie,並說明這些 API 在擴充功能中的運作方式。
額外資訊範例現可供搜尋
我們最近建立了一個網頁,讓您搜尋 Chrome 擴充功能範例。搜尋頁面提供多種選項,您可以使用搜尋框搜尋範例標題中的文字。您可以依權限或擴充功能 API 限制搜尋範圍。您可以使用額外的篩選器,將搜尋範圍限制為 API 或功能 (用途) 範例。
這個新的範例頁面是由 Google 程式設計夏令營的參與者戴雪洲建立,他也提供了幾個新範例。如想瞭解他們在過去夏季的體驗,請參閱他們在 Google 網誌上的文章。
如先前所述,程式碼範例仍可在 GitHub 上使用,供您複製或分支。
Chrome 118:開啟檔案的變更:配置文件網址
自 Chrome 118 起,擴充功能必須在 chrome://extensions
頁面中啟用「允許存取檔案網址」設定,才能使用 分頁或 Windows API 開啟 file:// 配置網址。您可以透過程式設計呼叫 chrome.extension.isAllowedFileSchemeAccess()
,檢查此存取權。Firefox 已限制檔案網址,Safari 也支援這項變更。詳情請參閱 擴充功能 Google 網路論壇中的貼文。
Chrome 117:擴充功能 API 導覽功能的 URL 防護機制擴大
先前,針對 tabs.update()
、tabs.create()
和 windows.create()
的擴充功能 API 呼叫觸發的導覽會針對部分 chrome:// 網址發出錯誤。此外,系統禁止使用 JavaScript 網址呼叫 tabs.update()
。在 117 版中,這些 JavaScript 網址的保護措施已擴展至 tabs.create()
方法,並將多個額外的 chrome:// 網址加入禁止網址清單,適用於所有上述方法。
改善 declarativeNetRequest API 的指引
chrome.declarativeNetRequest
API 會指定宣告式規則,封鎖或修改網路要求。這樣一來,擴充功能就能修改網路要求,而不必攔截並查看內容,進而為使用者提供更高的隱私權。使用起來也相當複雜。有鑑於此,我們重新編寫了指南,以便更清楚說明如何實作宣告式規則集。請點選上方連結,查看新版說明。
在 Chrome 線上應用程式商店中使用 Google Analytics 帳戶
Chrome 線上應用程式商店可與 Google Analytics 整合,除了開發人員資訊主頁提供的檢視畫面外,您還可以查看 Chrome 線上應用程式商店資訊的分析資料。如需更多資訊,請參閱「在 Chrome 線上應用程式商店中使用 Google Analytics 帳戶」一文。
Chrome 115:開發人員工具預設會略過內容指令碼
根據預設,插入的內容指令碼會列入開發人員工具的忽略清單。這不會影響中斷點,但會在偵錯期間略過內容指令碼,並忽略這些指令碼的例外狀況。當您在「來源」分頁中開啟內容指令碼時,系統會顯示橫幅通知,提醒您已開啟這項功能,並提供選項,讓您從忽略清單中移除內容指令碼。如要關閉這項行為,請開啟 DevTools,依序前往「設定」和「忽略清單」。詳情請參閱「開發人員工具的新功能」。
Chrome 116 Beta 版:內容超出本文範圍
Chrome 116 是擴充功能的重大版本。您現在可以透過程式設計開啟側邊面板。您可以使用新方法,瞭解是否有有效的離線文件。服務工作者獲得了多項改善。116 版有許多改善項目,我們已撰寫一篇網誌文章介紹這些項目。自 7 月 19 日起,Chrome 116 為 Beta 版。
網誌文章:Chrome 擴充功能的最新動態
我們剛發布了今年擴充功能的變更和改善項目總覽。這篇文章將討論今年的重要新功能,包括側邊面板 API、服務工作者增強功能和螢幕外文件。您也可以一窺我們本季的工作內容。這篇文章列出了更多資訊,並附上連結。
新指南和範例:瞭解如何在 Chrome 擴充功能中使用 Google Analytics 4
我們發布了新的 Google Analytics 和地理位置指南和範例:
- 更新版 Google Analytics 指南,說明如何在 Chrome 擴充功能中使用 Google Analytics 4。我們也已在 GitHub 範例存放區中新增可運作的 Google Analytics 4 範例。請參閱
google-analytics.js
,瞭解與 Google Analytics 相關的程式碼。 - 新的地理位置指南和三個範例,說明如何在服務工作者、內容指令碼、彈出式視窗和側邊面板中存取地理位置。
Chrome 115:在 chrome.offscreen.createDocument() 中指定多個原因
您現在可以在呼叫 chrome.offscreen.createDocument()
時指定多個 reason
列舉。當您要將螢幕外文件用於多種不同用途時,請使用此選項。瀏覽器會根據提供的原因,判斷離屏幕外文件的生命週期。
新工具:擴充功能更新測試工具
我們剛發布了擴充功能更新測試工具,這是一個本機擴充功能更新伺服器,可用於在本機開發期間測試 Chrome 擴充功能的更新,包括授予權限。這項工具會顯示使用者的更新流程,包括在使用者授予任何新要求的權限之前,將擴充功能停用。這個工具特別適用於模擬從 Manifest V2 更新至 Manifest V3 時,所要求的權限變更。
Chrome 114:新的 Side Panel API
我們推出全新的 Side Panel API,這是一項輔助介面,可讓使用者在瀏覽內容時同時存取工具。如需更多資訊,請參閱 Side Panel API 參考資料。此外,我們也已在 GitHub 範例存放區中新增許多側邊面板範例。我們也在新的網誌文章「運用新版側邊面板 API 設計出色的使用者體驗」中,進一步分享有關側邊面板的資訊。我們也審查了品質指南政策和最佳做法,進一步提供有關建立高品質側邊面板擴充功能的指引。
您的意見回饋對於打造這個 API 至關重要;請在 chromium-groups 中分享您的想法和功能要求。我們會持續改善 Side Panel API,敬請密切留意最新消息。
新範例:擴充功能中的 WASM
我們提供兩個新的範例,說明如何在擴充功能中使用 WASM:
- 在 Manifest V3 中使用 WASM 說明瞭加入 WASM 模組的一般方法。
- 在資訊清單 v3 中使用 WASM 做為模組說明如何在模組中使用 WASM。
特別感謝 GitHub 貢獻者 @daidr 提供這些範例。
更新的 Manifest V3 遷移指南
我們已更新 Manifest V3 遷移指南的「已知問題」部分,列出我們打算在宣布新的 Manifest V2 淘汰時間表前,要解決的擴充功能平台缺口。
使用 Manifest V3 錄製音訊和視訊
我們剛發布一篇新文章「錄音和螢幕截圖」,說明如何在 Manifest V3 中錄製分頁、視窗或螢幕的音訊或視訊。本文將說明多種錄製方法,其中涉及 chrome.tabCapture
API 和 getDisplayMedia()
函式。
Chrome 114:提高 storage.local 配額
我們已將 storage.local
資源的配額提高至約 10 MB。這項做法已獲得 Web Extensions 社群群組的同意。這可讓 storage.local
與 Chrome 112 中變更的 storage.session
保持一致。
新的擴充功能服務工作者教學課程和說明
服務工作者是 Chrome 擴充功能不可或缺的一部分。我們剛剛發布了教學課程,說明註冊、偵錯及與 Service Worker 互動的基礎知識。此外,我們也新增了 Service worker 指南,進一步說明重要概念。我們會在未來幾個月內擴充這個部分。
更多 Web Store 違規事項的疑難排解提示
為協助您發布 Chrome 線上應用程式商店,我們在兩個方面新增了新的指南。基本功能的規範重點在於為使用者提供優勢,並豐富他們的瀏覽體驗。聯盟廣告的規範旨在讓使用者知道擴充功能會使用聯盟連結或代碼來營利,並要求使用者在納入前採取行動,讓使用者享有一定程度的控制權。
擴充功能資訊清單轉換工具的新操作說明
我們已重寫 Extension Manifest Converter 的 README,方便您在執行工具後瞭解接下來該做什麼。轉換工具可協助將以 Manifest V2 建構的擴充功能遷移至 Manifest V3。新的 README 會使用與遷移指南的檢查清單中相近的字詞,說明這項工具的功能。轉換工具並非萬能,但可以省去許多不需要人為判斷的工作。
Chrome 113:離螢幕外文件的新原因
我們已在 Offscreen Documents API 中新增兩種原因類型。使用 LOCAL_STORAGE
存取網路平台的 localStorage API。建立網頁 worker 時,請使用 WORKER
。
Google Analytics 4 現已在開發人員資訊主頁中提供
Chrome 線上應用程式商店開發人員資訊主頁現已支援 Google Analytics 4 (GA4)。我們簡化了 Google Analytics 的設定程序,並簡化群組發布者的存取權管理。如果您先前使用 Google 通用 Analytics 追蹤商店資訊活動,請在 2023 年 7 月 1 日前採取行動,確保您能繼續收到商店資訊相關資料。詳情請參閱 Chromium Extensions Google 網路論壇上的文章。
ChromeOS 推出 File Handling API
在 ChromeOS 112 和 113 版的 Canary 中,您可以透過實驗來使用 File Handler API。這項功能可讓 ChromeOS 上的擴充功能開啟指定 MIME 類型和檔案副檔名的檔案。如要實作檔案處理作業,請在 manifest.json
中新增一組規則。這項功能的運作方式與漸進式網頁應用程式相同。詳情請參閱本網站其他頁面的這篇文章。
如要啟用檔案處理功能,請按照下列步驟操作:
- 自 112 版起,使用
--enable-features=ExtensionWebFileHandlers
標記啟動 Chrome - 從 113 開始,請將
os://flags/#extension-web-file-handlers
貼到 Chrome 萬用盒中,然後從下拉式選單中選取「已啟用」。
我們希望在 6 月底推出 Chrome 115 版,屆時這項功能也將正式上線。請持續關注這個頁面,取得最新消息。
新範例:動態宣告和程式輔助插入
我們已為 chrome.scripting
API 建立新範例。這項範例會示範動態宣告,在這種情況下,內容指令碼會在執行階段註冊;此外,這項範例也會示範程式輔助插入,在這種情況下,指令碼會在已開啟的分頁中執行。
新範例:宣告式網路要求用途
我們提供三個新範例,展示宣告式網路要求 API。每個範例都會示範單一用途的實作方式。第一個說明如何封鎖 Cookie。其餘兩個則是封鎖和重新導向網址的示例。
Chrome 112:提高 storage.session 配額
自 Chrome 112 起,storage.session
資源的配額已增加至約 10 MB。這是 Web Extensions 社群群組同意的做法:https://github.com/w3c/webextensions/issues/350
Chrome 109:離線文件
您現在可以在 Manifest V3 擴充功能中使用離線文件。這些 API 可支援 DOM 相關功能和 API,有助於從背景頁面轉換至擴充功能服務 worker。詳情請參閱這篇網誌文章。
Chrome 110:是否已啟用擴充功能
chrome.action.isEnabled()
方法會以程式輔助方式檢查是否已為特定分頁啟用擴充功能。這樣一來,您就不必維護分頁的啟用狀態。這個新方法會採用分頁 ID 和回呼的參照,並傳回布林值。但這項方法有一個限制:使用 chrome.declarativeContent
建立的分頁一律會傳回 false。
(chrome.action
命名空間最近新增了用於控制擴充功能徽章外觀的新方法。詳情請參閱「設定徽章顏色」一文。
Chrome 110:服務工作者閒置逾時時間異動
先前,擴充功能服務 worker 經常會在五分鐘後關閉。我們已將這項行為改為更接近網路上的服務工作者生命週期。擴充功能服務工作者會在閒置 30 秒或單一活動處理時間超過 5 分鐘後關閉。詳情請參閱「延長擴充服務 worker 生命週期」。
貼文:暫停淘汰 Manifest V2
我們正在審查 Manifest V2 淘汰時程,並將 2023 年初的實驗延後。詳情請參閱 chromium-extensions Google 網路論壇中的更新資訊。
Chrome 110:設定徽章顏色
chrome.action
命名空間有兩種新方法,可讓您進一步控管外觀擴充功能徽章。setBadgeTextColor()
和 getBadgeTextColor()
方法可讓擴充功能變更及查詢其工具列圖示的徽章文字顏色。搭配 setBadgeBackgroundColor
和 getBadgeBackgroundColor
使用時,這些新方法可讓您強制執行設計和品牌一致性。
網誌文章:進一步瞭解如何改用 Manifest V3
我們已說明 Manifest V2 淘汰時程表。Manifest V2 支援時程表也已更新,反映這項資訊。
說明文件更新:遷移至 Manifest V3 時的已知問題
我們已整理出目前正在開發的主要功能和已知的錯誤清單。我們希望透過這個頁面,協助開發人員進一步瞭解平台目前的狀態,以及在未來的開發過程中,可以著重哪些功能。
Chrome 線上應用程式商店:移除「大型宣傳圖塊」圖片上傳功能
Chrome 線上應用程式商店已從開發人員資訊主頁的「商店資訊」分頁中移除「大型宣傳圖塊」上傳 UI。由於這些圖片並未用於消費者使用者介面,因此這項變更不會影響使用者體驗。詳情請參閱這篇 chromium-extensions 文章。
Chrome 106:允許 file:// 網址中的網頁存取可透過網路存取的資源
根據 crbug.com/1219825#c11 的說明,不透明來源 (例如沙箱 iframe 和動態匯入) 也應能存取可存取網頁的資源。
Chrome 106:修正錯誤,允許在部分非同步 API 函式上使用不正確的最終引數
先前,呼叫非同步 API 的 資訊清單 V3 可能會提供無效的最終引數,而 Chrome 不會顯示錯誤訊息。修正後,Chrome 會正確顯示錯誤,並回報沒有相符的簽名。開發人員應檢查 Canary 中的擴充功能是否有任何錯誤,以免誤用錯誤的簽章呼叫 API,導致這項錯誤修正無法正常運作。
部落格文章:Chrome 線上應用程式商店數據分析功能大改版
Chrome 線上應用程式商店已針對 Chrome 線上應用程式商店開發人員資訊主頁,改良商品分析體驗。新版資訊主頁更容易一目瞭然,並將最實用的資訊整合在前端。詳情請參閱這篇網誌文章。
Chrome 105:Identity API 的承諾
Identity API 的函式現在支援以承諾為基礎的呼叫。這會導致 identity.getAuthToken()
的介面略有變動,將非同步傳回值設為以承諾為基礎的呼叫時,就會在單一物件上使用「token」和「grantedScopes」做為參數 (與回呼版本不同,後者會將這些值設為回呼的個別引數)。
Chrome 104:適用於 Manifest V3 的新 favicons API
Manifest V3 擴充功能現在可以使用新的網址模式 chrome-extension://<id>/_favicon/
存取 favicon,其中 chrome://favicons
API。詳情請參閱 Favicon API 說明文件。
說明文件更新:開發人員交易者/非交易者揭露資訊
新增交易商/非交易商開發人員身分,讓開發人員如實自行聲明交易商/非交易商身分。
Chrome 103:Manifest V3 中的 Wasm 需要使用 wasm-unsafe-eval
Chrome 不再預設授予擴充功能 script-src: wasm-unsafe-eval
。使用 WebAssembly 的擴充功能現在必須在 content_security_policy
宣告中,明確將此指示和值新增至 extension_pages
。
Chrome 103:變更 MV3 快速鍵會立即生效
在 chrome://extensions/shortcuts
上變更 Manifest V3 擴充功能的鍵盤快速鍵時,現在會立即套用更新。先前必須重新載入擴充功能,變更才會生效。
Chrome 102:主要世界中的動態內容指令碼
動態註冊的內容指令碼現在可以指定要插入資產的世界。詳情請參閱 scripting.registerContentScripts()
。
Chrome 102:新增「optional_host_permissions」資訊清單欄位
Manifest V3 擴充功能現在可以在 manifest.json 中指定 optional_host_permissions
鍵。這可讓 Manifest V3 擴充功能宣告主機的選用比對模式,就像 Manifest V2 擴充功能可使用 optional_permissions
鍵一樣。
Chrome 102:scripting.executeScript() 中的 injectImmediately 屬性
chrome.scripting.executeScript()
現在可在其 injection
引數中接受選用的 injectImmediately
屬性。如果存在且設為 true,指令碼就會盡快將內容插入目標,而不會等待 document_idle
。請注意,這並不能保證指令碼會在網頁載入前插入,因為網頁會在 API 呼叫期間持續載入。
Chrome 102:Manifest V3 中的網址列 API 支援
Omnibox API 現在可用於服務工作者型擴充功能。先前,由於 DOM 功能的內部依附元件,這個 API 的部分方法會在叫用時擲回。
Chrome 102:Manifest V3 CSP 允許使用 wasm-unsafe-eval
Manifest V3 擴充功能現在可以在 content_security_policy
宣告中加入 wasm-unsafe-eval
。這項異動可讓 Manifest V3 擴充功能使用 WebAssembly。
Chrome 102:新的 storage.session API
資訊清單 V3 擴充功能現在可在記憶體儲存空間 storage.session 中使用。
說明文件更新:Chrome 線上應用程式商店項目探索功能
Chrome 線上應用程式商店的探索功能可讓你瞭解使用者如何在 Chrome 線上應用程式商店中找到項目,以及編輯人員如何選出要推薦的項目。
Chrome 101:改善 declarativeNetRequest 網域條件
declarativeNetRequest 規則條件已更新,讓擴充功能可根據要求的「request」和「initiator」網域,更精準地指定要求。相關的條件屬性為 initiatorDomains
、excludedInitiatorDomains
、requestDomains
和 excludedRequestDomains
。另請參閱這篇 chromium-extensions 討論串。
Chrome 100:解決新建立的分頁上 scripting.executeScript() 的問題
修正了長期存在的問題:在新建立的分頁或視窗上呼叫 scripting.executeScript()
可能會失敗。
Chrome 100:原生訊息傳送端口可讓服務工作程保持運作
在擴充功能的服務工作站中使用 chrome.runtime.connectNative()
連線至原生訊息主機時,只要通訊埠處於開啟狀態,服務工作站就會保持運作。
Chrome 100:omnibox.setDefaultSuggestion() 支援承諾和回呼
omnibox.setDefaultSuggestion()
方法現在會傳回承諾或接受回呼,讓開發人員判斷何時已正確設定建議。
Chrome 100:擴充功能服務 worker 支援 i18n.getMessage()
擴充功能服務 worker 情境現在支援 chrome.i18n.getMessage()
API。
Chrome 99:Canary 中的 match_origin_as_fallback
內容指令碼現在可以指定 match_origin_as_fallback
鍵,以便將其插入與相符影格相關的框架,包括含有 about:
、data:
、blob:
和 filesystem:
網址的框架。詳情請參閱內容指令碼說明文件。
Chrome 99:在 Canary 中支援檔案:模式的擴充功能服務 worker
以服務工作者為基礎的 Manifest V2 和 Manifest V3 擴充功能現在可以使用 Fetch API 要求 file:
架構網址。如要存取 file:
架構網址,使用者仍需在 chrome://extensions
頁面中為擴充功能啟用「允許存取檔案網址」功能。
Chrome 99:在 Canary 中支援訊息 API 的承諾
針對建構於 Manifest V3 的擴充功能,我們已在 tabs.sendMessage
、runtime.sendMessage
和 runtime.sendNativeMessage
中新增 Promise 支援。
說明文件更新:Chrome 線上應用程式商店審查說明
新增參考頁面,提供 Chrome 線上應用程式商店審查程序的概略說明,並說明如何處理開發人員計畫政策的違規處置。
Chrome 98:scripting.executeScript() 和 scripting.insertCSS() 可接受多個檔案
Scripting API 的 executeScript()
和 insertCSS()
方法現在可接受多個檔案。這類方法先前需要一個包含單一檔案項目的陣列。
說明文件更新:審查違規問題的最新資訊
我們已更新「Chrome 線上應用程式商店違規事項疑難排解」頁面,為開發人員提供更詳細的常見拒登原因指引。
Chrome 96:擴充承諾支援功能,涵蓋更多 27 個 API
此版本包含的承諾更新比先前任何版本都多。更新內容包括一般和 ChromeOS 專屬的擴充功能 API。展開下列各節即可瞭解詳情。
Extensions API
許多 API 現在支援 Manifest V3 中的承諾。
chrome.browsingData
chrome.commands
chrome.contentSettings
chrome.debugger
chrome.downloads
chrome.enterprise.hardwarePlatform
chrome.fontSettings
chrome.history
chrome.instanceID
chrome.permissions
chrome.processes
chrome.search
chrome.sessions
chrome.topSites
此外,使用 ChromeSetting
原型的 API 現在也支援承諾。以下 API 會受到這項異動影響。
ChromeOS API
chrome.certificateProvider
chrome.documentScan
chrome.enterprise.deviceAttributes
chrome.enterprise.networkingAttributes
chrome.fileBrowserHandler
chrome.fileSystemProvider
chrome.loginState
chrome.printingMetrics
chrome.wallpaper
Chrome 96:動態內容指令碼
chrome.scripting
API 現在支援註冊、更新、取消註冊,以及在執行階段取得內容指令碼清單。先前,內容指令碼只能在擴充功能的 manifest.json 中靜態宣告,或在執行階段透過程式碼插入 chrome.scripting.executeScript()
。
說明文件更新:Manifest V2 支援時程表
我們已在這篇網誌文章中宣布 Manifest V2 至 V3 的轉換時間表,並發布更詳細的時間表頁面。
Chrome 96:declarativeNetRequestWithHostAccess 權限
新的 declarativeNetRequestWithHostAccess
權限可讓擴充功能在擴充功能具有主機權限的網站上使用 chrome.declarativeNetRequest
API。這也讓使用 webRequest
、webRequestBlocking
和網站專屬主機權限的現有資訊清單 V2 擴充功能,能夠遷移至 chrome.declarativeNetRequest
API,而無須要求使用者核准新的權限。
Chrome 95:直接在網頁中插入指令碼
chrome.scripting
API 的 executeScript()
方法現在可以直接將指令碼插入網頁的主要世界。先前,擴充功能只能直接插入擴充功能的隔離世界。如要進一步瞭解隔離世界,請參閱 內容指令碼的說明文件。
Chrome 95:Storage API 的承諾支援
chrome.storage
API 的 Manifest V3 版本方法現在會傳回承諾。
政策更新:強制執行兩步驟驗證
我們已更新 2021 年 6 月 29 日發布的政策更新網誌文章,修正兩步驟驗證功能的部署時程。
Chrome 94:宣告式網際網路要求靜態規則集變更
chrome.declarativeNetRequest
現在支援一次指定最多 50 個靜態規則集 (MAX_NUMBER_OF_STATIC_RULESETS),並啟用最多 10 個規則集 (MAX_NUMBER_OF_ENABLED_STATIC_RULESETS)。
Chrome 93:跨來源隔離支援
Manifest V2 和 Manifest V3 擴充功能現在都可以選擇啟用跨來源隔離功能。這項功能可限制哪些跨來源資源可以載入擴充功能的網頁,並啟用 SharedArrayBuffer
等低階網路平台功能。自 Chrome 95 版起,使用者必須選擇採用這項功能。
政策更新:開發人員計畫政策修訂版
Chrome 線上應用程式商店開發人員計畫政策已更新,針對誤導安裝手法、垃圾內容和重複內容政策做出更明確的說明。這項更新也包含在 Chrome 線上應用程式商店中發布內容時,需要遵循的新兩步驟驗證規定。詳情請參閱這篇網誌文章。
部落格文章:Manifest V3 中的擴充功能動作
Chrome 擴充功能多年以來都有 chrome.browserAction
和 chrome.pageActions
API,但資訊清單 V3 已將這兩者都替換為通用的 chrome.actions
API。本文將探討這些 API 的發展歷程,以及 Manifest V3 的變更內容。閱讀文章。
網誌文章:介紹 chrome.scripting
chrome.scripting
API 是新的資訊清單 V3 API,專注於指令碼。本文將深入探討這項異動的動機,並進一步介紹新功能。閱讀文章。
Chrome 92:模組服務 worker 支援
Chrome 現已支援服務工作者中的 JavaScript 模組。如要在資訊清單中指定模組,請按照下列步驟操作:
"background": {
"service_worker": "script.js",
"type": "module"
}
這會將 worker 指令碼載入為 ES 模組,讓您在 worker 指令碼中使用 import
關鍵字匯入其他模組。
Chrome 91:chrome.action.getUserSettings()
新的 chrome.action.getUserSettings()
方法可讓擴充功能判斷使用者是否已將擴充功能固定在主工具列。
Chrome 90:chrome.scripting.removeCSS()
新的 chrome.scripting.removeCSS()
方法可讓擴充功能移除先前透過 chrome.scripting.insertCSS()
插入的 CSS。取代 chrome.tabs.removeCSS()
。
Chrome 90:從 scripting.executeScript() 傳回承諾
chrome.scripting.executeScript()
現在支援傳回 Promise。如果指令碼執行作業的結果值為承諾,Chrome 會等待承諾穩定後,再傳回結果值。
Chrome 90:chrome.scripting.executeScript() 結果包含 frameId
從 chrome.scripting.executeScript()
傳回的結果現在包含 frameId。frameId
屬性會指出結果來自哪個影格,讓擴充功能在注入多個影格時,輕鬆將結果與個別影格建立關聯。
Chrome 89:管理分頁群組的新 API
chrome.tabGroups
API 和 chrome.tabs
中的新功能可讓擴充功能讀取及操作分頁群組。需要使用資訊清單 V3。
Chrome 89:可自訂的網路資源存取權
Manifest V3 中的可存取的網路資源定義已變更,讓擴充功能可根據要求者的來源或擴充功能 ID 限制資源存取權。
網誌文章:擴充功能資訊清單轉換工具
Chrome 擴充功能團隊已將「Extension Manifest Converter」開放原始碼,這是一個 Python 工具,可自動執行將擴充功能轉換為 Manifest V3 的部分機械式作業。請參閱公告網誌文章,並從 GitHub 取得。
Chrome 88:資訊清單 V3 正式版
Manifest V3 是擴充功能平台的主要更新,請參閱「Manifest V3 總覽」,瞭解新功能和變更的功能摘要。擴充功能目前可以繼續使用 Manifest V2,但這項功能將在近期內逐步淘汰。強烈建議您為任何新擴充功能使用 Manifest V3,並盡快開始將現有擴充功能遷移至 Manifest V3。