Adrianistán

Tutorial de WebExtensions (II) - Popup y Tabs

03/11/2016
Continuamos con el tutorial de WebExtensions, hoy veremos un elemento muy útil para muchas extensiones que es el popup.

¿Qué es el popup?


El popup es un panel desplegable que se acciona al pulsar un botón de acción. Este panel es una página HTML que puede contener código JavaScript.

popup

El popup es el elemento que permite al usuario un mayor control sobre la extensión y es ideal tanto para mostrar información como para contener acciones. De hecho, WebExtensions limita el número de botones de acción que puede crear una extensión a uno. Si queremos simular tener más botones deberemos usar un popup que despliegue un pequeño menú.

Definir el popup en manifest.json


Para definir el popup tenemos que indicar la ubicación del fichero HTML correspondiente al popup.


"browser_action" : {
"default_icon" : "icons/icono_guay.png",
"default_title" : "Mi PopUp guay",
"default_popup" : "popup/index.html"
},


Con eso ya tenemos definido el popup. Se mostrará el botón en la barra superior y al hacer click se abrirá el popup.

El PopUp en sí


El PopUp es un fichero HTML sin el mayor misterio. Para definir el tamaño del PopUp usaremos CSS:


body{
width: 400px;
height: 400px;
}


Y el navegador adaptará el PopUp a esas dimensiones. A ese archivo HTML le podemos añadir archivos JavaScript mediante el procedimiento habitual en la web, vía una etiqueta script. Lo interesante viene en estos archivos de JavaScript pues cuentan con más privilegios. Desde ellos podemos acceder a las APIs retringidas a extensiones así como librarnos de limitaciones impuestas a las webs (como la política que bloquea los XMLHttpRequests ejecutados a dominios ajenos a nuestra página).

Para usar las APIs restringidas debemos pedir permiso en el fichero manifest.json. Por ejemplo, vamos a jugar con las pestañas. Para ello usamos los permisos tabs y activeTab.


"permissions" : ["tabs","activeTab"],


Tabs (pestañas) en WebExtensions


La API se encuentra en chrome.tabs y dispone de varios métodos y eventos. Vamos a ver los más importantes:

Por último, veamos algunos de los eventos que puede generar la API.

Con esto ya podemos hacer extensiones interesantes, la APIs de PopUp y de Tabs son de las más usadas en WebExtensions.
Tags: programacion tabs chrome javascript firefox tutorial opera popup webextensions pestanas