Browse Source

fix:Previewer connection fails from VSCode (#13630)

win32_client_pos_test
Prashant Cholachagudda 2 years ago
committed by GitHub
parent
commit
0c4f372410
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      src/Avalonia.DesignerSupport/Remote/HtmlTransport/HtmlTransport.cs

10
src/Avalonia.DesignerSupport/Remote/HtmlTransport/HtmlTransport.cs

@ -112,7 +112,7 @@ namespace Avalonia.DesignerSupport.Remote.HtmlTransport
} }
else else
{ {
if (req.Headers.TryGetValue("Origin", out var origin) && origin == _listenUri.OriginalString) if (IsValidOrigin(req))
{ {
var socket = await req.AcceptWebSocket(); var socket = await req.AcceptWebSocket();
SocketReceiveWorker(socket); SocketReceiveWorker(socket);
@ -124,12 +124,18 @@ namespace Avalonia.DesignerSupport.Remote.HtmlTransport
} }
else else
{ {
throw new Exception("Origin doesen't match Url"); throw new Exception("Origin doesn't match Url");
} }
} }
} }
} }
} }
bool IsValidOrigin(SimpleWebSocketHttpRequest request)
{
return request.Headers.TryGetValue("Origin", out var origin) &&
(origin == _listenUri.OriginalString || origin.StartsWith("vscode-webview:"));
}
async void SocketReceiveWorker(SimpleWebSocket socket) async void SocketReceiveWorker(SimpleWebSocket socket)
{ {

Loading…
Cancel
Save