Just getting a feel for the new Webview2 and C3 C++ 'SDK' from the steam addon github repo, I added a new set of ACEs for getting a user stat (action, trigger, expression), the JS is relatively straightforward, passing messages to the plugin extension.dll which in turns call steam dll, then on result / callback send message back.
The JS functions handle async requests. This was just extending and building the plug-in and c++ extension with some new source. The only build gotcha I had was to make sure all the dll and header files for the Steam SDK are from the same source (I replaced the ones that were checked in to make sure they were all consistent with SDK 1.57 which I downloaded.) In terms of passing messages and values back and forth, do need to be aware of potential type mismatches between JS support and C++ support (see the 64-bit userId).
I was doing basically copy and paste to add in the messaging and C++ steam calls in the extstension and recompile to add in the functionality.
This was just a test of changing the existing example, will not release it. I am hoping that Ashley creates a companion plug-in template that is clean, so can start adding some classes of companion addon steam functions. If not will take a look at making a companion template using the webview32 steam addon as a start. Very thankful that Ashley released the source for this.
I am not sure about the future of webview2, but this implementation for Steam with webview2 looks like a promising start. The overlay didn't really work that well in terms of appearance for me (compared to nw.js / electron, I know Ashley has been investigating that).
Ashley - do you expect to create a template for a companion app, or should we roll our own (I am not in a rush.)
Finally another big thanks to Ashley for making this available for us to work with and build from.