ActiveTab izni

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 olmadan

activeTab ile:

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 veya tabs.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 (esasen activeTab, 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: