This implements basically the same 'loopback' that vscode.dev does via
a service worker to load resources for managed remote authorities in
Electron. Except instead of using a service worker, it uses a buffer
protocol via a new 'vscode-managed-remote-resource' scheme. It finds
the window that the request came from and asks it to load the remote
file.
I initially looked at folding it into the existing 'vscode-remote-resource'
scheme, but we needed a "buffer protocol" for this and it seems http
protocols can _only_ respond with an HTTP URL, which we don't want here.
Apparently Chrome is lenient about the missing closing parenthesis, so
this is not visibly broken in practice, but the Dev Tools show a warning
about an invalid property value.
* wip
* Allow extensions to provide a readonly message
Part of #166971
* Address feedback
* Further address feedback
* Fix some nits
* Add test
* Improve tests and respond to feedback
* Don't render editor.readOnlyMessage in the settings UI
* No need to validate the IMarkdownString
---------
Co-authored-by: Benjamin Pasero <benjamin.pasero@microsoft.com>
Co-authored-by: Alex Dima <alexdima@microsoft.com>
* build: add watch/compile tasks for CLI
I spent time this morning working on the 'developer experience' of the
CLI in vscode, mainly getting the CLI to cross-compile chasing our
initial idea of having it auto-build in a devcontainer.
After some effort and disabling tunnels connections (to avoid having to
pull in OpenSSL which is a huge pain to cross compile), I was able to
get it to cross-compile from Linux to Windows, using the mingw linker.
I could probably figure out how to get macOS working as well with more
effort. However, I'm not a big fan of this, effectively it's one more
'platform' of build we need to support and test.
I think a better approach is downloading the latest compiled CLI from
the update server instead, as needed. That's what this PR does. It just
places the CLI where it _would_ normally get compiled to by cargo; so
far we don't need to do anything special outside of that.
A notice is shown to users if this fallback happens.
* update from review
* untested wip
* cli: fix error starting remote tunnels
Fixes#185585
Output was prefixed which prevented the lines from being split to detect the tunnel status.