Skip to content

Commit d69aa55

Browse files
committed
Fixed devtools url used for debug with chrome and edge
Fixes dotnet#61559
1 parent 0508333 commit d69aa55

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

src/Components/WebAssembly/Server/src/TargetPickerUi.cs

+26-1
Original file line numberDiff line numberDiff line change
@@ -366,9 +366,34 @@ private string GetDevToolsUrlWithProxy(BrowserTab tabToDebug)
366366
{
367367
var underlyingV8Endpoint = new Uri(tabToDebug.WebSocketDebuggerUrl);
368368
var proxyEndpoint = new Uri(_debugProxyUrl);
369-
var devToolsUrlAbsolute = new Uri(_browserHost + tabToDebug.DevtoolsFrontendUrl);
369+
var devToolsUrlAbsolute = new Uri(new Uri(_browserHost), relativeUri: NormalizeDevtoolsFrontendUrl(tabToDebug.DevtoolsFrontendUrl));
370370
var devToolsUrlWithProxy = $"{devToolsUrlAbsolute.Scheme}://{devToolsUrlAbsolute.Authority}{devToolsUrlAbsolute.AbsolutePath}?{underlyingV8Endpoint.Scheme}={proxyEndpoint.Authority}{underlyingV8Endpoint.PathAndQuery}";
371371
return devToolsUrlWithProxy;
372+
373+
static string NormalizeDevtoolsFrontendUrl(string devtoolsFrontendUrl)
374+
{
375+
// Frontend url can be absolute or relative based on browser
376+
string localPath;
377+
string queryString;
378+
if (Uri.TryCreate(devtoolsFrontendUrl, UriKind.Absolute, out var devtoolsFrontendUri))
379+
{
380+
localPath = devtoolsFrontendUri.LocalPath;
381+
queryString = devtoolsFrontendUri.Query;
382+
}
383+
else
384+
{
385+
var queryStringBeginCharIndex = devtoolsFrontendUrl.IndexOf('?');
386+
localPath = devtoolsFrontendUrl[..queryStringBeginCharIndex];
387+
queryString = devtoolsFrontendUrl[queryStringBeginCharIndex..];
388+
}
389+
390+
// We need only the last segment of the path
391+
localPath = localPath.Split('/').Last().TrimStart('/');
392+
// Ensure starts with "devtools"
393+
localPath = $"devtools/{localPath}";
394+
395+
return $"{localPath}?{queryString}";
396+
}
372397
}
373398

374399
private string GetLaunchChromeInstructions(string targetApplicationUrl)

0 commit comments

Comments
 (0)