Add a custom scheme or resource handler to serve webui:// content from the Content/WebUI folder. We should be able to serve content to the browser without making a network request.
We should create a NuGet package to install the extension into a project. The NuGet package should have a dependency on CefSharp and should scaffold a basic Hello World page within Content/WebUI in the project as a quickstart for the custom scheme ( see: #3 )
The game should be able to send and receive messages to and from the Browser instance.
Proposed implementation would basically be a key/value message, both string. Complex data types can be serialized through JSON. Message passing will be asynchronous by default. The WebUI Component will receive messages from the browser and push them to a queue every Update; the implementor will be responsible for flushing this queue. We may need to cap the number of items to retain to prevent DoS and OOM.
Currently, the CEF buffer is read on every Draw call. The component should detect if the texture is invalidated/outdated and read it from the buffer only if it needs to be updated.