Uprawnienie activeTab
daje rozszerzeniu tymczasowy dostęp do obecnie aktywnej karty, gdy
użytkownik wywołuje rozszerzenie, np. klikając jego działanie przeglądarki. Dostęp do karty
trwa, dopóki użytkownik przegląda tę stronę, i jest unieważniane, gdy użytkownik opuści stronę lub zamknie kartę.
Jest to metoda alternatywna wobec wielu zastosowań <all_urls>
, ale nie wyświetla komunikatu ostrzegawczego
podczas instalacji:
Uwaga: od wersji M72 uprawnienie activeTab
będzie przyznawane, dopóki użytkownik nie przejdzie do sekcji
z innego źródła. Oznacza to, że jeśli użytkownik wywoła rozszerzenie na stronie https://example.com, a następnie
jeśli przejdziesz na stronę https://example.com/foo, rozszerzenie zachowa dostęp do tej strony. Jeśli
użytkownik otworzy stronę https://chromium.org, dostęp zostanie unieważniony.
Bez activeTab
:
activeTab
:
Przykład
Zobacz przykładowe rozszerzenie 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"'
});
});
Motywacja
Załóżmy, że masz rozszerzenie internetowe, które ma działanie przeglądarki i pozycję menu kontekstowego. Ten może potrzebować dostępu do kart tylko po kliknięciu odpowiedniego działania w przeglądarce lub element menu kontekstowego.
Bez activeTab
to rozszerzenie wymagałoby pełnego, trwałego dostępu do każdej strony internetowej.
tylko po to, aby działał, jeśli użytkownik go wywoła. To dużo
które można powierzyć tak prostemu rozszerzeniu. Jeśli haker zostanie przejęty,
uzyska dostęp do wszystkich elementów tego rozszerzenia.
Rozszerzenie z uprawnieniem activeTab
uzyskuje dostęp do karty tylko w odpowiedzi.
na wyraźny gest użytkownika. Jeśli rozszerzenie zostanie przejęte, atakujący będzie musiał poczekać na
w celu wywołania rozszerzenia przed uzyskaniem dostępu. Dostęp ten jest możliwy tylko do momentu,
użytkownik lub produkt jest zamknięty.
Na co zezwala ActiveTab
Gdy uprawnienie activeTab
jest włączone dla danej karty, rozszerzenie może:
- Zadzwoń pod numer
tabs.executeScript
lubtabs.insertCSS
na tej karcie. - Pobierz URL, tytuł i favikonę tej karty za pomocą interfejsu API, który zwraca obiekt
tabs.Tab
ZasadniczoactiveTab
przyznaje uprawnienietabs
tymczasowo. - Przechwytywać żądania sieciowe na karcie do źródła głównej ramki karty za pomocą żądania webRequest API. Rozszerzenie tymczasowo otrzymuje uprawnienia hosta dotyczące źródła głównej ramki karty.
Wywołuję ActiveTab
Te gesty umożliwiają korzystanie z usługi activeTab
:
- wykonywanie czynności w przeglądarce.
- wykonanie działania związanego ze stroną.
- Wykonywanie pozycji menu kontekstowego
- Wykonywanie skrótu klawiszowego za pomocą interfejsu API poleceń
- Zaakceptowanie sugestii z interfejsu API omniboksu