L'autorisation activeTab
permet à une extension d'accéder temporairement à l'onglet actif lorsque la
L'utilisateur appelle l'extension, par exemple en cliquant sur son action dans le navigateur. Accéder à l'onglet
dure tant que l'utilisateur est sur la page. Elle est désactivée lorsque l'utilisateur quitte la page ou ferme l'onglet.
Il peut servir d'alternative pour de nombreuses utilisations de <all_urls>
, mais affiche aucun message d'avertissement.
pendant l'installation:
Remarque:À partir de M72, l'autorisation activeTab
sera accordée jusqu'à ce que l'utilisateur accède à un
différentes origines. Autrement dit, si l'utilisateur appelle l'extension sur https://example.com, puis
accède à https://example.com/foo, l'extension aura toujours accès à la page. Si le
accède à https://chromium.org, l'accès est révoqué.
Sans activeTab
:
Avec activeTab
:
Exemple
Consultez l'exemple d'extension 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"'
});
});
Motivation
Prenons l'exemple d'une extension Web Clipping comportant une action de navigateur et un élément de menu contextuel. Ce peut n'avoir besoin d'accéder aux onglets que lorsque l'utilisateur clique sur l'action du navigateur ou l'élément de menu contextuel est exécuté.
Sans activeTab
, cette extension devrait demander un accès complet et persistant à chaque site Web.
afin qu'il puisse faire son travail
s'il était appelé par l'utilisateur. Cela fait beaucoup
pouvoir confier à une extension aussi simple. Et si jamais l'extension est compromise, l'attaquant
a accès à tous les éléments de l'extension.
En revanche, une extension disposant de l'autorisation activeTab
n'obtient l'accès qu'à un onglet en réponse
à un geste explicite de l'utilisateur. Si l'extension est compromise, l'attaquant doit attendre que le
d'appeler l'extension avant d'obtenir l'accès. Cet accès n'est valable que jusqu'à ce que l'onglet soit
ou est fermée.
Ce qu'activeTab permet
Lorsque l'autorisation activeTab
est activée pour un onglet, une extension peut:
- Appelez
tabs.executeScript
outabs.insertCSS
sur cet onglet. - obtenir l'URL, le titre et le favicon de cet onglet via une API qui renvoie un objet
tabs.Tab
; (essentiellement,activeTab
accorde l'autorisationtabs
temporairement). - Intercepter les requêtes réseau dans l'onglet avec l'origine du frame principal de l'onglet à l'aide de webRequest API. L'extension obtient temporairement les autorisations de l'hôte pour l'origine du frame principal de l'onglet.
Appeler activeTab
Les gestes utilisateur suivants activent activeTab
:
- Exécuter une action de navigateur
- Exécuter une action sur la page
- Exécuter un élément de menu contextuel
- Exécuter un raccourci clavier à partir de l'API commands
- Accepter une suggestion de l'API omnibox