Cómo instalar extensiones de Chrome

Las extensiones de Google Chrome son pequeños programas de software que pueden modificar y mejorar las funciones de Google Chrome.

Puedes descargar extensiones de Google Chrome en la galería de extensiones. Asimismo, para obtener información sobre cómo crear tus propias extensiones, consulta la sección Extensiones de Google Chrome.

La instalación previa de una extensión puede hacerse de tres formas: a través de una política de grupo, a través del registro o a través del archivo "master_preferences".

Cómo preinstalar a través de la política de grupo

El uso de una política para implementar una extensión o aplicación web de Chrome es el método más sencillo y escalable. Este es el método recomendado para aplicar extensiones, ya que no se requiere el archivo CRX en el equipo. Simplemente debe estar disponible en una URL determinada.

Para utilizar este método, define la política para "forzar la instalación" de la extensión, tal y como se describe aquí.

Cómo preinstalar extensiones a través de "master_preferences"

Las extensiones preinstaladas se añaden al archivo "master_preferences" que se encuentra junto al archivo "chrome.exe". Esto significa que el archivo CRX puede estar en cualquier ubicación, y no es necesario que las diferentes partes estén en el ordenador del usuario ni que se empaqueten en una secuencia de comandos de instalación.

Si no estás familiarizado con el archivo "master_preferences" o con su funcionamiento, consulta la sección sobre cómo configurar las preferencias.

Para utilizar este método, se deben cumplir algunos requisitos:

  • Este método solo funciona si el usuario puede acceder a la galería de extensiones pública o a otra URL en la que se encuentre el archivo CRX. Por tanto, es posible que no funcione si el usuario utiliza un cortafuegos corporativo o un proxy que restrinja el acceso a la galería.

  • Este método suele funcionar únicamente con las nuevas instalaciones. Es complicado que funcione con una instalación anterior, ya que exige mucha depuración.

Para realizar una instalación previa de una extensión a través del archivo "master_preferences":

  1. Busca el archivo CRX que quieras instalar. Descarga el archivo de la galería o crea y comprime tu propio archivo.

  2. Ábrelo con un programa de compresión y busca el archivo "manifest.json" (archivo de texto). Dicho archivo contiene muchos de los valores que necesitarás.

  3. Configura tu archivo "master_preferences" con los valores de "manifest.json".

A continuación, te presentamos un archivo "master_preferences" de ejemplo, mediante el cual se realiza la instalación previa de la extensión de Google Reader:


{
 "homepage" : "http://dev.chromium.org",
 "homepage_is_newtabpage" : true,
 "extensions": {
    "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": {
          "location": 1,
          "manifest": {
             "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5cK3ybDkh173plsjDX
              oqUzvsjFRMtbc5+a8HR6dxYBETeXQ7GOR5/xYnsY2R4smo5ly4yUK69iF7rnPNH+
              X97K7e7JFbuH5W/ZRc8YaIG66oJ9JwKZagSOZasSJPWNz4f1GdaHD1Z4KRucvOYx
              saPVdwS2W3nbG6i3oQFaio+JQIDAQAB",
             "name": "Google Reader Notifier (Installing...)",
             "permissions": [ "tabs", "http://www.google.com/" ],
             "update_url": "http://clients2.google.com/service/update2/crx",
             "version": "0.0"
          },
          "path": "apflmjolhbonpkbkooiamcnenbmbjcbf\\0.0",
          "state": 1
       }
    }
  }
}

