Open sirkitree opened 2 years ago
https://github.com/CefNet/CefNet maybe the use of this cross platform implementation might work. For a chromium embedded browser.
Probably should use the available WebView on the OS.
Probably should use the available WebView on the OS.
does Linux Support it plus to add onto this issue
only the simulating user on the component should be running the sandboxed browser and be able to interact with it. so this makes it just a texture for other users where they can see the website that is currently being shown. (maybe a bool to allow other users to interact)
Yes every OS has it's own WebView.
On Win 10/11 it's WebView2 (Chromium) On most Linux distro's it's WebKitGTK On MacOS it's just WebKit.
There is libraries like this can automatically find the suitable WebView depending on OS: https://github.com/tauri-apps/wry
About that other issue, yeah that could work depending how you're going to turn it into a texture and send it over.
Alternatively you can just sync the WebViews together with just a simple WebRTC data channel. You just send the updates. Like on clicks, on scroll, on page update and so on. And you can hook into media API if something like video is playing on the screen and sync that automatically too.
i keep coming back and looking at this issue as if its a challenge but the problem would be interaction and security so requisites
I've thought of about this more and the easiest way to do this is by streaming. The thing is syncing two or more webviews is too close to impossible, with weird artifacts, connection differences and etc. I think we should just do webrtc streaming and add a extra touch coordinates on top of it. So basically like a remote desktop and it would basically work like Neo's built-in desktop duplication. Only difference being that it's remote.
I guess this needs to something closer to audio streams than let's a video player technically speaking. But idk how webrtc and neos streams would work. Maybe the plugin adds a webrtc client and that can pipe into Neo's stream (like audio stream) to display it in world space.
https://github.com/Neos-Metaverse/NeosPublic/issues/60