* [Dependency] source generator
No more reflection, no more codegen at runtime
Also various changes to Roslyn helpers to make this easier to write.
Requires all types with dependencies to be partial and not have readonly dependency fields. An analyzer enforces this at warning level, the previous injection strategies have remained in the code *for now* as a fallback.
No fallback is available for [field: Dependency] properties, due to a Roslyn bug.
Code Fixes exist. We love Roslyn
* Apply dependencies generator changes to all code
* Release notes
* Preprocessor got hands
* Handle nullable dependencies
These are bad but gotta deal with it.
* Apply suggestions from code review
Co-authored-by: Moony <moony@hellomouse.net>
* Fine, let's not use collection expressions
---------
Co-authored-by: Moony <moony@hellomouse.net>
This is a gigantic kerfuffle because Chromium expects a very specific directory & app bundle layout. Have to change a bunch of resource loading code to account for content development being launched from an app bundle, and also had to make automatic MSBuild tooling & a python script to generate such an app bundle
* Multiple CEF instances on a single machine
* remove unused
* meh implementation
* cefextension
* me when partials, race conditions and extractiion of methods exists
* Change remote debugging handling
It now defaults to 9222 again. This doesn't seem to cause any issues when launching 3 clients. The debug port can be reconfigured via CVar if desired.
Also disabled debugging by default outside dev builds.
* Lower MaxAttempts to 15
100 was way too much and gave me anxiety idk.
* Fix non-TOOLS default of remote debug port
* Rewrite locking implementation.
It is much smaller, less complicated and probably more robust too. Should be fully atomic (the previous one wasn't).
* Undo unnecessary style changes
---------
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
Re-organize initialization so that User-Agent CVar actually works.
Add web.headless CVar to not load CEF even on graphical client.
Clean up init logic to not rely on static IoC, and clean up loggers used too.
* Trying to get res:// and usr:// cookies to wrok
* Update CefGlue
* Bump CEF
* Seal types in WebView
Fixes warnings
* Move most of client cleanup to game thread.
This used to run in the windowing thread which broke CEF shutdown, most notably cookie saving.
* "flushcookies" command for CEF.
* Remove unecessary res:// code.
* Fix tests
* More request handler fixes.
* Good thing I don't have to care about commit quality in PRs like this.