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
{
if (req.Headers.TryGetValue("Origin", out var origin) && origin == _listenUri.OriginalString)
if (IsValidOrigin(req))
{
var socket = await req.AcceptWebSocket();
SocketReceiveWorker(socket);
@ -124,12 +124,18 @@ namespace Avalonia.DesignerSupport.Remote.HtmlTransport
}
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)
{

Loading…
Cancel
Save