3 ms·
Sorry for the late reply. Building Metastream as a web browser instead of a web extension was a complexity burden created solely by myself. One of the main req
by smaddock 8y ago
Sorry for the late reply. Building Metastream as a web browser instead of a web extension was a complexity burden created solely by myself.
One of the main requirements I wanted was the ability to use the app with as little centralized dependencies as possible. P2P is the primary way to connect to users with the app, but even that requires a centralized signaling solution which is prone to downtime. To mitigate this, users can also directly connect to an IP address with the appropriate ports forwarded. Listening on a socket is not supported by a web extension at this time.
Additionally, some actions on the web require a "user gesture" to be performed such as fullscreening a video. I created an auto-fullscreen feature by simulating a user gestured mouse click. It also only fullscreens within the frame of the window instead of the entire screen. [1]
Other features not possible with a web extension/app include local file reading (potential future feature) and Discord Rich Presence (currently implemented).
[1] https://github.com/electron/electron/pull/17203 https://github.com/electron/electron/pull/17203
- gnomewascool 8y agoThanks for the reply! That makes sense and it's interesting to see the limitations of the "web extension" framework. The following isn't meant to try to convince you to use any particular solution (I don't have any skin in the game), just some ideas in case you get fed up even more by the problems with implementing DRM in your own browser. Listening to a socket and reading local files is possible with "Native messaging"[1]. In brief you have a small application running in the background, outside the browser, which can listen to sockets or read local files, and your browser extension communicates with it. This does bring added complexity and might (haven't tested) bring additional latency, possibly making it unacceptable. [1] https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...