passing extension example developer chrome apps google-chrome-extension sublime-text-plugin chrome-native-messaging

google-chrome-extension - extension - message chrome



Use ''Chrome Native Messaging'' del complemento Sublime Text (1)

La mensajería nativa no se puede conectar a un proceso arbitrario, porque:

  1. El proceso debe estar hablando sobre stdin usando el protocolo especificado, o Chrome interrumpirá la conexión. Dudo que los complementos Sublime puedan alterar el comportamiento de Sublime en este caso.
  2. Chrome siempre ejecutará una nueva instancia del host especificado; no se puede conectar a uno existente.

Por lo tanto, su anfitrión nativo hipotético debe ser un proceso separado, que se puede reiniciar independientemente de Sublime y de alguna manera hablar con Sublime.

En realidad, no necesita el protocolo de mensajes nativos aquí. Una ruta alternativa es usar WebSockets: un complemento Sublime puede actuar como un servidor WebSocket en localhost, y una extensión se puede conectar a eso. Vea GhostText como un ejemplo de dicha arquitectura.

Con ''Native Messaging'' debería ser posible comunicarse entre una extensión de Chrome y una aplicación nativa. https://developer.chrome.com/extensions/nativeMessaging

Google incluso proporciona un ejemplo de cómo hacer esto con una aplicación python "host": https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/docs/examples/api/nativeMessaging / host / native-messaging-example-host

Quería utilizar esta técnica para comunicarme entre un complemento Sublime Text (python) y una extensión de Chrome.

  • ¿Alguien tiene experiencia con esto o tal vez conozca algún complemento ST de código abierto que pueda ver?
  • ¿Qué escribes en el name y la path del archivo de manifiesto? El nombre y la ruta de la aplicación de texto sublime?
  • ¿Puedo usar stdin y stdout para comunicarme con Chrome desde el sublime plugin de texto o hay restricciones para esto cuando escribe un plugin?

Lo siento si esto parece una pregunta tonta, suelo hacer desarrollo web, no nativo.