@@ -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