Chrome Native Messaging: JSON Nachrichten empfangen?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
mzurhorst
Beiträge: 11
Registriert: Sa 21. Dez 2019, 21:51

Chrome Native Messaging: JSON Nachrichten empfangen?

Beitrag von mzurhorst »

Hallo zusammen.

Ich möchte gerne eine kleine Anwendung schreiben, welche auf eingehende Nachrichten einer Chrome Extension wartet.
Laut API Beschreibung [1] verwendet Chrome hier eine auf JSON basierende Kommunikation.

Ziel ist, dass diese Anwendung sich aus Chrome heraus triggern lässt und dann eine einzige Aktion [2] durchführt.
Anschließend kann sich diese Anwendung selbst wieder beenden, da sie nicht mehr gebraucht wird.
Aufgrund von Sicherheitsmechanismen kann diese App nicht direkt aus Chrome gestartet werden. Hier muss ich daher den Umweg über diese Native Messaging API gehen.
Nach meinen Beobachtungen im Task Manager wird die Anwendung auch direkt von der Extension gestartet. Sie muss nicht vorher schon gestartet sein als Dienst im Betriebssystem.

Rein theoretisch müsste ich das JSON nicht mal auswerten. Die App wird ja von der Extension getriggert, und mich interessieren keine Infos, die da übergeben werden könnten.
Auch ein Rückgabewert ist nicht nötig.
Allerdings scheint Chrome etwas zickig zu sein und möchte für dieses API wirklich gerne ein JSON Objekt übergeben.
Und es klappt leider auch nicht, das JSON-Objekt nicht entgegenzunehmen.


Hat jemand eine Idee, wie ich das mit Bordmitteln hinkriegen könnte mit wenig Aufwand?
(Bordmitteln deshalb, da das neu kompilieren von Lazarus unter Win10 Fehlermeldungen bringt)


Vielen Dank.

Grüße,
Marcus

[1] https://developers.chrome.com/extension ... t-protocol
[2] https://www.lazarusforum.de/viewtopic.php?f=55&t=12644

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Chrome Native Messaging: JSON Nachrichten empfangen?

Beitrag von Warf »

Einfach bis zum eof den stdin Stream auslesen: https://www.lazarusforum.de/viewtopic.php?f=10&t=6306

mzurhorst
Beiträge: 11
Registriert: Sa 21. Dez 2019, 21:51

Re: Chrome Native Messaging: JSON Nachrichten empfangen?

Beitrag von mzurhorst »

Danke sehr.

Leider habe ich das mit dem stdin nicht hingekriegt.
Allerdings habe ich festgestellt, dass im Beispielcode der Chrome Extension unterschieden wird zwischen Connect() und Send(). Ich habe mir das Send() ausgebaut aus dem JS-Code, da ich diesen Teil sowieso nicht brauche. Nun löst der Connect() das starten der Lazarus-Anwendung aus, und diese führt unattended die gewünschten Aktionen durch. Läuft alles nun wie ich es mir vorgestellt hatte.

Antworten