I have a working PoC of an extension to control Google Meet. I have a toolbar button that enables when a Google Meet is in progress, and offers buttons to mute audio/video. This allows me to access this functionality even if I have switched to a different tab.
I would like to extend this extension, so I can control it from an outside process. For example, integrate it in a home-automation system, so I can light up a led if I am in a meeting, or have a physical button on my desk to mute. Another integration could be running a small web server that lets me control a meeting from my phone.
I wonder which approach should I choose to integrate with arbitrary end-points. Communication should be bidirectional (send meeting status, receive mute commands) and real-time. I’m thinking of two options:
Use native messaging. I think this would be the best option, but I dislike that the path to the native binary needs to be absolute. If I understand correctly, this means that users will only be able to use this if they are root (because I need the executable to be in /usr/local/bin or a fixed place which at least in Linux is commonly only writable by root). That might be a good idea for security, but it’s driving me towards other options.
Use a network connection. I assume the easiest would be to use a websocket (so it’s bidirectional) connection to a process running on the same host.
Any other options I have? Any recommendation or example of some other extension that does something similar?