A continuación se indica un análisis de las líneas de este archivo "master_preferences":

  • Después de "settings", el primer valor es el hash de la extensión ("apflmjolhbonpkbkooiamcnenbmbjcbf"). Esto se obtiene al recopilar el archivo CRX; también es el identificador de la extensión en la galería.
  • El valor de "location" debe ser siempre "1".
  • La sección "manifest" debe contener "key", "name", "permissions", "update_url" y "version". Estos valores pueden proceder del manifiesto de la extensión.
  • El valor de "key" proviene de la extensión recopilada, al igual que el hash. Si observas un archivo CRX sin comprimir, encontrarás el parámetro "key" en "manifest.json".
  • La línea "name" puede tener cualquier valor, aunque si tiene una etiqueta provisional, como "(Instalando...)", los usuarios entenderán mejor por qué una extensión tarda más en cargarse.
  • El valor de "permissions" debe ser igual que el de los permisos del archivo CRX de extensión en "update_url". De lo contrario, el usuario recibirá muchos mensajes de advertencia y la extensión no se cargará. Por lo tanto, no puedes especificar un conjunto de permisos vacío, y la extensión real requiere muchos permisos (que dejarán de mostrarse conforme aumenten los privilegios).
  • "update_url" es la URL en la que se encuentra el archivo CRX que, una vez más, se encuentra en "manifest.json".
  • El valor de "version" siempre debería ser "0.0".
  • El valor de "path" siempre debería ser el hash de la extensión seguido de "\\0.0".
  • El valor de "state" siempre debería ser "1".
  • Si alguna de estas reglas no es correcta, es posible que la extensión no se cargue o que el usuario reciba un mensaje de advertencia.

Importante: si la extensión contiene secuencias de comandos que necesitan permisos, también deben incluirse en el archivo "master_preferences". A continuación, te ofrecemos un ejemplo:


{
 "extensions": {
    "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": {
          "location": 1,
          "manifest": {
              "content_scripts": [ {
                "all_frames": true,
                "js": [ "script.js" ],
                "matches": [ "http://*/*", "https://*/*" ],
                "run_at": "document_start"
              } ],
             "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5cK3ybDkh173plsjDX
             oqUzvsjFRMtbc5+a8HR6dxYBETeXQ7GOR5/xYnsY2R4smo5ly4yUK69iF7rnPNH+X
             97K7e7JFbuH5W/ZRc8YaIG66oJ9JwKZagSOZasSJPWNz4f1GdaHD1Z4KRucvOYxsa
             PVdwS2W3nbG6i3oQFaio+JQIDAQAB",
             "name": "Google Reader Notifier (Installing...)",
              ...
Si la extensión tiene secuencias de comandos de contenido que requieren permisos o acceso y no lo especificas aquí, la extensión no se cargará.

Puedes realizar una carga previa de varias extensiones. La inclusión de una extensión adicional es tan fácil como añadir otro bloque en la sección "settings":


{
 "extensions": {
    "settings": {
       "apflmjolhbonpkbkooiamcnenbmbjcbf": { <-- extensión uno
          "location": 1,
          "manifest": {
              ...
          }
        },
       "oaiwevnmzvoinziufeuibyfnzwevmiiw": { <-- extensión dos
         "location": 1,
         "manifest": {
           ...
       },
       ...
     }
   }
}

Si la extensión contiene algún permiso que necesite la aprobación del usuario, deberás incluir también una sección de "granted_permissions":


{
  "extensions": {
    "settings": {
      "mihcahmgecmbnbcchbopgniflfhgnkff": {
        "location": 1,
        "manifest": {
          ...
        },
        "granted_permissions": {
          "api": [ "tabs" ],
          "explicit_host": [ "http://*.google.com/*", "https://*.google.com/" ],
          "scriptable_host": [ "http://example.com/" ]
        },
        ...
      },
      ...
    }
  }
}

Chrome inhabilitará la extensión de manera inmediata si no se incluye una sección de "granted_permissions". El campo "granted_permissions" presenta los campos secundarios siguientes:

  • "api" contiene permisos API en la clave "permissions" del archivo de manifiesto.
  • "explicit_host" contiene todos los permisos del host en la clave "permissions" del archivo de manifiesto.
  • "scriptable_host" debe ser cualquiera de los hosts de las secuencias de comandos de contenido de la extensión.

La forma más sencilla de generar el campo "granted_permissions" consiste en instalar la extensión de forma local y, a continuación, copiar el archivo "granted_permissions" de la extensión desde el archivo de preferencias de tu perfil de Chrome.