Add MS Edge support for debugging (#15176)
* Add MS Edge support for debugging Addresses #10163
This commit is contained in:
parent
65585c13f1
commit
3d3d5f699e
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
|
|
@ -89,19 +91,26 @@ namespace Microsoft.AspNetCore.Builder
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
||||||
await context.Response.WriteAsync($@"
|
await context.Response.WriteAsync($@"
|
||||||
<h1>Unable to find debuggable browser tab</h1>
|
<h1>Unable to find debuggable browser tab</h1>
|
||||||
<p>
|
<p>
|
||||||
Could not get a list of browser tabs from <code>{debuggerTabsListUrl}</code>.
|
Could not get a list of browser tabs from <code>{debuggerTabsListUrl}</code>.
|
||||||
Ensure Chrome is running with debugging enabled.
|
Ensure your browser is running with debugging enabled.
|
||||||
</p>
|
</p>
|
||||||
<h2>Resolution</h2>
|
<h2>Resolution</h2>
|
||||||
|
<p>
|
||||||
|
<h4>If you are using Google Chrome for your development, follow these instructions:</h4>
|
||||||
{GetLaunchChromeInstructions(appRootUrl)}
|
{GetLaunchChromeInstructions(appRootUrl)}
|
||||||
<p>... then use that new tab for debugging.</p>
|
</p>
|
||||||
<h2>Underlying exception:</h2>
|
<p>
|
||||||
<pre>{ex}</pre>
|
<h4>If you are using Microsoft Edge (Chromium) for your development, follow these instructions:</h4>
|
||||||
");
|
{GetLaunchEdgeInstructions(appRootUrl)}
|
||||||
|
</p>
|
||||||
|
<strong>This should launch a new browser window with debugging enabled..</p>
|
||||||
|
<h2>Underlying exception:</h2>
|
||||||
|
<pre>{ex}</pre>
|
||||||
|
");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -144,20 +153,42 @@ namespace Microsoft.AspNetCore.Builder
|
||||||
|
|
||||||
private static string GetLaunchChromeInstructions(string appRootUrl)
|
private static string GetLaunchChromeInstructions(string appRootUrl)
|
||||||
{
|
{
|
||||||
|
var profilePath = Path.Combine(Path.GetTempPath(), "blazor-edge-debug");
|
||||||
|
|
||||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||||
{
|
{
|
||||||
return $@"<p>Close all Chrome instances, then press Win+R and enter the following:</p>
|
return $@"<p>Press Win+R and enter the following:</p>
|
||||||
<p><strong><code>""%programfiles(x86)%\Google\Chrome\Application\chrome.exe"" --remote-debugging-port=9222 {appRootUrl}</code></strong></p>";
|
<p><strong><code>chrome --remote-debugging-port=9222 --user-data-dir=""{profilePath}"" {appRootUrl}</code></strong></p>";
|
||||||
}
|
}
|
||||||
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
|
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
|
||||||
{
|
{
|
||||||
return $@"<p>Close all Chrome instances, then in a terminal window execute the following:</p>
|
return $@"<p>In a terminal window execute the following:</p>
|
||||||
<p><strong><code>google-chrome --remote-debugging-port=9222 {appRootUrl}</code></strong></p>";
|
<p><strong><code>google-chrome --remote-debugging-port=9222 --user-data-dir={profilePath} {appRootUrl}</code></strong></p>";
|
||||||
}
|
}
|
||||||
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
|
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
|
||||||
{
|
{
|
||||||
return $@"<p>Close all Chrome instances, then in a terminal window execute the following:</p>
|
return $@"<p>Execute the following:</p>
|
||||||
<p><strong><code>open /Applications/Google\ Chrome.app --args --remote-debugging-port=9222 {appRootUrl}</code></strong></p>";
|
<p><strong><code>open /Applications/Google\ Chrome.app --args --remote-debugging-port=9222 --user-data-dir={profilePath} {appRootUrl}</code></strong></p>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("Unknown OS platform");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string GetLaunchEdgeInstructions(string appRootUrl)
|
||||||
|
{
|
||||||
|
var profilePath = Path.Combine(Path.GetTempPath(), "blazor-chrome-debug");
|
||||||
|
|
||||||
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||||
|
{
|
||||||
|
return $@"<p>Press Win+R and enter the following:</p>
|
||||||
|
<p><strong><code>msedge --remote-debugging-port=9222 --user-data-dir=""{profilePath}"" {appRootUrl}</code></strong></p>";
|
||||||
|
}
|
||||||
|
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
|
||||||
|
{
|
||||||
|
return $@"<p>In a terminal window execute the following:</p>
|
||||||
|
<p><strong><code>open /Applications/Microsoft\ Edge\ Dev.app --args --remote-debugging-port=9222 --user-data-dir={profilePath} {appRootUrl}</code></strong></p>";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -26,7 +26,7 @@ export function attachDebuggerHotkey(loadAssemblyUrls: string[]) {
|
||||||
if (!hasReferencedPdbs) {
|
if (!hasReferencedPdbs) {
|
||||||
console.error('Cannot start debugging, because the application was not compiled with debugging enabled.');
|
console.error('Cannot start debugging, because the application was not compiled with debugging enabled.');
|
||||||
} else if (!currentBrowserIsChrome) {
|
} else if (!currentBrowserIsChrome) {
|
||||||
console.error('Currently, only Chrome is supported for debugging.');
|
console.error('Currently, only Edge(Chromium) or Chrome is supported for debugging.');
|
||||||
} else {
|
} else {
|
||||||
launchDebugger();
|
launchDebugger();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue