Una extensión de Chrome MV3 no ejecuta directamente comandos de Windows ni puede iniciar por sí sola un programa local desde un content script. Para intercambiar datos con una aplicación Node.js instalada, usa Native Messaging: el service worker de la extensión se comunica con un host nativo registrado en Windows, y Chrome inicia ese host como proceso separado.
La forma más segura de construir la integración es definir primero el contrato —mensajes, permisos, errores y acciones permitidas— y luego implementarlo por partes. GitHub Spec Kit ofrece un ejemplo de flujo basado en especificación, plan, tareas e implementación; el enfoque también puede aplicarse sin esa herramienta.
As an Amazon Associate I earn from qualifying purchases.
Cómo se comunican la extensión y el programa de Windows
Native Messaging conecta una extensión con un proceso local instalado y registrado. La extensión solicita la comunicación a través de las API de Chrome; no obtiene acceso directo al sistema operativo. Chrome valida el host y el origen autorizado, inicia el proceso y transporta mensajes por la entrada y salida estándar.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →- El usuario inicia una acción desde el popup, una página de opciones u otra interfaz de la extensión.
- Si la acción comienza en una página web, el content script envía un mensaje interno al service worker.
- El service worker usa Native Messaging para abrir el host o enviarle una solicitud puntual.
- Chrome localiza el manifiesto nativo mediante el registro de Windows, comprueba que el origen de la extensión está permitido y lanza el proceso configurado.
- La extensión y el host intercambian mensajes JSON con longitud prefijada.
Chrome explica que las extensiones pueden intercambiar mensajes con aplicaciones nativas mediante una API parecida a las demás API de mensajería. Consulta la documentación de Native Messaging para los requisitos y el comportamiento de la plataforma.
#1 Best Overall
- 14" diagonal, 1366x768 resolution, HD BrightView LED, Glossy NON-TOUCH Display
Qué contexto de MV3 puede hablar con el host
La conexión nativa debe originarse en una página de la extensión o en el service worker. Un content script no llama directamente a runtime.connectNative() ni a runtime.sendNativeMessage(); debe enviar su solicitud al service worker, que actúa como intermediario. La extensión necesita declarar el permiso nativeMessaging.
Convierte la necesidad en artefactos SDD antes de programar
Spec-Driven Development (SDD) hace explícito el contrato de lo que se va a construir antes de escribir la implementación. GitHub Spec Kit presenta las etapas Specification → Plan → Tasks → Implement, donde cada artefacto aporta contexto estructurado al siguiente. Su documentación de Spec Kit y el quickstart describen el flujo y recomiendan revisar cada etapa antes de continuar.
Aplicado a Native Messaging, el objetivo no es producir documentos por producirlos: es dejar claras las fronteras entre navegador, extensión, host y sistema operativo, y hacer verificable cada decisión.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
1. Principios del proyecto
Establece reglas que se mantengan durante la implementación: pedir el mínimo de permisos, validar todo mensaje, limitar las acciones locales que el host acepta y enviar diagnósticos a stderr sin filtrar datos sensibles. Por ejemplo, define operaciones permitidas mediante nombres de acción explícitos en lugar de aceptar una ruta o comando arbitrario enviado por la extensión.
2. Especificación
Describe el comportamiento observable, no una solución de código prematura. Incluye:
- qué acción del usuario inicia la comunicación y desde qué interfaz;
- el formato de la solicitud y la respuesta, incluidos identificadores, campos obligatorios y errores esperados;
- qué permiso requiere la extensión y qué origen exacto está autorizado;
- qué debe ver el usuario si el host no está instalado, no responde o rechaza la solicitud;
- qué datos puede procesar el host y qué acciones locales quedan fuera de alcance.
3. Plan
Separa las piezas que tienen instalación y ciclo de vida propios: extensión MV3, host Node.js, manifiesto nativo, registro de Windows, empaquetado y procedimientos de instalación y desinstalación. El host local no forma parte del paquete de extensión de la misma manera que sus archivos MV3: Chrome necesita que esté instalado y registrado en el equipo.
Rank #2
- 256 GB SSD of storage.
- Multitasking is easy with 16GB of RAM
- Equipped with a blazing fast Core i5 2.00 GHz processor.
4. Tareas y verificación
Convierte cada requisito en tareas que puedan comprobarse. Incluye casos para estructura correcta del mensaje, origen autorizado y no autorizado, host ausente, JSON malformado, proceso terminado y respuesta válida del host. Comprueba también que la extensión maneja los errores de conexión y que los diagnósticos no contaminan el canal de protocolo.
5. Implementación y convergencia
Implementa por artefacto y compara el comportamiento con la especificación. Si cambia el formato del mensaje o la política de instalación, actualiza primero el contrato y las tareas asociadas. Así, las decisiones de seguridad e instalación no quedan escondidas en código que la siguiente persona debe inferir.
Elige entre conexión persistente y solicitud puntual
Chrome ofrece dos patrones de Native Messaging. La elección depende de si necesitas mantener intercambio durante una sesión o solo obtener una respuesta por solicitud.
| API | Ciclo del proceso nativo | Cuándo elegirla |
|---|---|---|
runtime.connectNative() |
Abre un puerto y mantiene vivo el proceso mientras ese puerto siga abierto. | Cuando la extensión necesita varias interacciones a través de una conexión mantenida. |
runtime.sendNativeMessage() |
Inicia un proceso nuevo para cada mensaje; la primera respuesta del host se usa como respuesta a la llamada. | Cuando cada operación es independiente y no requiere conservar una conexión. |
Una conexión persistente evita abrir un proceso por cada solicitud, pero exige gestionar la vida del puerto y el cierre del host. Una llamada puntual tiene un ciclo más sencillo, aunque cada mensaje inicia un proceso nuevo. La extensión debe manejar con claridad la desconexión y los fallos en cualquiera de los dos patrones.
Configura los dos manifiestos sin confundirlos
El manifest.json MV3 de la extensión y el manifiesto del host nativo son archivos distintos. El primero declara las capacidades y permisos de la extensión; el segundo le dice a Chrome qué ejecutable iniciar y qué extensiones pueden conectarse.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchManifiesto del host
El manifiesto nativo es un archivo JSON independiente. Chrome documenta los campos name, description, path, type y allowed_origins. El tipo admitido es stdio. En allowed_origins debe figurar el origen exacto de la extensión autorizada; no se admiten comodines. En Windows, la ruta del ejecutable puede ser relativa al directorio del manifiesto, aunque una instalación resulta más fácil de verificar si se configura y comprueba la ruta real del ejecutable.
Rank #3
- WINDOWS 11 | STABLE PERFORMANCE: Powered by Intel Celeron N4020 processor and Windows 11 system, this laptop delivers stable performance for everyday computing tasks. It supports web browsing, online learning, document editing, email communication, and basic office work with optimized power efficiency, providing a practical and reliable experience for essential daily use for daily use.
- 15.6” FHD IPS DISPLAY: Features a 15.6-inch Full HD IPS display with narrow bezels, offering wider viewing angles and clearer image details compared to standard panels. The improved screen-to-body ratio enhances visual experience for study, reading, document work, and video playback, making it suitable for both productivity and entertainment use.
- 4GB DDR4 + 128GB eMMC STORAGE: Equipped with 4GB DDR4 memory and 128GB eMMC storage for everyday basics such as browsing, documents, email, and online learning platforms. The built-in TF card slot supports storage expansion up to 1TB, giving you more flexibility for files, photos, videos, and daily documents. TF card not included.
- CONNECTIVITY & PORTS: Includes 1× TF card slot, 2× USB 3.2 Gen1 ports, and 2× full-featured Type-C ports (USB 3.2 Gen1). The Type-C ports support data transfer, charging, and video output, enabling flexible connection with external devices such as monitors, storage, and peripherals for daily work and study use.
- LIGHTWEIGHT DESIGN | ONLINE COMMUNICATION: Designed with a slim, portable profile, this laptop is easy to carry for school, commuting, and travel. A built-in 1MP front camera supports online classes, video meetings, remote communication, and everyday conferencing. The 3300mAh battery works with the low-power system design to support practical daily use, while thermal optimization helps maintain quieter operation during extended tasks.
El nombre del host debe coincidir en tres lugares: la llamada de la extensión, el campo name del manifiesto y el nombre de la clave del Registro. Un error de coincidencia impide que Chrome localice el host esperado.
Registro de Windows y alcance de instalación
Chrome busca el host bajo HKEY_CURRENT_USERSoftwareGoogleChromeNativeMessagingHosts<host_name> para el usuario actual, o en la ruta equivalente bajo HKEY_LOCAL_MACHINE para una instalación de ámbito global. El valor predeterminado de la clave apunta al archivo JSON del manifiesto.
| Ubicación | Alcance | Consideración de instalación |
|---|---|---|
HKCU |
Usuario actual | La muestra oficial de Chrome usa este ámbito; el registro corresponde a la cuenta que instala el host. |
HKLM |
Todos los usuarios | El instalador debe manejar el alcance global y los permisos del sistema necesarios. |
La muestra oficial de Native Messaging de Chrome enseña el registro HKCU y usa Python como requisito de ese ejemplo. Python no es un requisito general de Native Messaging ni de un host escrito en Node.js. No copies a ciegas el ID de extensión de la muestra: autoriza el origen correspondiente a tu propia extensión.
Respeta el encuadre binario del protocolo
Aunque el contenido sea JSON, Native Messaging no es simplemente un intercambio de líneas de texto. Cada mensaje se codifica como UTF-8 y va precedido por un prefijo de longitud de 32 bits en el orden de bytes nativo. La documentación de Chrome establece un máximo de 1 MB para un mensaje del host a Chrome y de 64 MiB para un mensaje de Chrome al host.
La entrada y salida estándar del host son el canal de protocolo. Una línea de log accidental escrita en stdout puede interpretarse como parte de una trama y romper el intercambio. Envía diagnósticos a stderr y deja stdout exclusivamente para los mensajes Native Messaging.
Las fuentes de Chrome citadas describen el contrato de Native Messaging, pero no ofrecen en ellas un ejemplo de host Node.js. Por eso, no conviene presentar una implementación de lectura y escritura binaria como código validado por esa documentación. Antes de desplegar un host Node.js, verifica el encuadre, los tamaños, el manejo de stdin/stdout y el registro e instalación en Windows en el entorno objetivo.
Quick Recap
Lista de comprobación para diagnosticar la integración
- El nombre pasado a la API, el
namedel manifiesto nativo y el nombre de la clave del Registro coinciden exactamente. allowed_originscontiene el origen de la extensión que realmente se está ejecutando, sin comodines.- El valor predeterminado de la clave del Registro apunta al manifiesto JSON correcto.
- El JSON del manifiesto es válido y su campo
pathapunta al ejecutable disponible. - La extensión declara
nativeMessagingy las llamadas se originan en el service worker o una página de extensión, no directamente en un content script. - stdout contiene únicamente tramas del protocolo; los diagnósticos van a stderr.
- La extensión y el host manejan host no registrado, origen no autorizado, proceso terminado y mensaje malformado.
- La especificación indica si se usa un puerto persistente o un proceso por mensaje y qué comportamiento se espera al desconectar.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




