activeTab
權限會在以下情況下,讓擴充功能暫時存取目前使用中的分頁:
使用者叫用擴充功能 (例如按一下瀏覽器動作)。分頁存取權
會在使用者離開網頁時持續顯示;當使用者離開或關閉分頁時,系統就會撤銷。
這可做為許多 <all_urls>
的替代用途,但會顯示沒有警告訊息
期間:
注意:自 M72 起,系統會授予 activeTab
權限,直到使用者前往
不同的來源。也就是說,如果使用者在 https://example.com 上叫用擴充功能,
前往 https://example.com/foo,該擴充功能仍可存取該網頁。如果
使用者瀏覽 https://chromium.org 時,系統會撤銷存取權。
沒有 activeTab
:
透過 activeTab
:
範例
請參閱 Page Redder 範例擴充功能:
{
"name": "Page Redder",
"version": "2.0",
"permissions": [
"activeTab"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_title": "Make this page red"
},
"manifest_version": 2
}
// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
// No tabs or host permissions needed!
console.log('Turning ' + tab.url + ' red!');
chrome.tabs.executeScript({
code: 'document.body.style.backgroundColor="red"'
});
});
動機
假設使用的網頁剪輯擴充功能包含瀏覽器動作和內容選單項目。這個 擴充功能可能只需要在按下瀏覽器動作時存取分頁 內容選單項目
如果沒有 activeTab
,這個擴充功能就必須要求每個網站的完整持續存取權,
以便在使用者呼叫時執行該項功能。主要是
來產生這項簡單的擴充功能。如果擴充功能遭到入侵
都能存取擴充功能
擁有的所有功能
相反地,具備 activeTab
權限的擴充功能只會在回應要求時取得分頁存取權
直接由使用者做出的手勢如果擴充功能遭到入侵,攻擊者就需等待
使用者在取得存取權前叫用擴充功能。而且存取權只會一直到分頁狀態為止
或已關閉的執行緒。
Active Tab 允許的功能
為分頁啟用 activeTab
權限時,擴充功能可以:
- 在該分頁上呼叫
tabs.executeScript
或tabs.insertCSS
。 - 透過會傳回
tabs.Tab
物件的 API,取得該分頁的網址、標題和網站小圖示 (基本上,activeTab
會暫時授予tabs
權限)。 - 使用 webRequest 將分頁中的網路要求攔截至分頁的主要頁框來源 也能使用 Google Cloud CLI 或 Compute Engine API該擴充功能會暫時取得分頁主頁框來源的主機權限。
正在叫用使用中的分頁
下列使用者手勢可啟用 activeTab
:
- 執行瀏覽器動作
- 執行網頁動作
- 執行內容選單項目
- 透過 commands API 執行鍵盤快速鍵
- 接受 omnibox API 建議