October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
Redmond desk7 min

Spec-Driven Development en acción: conectar una extensión de Chrome MV3 con Windows mediante Native Messaging

Guía para planificar con SDD y conectar una extensión Chrome MV3 con un host local en Windows mediante Native Messaging, sin confundir permisos, manifiestos ni protocolo.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. El usuario inicia una acción desde el popup, una página de opciones u otra interfaz de la extensión.
  2. Si la acción comienza en una página web, el content script envía un mensaje interno al service worker.
  3. El service worker usa Native Messaging para abrir el host o enviarle una solicitud puntual.
  4. 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.
  5. 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

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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
Dell Latitude 5420 14" FHD Business Laptop Computer, Intel Quad-Core i5-1145G7, 16GB DDR4 RAM, 256GB SSD, Camera, HDMI, Windows 11 Pro (Renewed)
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Manifiesto 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
15.6 Inch Win 11 Laptop Computer, N4020, 4GB DDR4 RAM, 128GB Storage | LPDDR4 RAM, 180° Lay-Flat, Dual-Band WiFi, Type-C PD Fast Charging, Thin & Lightweight for Students, Home & Office, Gray
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

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.

Lista de comprobación para diagnosticar la integración

  • El nombre pasado a la API, el name del manifiesto nativo y el nombre de la clave del Registro coinciden exactamente.
  • allowed_origins contiene 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 path apunta al ejecutable disponible.
  • La extensión declara nativeMessaging y 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.