Preguntas frecuentes

Si no encuentras una respuesta a tu pregunta aquí, consulta las Preguntas frecuentes de Chrome Web Store, etiqueta [google-chrome-extension] en Stack Overflow, el grupo de extensiones de Chromium ayuda de la tienda.

General

¿Qué son las extensiones de Google Chrome?

Las extensiones de Google Chrome son aplicaciones que se ejecutan en el navegador Chrome y proporcionan información la funcionalidad, la integración con sitios web o servicios de terceros, y la navegación personalizada experiencias.

¿Cómo puedo configurar Chrome para el desarrollo de extensiones?

Siempre y cuando uses una versión de Chrome que admita extensiones, ya tendrás todo debes comenzar a escribir una extensión propia. Para comenzar, activa el modo de desarrollador.

Haz clic en el ícono de menú de Chrome y selecciona Extensiones en el menú Herramientas. Asegúrate de que el “modo de desarrollador” esté marcada la casilla de verificación que aparece en la esquina superior derecha. Ahora puedes volver a cargar la página cargar un directorio de archivos desempaquetado como si fuera una extensión empaquetada y mucho más. Para un completo, consulta Cómo comenzar.

¿Qué tecnologías se usan para escribir extensiones para Chrome?

Las extensiones se escriben con las mismas tecnologías web estándar que los desarrolladores usan para crear sitios web. HTML se usa como lenguaje de marcación del contenido, CSS se usa para dar estilo y JavaScript para la escritura de secuencias de comandos. Dado que Chrome admite HTML5 y CSS3, los desarrolladores pueden usar la versión de la Web tecnologías como lienzo y animaciones CSS en sus extensiones. Las extensiones también tienen acceso a varias API de JavaScript que ayudan a ejecutar funciones como la codificación JSON y la interacción con el navegador.

¿Se recuperan las extensiones de la Web cada vez que se carga el navegador?

Las extensiones se descargan a través del navegador Chrome al momento de la instalación y, posteriormente, se ejecutan en un disco local para acelerar el rendimiento. Sin embargo, si se envía una versión nueva de la extensión en línea, se descargará automáticamente en segundo plano para todos los usuarios que tengan la extensión esté instalado. Las extensiones también podrán hacer solicitudes de contenido remoto en cualquier momento para interactuar con un servicio web o extraer nuevo contenido de la Web.

¿Cómo puedo determinar qué versión de Chrome se implementa en qué canal?

Para determinar qué versión de Chrome está disponible actualmente en cada una de las diferentes plataformas, visita omahaproxy.appspot.com. En ese sitio, verás datos en un formato similar al siguiente:

cf,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,canary,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####

Cada línea representa información sobre una combinación diferente de plataforma y canal. El listado Las plataformas son cf (Google Chrome Frame), linux, mac, win y cros (Google ChromeOS). El canales enumerados son canary, dev, beta y stable. Los dos números de cuatro partes después del representa las versiones actual y anterior de Chrome implementadas en ese canal de plataforma combinación. El resto de la información contiene metadatos sobre el momento en que se enviaron los lanzamientos, y los números de revisión asociados a cada compilación.

Funciones

¿Las extensiones pueden hacer solicitudes de Ajax entre dominios?

Sí. Las extensiones pueden realizar solicitudes entre dominios. Consulta esta página para obtener más información.

¿Las extensiones pueden usar servicios web de terceros?

Sí. Las extensiones pueden realizar solicitudes Ajax entre dominios, por lo que pueden llamar a APIs remotas. directamente. Las APIs que proporcionan datos en formato JSON son particularmente fáciles de usar.

¿Las extensiones pueden codificar/decodificar datos JSON?

Sí, como V8 (el motor de JavaScript de Chrome) admite JSON.stringify y JSON.parse de forma nativa, pueden usar estas funciones en sus extensiones como se describe aquí sin incluir las JSON en tu código.

¿Las extensiones pueden almacenar datos de forma local?

Sí. Las extensiones pueden usar localStorage para almacenar datos de cadenas de forma permanente. Con la tecnología integrada de Chrome JSON, puedes almacenar estructuras de datos complejas en localStorage. En el caso de las extensiones que necesiten ejecutar consultas SQL en sus datos almacenados, Chrome implementa bases de datos SQL del cliente, que que también se puede usar.

¿Las extensiones pueden usar OAuth?

Sí, hay extensiones que usan OAuth para acceder a APIs de datos remotos. La mayoría de los desarrolladores lo encuentran Es conveniente usar una biblioteca de OAuth para JavaScript a fin de simplificar el proceso de firma de OAuth. solicitudes.

¿Las extensiones pueden crear una IU fuera de la página web renderizada?

Sí, la extensión puede agregar botones a la interfaz de usuario del navegador Chrome. Consulta Navegador acciones y las acciones de página para obtener más información.

Una extensión también puede crear notificaciones emergentes, que existen fuera de la ventana del navegador. Consulta la notificaciones de escritorio para obtener más detalles.

