L’autorisation activeTab

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:

Sans activeTab

Avec 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 ou tabs.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'autorisation tabs 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: