Nueva Extensión Chrome “New Tab Manager”

Nueva Extensión Chrome “New Tab Manager”

Recientemente publiqué una nueva extensión de Chrome que aprovecho para anunciar aquí junto a su código y una pequeña explicación por si a alguien le interesa.

El código está en mi Github.

Y la extensión se puede instalar desde la Chrome Store.

 

La extensión sirve para administrar extensiones de tipo “Nueva Página”. Al abrir una nueva pestaña en Chrome se muestra por defecto la siguiente página con accesos directos a las webs más visitadas y el buscador de google. Además se puede acceder a las aplicaciones de Chrome instaladas.

 

Nueva pestaña por defecto

Nueva pestaña por defecto de Chrome

Hay muchas extensiones para modificar esta pestaña y usar otra con otras funcionalidades que nos guste más. Algunas son muy populares como Speed Dial o Earth View from Google Maps.

El problema es que lógicamente sólo puedes usar una de estas extensiones a la vez y si quieres probar varias tienes que ir desactivando y activando extensiones con el administrador de extensiones. Y si estás atado a una extensión en concreto (como me pasa a mi con speed dial) no puedes usar ninguna más.

La extensión New Tab Manager soluciona todo esto ya que en su página de configuración sirve para administrar extensiones de nueva pestaña, facilitando la prueba de este tipo de extensiones y además se puede asignar una de ellas al icono de la extensión para usar dos al mismo tiempo.

En la página de configuración se muestran 128 extensiones (actualmente, se irán añadiendo más) permitiendo realizar las siguientes acciones:

  • Se pueden instalar y desinstalar extensiones y activar y desactivar las instaladas.
  • La nueva pestaña por defecto será una de las que esté activa mostrándose en color verde.
  • Las extensiones instaladas se muestran primero.
  • Al hacer click en el icono de las extensión se visitará su página en la chrome store.
  • Se pueden probar las extensiones instaladas con el botón open  . La extensión permanecerá como activa hasta que se acabe de usar la nueva pestaña creada.
  • Haciendo click en una extensión instalada asignarás una extensión al botón de la barra de extensiones icon19 . De esta manera se puede usar a la vez dos extensiones de nueva página: la que se abre por defecto (una de las activas instaladas) y la que se selecciona para el icono de la extensión que se mostrará azul en esta página. Si no hay ninguna asignada con el icono se abrirá la extensión original de Chrome.

 

Código de la Extensión

 

A continuación explicaré un poco el código de la extensión para los interesados en seguir mis tutoriales de programación de extensiones.

Para administrar extensiones se usa la API de chrome management que nos permite saber qué extensiones hay instaladas, desinstalarlas, programar eventos de instalación y desinstalación y obtener algunos de sus atributos. Desgraciadamente entre los atributos que se pueden obtener no está el de saber si la extensión es de las que cambia la pestaña por defecto (al menos a dia de hoy) del navegador por lo que para saber si una extensión instalada es de este tipo no hay más remedio que comparar su id con todos los que hay guardados en el código de la extensión en una variable.

El código para saber si es una extensión de nueva pestaña es simplemente un bucle que comprueba si lo tenemos en newTabExtensiones

 

La variable newTabExtensiones tiene los siguientes campos:

var newTabExtensiones = [

 

La parte más interesante del código posiblemente sea la manera de abrir una extensión de nueva página desde el icono de la extensión. Para ello se recorre todas las extensiones instaladas y si es de nueva página de deshabilitan todas excepto la elegida para abrir con el icono. Después de ello se abre una nueva pestaña con chrome.tabs.create que se creará con el contenido de la única extensión habilitada asignada al icono. En el callback del tabs.create se vuelven a habilitar las extensiones inhabilitadas anteriormente.

 

En el proceso de background se comprueba además cuando se instala una extensión para actualizar la página de opciones, ya que en ella se muestra cada extensión si está instalada.

 

Además se comprueba cuando se cierra o se cambia URL de una pestaña que se ha creado con el icono de la extenión para poder deshabilitarla  ya que alguna de las extensiones de nueva pestaña si se deshabilitan justo después de abrir la pestaña se cierran.

En el github se puede ver el código al completo. Por ejemplo en la página de opciones hay mucho jquery para mostrar los botones de instalar, desinstalar y probar, y para cambiar los colores según este la extensión instalada o no, pero no lo veo sufientemente interesante para mostrarlo aquí.

Espero que os resulte interesante la extensión.

 

 

Enviar comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *