activeTab
izni, kullanıcı uzantıyı çağırdığında (örneğin, tarayıcı işlemini tıklayarak) bir uzantının o anda etkin olan sekmeye geçici olarak erişmesini sağlar. Sekmeye erişim, kullanıcı bu sayfadayken sona erer ve kullanıcı başka bir yere gittiğinde veya sekmeyi kapattığında iptal edilir.
Bu, <all_urls>
işlevinin birçok kullanımı için alternatif işlevi görür ancak yükleme sırasında uyarı mesajı görüntülemez:
Not: M72'den itibaren kullanıcı farklı bir kaynağa gidene kadar activeTab
izni verilecektir. Yani, kullanıcı https://example.com'da uzantıyı çağırır ve https://example.com/foo adresine giderse uzantı sayfaya erişmeye devam eder. Kullanıcı https://chromium.org adresine giderse erişim iptal edilir.
activeTab
olmadan:
activeTab
ile:
Örnek
Page Redder örnek uzantısını inceleyin:
{
"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"'
});
});
Motivasyon
Tarayıcı işlemi ve içerik menüsü öğesi olan bir web kırpma uzantısı düşünün. Bu uzantının gerçekten sekmelere yalnızca tarayıcı işlemi tıklandığında veya içerik menüsü öğesi yürütüldüğünde erişmesi gerekebilir.
activeTab
olmadan, bu uzantının kullanıcı tarafından çağrılması durumunda işini yapabilmesi için her web sitesine tam ve kalıcı erişim istemesi gerekir. Böyle basit bir uzantıya
emanet etmek çok büyük bir güç. 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ı, yalnızca açık bir kullanıcı hareketine 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 gezininceye veya
kapatılana kadar devam eder.
ActiveTab nelere izin verir?
Bir sekme için activeTab
izni etkinken uzantılar:
- Bu sekmeden
tabs.executeScript
veyatabs.insertCSS
numaralı telefonu arayın. tabs.Tab
nesnesini döndüren bir API aracılığıyla bu sekmenin URL'sini, başlığını ve site simgesini alın (esasenactiveTab
,tabs
iznini geçici olarak verir).- webRequest API'sini kullanarak sekmedeki ağ isteklerine sekmenin ana çerçeve kaynağına müdahale edin. Uzantı, sekmenin ana çerçeve kaynağı için geçici olarak ana makine izinleri alır.
ActiveTab çağrılıyor
Aşağıdaki kullanıcı hareketleri activeTab
işlevini etkinleştirir:
- Tarayıcı işlemi gerçekleştirme
- Bir sayfa işlemi yürütme
- İçerik menüsü öğesini yürütme
- Komutlar API'sinden klavye kısayolunu çalıştırma
- çok amaçlı adres çubuğu API'sinden gelen bir öneriyi kabul etme