Extensiones del navegador
Las extensiones pueden extender y modificar la capacidad de un navegador. Las extensiones para Firefox son construidas utilizando las APIs de WebExtension, un sistema para el desarrollo de extensiones multi-navegador. En gran medida, el sistema es compatible con la API de extensión soportada por Google Chrome, Opera y el borrador del grupo de la comunidad del W3C.
Las extensiones escritas para estos navegadores se ejecutarán en la mayoría de los casos en Firefox o Microsoft Edge con sólo unos pocos cambios. La API también es totalmente compatible con multiprocesos de Firefox.
Si tiene alguna idea, pregunta, o necesita ayuda en el proceso de migración de un complemento heredado al uso de las APIs de WebExtension, puede ponerse en contacto con nosotros a través del Discourse de Add-ons o en el canal #webextensions de IRC.
Primeros pasos
Conceptos
- Descripción general de la API JavaScript
- Scripts de contenido
- Patrones de coincidencia
- Trabajando con archivos
- Internacionalización
- Las mejores prácticas de seguridad
- Política de seguridad de contenido
- Mensajería nativa
- Utilización de las APIs de devtools
- Buenas prácticas para la experiencia de usuario
- Manifestaciones nativas
- Acciones de los usuarios
Interfaz de usuario
- Introducción
- Botón en la barra de herramientas del navegador
- Botón en barra de herramientas del navegador con una ventana emergente
- Botón en la barra de direcciones
- Botón en barra de direcciones con una ventana emergente
- Elementos en el menú contextual
- Barras laterales
- Página de opciones
- Páginas de extensiones
- Notificaciones
- Sugerencias en la barra de direcciones
- Paneles de herramientas para desarrolladores
- Estilos del navegador
Cómo
- Interceptar solicitudes HTTP
- Modificar una página web
- Agregar un botón a la barra de herramientas
- Implementar una página de configuración
- Interactuar con el portapapapeles
- Trabajar con el API de las pestañas
- Trabajar con el API de los marcadores
- Trabajar con el API de las cookies
- Trabjar con identidades contextuales
- Insertar contenido externo
Portado
- Portar una extensión de Google Chrome
- Portar un complemento heredado de Firefox
- Desarrollo para Firefox para Android
- WebExtensions integradas
- Comparación con el complemento SDK
- Comparación con las extensiones XUL/XPCOM
- Incompatibilidades con Chrome
- Diferencias entre el escritorio y Android
- Diferencias entre implementaciones de API
Flujo de trabajo de Firefox
- Experiencia de usuario
- Instalación
- Depuración
- Prueba de funciones persistentes y de reinicio
- Primeros pasos con web-ext
- Referencia del comando web-ext
- Extensiones y el ID del complemento
- Opciones alternativas de distribución
- Solicite los permisos correctos
- Compartir objetos con guiones de página
- Retirando su extensión
- Consejos y trucos
- Herramientas de desarrollo para las extensiones del navegador
Reference
JavaScript APIs
- Descripción general de la API JavaScript
- Tablas de compatibilidad del navegador para las API de JavaScript
APIs de JavaScript
- action
- alarms
- bookmarks
- browserAction
- browserSettings
- browsingData
- captivePortal
- clipboard
- commands
- contentScripts
- contextualIdentities
- cookies
- declarativeNetRequest
- devtools
- dns
- dom
- downloads
- events
- extension
- extensionTypes
- find
- history
- i18n
- identity
- idle
- management
- menus
- notifications
- omnibox
- pageAction
- permissions
- pkcs11
- privacy
- proxy
- runtime
- scripting
- search
- sessions
- sidebarAction
- storage
- tabs
- theme
- topSites
- types
- userScripts
- webNavigation
- webRequest
- windows
Manifest keys
- action
- author
- background
- browser_action
- browser_specific_settings
- chrome_settings_overrides
- chrome_url_overrides
- commands
- content_scripts
- content_security_policy
- declarative_net_request
- default_locale
- description
- developer
- devtools_page
- dictionaries
- externally_connectable
- homepage_url
- host_permissions
- icons
- incognito
- manifest_version
- name
- offline_enabled
- omnibox
- optional_host_permissions
- optional_permissions
- options_page
- options_ui
- page_action
- permissions
- protocol_handlers
- short_name
- sidebar_action
- storage
- theme
- theme_experiment
- user_scripts
- version
- version_name
- web_accessible_resources