¿Las extensiones pueden escuchar los clics en las pestañas y los botones de navegación de Chrome?

No. Las extensiones se limitan a escuchar los eventos descritos en la documentación de la API.

¿Pueden dos extensiones comunicarse entre sí?

Sí, las extensiones pueden enviar mensajes a otras extensiones. Consulta la documentación de transmisión de mensajes. para obtener más información.

¿Las extensiones pueden usar Google Analytics?

Sí, como las extensiones se crean al igual que los sitios web, pueden utilizar Google Analytics para realizar un seguimiento de uso de la nube. Sin embargo, debes modificar el código de seguimiento para extraer una versión HTTPS de la API de Google Analytics. biblioteca. Consulta este instructivo para obtener más información sobre cómo hacerlo.

¿Las extensiones pueden modificar las URLs de chrome://?

No. Las APIs de extensiones se diseñaron para minimizar los problemas de retrocompatibilidad que pueden surgir. cuando se lanzan nuevas versiones del navegador. Permitir secuencias de comandos de contenido en chrome:// URLs significaría para que los desarrolladores comenzaran a depender del DOM, CSS y JavaScript de estas páginas para mantenerse iguales. En el mejor de los casos, estas páginas no se pudieron actualizar con la misma rapidez que se están actualizando en este momento. En el peor de los casos, podría significar que la actualización de una de estas páginas podría causar que una extensión lo cual provoca que las partes clave del navegador dejen de funcionar para los usuarios de esa extensión.

Motivo por el que se permite reemplazar por completo el contenido alojado en estas URLs es que obliga al desarrollador de extensiones a implementar todas las funciones que desea sin depender de la implementación interna del navegador se mantenga igual.

¿Las extensiones pueden abrir ventanas emergentes de acciones en el navegador o la página sin la interacción del usuario?

No, las ventanas emergentes solo se pueden abrir si el usuario hace clic en la página o acción del navegador correspondiente. Los no puede abrir la ventana emergente de manera programática.

¿Las extensiones pueden mantener las ventanas emergentes abiertas después de que el usuario hace clic fuera de ellas?

No, las ventanas emergentes se cierran automáticamente cuando el usuario se centra en alguna parte del navegador fuera del ventana emergente. No hay forma de mantener la ventana emergente abierta después de que el usuario hace clic para salir.

¿Se pueden notificar las extensiones cuando se instalan o desinstalan?

Puedes escuchar el evento runtime.onInstalled de tu extensión para recibir una notificación al respecto. instalado o actualizado, o cuando se actualiza Chrome. No existe un evento que indique cuándo se desinstalará tu extensión.

Desarrollo

¿Cómo creo una IU para mi extensión?

Las extensiones usan HTML y CSS para definir sus interfaces de usuario, por lo que puede usar controles de formulario estándar para compilar tu IU o diseña la interfaz con CSS, como lo harías para una página web. Además, las extensiones Puedes agregar algunos elementos de la IU limitados a Chrome.

¿Cuántos datos puedo almacenar en localStorage?

Las extensiones pueden almacenar hasta 5 MB de datos en localStorage.

¿Cómo creo un menú de opciones para mi aplicación?

Si quieres permitir que los usuarios establezcan opciones para tu extensión, crea una página de opciones, que es una Página HTML simple que se carga cuando un usuario hace clic en las “opciones” de la extensión. Esta página puede leer y escribir ajustes en localStorage e incluso enviar opciones a un servidor web para que y pueden conservarse en todos los navegadores.

¿Qué herramientas de depuración están disponibles para los desarrolladores de extensiones?

Las herramientas integradas para desarrolladores de Chrome se pueden usar para depurar extensiones y páginas web. Ver esto instructivo sobre la depuración de extensiones para obtener más información.

¿Por qué las coincidencias de comodines no funcionan para los dominios de nivel superior (TLD)?

No puede usar patrones de coincidencia comodín, como http://google.*/*, para hacer coincidir los TLD (como http://google.es y http://google.fr) debido a la complejidad de restringir este tipo de coinciden solo con los dominios deseados.

En el ejemplo de http://google.*/*, los dominios de Google coincidirían, pero también lo harían los dominios de Google http://google.someotherdomain.com Además, muchos sitios no poseen todos los TLD para su dominio. A modo de ejemplo, supongamos que deseas usar http://example.*/* para hacer coincidir http://example.com. y http://example.es, pero http://example.net es un sitio hostil. Si tu extensión tiene un error, el sitio hostil podría atacar tu extensión para obtener acceso a la mayores privilegios.

Debes enumerar de forma explícita los TLD en los que deseas ejecutar tu extensión.

¿Por qué la API de administración no activa eventos cuando se instala o desinstala mi extensión?

El objetivo de la API de administración es ayudar a crear nuevas extensiones de reemplazo de páginas de pestañas. No era destinados a activar eventos de instalación o desinstalación para la extensión actual.

¿Cómo puede determinar una extensión si se está ejecutando por primera vez?

