Skip to content

Commit d4d9eaf

Browse files
committed
Simplify url normalization and added comments
1 parent d69aa55 commit d4d9eaf

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed

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

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -372,27 +372,24 @@ private string GetDevToolsUrlWithProxy(BrowserTab tabToDebug)
372372

373373
static string NormalizeDevtoolsFrontendUrl(string devtoolsFrontendUrl)
374374
{
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))
375+
// Currently frontend url can be:
376+
// - absolute (since v135 of chrome and edge)
377+
// chrome example: https://chrome-devtools-frontend.appspot.com/serve_rev/@031848bc6ad02b97854f3d6154d3aefd0434756a/inspector.html?ws=localhost:9222/devtools/page/719FE9D3B43570193235446E0AB36859
378+
// edge example: https://aka.ms/docs-landing-page/serve_rev/@4e2c41645f24197463afa2ab6aa999352ee8255c/inspector.html?ws=localhost:9222/devtools/page/3A4D56E09776321628432588FC9299F4
379+
// - relative (managed as fallback for brosers with prior version)
380+
// example: /devtools/inspector.html?ws=localhost:9222/devtools/page/DAB7FB6187B554E10B0BD18821265734
381+
// The absolute url can't be used as-is because is not valid for debugging and cannot be made relative because of lack "devtools" segment
382+
// before "inspector.html" but we can keep the query string and append to the default "devtools/inspector.html" browser devtools page
383+
384+
const string DefaultBrowserDevToolsPagePath = "devtools/inspector.html";
385+
386+
if (devtoolsFrontendUrl.StartsWith(DefaultBrowserDevToolsPagePath))
379387
{
380-
localPath = devtoolsFrontendUri.LocalPath;
381-
queryString = devtoolsFrontendUri.Query;
388+
return devtoolsFrontendUrl;
382389
}
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}";
394390

395-
return $"{localPath}?{queryString}";
391+
string queryString = devtoolsFrontendUrl[devtoolsFrontendUrl.IndexOf('?')..];
392+
return $"{DefaultBrowserDevToolsPagePath}?{queryString}";
396393
}
397394
}
398395

0 commit comments

Comments
 (0)