[browser][mono] remove debug proxy - #130817
Closed
pavelsavara wants to merge 1 commit into
Closed
Conversation
pavelsavara
temporarily deployed
to
copilot-pat-pool
July 15, 2026 20:09 — with
GitHub Actions
Inactive
pavelsavara
temporarily deployed
to
copilot-pat-pool
July 15, 2026 20:09 — with
GitHub Actions
Inactive
|
Azure Pipelines: Successfully started running 6 pipeline(s). 9 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
|
Tagging subscribers to this area: @steveisok, @thaystg, @dotnet/dotnet-diag |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR removes the Mono Browser/WASM managed-debugging proxy (BrowserDebugProxy/BrowserDebugHost) and cleans up the associated host wiring, packaging/build hooks, CI pipelines, and documentation so the proxy is no longer built or referenced anywhere in dotnet/runtime.
Changes:
- Removed the debug proxy implementation and its dev-server/web-server integration endpoints.
- Removed the internal transport/package plumbing and signing entries used to distribute the proxy bits.
- Removed CI definitions/conditions and updated docs/ownership references that pointed to the proxy.
Reviewed changes
Copilot reviewed 73 out of 74 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/mono/wasm/host/WebServerStartup.cs | Removes the legacy /debug proxy route and related process-launch code. |
| src/mono/wasm/host/WasmAppHost.csproj | Drops BrowserDebugHost project reference and packaged tool payload. |
| src/mono/wasm/host/RuntimeConfigJson.cs | Removes proxy/debugger port properties from host runtimeconfig model. |
| src/mono/wasm/host/RunConfiguration.cs | Removes proxy-options conversion and related dependency. |
| src/mono/wasm/host/README.md | Updates CLI/runtimeconfig docs to remove proxy-related settings and links. |
| src/mono/wasm/host/DevServer/WebAssemblyNetDebugProxyAppBuilderExtensions.cs | Deletes the dev-server debugging middleware implementation. |
| src/mono/wasm/host/DevServer/DevServerStartup.cs | Stops adding the dev-server debugging middleware (but still advertises debug path). |
| src/mono/wasm/host/DevServer/DebugProxyLauncher.cs | Deletes the debug-proxy child-process launcher. |
| src/mono/wasm/host/CommonConfiguration.cs | Removes proxy-options conversion and updates --debug help text. |
| src/mono/wasm/host/BrowserHost.cs | Removes debug-proxy hosting/launch and related dependency. |
| src/mono/wasm/features.md | Removes docs link to deleted debugger.md. |
| src/mono/wasi/README.md | Updates link target for debugging docs. |
| src/mono/wasi/Makefile | Removes the build-dbg-proxy target. |
| src/mono/nuget/mono-packages.proj | Drops the BrowserDebugHost transport package from Mono packaging graph. |
| src/mono/nuget/Microsoft.NETCore.BrowserDebugHost.Transport/Microsoft.NETCore.BrowserDebugHost.Transport.pkgproj | Deletes the internal transport package project. |
| src/mono/browser/runtime/rollup.config.js | Updates keep_fnames comment now that proxy stack-walk reference is removed. |
| src/mono/browser/README.md | Removes debugger-test documentation and CI table references. |
| src/mono/browser/Makefile | Removes the build-dbg-proxy target. |
| src/mono/browser/debugger/README.md | Deletes proxy-area README. |
| src/mono/browser/debugger/Directory.Build.props | Deletes debugger directory build props. |
| src/mono/browser/debugger/DetectRuntimeConfiguration.props | Deletes debugger runtime configuration detection props. |
| src/mono/browser/debugger/debugger.slnx | Deletes debugger solution file. |
| src/mono/browser/debugger/debugger.md | Deletes proxy-based managed-debugging instructions. |
| src/mono/browser/debugger/BrowserDebugProxy/WebcilDebugMetadataProvider.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/WasmHost.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/ValueTypeClass.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/ValueOrError.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/SignatureTypeProvider.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/RunLoopStopReason.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/RunLoopExitState.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/ProxyOptions.cs | Deletes proxy public options type. |
| src/mono/browser/debugger/BrowserDebugProxy/PortableExecutableDebugMetadataProvider.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/MetadataDebugSummary.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/MemberObjectsExplorer.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/JObjectValueCreator.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/InternalErrorException.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/IDebugMetadataProvider.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/Firefox/FirefoxMonoProxy.cs | Deletes proxy Firefox implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/Firefox/FirefoxMessageId.cs | Deletes proxy Firefox implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/Firefox/FirefoxExecutionContext.cs | Deletes proxy Firefox implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/Firefox/FirefoxDebuggerProxy.cs | Deletes proxy Firefox implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/EvaluateExpression.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/DevToolsProxy.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/DevToolsHelper.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/DebuggerProxyBase.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/DebuggerProxy.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/DebuggerAgentException.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/Common/WasmDebuggerConnection.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/Common/RunLoop.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/Common/InternalUseFieldName.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/Common/HelperExtensions.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/Common/FirefoxDebuggerConnection.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/Common/DevToolsQueue.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/Common/DevToolsDebuggerConnection.cs | Deletes proxy implementation file. |
| src/mono/browser/debugger/BrowserDebugProxy/BrowserDebugProxy.slnx | Deletes proxy solution file. |
| src/mono/browser/debugger/BrowserDebugProxy/BrowserDebugProxy.csproj | Deletes proxy project file. |
| src/mono/browser/debugger/BrowserDebugHost/Startup.cs | Deletes debug host startup. |
| src/mono/browser/debugger/BrowserDebugHost/Program.cs | Deletes debug host program entrypoint. |
| src/mono/browser/debugger/BrowserDebugHost/DebugProxyHost.cs | Deletes debug host orchestration. |
| src/mono/browser/debugger/BrowserDebugHost/BrowserDebugHost.csproj | Deletes debug host project file. |
| src/coreclr/.nuget/coreclr-packages.proj | Removes transport package reference from CoreCLR packaging graph. |
| eng/Versions.props | Removes proxy-only version property entry. |
| eng/Signing.props | Removes signing glob for the deleted transport package. |
| eng/pipelines/runtime-wasm-dbgtests.yml | Deletes the dedicated wasm debugger-tests pipeline. |
| eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml | Removes debugger-tests-only parameter/conditioning. |
| eng/pipelines/common/variables.yml | Removes runtime-wasm-dbgtests from wasm-only build detection. |
| eng/pipelines/common/evaluate-default-paths.yml | Removes debugger/proxy paths from evaluated path lists. |
| docs/workflow/wasm-documentation.md | Updates debugging doc link to new section target. |
| docs/workflow/debugging/mono/wasm-debugging.md | Removes proxy/managed-debugging instructions; keeps native/runtime debugging guidance. |
| .github/CODEOWNERS | Removes codeowner entries for deleted debugger/proxy paths. |
Comment on lines
36
to
42
| public static void Configure(IApplicationBuilder app, IOptions<DevServerOptions> optionsContainer, TaskCompletionSource<ServerURLs> realUrlsAvailableTcs, ILogger logger, IHostApplicationLifetime applicationLifetime, IConfiguration configuration) | ||
| { | ||
| app.UseDeveloperExceptionPage(); | ||
| EnableConfiguredPathbase(app, configuration); | ||
|
|
||
| app.UseWebAssemblyDebugging(); | ||
|
|
||
| DevServerOptions options = optionsContainer.Value; | ||
|
|
This was referenced Jul 16, 2026
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Remove the Mono Browser/WASM debug proxy
Summary
This change removes the Mono Browser/WASM debug proxy (
BrowserDebugProxy/BrowserDebugHost) and all of its usages across the runtime, build, packaging, CI, and documentation.Behavioral impact
Important
Debugging managed code directly in the browser dev tools will stop working.
The proxy that translated between the browser dev tools and the runtime's debugger agent is gone, so attaching a debugger to managed code through the browser dev tools is no longer supported. Native (C/C++) debugging and runtime diagnostics are unaffected.
What was removed
The proxy itself
src/mono/browser/debugger/in its entirety (BrowserDebugProxyandBrowserDebugHost, including the solution, docs, and build props).Transport NuGet package
src/mono/nuget/Microsoft.NETCore.BrowserDebugHost.Transport/.src/mono/nuget/mono-packages.projandsrc/coreclr/.nuget/coreclr-packages.proj.eng/Signing.props.WASM app host plumbing (
src/mono/wasm/host)BrowserHost.cs,WebServerStartup.cs, and the DevServer (DebugProxyLauncher.cs,WebAssemblyNetDebugProxyAppBuilderExtensions.cs,DevServerStartup.cs).ToProxyOptions()and the now-unused proxy-port configuration properties (*ProxyPort/*DebuggingPort) fromCommonConfiguration.cs,RunConfiguration.cs, andRuntimeConfigJson.cs.BrowserDebugHostproject reference and packed files fromWasmAppHost.csproj.Build & packaging
MicrosoftSymbolStoreVersion(proxy-only) fromeng/Versions.props.MicrosoftExtensionsLoggingVersionis retained (still used elsewhere).build-dbg-proxytargets fromsrc/mono/browser/Makefileandsrc/mono/wasi/Makefile.CI
eng/pipelines/runtime-wasm-dbgtests.ymlpipeline.debuggerTestsOnlyparameter and conditions fromeng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml.runtime-wasm-dbgtestsdefinition fromeng/pipelines/common/variables.yml.eng/pipelines/common/evaluate-default-paths.yml.Documentation & ownership
runtime-wasm-dbgtestsreference fromsrc/mono/browser/README.md.docs/workflow/debugging/mono/wasm-debugging.md, keeping native and runtime debugging content.src/mono/wasm/features.md,src/mono/wasm/host/README.md,docs/workflow/wasm-documentation.md, andsrc/mono/wasi/README.md.browser/debuggerandBrowserDebugHostNuGet entries from.github/CODEOWNERS.Not changed
The runtime-side debugger agent is intentionally kept (
src/mono/browser/runtime/debug.ts,src/mono/mono/component/mini-wasm-debugger.c, and the correspondingkeep_fnamesentries inrollup.config.js).Note
This description was generated with the assistance of GitHub Copilot.