Puedes escuchar el evento runtime.onInstalled. Consulta esta entrada de Preguntas frecuentes.

Características y errores

Creo que encontré un error. ¿Cómo me aseguro de que se solucione?

Cuando desarrollas una extensión, es posible que encuentres comportamiento que no coincida con ellas. documentación y pueden ser el resultado de un error en Chrome. Lo mejor que puedes hacer es asegurarte de que un se presentó el informe de problemas adecuado y el equipo de Chromium tiene suficiente información para reproducir el comportamiento de los usuarios.

Estos son los pasos que debes seguir para asegurarte de que sean los siguientes:

  1. Crea una extensión de prueba mínima que demuestre el problema que quieres informar. Esta la extensión debería tener la menor cantidad de código posible para demostrar el error; por lo general, debería ser 100 líneas de código o menos. Muchas veces, los desarrolladores descubren que no pueden reproducir sus problemas. de esta manera, lo que es un buen indicador de que el error está en su propio código.
  2. Busca en la Herramienta de seguimiento de errores en http://crbug.com para ver si alguien informó una situación similar problema. La mayoría de los problemas relacionados con extensiones se archivan en component=Platform>Extensions. para buscar un error de extensión relacionado con la función chrome.tabs.executeScript (por ejemplo), busca "component=Platform>Extensions Type=Bug chrome.tabs.executeScript", lo que dará para ver esta lista de resultados.
  3. Si encuentras un error que describe tu problema, haz clic en el ícono de estrella para recibir una notificación cuando se produzca. recibe una actualización. No respondas al error diciendo “yo también” o pregunta "¿Cuándo se realizará ¿corregido?"; estas actualizaciones pueden hacer que se envíen cientos de correos electrónicos. Agrega un comentario solo si tienes información (como un mejor caso de prueba o una solución sugerida) que probablemente sea útil.
  4. Si no encontraste un error apropiado para destacar, envía un nuevo informe de problema en http://crbug.com/new. Sé lo más explícito posible cuando completes este formulario: elige un título descriptivo, explica la pasos para reproducir el error y describir el comportamiento esperado y real. Adjunta la prueba ejemplo al informe y, si corresponde, agrega capturas de pantalla. Cuanto más fácil sea el informe que otros reproduzcan tu problema, mayores serán las posibilidades de que el error se solucione rápidamente.
  5. Espera a que se actualice el error. La mayoría de los insectos nuevos se clasifican en una semana, aunque puede a veces tardan más tiempo en actualizarse. No respondas al error para preguntar cuándo ya que se solucionó el problema. Si tu error no se modificó después de dos semanas, publica un mensaje en el grupo de discusión con un vínculo al error.
  6. Si originalmente informaste el error en el grupo de discusión y se te redireccionó a esta entrada de Preguntas frecuentes, responder a la conversación original con un vínculo al error que destacaste o informaste. Esto hará que para otros que tienen el mismo problema encontrar el error correcto.

Tengo una solicitud de función. ¿Cómo hago para denunciarlo?

Si identificas un atributo (especialmente si está relacionado con una API experimental) que podría agregarse mejorar la experiencia de desarrollo de extensiones, asegurarte de que se presente una solicitud adecuada en el problema de Google.

Estos son los pasos que debes seguir para asegurarte de que sean los siguientes:

  1. Consulta la herramienta de seguimiento de errores en http://crbug.com para ver si alguien solicitó una función similar. La mayoría de las solicitudes relacionadas con extensiones se presentan en component=Platform>Extensions para buscar una solicitud de función de extensión relacionada con combinaciones de teclas (por ejemplo), buscar "component=Platform>Extensions Type=Feature shortcuts", que te proporcionará esta lista de los resultados.
  2. Si encuentras una entrada que coincida con tu solicitud, haz clic en el ícono de estrella para recibir una notificación cuando aparezca el error. recibe una actualización. No respondas al error diciendo “yo también” o pregunta "¿Cuándo se realizará implemented?"; estas actualizaciones pueden hacer que se envíen cientos de correos electrónicos.
  3. Si no encontraste un ticket adecuado para destacar, envía una nueva solicitud en http://crbug.com/new. Sé cuando complete el formulario, elija un título descriptivo y explique exactamente qué función te gustaría y cómo planeas usarla.
  4. Espera a que se actualice el ticket. La mayoría de las solicitudes nuevas se clasifican en una semana, aunque puede a veces tardan más tiempo en actualizarse. No respondas al ticket para preguntar cuándo se habilitará la función agregado. Si tu boleto no se ha modificado después de dos semanas, publica un mensaje en el grupo de discusión con un vínculo a tu solicitud.
  5. Si originalmente denunciaste tu solicitud en el grupo de discusión y se te redireccionó a estas preguntas frecuentes responde a la conversación original con un vínculo al ticket que destacó o abriste. Si confirmas esta acción, hacen que sea más fácil para otras personas con la misma solicitud encontrar el ticket correcto.