可透過網頁存取的資源是指擴充功能中的檔案,可供網頁或其他存取 。擴充功能通常會使用這項功能顯示需要 會載入網頁,但擴充功能套件中包含的任何素材資源都可以透過網頁存取。
在預設情況下,沒有任何資源可供網路存取,因為這可讓惡意網站對使用者安裝的惡意網站執行指紋擴充功能 或利用已安裝的擴充功能中的安全漏洞 (例如 XSS 錯誤)。僅限從擴充功能來源載入的網頁或指令碼 即可存取這項擴充功能的資源
資訊清單宣告
使用 web_accessible_resources
資訊清單屬性宣告要公開哪些資源
從哪些來源著手這個屬性是宣告資源存取規則的物件陣列。每個物件
會列出許多擴充功能資源,且至少須提供下列其中一項 matches
的值或
extension_ids
鍵,指出可存取這些資源的來源。
{
...
"web_accessible_resources": [
{
"resources": [ "test1.png", "test2.png" ],
"matches": [ "https://web-accessible-resources-1.glitch.me/*" ]
}, {
"resources": [ "test3.png", "test4.png" ],
"matches": [ "https://web-accessible-resources-2.glitch.me/*" ]
}
],
...
}
陣列中的每個物件都包含以下元素:
"resources"
- 字串陣列,每個字串都包含擴充功能根目錄中特定資源的相對路徑。資源可能包含星號 (
*
) 代表萬用字元比對。舉例來說,"/images/*"
會以遞迴方式顯示擴充功能images/
目錄中的所有內容,而"*.png"
則會公開所有 PNG 檔案。 "matches"
- 字串陣列,每個字串都包含一個「比對模式」,用於指定哪些網站可以存取這組資源。系統只會使用來源來比對網址。來源包含子網域比對。Google Chrome 發出「比對模式無效」錯誤。
"extension_ids"
- 字串陣列,每個字串都包含可存取資源的擴充功能 ID。
每個元素都必須包含 "resources"
元素和 "matches"
或 "extension_ids"
元素。這會建立對應,將指定資源公開至符合該模式的網頁或具有相符 ID 的擴充功能。
資源瀏覽便利性
資源可在使用網址的網頁中查看
chrome-extension://[PACKAGE ID]/[PATH]
,可使用 runtime.getURL()
產生
方法。系統會使用適當的 CORS 標頭提供資源,以便利用該標頭
使用 fetch()
。
從網路來源前往擴充功能資源的導覽功能會遭到封鎖, 並列為可在網路上存取請注意以下極端情況:
- 擴充功能使用 webRequest API 重新導向公開檔案時 如果資源要求的資源要求無法透過網路存取,這類要求也會遭到封鎖。
- 系統會封鎖來自公開資源的重新導向 (即便重新導向資源擁有無法存取網路的資源) 。
- 啟用無痕模式時,除非
"incognito"
欄位的值設為"split"
,否則瀏覽時無法進行無痕模式。
您不需要允許使用內容指令碼。
範例
Web Accessable Resources 範例:示範如何在工作擴充功能中使用這個元素。