"activeTab"
izni,
Kullanıcı uzantıyı çalır (örneğin, işlemini tıklayarak). Sekmeye erişim
Kullanıcı ilgili sayfadayken geçerli olur ve kullanıcı sayfadan ayrıldığında veya sekmeyi kapattığında iptal edilir.
Örneğin, kullanıcı uzantıyı https://example.com adresinde çağırır ve ardından
https://example.com/foo adresine gittiğinde, uzantı sayfaya erişmeye devam eder. Öğe
Kullanıcı https://chromium.org adresine giderse erişim iptal edilir.
Bu, "<all_urls>"
işlevinin birçok kullanımı için alternatif işlevi görür, ancak hiçbir uyarı mesajı göstermez
kurulum sırasında:
"activeTab"
olmadan:
"activeTab"
ile:
Örnek
Page Redder örnek uzantısına bakın:
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
}
hizmet çalışanı:
function reddenPage() {
document.body.style.backgroundColor = 'red';
}
chrome.action.onClicked.addListener((tab) => {
if (!tab.url.includes('chrome://')) {
chrome.scripting.executeScript({
target: { tabId: tab.id },
func: reddenPage
});
}
});
Motivasyon
Bir işlem ve bir içerik menüsü öğesi içeren bir web kırpma uzantısını düşünün. Bu uzantının sekmelere yalnızca işlemi tıklandığında veya bağlam menüsü öğesi yürütüldüğünden emin olun.
"activeTab"
olmasaydı bu uzantının her web sitesine tam, kalıcı erişim istemesi gerekirdi.
Böylece, kullanıcı çağrılması durumunda işini yapabilsin. Çok fazla
devreye sokabilecek güce sahip olamaz. Uzantının güvenliği ihlal edilirse saldırgan
uzantının sahip olduğu her şeye erişebilir.
Öte yandan, "activeTab"
iznine sahip bir uzantı, karşılık olarak yalnızca bir sekmeye erişim elde eder
açık bir kullanıcı hareketine dönüştürmenizi sağlar. Uzantının güvenliği ihlal edilirse saldırgan,
kullanıcının erişim elde etmeden önce uzantıyı çağırması gerekir. Bu erişim yalnızca sekme açılana kadar devam eder.
veya kapalıdır.
"activeTab" nedir? izin verir
Bir sekme için "activeTab"
izni etkinken uzantılar şunları yapabilir:
"scripting"
izini de beyan edilmişse (yukarıdaki örnekte olduğu gibi)scripting.insertCSS()
veyascripting.executeScript()
numaralı telefonu arayın.- Söz konusu sekmenin URL'sini, başlığını ve site simgesini
tabs.Tab
nesnesi döndüren bir API aracılığıyla alın (Aslında"activeTab"
, geçici olarak ana makine izni verir). - webRequest'i kullanarak sekmenin ana çerçeve kaynağına giden ağ isteklerine müdahale edin API'ye gidin. Uzantı, sekmenin ana çerçeve kaynağı için geçici olarak ana makine izinlerini alır.
ActiveTab çağrılıyor
Aşağıdaki kullanıcı hareketleri, "activeTab"
iznini etkinleştirir:
- İşlem yürütme
- Bağlam menüsü öğesini yürütme
- commands API'sinden bir klavye kısayolunu yürütme
- Çok amaçlı adres çubuğu API'sinden gelen bir öneriyi kabul etme