請經常查看這個頁面,瞭解 Chrome 擴充功能、擴充功能說明文件、相關政策或其他異動。我們會在 Extensions Google 網路論壇中公布其他通知。Chrome 時間表會列出穩定版和 Beta 版的發布日期。
影片:什麼是遠端代管程式碼?
Chrome 擴充功能團隊的 Patrick 分享 Chrome 擴充功能中遠端代管程式碼 (RHC) 的概念。瞭解不再允許 RHC 的原因、偵測方式,以及擴充功能需要更新時的處理方式。歡迎觀看完整影片。
Chrome 127:新的 action.openPopup API
從 Chrome 127 版開始,所有擴充功能皆可使用 action.openPopup
API。先前只能在 Canary 版本或由政策安裝的擴充功能中使用。
影片:信任與安全團隊訪談
Chrome 擴充功能 DevRel 團隊與信任與安全團隊攜手合作,負責領導 Chrome 線上應用程式商店的審查作業。歡迎觀看完整影片。
網誌文章:開始逐步淘汰 Manifest V2
自 6 月 3 日起,在 Chrome Beta 版、開發人員版和 Canary 版發布,如果使用者仍未安裝 Manifest V2 擴充功能,部分使用者在造訪擴充功能管理頁面 (chrome://extensions) 時會看到警告橫幅 - 通知他們已安裝的部分 (Manifest V2) 擴充功能。詳情請參閱官方公告
側邊面板 UI 更新
我們最近對側邊面板 UI 做了一些變更,包括新增圖釘圖示及移除全域側邊面板圖示。您可以前往公共服務宣導瞭解詳情,並查看更新後的說明文件和範例。
網誌文章:2024 年 Google I/O 大會公布的 Chrome 擴充功能
另一場 Google I/O 大會都在幕後追蹤,我們為大家介紹了所有令人期待的擴充功能更新!歡迎前往 YouTube 觀看完整影片,並閱讀我們的網誌文章,瞭解一些精選內容。
針對符合條件的宣告式網路要求變更略過審查
使用 Declarative Net Request API 時,您現在可以在 Chrome 線上應用程式商店中略過符合資格的變更審查作業。如要進一步瞭解相關資格條件,以及如何選擇加入,請參閱 Chrome 線上應用程式商店說明文件。
Chrome Web Store API 提供的 deployPercentage
我們最近更新了 Chrome 線上應用程式商店 API 說明文件,加入 deployPercentage
的相關資訊,讓您指派一部分的推出部署作業。瞭解「deployPercentage
」。
Chrome 126:擴充功能中的來源試用
Chrome 126 推出了新的 manifest.json 欄位 (trial_tokens
),可讓您在所有擴充功能介面上啟用來源試用和淘汰測試。詳情請參閱指南。
網誌文章:Chrome 擴充功能異動 - 2024 年 4 月
我們已發布新版「Chrome 擴充功能的後續活動」。這篇貼文討論擴充功能團隊過去幾個月的用意。這包括:Chrome 線上應用程式商店的版本復原、 Firebase 驗證支援,以及更多 API 發布和更新。
Chrome 線上應用程式商店開發人員資訊主頁的版本復原作業
在不進行額外審查的情況下,將擴充功能復原到 Chrome 線上應用程式商店中先前發布的版本!如需詳細資訊,請參閱網誌文章和說明文件。
Chrome 124:Advanced documentScan API
ChromeOS 現已提供進階 documentScan
API,讓您從附加的文件掃描器探索及擷取圖片。
Chrome 124:Service Worker 中的 WebGPU 支援
自 Chrome 124 起,服務工作處理程序支援 WebGPU。如需快速入門,請查看 WebGPU 擴充功能範例。
Chrome 123:Events API 支援根據 CIDR 區塊進行篩選
事件 API 現在支援依無類別跨網域路由 (CIDR) 區塊進行篩選。CIDR 區塊是一組 IP 位址,這些 IP 位址會共用一個網路前置字元和位元數。過去,開發人員需要篩選多個 IP 位址,才能為區塊範圍中的每個位址設定篩選規則。現在,當擴充功能呼叫 addListener()
時,傳入的規則表示只有在網址的主機部分為 IP 位址,且包含在陣列中指定的任何 CIDR 區塊中時,系統才會呼叫事件處理常式。
Chrome 線上應用程式商店:擴充功能名稱長度規定更新
現在,Chrome 線上應用程式商店中的 manifest.json 中擴充功能的 "name"
欄位字元限制為 75 個字元。在過去,英文限制為 45 個字元,且其他語言代碼的 "name"
欄位沒有限制。
這種設定是為了配合文化和語言差異,因為字元數可能難以擷取。很遺憾,這項功能遭到少數開發人員濫用,在商店中濫發垃圾內容。因此,我們即將推出新的通用限制,將增加的字元數提高至 75 個。目前商店中幾乎所有擴充功能的適用範圍都涵蓋在內,因此這項異動您可能不需要您採取任何行動。如果嘗試上傳的擴充功能名稱長度超過上限,商店就會封鎖上傳作業。
網誌文章:視障者測試服務工作人員停權的流程
在這篇由 eyeo 擴充功能引擎團隊的這篇文章中,我們將探討測試擴充功能服務工作人員的相關問題。在 Manifest V2 中,擴充功能會在背景頁面中運作,而該頁面會在擴充功能生命週期中喚醒。Manifest V3 改用 Service Worker 及 Service Worker 時,會在不需要時關閉資源,藉此保留資源。這帶來特定的測試挑戰。這篇貼文說明眼睛如何因應這些挑戰。
Chrome 123:現在裝置處於休眠狀態時執行鬧鐘
在裝置進入休眠時,使用 chrome.alarms
API 設定的鬧鐘不會再延遲。當裝置喚醒時,無論錯過多少鬧鐘,鬧鐘都會觸發。例如,假設鬧鐘設定為每小時響一次,而用於鬧鐘的裝置在凌晨 12:55 到凌晨 2:05,那麼只有凌晨 2:00 的鬧鐘會觸發 onAlarm
事件。它會盡可能在接近凌晨 2:00 時啟動,並在裝置處於休眠狀態時立即啟動。
這項異動可讓 Chrome 符合 Web Extension 社群群組中協議的行為。
網誌文章:擴充功能訊息通訊埠的 bfcache 行為異動
往返快取 (bfcache) 是一種瀏覽器最佳化功能,可以即時往返瀏覽。自 Chrome 123 起,如果將具有開啟擴充功能通訊埠的頁面儲存在 bfcache 中,系統會關閉訊息管道,這表示系統不會將任何訊息傳送至該頁面。因此,當網頁透過 BFCache 還原頁面時,擴充功能指令碼應監聽生命週期事件 (例如 onDisconnect
),並設定新的連線。
如需詳細資訊和程式碼範例,請參閱使用擴充訊息通訊埠的 BFCache 行為變更。
Chrome 122:針對非同步擴充功能 API 的 Promise 支援
我們已完成所有非同步擴充功能 API 方法的 Promise 支援,藉由提升非同步作業的交易效率,翻新 API 方法。少數方法 (例如 desktopCapture.chooseDesktopMedia()
) 仍僅支援回呼,因為其當前途徑與 Promise 不相容。為了回溯相容,系統仍支援回呼。如果您發現 Promise 故障,請回報錯誤。
新的即時通訊指南
我們已發布擴充功能的即時選項指南。這項即時更新功能提供即時通訊路徑,可直接從伺服器傳送至你安裝的擴充功能。此外,我們也更新了 chrome.gcm、Web Push 的使用指南。
新指引和範例:測試 Service Worker 終止
我們已發布指南,說明如何透過 Puppeteer 測試 Service Worker 終止情形。隨附的範例在 Puppeteer 和 Selenium 中進行了示範。
已更新原生訊息傳遞範例
我們剛發布了原生訊息傳遞的更新版範例。這個 API 可讓擴充功能啟動,並與其他應用程式通訊。感謝 GitHub 貢獻者 Shubham-Rasal 進行這項工作。
Chrome 121:「分頁」中的「上次存取時間」新屬性。Tab
名為 lastAccessed
的新屬性已新增至 tabs.Tab
物件。這個屬性表示上次啟用分頁的時間。傳回的值以 Epoch 紀元時間起算的毫秒為單位。
Chrome 121:不支援的「背景」鍵現在會顯示警告
在 Manifest V2 到 Manifest V3 的變更中,"background"
資訊清單索引鍵的子項已變更,以配合擴充功能 Service Worker 的背景指令碼取代。原先在 Manifest V3 擴充功能的 "background"
鍵中加入 Manifest V2 索引鍵 "scripts"
、"page"
或 "persistent"
會導致錯誤。存在這些鍵時,現在會觸發警告。
這表示根據社群群組中的提案,在多個瀏覽器擴充功能中使用單一資訊清單檔案。
Chrome 120:鬧鐘精細程度下限降低至 30 秒
從 Chrome 120 開始,Manifest V3 擴充功能可以使用 chrome.alarms
API,延遲或持續時間設為 30 秒 (不必使用 60 秒以上的值)。
網誌文章:繼續轉換至 Manifest V3
已更新 Manifest V2 的支援時間表。詳情請參閱 2023 年 11 月網誌文章。
網誌文章:改善 Manifest V3 的內容篩選支援
歡迎參閱我們的新網誌文章,瞭解我們如何改善 declarativeNetRequest API。
網誌文章:Chrome 120 擴充功能新功能
最近發布了 Chrome 120 Beta 版。如要瞭解與擴充功能開發人員相關的重要更新摘要,請參閱新的網誌文章:Chrome 120 版擴充功能的新功能。此外,這個版本也從關鍵平台缺口清單中移除最後兩個項目 (ChromeOS 上的檔案處理常式),因此也是重要里程碑。
PSA:開發人員資訊主頁中的隱私權政策網址處理方式有所異動
開發人員資訊主頁現已在項目層級新增隱私權政策。以便為各個項目提供不同的隱私權政策。如要進一步瞭解這項變更,請參閱 PSA。
影片:與 Matt Frisbie 的即時通訊
我們剛在 Chrome 開發人員版 YouTube 頻道發布一部新影片,與 Google 開發人員專家及作者 Matt Frisbie 聊天。按這裡觀看。
關於測試擴充功能的新指南
我們剛剛發布了新的指南,協助您瞭解如何編寫擴充功能的自動化測試,包括如何編寫單元測試、一般指南,以及端對端測試的教學課程。
網誌文章:Chrome 擴充功能異動 - 2023 年 10 月
我們已發布第二版「Chrome 擴充功能的後續活動」。這篇文章討論了擴充功能團隊過去幾個月來的努力,包括解決服務工作人員穩定性問題、解決所有 MV3 平台缺口,以及過程中有哪些缺口。我們也和大家分享令人期待的 API 版本,例如 Reading List API 和 User Scripts API。
提高 Declarative Net Request 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 和網站儲存空間 API 的說明文件
我們發布了一份新指南,說明 Cookie 和網站儲存空間 API 在 Chrome 擴充功能中的運作方式。 詳細介紹了 Privacy Sandbox 的 Cookie 和儲存空間分區變更,這是一項透過一系列新的網路平台 API 所建立並淘汰第三方 Cookie 的專案,以及相關詳細資料在擴充功能中的運作方式。
現可搜尋擴充功能範例
我們最近建立了一個頁面,可讓您搜尋 Chrome 擴充功能範例。搜尋頁面有多個選項,搜尋框可讓您搜尋範例標題中的文字。您可以依權限或擴充功能 API 限制搜尋範圍。額外的篩選器可讓您將搜尋範圍限制在 API 或功能性 (用途) 範例中。
這個新的範例網頁是由 Google Summer of Code 參與者 Xuezhou Dai 的參與者共同製作,他也提供了數個新樣本。歡迎閱讀他們的網誌文章,閱讀他們過去夏天的親身體驗。
和先前一樣,在 GitHub 上仍可使用複製或分支的程式碼範例。
Chrome 118:開啟檔案的變更:配置網址
自 Chrome 118 版起,擴充功能必須前往 chrome://extensions
頁面啟用「允許存取檔案網址」設定,才能使用 Tabs 或 Windows API 開啟 file:// scheme 網址。您可以透過呼叫 chrome.extension.isAllowedFileSchemeAccess()
,透過程式輔助方式檢查此存取權。Firefox 已限制檔案網址,而 Safari 支援這項變更。詳情請參閱在 Google 網路論壇中張貼內容。
Chrome 117:擴充功能 API 導覽的擴展網址保護措施
先前從 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:開發人員工具預設與內容指令碼相同
根據預設,插入的內容指令碼現在會列入開發人員工具的忽略清單。這不會影響中斷點,但這代表系統會在偵錯期間逐步執行內容指令碼,並忽略這些指令碼的例外狀況。在「來源」分頁中開啟內容指令碼時,如果開啟該功能,橫幅會顯示警示訊息,並提供從忽略清單中移除內容指令碼的選項。如要關閉這項行為,請開啟開發人員工具,然後依序點選「設定」和「忽略清單」。詳情請參閱「開發人員工具的新功能」。
Chrome 116 Beta 版:更多版本
Chrome 116 是擴充功能的重要版本。你現在可以透過程式輔助方式開啟側邊面板。新方法可讓您瞭解是否有有效的畫面外文件。服務工作處理程序獲得了伺服器的改善。此外,我們在 116 方面做出了足夠的改善,我們為此撰寫了網誌文章。Chrome 116 已於 7 月 19 日推出 Beta 版。
網誌文章:Chrome 擴充功能異動
我們剛發布了總覽說明今年的擴充功能異動和改善項目。文章討論了今年的重要功能,包括 Side Panel API、Service Worker 強化和螢幕外文件。此外,你也能一覽本季的預期目標。這篇文章列出了更多內容,並附上全部的連結。
新指南與範例:瞭解如何在 Chrome 擴充功能中使用 Google Analytics (分析) 4
我們發布了全新的 Google Analytics (分析) 和地理位置指南和範例:
- 更新版 Google Analytics (分析) 指南,瞭解如何在 Chrome 擴充功能中使用 Google Analytics (分析) 4。並將有效的 Google Analytics (分析) 4 範例新增至 GitHub 範例存放區。請前往
google-analytics.js
取得 Google Analytics (分析) 相關程式碼。 - 新的地理位置指南和三個範例將說明如何在服務工作人員、內容指令碼、彈出式視窗和側邊面板中存取地理位置。
Chrome 115:在 chrome.offscreen.createDocument() 中指定多個原因
現在,您可以在呼叫 chrome.offscreen.createDocument()
時指定多個 reason
列舉。如果需要將螢幕外的文件用於多種用途,請使用這個選項。瀏覽器會根據所提供的理由判斷畫面外文件的生命週期。
新工具:擴充功能更新測試工具
我們剛剛推出了擴充功能更新測試工具,這是本機擴充功能更新伺服器,可用來在本機開發期間測試 Chrome 擴充功能的更新,包括授予權限。這項工具會顯示使用者的更新流程,包括在使用者授予任何新要求的權限前,讓擴充功能保持停用狀態。如要模擬將擴充功能從 Manifest V2 更新至 Manifest V3 時所要求的權限變更,這項工具特別實用。
Chrome 114:新增側邊面板 API
全新 Side Panel API 推出,這個隨附介面可讓使用者在瀏覽的內容旁存取工具。詳情請參閱側邊面板 API 參考資料。此外,我們也在 GitHub 範例存放區中新增許多側邊面板範例。此外,我們還在新的網誌文章「Designing a Superior User Experience with the New Side Panel API」(使用新的側邊面板 API 設計更優異的使用者體驗) 中,進一步瞭解側邊面板。另外,我們也審查了品質指南政策和最佳做法,進一步引導你建立優質側邊面板擴充功能。
您的意見回饋對設計這個 API 至關重要。歡迎前往 chromium-groups 分享您的想法和功能要求。我們會持續強化 Side Panel API,請密切留意最新消息。
新範例:擴充功能中的 WASM
我們提供兩個新範例,示範如何在擴充功能中使用 WASM:
- 在 Manifest V3 中使用 WASM:說明瞭加入 WASM 模組的一般方法。
- 使用 WASM 做為 Manifest V3 中的模組,瞭解如何在模組中使用 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 Community Group 中同意。這項做法讓 storage.local
與 Chrome 112 版中變更的 storage.session
一致。
全新擴充功能 Service Worker 教學課程和說明
Service Worker 是 Chrome 擴充功能的必要部分,我們日前發布了教學課程,說明有關註冊、偵錯和與 Service Worker 互動的基本概念。我們也新增了 Service Worker 指南,進一步詳細解釋重要概念。本節將在未來幾個月內擴大適用範圍。
更多線上應用程式商店違規問題的疑難排解提示
為協助您在 Chrome 線上應用程式商店中發布內容,我們在兩個方面加入了新指南。基本功能指南的重點在於提供使用者好處,以及豐富的瀏覽體驗。聯盟廣告指南旨在讓使用者瞭解含有用於營利的聯盟連結或程式碼的額外資訊,並要求使用者在納入廣告前先行掌控,以提供一些程度的控制權。
擴充功能資訊清單轉換工具的新操作說明
我們重新撰寫了擴充功能資訊清單轉換工具的 README,方便您查看執行這項工具後需要採取的行動。轉換工具可協助將以 Manifest V2 建立的擴充功能遷移至 Manifest V3。全新的 README 檔案說明這項工具使用的字詞與遷移指南檢查清單中的字詞密切相關。轉換器不會執行任何動作,但能排除許多不需要人為判斷依據的工作,
Chrome 113:顯示畫面外文件的新原因
為 Offscreen Documents API 新增了兩種原因類型。使用 LOCAL_STORAGE
存取網路平台的 localStorage API。建立網路工作站時,請使用 WORKER
。
開發人員資訊主頁現已推出 Google Analytics (分析) 4
Chrome 線上應用程式商店開發人員資訊主頁現已支援 Google Analytics (分析) 4 (GA4)。我們簡化了 Google Analytics (分析) 的設定,也簡化了群組發布者的存取權管理。如果您先前使用 Google 通用 Analytics (分析) 追蹤商店資訊活動,請在 2023 年 7 月 1 日前採取行動,以確保能繼續接收商店資訊的相關資料。詳情請參閱這篇 Chromium 擴充功能 Google 網路論壇貼文。
File Handling API 是 ChromeOS 的一部分
File Handler API 可在 ChromeOS 的 Canary 第 112 版及 113 版中進行實驗,可讓 ChromeOS 的擴充功能開啟指定 MIME 類型及副檔名的檔案。如要實作檔案處理方式,請在 manifest.json
中新增一組規則。這項功能的運作方式與漸進式網頁應用程式相同。詳情請參閱本網站其他位置的文章。
如要啟用檔案處理功能:
- 自 112 年起,請使用
--enable-features=ExtensionWebFileHandlers
旗標啟動 Chrome (自 112 年起) - 自 113 年起,將
os://flags/#extension-web-file-handlers
貼到 Chrome 網址列,然後在下拉式選單中選取「已啟用」。
我們預計於 6 月下旬,在 Chrome 115 中推出這項功能。留意此空間,取得更新資訊。
新範例:動態宣告和程式輔助插入
我們為 chrome.scripting
API 建立了新範例。用於示範動態宣告 (在執行階段註冊內容指令碼),以及程式輔助插入 (在已開啟的分頁中執行指令碼)。
新範例:宣告式網路要求使用案例
我們提供三個新範例,示範宣告式 Net Request 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 擴充功能現在支援螢幕外文件。這些程式庫能支援 DOM 相關功能和 API,協助您從背景頁面轉換至擴充功能服務工作處理程序。詳情請參閱這篇網誌文章。
Chrome 110:已啟用擴充功能
chrome.action.isEnabled()
方法會以程式輔助方式檢查特定分頁是否已啟用擴充功能。這樣就不必持續維持分頁的啟用狀態。這個新方法會使用分頁 ID 和回呼的參照,並傳回布林值。這項政策有一項限制:使用 chrome.declarativeContent
建立的分頁一律會傳回 false。
(chrome.action
命名空間最近有了新方法,可控制擴充功能標記的外觀。詳情請參閱設定徽章顏色)。
Chrome 110:變更 Service Worker 閒置逾時
先前擴充功能 Service Worker 通常會在五分鐘時關閉。我們修改了這項行為,使其更接近網路上的服務工作人員生命週期。擴充功能 Service Worker 會在閒置 30 秒後關閉,或是單一活動處理時間超過 5 分鐘。詳情請參閱延長擴充功能 Service 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。這項變更不會影響使用者體驗,因為這些圖片並未用於消費者 UI。詳情請參閱這篇 chromium-extensions 文章。
Chrome 106:允許 file:// urls 中的網頁存取可透過網路存取的資源
依據 crbug.com/1219825#c11 的說明,不透明的來源 (例如沙箱式 iframe 和動態匯入) 也應能存取可透過網路存取的資源。
Chrome 106:修正某些非同步 API 函式允許錯誤最終引數的錯誤
先前,呼叫 async API 的 Manifest V3 可能會提供無效的最終引數,Chrome 則不會發生錯誤。這項修正後,Chrome 現在可以正確錯誤,並回報沒有相符的簽名。我們建議開發人員在 Canary 上檢查擴充功能,以防不小心在因這項錯誤修正而造成的 API 呼叫中,使用了錯誤的簽章。
網誌文章:Chrome 線上應用程式商店數據分析異動
Chrome 線上應用程式商店為 Chrome 線上應用程式商店開發人員資訊主頁推出全新改版的項目分析功能。新版資訊主頁不僅簡單易懂,還能直接整合最實用的資訊。詳情請參閱這篇網誌文章。
Chrome 105:Identity API 的承諾
Identity API 中的函式現在支援以承諾為準的呼叫。這是對 identity.getAuthToken()
介面稍有變更的情況,也就是針對以承諾為基準的呼叫的非同步傳回作業,會在單一物件上具有「token」和「grantedScopes」,這並非單一物件的參數 (而非針對回呼中接收這些參數做為個別引數的回呼版本)。
Chrome 104:Manifest V3 適用的全新網站小圖示 API
Manifest V3 擴充功能現在可以使用新的網址模式存取網站小圖示:chrome-extension://<id>/_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() 中插入屬性
chrome.scripting.executeScript()
現在接受選用的 injectImmediately
屬性對其 injection
引數。如果存在且設為 true,指令碼會盡快插入目標中,不會等待 document_idle
。請注意,這不保證指令碼會在網頁載入前插入,因為網頁在進行 API 呼叫時會繼續載入。
Chrome 102:Manifest V3 中的 Omnibox API 支援
Omnibox API 現在可用於以 Service Worker 為基礎的擴充功能。先前,由於 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
Manifest V3 擴充功能現在可以在記憶體儲存空間 storage.session 中使用。
文件更新:搜尋 Chrome 線上應用程式商店項目
在 Chrome 線上應用程式商店探索:概略瞭解使用者如何在 Chrome 線上應用程式商店尋找項目,以及我們的編輯如何選擇項目。
Chrome 指南:改善 declarativeNetRequest 網域條件
declarativeNetRequest 規則條件更新後,可讓擴充功能根據要求的「request」和「Initiator」網域更精準地指定要求。相關條件屬性為 initiatorDomains
、excludedInitiatorDomains
、requestDomains
和 excludedRequestDomains
。另請參閱這個 chromium-extensions 執行緒。
Chrome 100:已解決新建分頁上的 Scripting.executeScript() 問題
修正長期性問題,在新建立的分頁或視窗中呼叫 scripting.executeScript()
可能會失敗。
Chrome 100:內建訊息傳遞通訊埠可讓 Service Worker 保持運作
使用擴充功能的服務工作站中的 chrome.runtime.connectNative()
連線至原生訊息傳遞主機時,只要通訊埠為開啟狀態,Service Worker 就會保持運作。
Chrome 100:omnibox.setDefaultSuggestion() 支援承諾和回呼
omnibox.setDefaultSuggestion()
方法現在會傳回承諾或接受回呼,讓開發人員判斷何時正確設定建議。
Chrome 100:擴充功能 Service Worker 支援 i18n.getMessage()
擴充功能 Service Worker 環境現已支援 chrome.i18n.getMessage()
API。
Chrome 99:Canary 版 match_origin_as_fallback
內容指令碼現在可以指定要插入與相符影格相關的 match_origin_as_fallback
鍵,包括含有 about:
、data:
、blob:
和 filesystem:
網址的影格。詳情請參閱內容指令碼說明文件。
Chrome 99:擴充功能 Service Worker 支援檔案:Canary 版配置
以 Service Worker 為基礎的 Manifest V2 和 Manifest V3 擴充功能現在可以使用 Fetch API 來要求 file:
配置網址。使用者仍須在 chrome://extensions
頁面中為擴充功能啟用「允許存取檔案網址」,才能存取 file:
配置網址。
Chrome 99:Canary 版訊息 API 保證支援
Promise 支援功能已新增至 tabs.sendMessage
、runtime.sendMessage
和 runtime.sendNativeMessage
,適用於針對 Manifest V3 建構的擴充功能。
文件更新:Chrome 線上應用程式商店評論說明文件
新增新的參考資料頁面,概略說明 Chrome 線上應用程式商店的審查程序,並說明《開發人員計畫政策》的違規處置方式。
Chrome 98:scripting.executeScript() 和 Scripting.insertCSS() 接受多個檔案
Scripting API 的 executeScript()
和 insertCSS()
方法現在接受多個檔案。先前這些方法需要使用單一檔案項目的陣列。
Google 文件更新:查看違規事項疑難排解異動資訊
我們已更新「Chrome 線上應用程式商店違規事項疑難排解」頁面,針對應用程式遭拒的常見原因提供更詳細的指引。
Chrome 96:將承諾支援拓展至另外 27 個 API
與先前版本相比,這個版本包含的承諾更新大幅增加。更新內容包含一般擴充功能和 ChromeOS 專用的擴充功能 API。請展開下列各節瞭解詳情。
擴充功能 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。這樣一來,如果現有的 Manifest V2 擴充功能使用 webRequest
、webRequestBlocking
和網站專屬的主機權限,就能遷移至 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,但 Manifest V3 皆替換為一般的 chrome.actions
API。本文將探索這些 API 的歷史記錄,以及 Manifest V3 中的異動。閱讀貼文。
網誌文章:chrome.scripting
chrome.scripting
API 是將重心放在編寫指令碼的新 Manifest V3 API。在本文中,我們會深入探討這項變更的動機,並仔細看看這樣的新功能,閱讀貼文。
Chrome 92:模組 Service Worker 支援
Chrome 現在支援在 Service Worker 中使用 JavaScript 模組。如何在資訊清單中指定模組:
"background": {
"service_worker": "script.js",
"type": "module"
}
這會將工作站指令碼載入為 ES 模組,讓您可在工作站指令碼中使用 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()
現在支援傳回承諾。如果指令碼執行作業的結果值是承諾值,Chrome 會等待承諾的結算結果並傳回結果值。
Chrome 90:chrome.scripting.executeScript() 結果包含 frameId
chrome.scripting.executeScript()
傳回的結果現在包含 frameId。frameId
屬性會指出結果的來源框架,讓擴充功能在插入多個影格時,可以輕鬆將結果與個別影格建立關聯。
Chrome 89:管理分頁群組的全新 API
新的 chrome.tabGroups
API 和 chrome.tabs
的新功能可讓擴充功能讀取及操控分頁群組。需要使用 Manifest V3。
Chrome 89:針對網路可存取的資源自訂權限
Manifest V3 中的網路可存取資源定義已變更,可讓擴充功能根據要求者的來源或擴充功能 ID 限制資源存取權。
網誌文章:擴充功能資訊清單轉換器
Chrome 擴充功能團隊提供開放原始碼「Extension Manifest Converter」,這項 Python 工具可將擴充功能轉換成 Manifest V3 的某些機械層面。請參閱公告網誌文章,並從 GitHub 取得。
Chrome 88:Manifest V3 正式發布
Manifest V3 是擴充功能平台的重大更新。如需新功能和異動功能的摘要,請參閱 Manifest V3 總覽。目前擴充功能可能會繼續使用 Manifest V2,但不久後將逐步淘汰這項功能。強烈建議您為所有新的擴充功能使用 Manifest V3,並盡快開始將現有擴充功能遷移至 Manifest V3。