"activeTab" izni, kullanıcı uzantıyı çağırdığında (ör. işlemini tıklayarak) uzantıya etkin olan sekmeye geçici erişim izni verir. Kullanıcı o sayfada kaldığı sürece sekmeye erişebilir. Kullanıcı sayfadan ayrıldığında veya sekmeyi kapattığında erişim iptal edilir.
Örneğin, kullanıcı https://example.com adresinde uzantıyı çağırır ve ardından https://example.com/foo adresine giderse uzantı sayfaya erişmeye devam eder. Kullanıcı https://chromium.org adresine giderse erişim iptal edilir.
Bu, "<all_urls>"'nın birçok kullanımına alternatif olarak sunulur ancak yükleme sırasında uyarı mesajı göstermez:
"activeTab" olmadan:

"activeTab" ile:

chrome:// sayfaları gibi kısıtlanmış sayfalara erişim izni verilmez.
Örnek
Page Redder örnek uzantısını inceleyin:
manifest.json:
{
"name": "Page Redder",
"version": "2.0",
"permissions": [
"activeTab",
"scripting"
],
"background": {
"service_worker": "service-worker.js"
},
"action": {
"default_title": "Make this page red"
},
"manifest_version": 3
}
service-worker:
function reddenPage() {
document.body.style.backgroundColor = 'red';
}
chrome.action.onClicked.addListener((tab) => {
// If the tab URL is not set, it is a restricted page.
if (tab.url) {
chrome.scripting.executeScript({
target: { tabId: tab.id },
func: reddenPage
});
}
});
Motivasyon
İşlem ve içerik menüsü öğesi olan bir web'den kırpma uzantısı kullanabilirsiniz. Bu uzantının, yalnızca işlemi tıklandığında veya bağlam menüsü öğesi yürütüldüğünde sekmelere erişmesi gerekebilir.
"activeTab" olmadan bu uzantının, kullanıcı tarafından çağrılması durumunda çalışabilmesi için her web sitesine tam ve kalıcı erişim isteğinde bulunması gerekirdi. Bu kadar gücü bu kadar basit bir uzantıya emanet etmek risklidir. Uzantının güvenliği ihlal edilirse saldırgan, uzantının sahip olduğu her şeye erişebilir.
Buna karşılık, "activeTab" izni olan bir uzantı yalnızca açık bir kullanıcı hareketiyle yanıt olarak bir sekmeye erişim elde eder. Uzantının güvenliği ihlal edilirse saldırganın erişim elde etmeden önce kullanıcının uzantıyı çağırmasını beklemesi gerekir. Bu erişim yalnızca sekmede gezinilene veya sekme kapatılana kadar sürer.
"activeTab" neye izin verir?
Bir sekmede "activeTab" izni etkinleştirildiğinde uzantılar şunları yapabilir:
"scripting"izni de (yukarıdaki örnekte olduğu gibi) beyan edilmişse söz konusu sekmedescripting.insertCSS()veyascripting.executeScript()işlevini çağırın.tabs.Tabnesnesi döndüren bir API aracılığıyla söz konusu sekmenin URL'sini, başlığını ve site simgesini alma (Temel olarak"activeTab", geçici olarak ana makine izni verir).- webRequest API'sini kullanarak sekmedeki ağ isteklerini sekmenin ana çerçeve kaynağına yönlendirin. Uzantı, sekmenin ana çerçeve kaynağı için geçici olarak ana makine izinleri alır.
activeTab'i çağırma
Aşağıdaki kullanıcı hareketleri "activeTab" iznini etkinleştirir:
- İşlem yürütme
- İçerik menüsü öğesini yürütme
- Commands API'den klavye kısayolu yürütme
- Çok amaçlı adres çubuğu API'sinden gelen bir öneriyi kabul etme