El permiso activeTab
otorga a una extensión acceso temporal a la pestaña activa en ese momento cuando la
el usuario invoca la extensión; por ejemplo, haciendo clic en la acción del navegador. Acceso a la pestaña
Perdura mientras el usuario esté en esa página y se revoca cuando el usuario sale de la página o cierra la pestaña.
Esto sirve como alternativa para muchos usos de <all_urls>
, pero muestra que no hay ningún mensaje de advertencia.
durante la instalación:
Nota: A partir de M72, se otorgará el permiso activeTab
hasta que el usuario navegue a un
origen diferente. Es decir, si el usuario invoca la extensión en https://example.com y, luego,
navega a https://example.com/foo, la extensión seguirá teniendo acceso a la página. Si el botón
el usuario navega a https://chromium.org, se revoca el acceso.
Sin activeTab
:
Si usas activeTab
, ejecuta el siguiente comando:
Ejemplo
Consulta la extensión de muestra de 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"'
});
});
Motivación
Considera usar una extensión de recorte web que tiene una acción del navegador y un elemento de menú contextual. Esta solo necesite acceder a las pestañas cuando se hace clic en la acción del navegador o cuando se ejecuta el elemento del menú contextual.
Sin activeTab
, esta extensión tendría que solicitar acceso completo y persistente a todos los sitios web,
solo para que pueda hacer su trabajo si el usuario lo solicita. Son muchos
poder confiar a una extensión tan simple. Y si la extensión alguna vez se ve comprometida, el atacante
obtiene acceso a todo lo que tenía la extensión.
Por el contrario, una extensión con el permiso activeTab
solo obtiene acceso a una pestaña como respuesta.
a un gesto explícito del usuario. Si la extensión se ve comprometida, el atacante tendrá que esperar que
que el usuario invoque la extensión antes de obtener acceso. Y ese acceso solo dura hasta que la pestaña se
navegaste o está cerrado.
Qué permite la activeTab
Mientras el permiso activeTab
está habilitado para una pestaña, una extensión puede hacer lo siguiente:
- Llama a
tabs.executeScript
o atabs.insertCSS
en esa pestaña. - Obtén la URL, el título y el ícono de página de esa pestaña a través de una API que muestre un objeto
tabs.Tab
. (básicamente,activeTab
otorga el permisotabs
de manera temporal). - Intercepta las solicitudes de red en la pestaña al origen del marco principal de la pestaña con webRequest en la API de Cloud. La extensión obtiene de manera temporal los permisos del host para el origen del marco principal de la pestaña.
Cómo invocar activeTab
Los siguientes gestos del usuario habilitan activeTab
:
- Ejecutar una acción del navegador
- Ejecutar una acción de página
- Ejecutar un elemento de menú contextual
- Ejecutar una combinación de teclas desde la API de Commands
- Aceptar una sugerencia de la API del cuadro multifunción