Backport XML documentation for WebProxy and IWebProxyScript - #124396

Merged
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy
Feb 27, 2026
Merged

Backport XML documentation for WebProxy and IWebProxyScript#124396
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy

Conversation

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Description

Backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, per instructions in #124227.

Changes

System.Net.WebProxy.csproj - Updated project configuration:

  • Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> to enable compiler-generated XML documentation

WebProxy.cs - Added XML docs for:

  • Type-level documentation with concise remarks focusing on core functionality
  • All 11 constructors (parameterless, Uri-based, string-based, with bypass settings and credentials)
  • Serialization members: WebProxy(SerializationInfo, StreamingContext) constructor and GetObjectData method with PlatformNotSupportedException documentation
  • 6 properties: Address, BypassProxyOnLocal, BypassList, BypassArrayList, Credentials, UseDefaultCredentials
  • 3 methods: GetProxy, IsBypassed, GetDefaultProxy

IWebProxyScript.cs - Added XML docs for:

  • Type-level documentation
  • All interface methods: Close(), Load(), Run() with meaningful parameter descriptions

All documentation uses proper C# XML conventions with <see langword="null"/> for keywords, <see cref="T:TypeName"/> for external type references, and concise parameter descriptions. Documentation has been refined through review to:

  • Remove .NET Framework-centric content (application domain references, obsolete API mentions, platform-specific behavior descriptions)
  • Remove incorrect exception documentation from auto-properties (Credentials, UseDefaultCredentials)
  • Add proper exception documentation for members that throw PlatformNotSupportedException (serialization members, GetDefaultProxy)
  • Replace placeholder "Internal only" parameter descriptions with meaningful documentation
  • Remove repetitive constructor remarks that simply restated parameter assignments
  • Simplify type-level remarks to essential information only
  • Focus documentation on core API behavior without implementation details

Source:

Impact: 172 lines of documentation added across 3 files


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

CopilotAI changed the title [WIP] Backport XML docs for WebProxy and IWebProxyScriptBackport XML documentation for WebProxy and IWebProxyScriptFeb 13, 2026
CopilotAI requested a review from gewarrenFebruary 13, 2026 18:35

@gewarrengewarren left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…descriptions, update IWebProxyScript remarks
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Done in commit 0287cd0. Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> from the .csproj file and added XML documentation for the serialization members that were previously undocumented.

@gewarren
gewarren marked this pull request as ready for review February 13, 2026 22:54
CopilotAI review requested due to automatic review settings February 13, 2026 22:54

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, following the pattern established in PR #124227. The documentation adds comprehensive API descriptions including type-level remarks, constructor documentation, property and method documentation with proper XML conventions.

Changes:

  • Removed UseCompilerGeneratedDocXmlFile property from the project file to enable compiler-generated XML documentation
  • Added comprehensive XML documentation for WebProxy class covering 11 constructors, 6 properties, and 3 methods including WPAD support details
  • Added XML documentation for IWebProxyScript interface covering all interface members with WPAD/PAC implementation details

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.

FileDescription
src/libraries/System.Net.WebProxy/src/System.Net.WebProxy.csprojRemoved UseCompilerGeneratedDocXmlFile property to enable compiler-generated documentation
src/libraries/System.Net.WebProxy/src/System/Net/WebProxy.csAdded comprehensive XML documentation for class, constructors, properties, and methods (239 lines total)
src/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.csAdded XML documentation for interface and all methods with WPAD/PAC details

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
…lete API references, improve parameter descriptions
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@stephentoub

Copy link
Copy Markdown
Member

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
auto-merge was automatically disabled February 15, 2026 23:55

Head branch was pushed to by a user without write access

CopilotAI commented Feb 15, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

🤖 Copilot Code Review — PR #124396

Holistic Assessment

Motivation: ✅ The PR is well-justified. It backports official XML documentation from dotnet-api-docs to enable compiler-generated documentation for System.Net.WebProxy and System.Net.IWebProxyScript. This is part of the ongoing effort to move documentation into source code for better maintainability and consistency.

Approach: ✅ The approach is correct. The PR removes the opt-out flag (UseCompilerGeneratedDocXmlFile=false), adds comprehensive XML documentation to all public members, and follows the established backport process from PR #124227. The documentation has been properly adapted from the original XML sources with appropriate modifications for .NET Core (removing obsolete API references, clarifying platform-specific behavior, removing .NET Framework-centric content).

Summary: ✅ LGTM. The PR successfully backports XML documentation for 11 constructors, 6 properties, and 3 methods across 2 types. All public APIs are now documented with proper XML conventions. The documentation has been refined through multiple review cycles to remove incorrect exception tags, obsolete API references, and placeholder text. The code compiles successfully with no warnings or errors. One minor duplicate exception tag was found and removed in commit 3be15ea.


Detailed Findings

✅ Documentation Completeness — All public APIs documented

All public members in WebProxy.cs and IWebProxyScript.cs now have comprehensive XML documentation including:

  • Type-level summaries and remarks
  • Constructor documentation with all parameter descriptions
  • Property documentation with value descriptions
  • Method documentation with parameter, return value, and exception descriptions

This satisfies the requirement to enable compiler-generated documentation.

✅ XML Documentation Conventions — Proper syntax used

The documentation follows C# XML doc conventions correctly:

  • Uses <see langword="null"/>, <see langword="true"/>, <see langword="false"/> for language keywords
  • Uses <see cref="T:System.Net.Http.HttpClient"/> with T: prefix for external types not available in this assembly
  • Uses <see cref="MemberName"/> for references within the same type
  • Uses <c> tags for inline code examples (e.g., <c>"DIRECT"</c>, <c>"PROXY host:port"</c>)
  • Proper use of <para>, <list>, <item> for structured content
  • Parameter descriptions follow guidelines (concise noun phrases without redundant type mentions)

✅ Platform-Specific Adaptations — .NET Framework content appropriately handled

The documentation correctly addresses platform differences:

  • GetDefaultProxy remarks clarified as ".NET Framework" specific (line 38)
  • Obsolete GlobalProxySelection.Select API references removed
  • .NET Framework-specific application domain text removed from IWebProxyScript
  • PlatformNotSupportedException properly documented on serialization members and GetDefaultProxy

✅ Exception Documentation Accuracy — Corrected after review

The PR correctly documents exceptions:

  • Removed incorrect InvalidOperationException documentation from Credentials and UseDefaultCredentials properties (these are simple auto-properties that don't validate or throw)
  • Added PlatformNotSupportedException to serialization constructor and GetObjectData method
  • ArgumentNullException and UriFormatException documented where appropriate

✅ Parameter Description Improvements — Replaced placeholder text

IWebProxyScript parameter descriptions were improved from "Internal only" placeholders to meaningful documentation:

  • scriptLocation: "The URI that identifies the location of the proxy auto-configuration script"
  • script: "The script content to load and prepare for execution"
  • helperType: "The type that provides helper methods or services available to the script at runtime"
  • url: "The destination URL for which proxy information is requested"
  • host: "The host name associated with the destination URL"
  • Return value for Run: Explains it returns proxy configuration directives with examples

✅ Build Verification — No errors or warnings

The code compiles successfully across all target frameworks (net11.0, net11.0-browser, net11.0-wasi) with 0 warnings and 0 errors after enabling compiler-generated documentation enforcement.

💡 Minor Issue Fixed — Duplicate exception tag removed

Found and removed a duplicate <exception cref="PlatformNotSupportedException"> tag on GetObjectData method (lines 401-402) in commit 3be15ea. This was likely introduced during a merge conflict resolution or incremental editing.


Recommendation

✅ Approve and merge. This PR successfully completes the XML documentation backport for System.Net.WebProxy and System.Net.IWebProxyScript. All feedback from human reviewers and automated review has been addressed. The documentation is complete, accurate, and follows established conventions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…agraph
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
@MihaZupanMihaZupan added this to the 11.0.0 milestone Feb 26, 2026
@gewarren
gewarren merged commit 42b1679 into mainFeb 27, 2026
90 of 92 checks passed
@gewarren
gewarren deleted the copilot/backport-xml-docs-webproxy branch February 27, 2026 00:00
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 29, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@stephentoub@gewarren@MihaZupan
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Backport XML documentation for WebProxy and IWebProxyScript - #124396

Merged
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy
Feb 27, 2026
Merged

Backport XML documentation for WebProxy and IWebProxyScript#124396
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy

Conversation

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Description

Backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, per instructions in #124227.

Changes

System.Net.WebProxy.csproj - Updated project configuration:

  • Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> to enable compiler-generated XML documentation

WebProxy.cs - Added XML docs for:

  • Type-level documentation with concise remarks focusing on core functionality
  • All 11 constructors (parameterless, Uri-based, string-based, with bypass settings and credentials)
  • Serialization members: WebProxy(SerializationInfo, StreamingContext) constructor and GetObjectData method with PlatformNotSupportedException documentation
  • 6 properties: Address, BypassProxyOnLocal, BypassList, BypassArrayList, Credentials, UseDefaultCredentials
  • 3 methods: GetProxy, IsBypassed, GetDefaultProxy

IWebProxyScript.cs - Added XML docs for:

  • Type-level documentation
  • All interface methods: Close(), Load(), Run() with meaningful parameter descriptions

All documentation uses proper C# XML conventions with <see langword="null"/> for keywords, <see cref="T:TypeName"/> for external type references, and concise parameter descriptions. Documentation has been refined through review to:

  • Remove .NET Framework-centric content (application domain references, obsolete API mentions, platform-specific behavior descriptions)
  • Remove incorrect exception documentation from auto-properties (Credentials, UseDefaultCredentials)
  • Add proper exception documentation for members that throw PlatformNotSupportedException (serialization members, GetDefaultProxy)
  • Replace placeholder "Internal only" parameter descriptions with meaningful documentation
  • Remove repetitive constructor remarks that simply restated parameter assignments
  • Simplify type-level remarks to essential information only
  • Focus documentation on core API behavior without implementation details

Source:

Impact: 172 lines of documentation added across 3 files


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

CopilotAI changed the title [WIP] Backport XML docs for WebProxy and IWebProxyScriptBackport XML documentation for WebProxy and IWebProxyScriptFeb 13, 2026
CopilotAI requested a review from gewarrenFebruary 13, 2026 18:35

@gewarrengewarren left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…descriptions, update IWebProxyScript remarks
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Done in commit 0287cd0. Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> from the .csproj file and added XML documentation for the serialization members that were previously undocumented.

@gewarren
gewarren marked this pull request as ready for review February 13, 2026 22:54
CopilotAI review requested due to automatic review settings February 13, 2026 22:54

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, following the pattern established in PR #124227. The documentation adds comprehensive API descriptions including type-level remarks, constructor documentation, property and method documentation with proper XML conventions.

Changes:

  • Removed UseCompilerGeneratedDocXmlFile property from the project file to enable compiler-generated XML documentation
  • Added comprehensive XML documentation for WebProxy class covering 11 constructors, 6 properties, and 3 methods including WPAD support details
  • Added XML documentation for IWebProxyScript interface covering all interface members with WPAD/PAC implementation details

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.

FileDescription
src/libraries/System.Net.WebProxy/src/System.Net.WebProxy.csprojRemoved UseCompilerGeneratedDocXmlFile property to enable compiler-generated documentation
src/libraries/System.Net.WebProxy/src/System/Net/WebProxy.csAdded comprehensive XML documentation for class, constructors, properties, and methods (239 lines total)
src/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.csAdded XML documentation for interface and all methods with WPAD/PAC details

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
…lete API references, improve parameter descriptions
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@stephentoub

Copy link
Copy Markdown
Member

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
auto-merge was automatically disabled February 15, 2026 23:55

Head branch was pushed to by a user without write access

CopilotAI commented Feb 15, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

🤖 Copilot Code Review — PR #124396

Holistic Assessment

Motivation: ✅ The PR is well-justified. It backports official XML documentation from dotnet-api-docs to enable compiler-generated documentation for System.Net.WebProxy and System.Net.IWebProxyScript. This is part of the ongoing effort to move documentation into source code for better maintainability and consistency.

Approach: ✅ The approach is correct. The PR removes the opt-out flag (UseCompilerGeneratedDocXmlFile=false), adds comprehensive XML documentation to all public members, and follows the established backport process from PR #124227. The documentation has been properly adapted from the original XML sources with appropriate modifications for .NET Core (removing obsolete API references, clarifying platform-specific behavior, removing .NET Framework-centric content).

Summary: ✅ LGTM. The PR successfully backports XML documentation for 11 constructors, 6 properties, and 3 methods across 2 types. All public APIs are now documented with proper XML conventions. The documentation has been refined through multiple review cycles to remove incorrect exception tags, obsolete API references, and placeholder text. The code compiles successfully with no warnings or errors. One minor duplicate exception tag was found and removed in commit 3be15ea.


Detailed Findings

✅ Documentation Completeness — All public APIs documented

All public members in WebProxy.cs and IWebProxyScript.cs now have comprehensive XML documentation including:

  • Type-level summaries and remarks
  • Constructor documentation with all parameter descriptions
  • Property documentation with value descriptions
  • Method documentation with parameter, return value, and exception descriptions

This satisfies the requirement to enable compiler-generated documentation.

✅ XML Documentation Conventions — Proper syntax used

The documentation follows C# XML doc conventions correctly:

  • Uses <see langword="null"/>, <see langword="true"/>, <see langword="false"/> for language keywords
  • Uses <see cref="T:System.Net.Http.HttpClient"/> with T: prefix for external types not available in this assembly
  • Uses <see cref="MemberName"/> for references within the same type
  • Uses <c> tags for inline code examples (e.g., <c>"DIRECT"</c>, <c>"PROXY host:port"</c>)
  • Proper use of <para>, <list>, <item> for structured content
  • Parameter descriptions follow guidelines (concise noun phrases without redundant type mentions)

✅ Platform-Specific Adaptations — .NET Framework content appropriately handled

The documentation correctly addresses platform differences:

  • GetDefaultProxy remarks clarified as ".NET Framework" specific (line 38)
  • Obsolete GlobalProxySelection.Select API references removed
  • .NET Framework-specific application domain text removed from IWebProxyScript
  • PlatformNotSupportedException properly documented on serialization members and GetDefaultProxy

✅ Exception Documentation Accuracy — Corrected after review

The PR correctly documents exceptions:

  • Removed incorrect InvalidOperationException documentation from Credentials and UseDefaultCredentials properties (these are simple auto-properties that don't validate or throw)
  • Added PlatformNotSupportedException to serialization constructor and GetObjectData method
  • ArgumentNullException and UriFormatException documented where appropriate

✅ Parameter Description Improvements — Replaced placeholder text

IWebProxyScript parameter descriptions were improved from "Internal only" placeholders to meaningful documentation:

  • scriptLocation: "The URI that identifies the location of the proxy auto-configuration script"
  • script: "The script content to load and prepare for execution"
  • helperType: "The type that provides helper methods or services available to the script at runtime"
  • url: "The destination URL for which proxy information is requested"
  • host: "The host name associated with the destination URL"
  • Return value for Run: Explains it returns proxy configuration directives with examples

✅ Build Verification — No errors or warnings

The code compiles successfully across all target frameworks (net11.0, net11.0-browser, net11.0-wasi) with 0 warnings and 0 errors after enabling compiler-generated documentation enforcement.

💡 Minor Issue Fixed — Duplicate exception tag removed

Found and removed a duplicate <exception cref="PlatformNotSupportedException"> tag on GetObjectData method (lines 401-402) in commit 3be15ea. This was likely introduced during a merge conflict resolution or incremental editing.


Recommendation

✅ Approve and merge. This PR successfully completes the XML documentation backport for System.Net.WebProxy and System.Net.IWebProxyScript. All feedback from human reviewers and automated review has been addressed. The documentation is complete, accurate, and follows established conventions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…agraph
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
@MihaZupanMihaZupan added this to the 11.0.0 milestone Feb 26, 2026
@gewarren
gewarren merged commit 42b1679 into mainFeb 27, 2026
90 of 92 checks passed
@gewarren
gewarren deleted the copilot/backport-xml-docs-webproxy branch February 27, 2026 00:00
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 29, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@stephentoub@gewarren@MihaZupan
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Backport XML documentation for WebProxy and IWebProxyScript - #124396

Merged
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy
Feb 27, 2026
Merged

Backport XML documentation for WebProxy and IWebProxyScript#124396
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy

Conversation

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Description

Backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, per instructions in #124227.

Changes

System.Net.WebProxy.csproj - Updated project configuration:

  • Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> to enable compiler-generated XML documentation

WebProxy.cs - Added XML docs for:

  • Type-level documentation with concise remarks focusing on core functionality
  • All 11 constructors (parameterless, Uri-based, string-based, with bypass settings and credentials)
  • Serialization members: WebProxy(SerializationInfo, StreamingContext) constructor and GetObjectData method with PlatformNotSupportedException documentation
  • 6 properties: Address, BypassProxyOnLocal, BypassList, BypassArrayList, Credentials, UseDefaultCredentials
  • 3 methods: GetProxy, IsBypassed, GetDefaultProxy

IWebProxyScript.cs - Added XML docs for:

  • Type-level documentation
  • All interface methods: Close(), Load(), Run() with meaningful parameter descriptions

All documentation uses proper C# XML conventions with <see langword="null"/> for keywords, <see cref="T:TypeName"/> for external type references, and concise parameter descriptions. Documentation has been refined through review to:

  • Remove .NET Framework-centric content (application domain references, obsolete API mentions, platform-specific behavior descriptions)
  • Remove incorrect exception documentation from auto-properties (Credentials, UseDefaultCredentials)
  • Add proper exception documentation for members that throw PlatformNotSupportedException (serialization members, GetDefaultProxy)
  • Replace placeholder "Internal only" parameter descriptions with meaningful documentation
  • Remove repetitive constructor remarks that simply restated parameter assignments
  • Simplify type-level remarks to essential information only
  • Focus documentation on core API behavior without implementation details

Source:

Impact: 172 lines of documentation added across 3 files


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

CopilotAI changed the title [WIP] Backport XML docs for WebProxy and IWebProxyScriptBackport XML documentation for WebProxy and IWebProxyScriptFeb 13, 2026
CopilotAI requested a review from gewarrenFebruary 13, 2026 18:35

@gewarrengewarren left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…descriptions, update IWebProxyScript remarks
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Done in commit 0287cd0. Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> from the .csproj file and added XML documentation for the serialization members that were previously undocumented.

@gewarren
gewarren marked this pull request as ready for review February 13, 2026 22:54
CopilotAI review requested due to automatic review settings February 13, 2026 22:54

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, following the pattern established in PR #124227. The documentation adds comprehensive API descriptions including type-level remarks, constructor documentation, property and method documentation with proper XML conventions.

Changes:

  • Removed UseCompilerGeneratedDocXmlFile property from the project file to enable compiler-generated XML documentation
  • Added comprehensive XML documentation for WebProxy class covering 11 constructors, 6 properties, and 3 methods including WPAD support details
  • Added XML documentation for IWebProxyScript interface covering all interface members with WPAD/PAC implementation details

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.

FileDescription
src/libraries/System.Net.WebProxy/src/System.Net.WebProxy.csprojRemoved UseCompilerGeneratedDocXmlFile property to enable compiler-generated documentation
src/libraries/System.Net.WebProxy/src/System/Net/WebProxy.csAdded comprehensive XML documentation for class, constructors, properties, and methods (239 lines total)
src/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.csAdded XML documentation for interface and all methods with WPAD/PAC details

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
…lete API references, improve parameter descriptions
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@stephentoub

Copy link
Copy Markdown
Member

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
auto-merge was automatically disabled February 15, 2026 23:55

Head branch was pushed to by a user without write access

CopilotAI commented Feb 15, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

🤖 Copilot Code Review — PR #124396

Holistic Assessment

Motivation: ✅ The PR is well-justified. It backports official XML documentation from dotnet-api-docs to enable compiler-generated documentation for System.Net.WebProxy and System.Net.IWebProxyScript. This is part of the ongoing effort to move documentation into source code for better maintainability and consistency.

Approach: ✅ The approach is correct. The PR removes the opt-out flag (UseCompilerGeneratedDocXmlFile=false), adds comprehensive XML documentation to all public members, and follows the established backport process from PR #124227. The documentation has been properly adapted from the original XML sources with appropriate modifications for .NET Core (removing obsolete API references, clarifying platform-specific behavior, removing .NET Framework-centric content).

Summary: ✅ LGTM. The PR successfully backports XML documentation for 11 constructors, 6 properties, and 3 methods across 2 types. All public APIs are now documented with proper XML conventions. The documentation has been refined through multiple review cycles to remove incorrect exception tags, obsolete API references, and placeholder text. The code compiles successfully with no warnings or errors. One minor duplicate exception tag was found and removed in commit 3be15ea.


Detailed Findings

✅ Documentation Completeness — All public APIs documented

All public members in WebProxy.cs and IWebProxyScript.cs now have comprehensive XML documentation including:

  • Type-level summaries and remarks
  • Constructor documentation with all parameter descriptions
  • Property documentation with value descriptions
  • Method documentation with parameter, return value, and exception descriptions

This satisfies the requirement to enable compiler-generated documentation.

✅ XML Documentation Conventions — Proper syntax used

The documentation follows C# XML doc conventions correctly:

  • Uses <see langword="null"/>, <see langword="true"/>, <see langword="false"/> for language keywords
  • Uses <see cref="T:System.Net.Http.HttpClient"/> with T: prefix for external types not available in this assembly
  • Uses <see cref="MemberName"/> for references within the same type
  • Uses <c> tags for inline code examples (e.g., <c>"DIRECT"</c>, <c>"PROXY host:port"</c>)
  • Proper use of <para>, <list>, <item> for structured content
  • Parameter descriptions follow guidelines (concise noun phrases without redundant type mentions)

✅ Platform-Specific Adaptations — .NET Framework content appropriately handled

The documentation correctly addresses platform differences:

  • GetDefaultProxy remarks clarified as ".NET Framework" specific (line 38)
  • Obsolete GlobalProxySelection.Select API references removed
  • .NET Framework-specific application domain text removed from IWebProxyScript
  • PlatformNotSupportedException properly documented on serialization members and GetDefaultProxy

✅ Exception Documentation Accuracy — Corrected after review

The PR correctly documents exceptions:

  • Removed incorrect InvalidOperationException documentation from Credentials and UseDefaultCredentials properties (these are simple auto-properties that don't validate or throw)
  • Added PlatformNotSupportedException to serialization constructor and GetObjectData method
  • ArgumentNullException and UriFormatException documented where appropriate

✅ Parameter Description Improvements — Replaced placeholder text

IWebProxyScript parameter descriptions were improved from "Internal only" placeholders to meaningful documentation:

  • scriptLocation: "The URI that identifies the location of the proxy auto-configuration script"
  • script: "The script content to load and prepare for execution"
  • helperType: "The type that provides helper methods or services available to the script at runtime"
  • url: "The destination URL for which proxy information is requested"
  • host: "The host name associated with the destination URL"
  • Return value for Run: Explains it returns proxy configuration directives with examples

✅ Build Verification — No errors or warnings

The code compiles successfully across all target frameworks (net11.0, net11.0-browser, net11.0-wasi) with 0 warnings and 0 errors after enabling compiler-generated documentation enforcement.

💡 Minor Issue Fixed — Duplicate exception tag removed

Found and removed a duplicate <exception cref="PlatformNotSupportedException"> tag on GetObjectData method (lines 401-402) in commit 3be15ea. This was likely introduced during a merge conflict resolution or incremental editing.


Recommendation

✅ Approve and merge. This PR successfully completes the XML documentation backport for System.Net.WebProxy and System.Net.IWebProxyScript. All feedback from human reviewers and automated review has been addressed. The documentation is complete, accurate, and follows established conventions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…agraph
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
@MihaZupanMihaZupan added this to the 11.0.0 milestone Feb 26, 2026
@gewarren
gewarren merged commit 42b1679 into mainFeb 27, 2026
90 of 92 checks passed
@gewarren
gewarren deleted the copilot/backport-xml-docs-webproxy branch February 27, 2026 00:00
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 29, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@stephentoub@gewarren@MihaZupan
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Backport XML documentation for WebProxy and IWebProxyScript - #124396

Merged
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy
Feb 27, 2026
Merged

Backport XML documentation for WebProxy and IWebProxyScript#124396
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy

Conversation

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Description

Backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, per instructions in #124227.

Changes

System.Net.WebProxy.csproj - Updated project configuration:

  • Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> to enable compiler-generated XML documentation

WebProxy.cs - Added XML docs for:

  • Type-level documentation with concise remarks focusing on core functionality
  • All 11 constructors (parameterless, Uri-based, string-based, with bypass settings and credentials)
  • Serialization members: WebProxy(SerializationInfo, StreamingContext) constructor and GetObjectData method with PlatformNotSupportedException documentation
  • 6 properties: Address, BypassProxyOnLocal, BypassList, BypassArrayList, Credentials, UseDefaultCredentials
  • 3 methods: GetProxy, IsBypassed, GetDefaultProxy

IWebProxyScript.cs - Added XML docs for:

  • Type-level documentation
  • All interface methods: Close(), Load(), Run() with meaningful parameter descriptions

All documentation uses proper C# XML conventions with <see langword="null"/> for keywords, <see cref="T:TypeName"/> for external type references, and concise parameter descriptions. Documentation has been refined through review to:

  • Remove .NET Framework-centric content (application domain references, obsolete API mentions, platform-specific behavior descriptions)
  • Remove incorrect exception documentation from auto-properties (Credentials, UseDefaultCredentials)
  • Add proper exception documentation for members that throw PlatformNotSupportedException (serialization members, GetDefaultProxy)
  • Replace placeholder "Internal only" parameter descriptions with meaningful documentation
  • Remove repetitive constructor remarks that simply restated parameter assignments
  • Simplify type-level remarks to essential information only
  • Focus documentation on core API behavior without implementation details

Source:

Impact: 172 lines of documentation added across 3 files


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

CopilotAI changed the title [WIP] Backport XML docs for WebProxy and IWebProxyScriptBackport XML documentation for WebProxy and IWebProxyScriptFeb 13, 2026
CopilotAI requested a review from gewarrenFebruary 13, 2026 18:35

@gewarrengewarren left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…descriptions, update IWebProxyScript remarks
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Done in commit 0287cd0. Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> from the .csproj file and added XML documentation for the serialization members that were previously undocumented.

@gewarren
gewarren marked this pull request as ready for review February 13, 2026 22:54
CopilotAI review requested due to automatic review settings February 13, 2026 22:54

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, following the pattern established in PR #124227. The documentation adds comprehensive API descriptions including type-level remarks, constructor documentation, property and method documentation with proper XML conventions.

Changes:

  • Removed UseCompilerGeneratedDocXmlFile property from the project file to enable compiler-generated XML documentation
  • Added comprehensive XML documentation for WebProxy class covering 11 constructors, 6 properties, and 3 methods including WPAD support details
  • Added XML documentation for IWebProxyScript interface covering all interface members with WPAD/PAC implementation details

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.

FileDescription
src/libraries/System.Net.WebProxy/src/System.Net.WebProxy.csprojRemoved UseCompilerGeneratedDocXmlFile property to enable compiler-generated documentation
src/libraries/System.Net.WebProxy/src/System/Net/WebProxy.csAdded comprehensive XML documentation for class, constructors, properties, and methods (239 lines total)
src/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.csAdded XML documentation for interface and all methods with WPAD/PAC details

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
…lete API references, improve parameter descriptions
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@stephentoub

Copy link
Copy Markdown
Member

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
auto-merge was automatically disabled February 15, 2026 23:55

Head branch was pushed to by a user without write access

CopilotAI commented Feb 15, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

🤖 Copilot Code Review — PR #124396

Holistic Assessment

Motivation: ✅ The PR is well-justified. It backports official XML documentation from dotnet-api-docs to enable compiler-generated documentation for System.Net.WebProxy and System.Net.IWebProxyScript. This is part of the ongoing effort to move documentation into source code for better maintainability and consistency.

Approach: ✅ The approach is correct. The PR removes the opt-out flag (UseCompilerGeneratedDocXmlFile=false), adds comprehensive XML documentation to all public members, and follows the established backport process from PR #124227. The documentation has been properly adapted from the original XML sources with appropriate modifications for .NET Core (removing obsolete API references, clarifying platform-specific behavior, removing .NET Framework-centric content).

Summary: ✅ LGTM. The PR successfully backports XML documentation for 11 constructors, 6 properties, and 3 methods across 2 types. All public APIs are now documented with proper XML conventions. The documentation has been refined through multiple review cycles to remove incorrect exception tags, obsolete API references, and placeholder text. The code compiles successfully with no warnings or errors. One minor duplicate exception tag was found and removed in commit 3be15ea.


Detailed Findings

✅ Documentation Completeness — All public APIs documented

All public members in WebProxy.cs and IWebProxyScript.cs now have comprehensive XML documentation including:

  • Type-level summaries and remarks
  • Constructor documentation with all parameter descriptions
  • Property documentation with value descriptions
  • Method documentation with parameter, return value, and exception descriptions

This satisfies the requirement to enable compiler-generated documentation.

✅ XML Documentation Conventions — Proper syntax used

The documentation follows C# XML doc conventions correctly:

  • Uses <see langword="null"/>, <see langword="true"/>, <see langword="false"/> for language keywords
  • Uses <see cref="T:System.Net.Http.HttpClient"/> with T: prefix for external types not available in this assembly
  • Uses <see cref="MemberName"/> for references within the same type
  • Uses <c> tags for inline code examples (e.g., <c>"DIRECT"</c>, <c>"PROXY host:port"</c>)
  • Proper use of <para>, <list>, <item> for structured content
  • Parameter descriptions follow guidelines (concise noun phrases without redundant type mentions)

✅ Platform-Specific Adaptations — .NET Framework content appropriately handled

The documentation correctly addresses platform differences:

  • GetDefaultProxy remarks clarified as ".NET Framework" specific (line 38)
  • Obsolete GlobalProxySelection.Select API references removed
  • .NET Framework-specific application domain text removed from IWebProxyScript
  • PlatformNotSupportedException properly documented on serialization members and GetDefaultProxy

✅ Exception Documentation Accuracy — Corrected after review

The PR correctly documents exceptions:

  • Removed incorrect InvalidOperationException documentation from Credentials and UseDefaultCredentials properties (these are simple auto-properties that don't validate or throw)
  • Added PlatformNotSupportedException to serialization constructor and GetObjectData method
  • ArgumentNullException and UriFormatException documented where appropriate

✅ Parameter Description Improvements — Replaced placeholder text

IWebProxyScript parameter descriptions were improved from "Internal only" placeholders to meaningful documentation:

  • scriptLocation: "The URI that identifies the location of the proxy auto-configuration script"
  • script: "The script content to load and prepare for execution"
  • helperType: "The type that provides helper methods or services available to the script at runtime"
  • url: "The destination URL for which proxy information is requested"
  • host: "The host name associated with the destination URL"
  • Return value for Run: Explains it returns proxy configuration directives with examples

✅ Build Verification — No errors or warnings

The code compiles successfully across all target frameworks (net11.0, net11.0-browser, net11.0-wasi) with 0 warnings and 0 errors after enabling compiler-generated documentation enforcement.

💡 Minor Issue Fixed — Duplicate exception tag removed

Found and removed a duplicate <exception cref="PlatformNotSupportedException"> tag on GetObjectData method (lines 401-402) in commit 3be15ea. This was likely introduced during a merge conflict resolution or incremental editing.


Recommendation

✅ Approve and merge. This PR successfully completes the XML documentation backport for System.Net.WebProxy and System.Net.IWebProxyScript. All feedback from human reviewers and automated review has been addressed. The documentation is complete, accurate, and follows established conventions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…agraph
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
@MihaZupanMihaZupan added this to the 11.0.0 milestone Feb 26, 2026
@gewarren
gewarren merged commit 42b1679 into mainFeb 27, 2026
90 of 92 checks passed
@gewarren
gewarren deleted the copilot/backport-xml-docs-webproxy branch February 27, 2026 00:00
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 29, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@stephentoub@gewarren@MihaZupan
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Backport XML documentation for WebProxy and IWebProxyScript - #124396

Merged
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy
Feb 27, 2026
Merged

Backport XML documentation for WebProxy and IWebProxyScript#124396
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy

Conversation

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Description

Backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, per instructions in #124227.

Changes

System.Net.WebProxy.csproj - Updated project configuration:

  • Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> to enable compiler-generated XML documentation

WebProxy.cs - Added XML docs for:

  • Type-level documentation with concise remarks focusing on core functionality
  • All 11 constructors (parameterless, Uri-based, string-based, with bypass settings and credentials)
  • Serialization members: WebProxy(SerializationInfo, StreamingContext) constructor and GetObjectData method with PlatformNotSupportedException documentation
  • 6 properties: Address, BypassProxyOnLocal, BypassList, BypassArrayList, Credentials, UseDefaultCredentials
  • 3 methods: GetProxy, IsBypassed, GetDefaultProxy

IWebProxyScript.cs - Added XML docs for:

  • Type-level documentation
  • All interface methods: Close(), Load(), Run() with meaningful parameter descriptions

All documentation uses proper C# XML conventions with <see langword="null"/> for keywords, <see cref="T:TypeName"/> for external type references, and concise parameter descriptions. Documentation has been refined through review to:

  • Remove .NET Framework-centric content (application domain references, obsolete API mentions, platform-specific behavior descriptions)
  • Remove incorrect exception documentation from auto-properties (Credentials, UseDefaultCredentials)
  • Add proper exception documentation for members that throw PlatformNotSupportedException (serialization members, GetDefaultProxy)
  • Replace placeholder "Internal only" parameter descriptions with meaningful documentation
  • Remove repetitive constructor remarks that simply restated parameter assignments
  • Simplify type-level remarks to essential information only
  • Focus documentation on core API behavior without implementation details

Source:

Impact: 172 lines of documentation added across 3 files


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

CopilotAI changed the title [WIP] Backport XML docs for WebProxy and IWebProxyScriptBackport XML documentation for WebProxy and IWebProxyScriptFeb 13, 2026
CopilotAI requested a review from gewarrenFebruary 13, 2026 18:35

@gewarrengewarren left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…descriptions, update IWebProxyScript remarks
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Done in commit 0287cd0. Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> from the .csproj file and added XML documentation for the serialization members that were previously undocumented.

@gewarren
gewarren marked this pull request as ready for review February 13, 2026 22:54
CopilotAI review requested due to automatic review settings February 13, 2026 22:54

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, following the pattern established in PR #124227. The documentation adds comprehensive API descriptions including type-level remarks, constructor documentation, property and method documentation with proper XML conventions.

Changes:

  • Removed UseCompilerGeneratedDocXmlFile property from the project file to enable compiler-generated XML documentation
  • Added comprehensive XML documentation for WebProxy class covering 11 constructors, 6 properties, and 3 methods including WPAD support details
  • Added XML documentation for IWebProxyScript interface covering all interface members with WPAD/PAC implementation details

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.

FileDescription
src/libraries/System.Net.WebProxy/src/System.Net.WebProxy.csprojRemoved UseCompilerGeneratedDocXmlFile property to enable compiler-generated documentation
src/libraries/System.Net.WebProxy/src/System/Net/WebProxy.csAdded comprehensive XML documentation for class, constructors, properties, and methods (239 lines total)
src/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.csAdded XML documentation for interface and all methods with WPAD/PAC details

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
…lete API references, improve parameter descriptions
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@stephentoub

Copy link
Copy Markdown
Member

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
auto-merge was automatically disabled February 15, 2026 23:55

Head branch was pushed to by a user without write access

CopilotAI commented Feb 15, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

🤖 Copilot Code Review — PR #124396

Holistic Assessment

Motivation: ✅ The PR is well-justified. It backports official XML documentation from dotnet-api-docs to enable compiler-generated documentation for System.Net.WebProxy and System.Net.IWebProxyScript. This is part of the ongoing effort to move documentation into source code for better maintainability and consistency.

Approach: ✅ The approach is correct. The PR removes the opt-out flag (UseCompilerGeneratedDocXmlFile=false), adds comprehensive XML documentation to all public members, and follows the established backport process from PR #124227. The documentation has been properly adapted from the original XML sources with appropriate modifications for .NET Core (removing obsolete API references, clarifying platform-specific behavior, removing .NET Framework-centric content).

Summary: ✅ LGTM. The PR successfully backports XML documentation for 11 constructors, 6 properties, and 3 methods across 2 types. All public APIs are now documented with proper XML conventions. The documentation has been refined through multiple review cycles to remove incorrect exception tags, obsolete API references, and placeholder text. The code compiles successfully with no warnings or errors. One minor duplicate exception tag was found and removed in commit 3be15ea.


Detailed Findings

✅ Documentation Completeness — All public APIs documented

All public members in WebProxy.cs and IWebProxyScript.cs now have comprehensive XML documentation including:

  • Type-level summaries and remarks
  • Constructor documentation with all parameter descriptions
  • Property documentation with value descriptions
  • Method documentation with parameter, return value, and exception descriptions

This satisfies the requirement to enable compiler-generated documentation.

✅ XML Documentation Conventions — Proper syntax used

The documentation follows C# XML doc conventions correctly:

  • Uses <see langword="null"/>, <see langword="true"/>, <see langword="false"/> for language keywords
  • Uses <see cref="T:System.Net.Http.HttpClient"/> with T: prefix for external types not available in this assembly
  • Uses <see cref="MemberName"/> for references within the same type
  • Uses <c> tags for inline code examples (e.g., <c>"DIRECT"</c>, <c>"PROXY host:port"</c>)
  • Proper use of <para>, <list>, <item> for structured content
  • Parameter descriptions follow guidelines (concise noun phrases without redundant type mentions)

✅ Platform-Specific Adaptations — .NET Framework content appropriately handled

The documentation correctly addresses platform differences:

  • GetDefaultProxy remarks clarified as ".NET Framework" specific (line 38)
  • Obsolete GlobalProxySelection.Select API references removed
  • .NET Framework-specific application domain text removed from IWebProxyScript
  • PlatformNotSupportedException properly documented on serialization members and GetDefaultProxy

✅ Exception Documentation Accuracy — Corrected after review

The PR correctly documents exceptions:

  • Removed incorrect InvalidOperationException documentation from Credentials and UseDefaultCredentials properties (these are simple auto-properties that don't validate or throw)
  • Added PlatformNotSupportedException to serialization constructor and GetObjectData method
  • ArgumentNullException and UriFormatException documented where appropriate

✅ Parameter Description Improvements — Replaced placeholder text

IWebProxyScript parameter descriptions were improved from "Internal only" placeholders to meaningful documentation:

  • scriptLocation: "The URI that identifies the location of the proxy auto-configuration script"
  • script: "The script content to load and prepare for execution"
  • helperType: "The type that provides helper methods or services available to the script at runtime"
  • url: "The destination URL for which proxy information is requested"
  • host: "The host name associated with the destination URL"
  • Return value for Run: Explains it returns proxy configuration directives with examples

✅ Build Verification — No errors or warnings

The code compiles successfully across all target frameworks (net11.0, net11.0-browser, net11.0-wasi) with 0 warnings and 0 errors after enabling compiler-generated documentation enforcement.

💡 Minor Issue Fixed — Duplicate exception tag removed

Found and removed a duplicate <exception cref="PlatformNotSupportedException"> tag on GetObjectData method (lines 401-402) in commit 3be15ea. This was likely introduced during a merge conflict resolution or incremental editing.


Recommendation

✅ Approve and merge. This PR successfully completes the XML documentation backport for System.Net.WebProxy and System.Net.IWebProxyScript. All feedback from human reviewers and automated review has been addressed. The documentation is complete, accurate, and follows established conventions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…agraph
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
@MihaZupanMihaZupan added this to the 11.0.0 milestone Feb 26, 2026
@gewarren
gewarren merged commit 42b1679 into mainFeb 27, 2026
90 of 92 checks passed
@gewarren
gewarren deleted the copilot/backport-xml-docs-webproxy branch February 27, 2026 00:00
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 29, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@stephentoub@gewarren@MihaZupan
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Backport XML documentation for WebProxy and IWebProxyScript - #124396

Merged
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy
Feb 27, 2026
Merged

Backport XML documentation for WebProxy and IWebProxyScript#124396
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy

Conversation

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Description

Backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, per instructions in #124227.

Changes

System.Net.WebProxy.csproj - Updated project configuration:

  • Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> to enable compiler-generated XML documentation

WebProxy.cs - Added XML docs for:

  • Type-level documentation with concise remarks focusing on core functionality
  • All 11 constructors (parameterless, Uri-based, string-based, with bypass settings and credentials)
  • Serialization members: WebProxy(SerializationInfo, StreamingContext) constructor and GetObjectData method with PlatformNotSupportedException documentation
  • 6 properties: Address, BypassProxyOnLocal, BypassList, BypassArrayList, Credentials, UseDefaultCredentials
  • 3 methods: GetProxy, IsBypassed, GetDefaultProxy

IWebProxyScript.cs - Added XML docs for:

  • Type-level documentation
  • All interface methods: Close(), Load(), Run() with meaningful parameter descriptions

All documentation uses proper C# XML conventions with <see langword="null"/> for keywords, <see cref="T:TypeName"/> for external type references, and concise parameter descriptions. Documentation has been refined through review to:

  • Remove .NET Framework-centric content (application domain references, obsolete API mentions, platform-specific behavior descriptions)
  • Remove incorrect exception documentation from auto-properties (Credentials, UseDefaultCredentials)
  • Add proper exception documentation for members that throw PlatformNotSupportedException (serialization members, GetDefaultProxy)
  • Replace placeholder "Internal only" parameter descriptions with meaningful documentation
  • Remove repetitive constructor remarks that simply restated parameter assignments
  • Simplify type-level remarks to essential information only
  • Focus documentation on core API behavior without implementation details

Source:

Impact: 172 lines of documentation added across 3 files


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

CopilotAI changed the title [WIP] Backport XML docs for WebProxy and IWebProxyScriptBackport XML documentation for WebProxy and IWebProxyScriptFeb 13, 2026
CopilotAI requested a review from gewarrenFebruary 13, 2026 18:35

@gewarrengewarren left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…descriptions, update IWebProxyScript remarks
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Done in commit 0287cd0. Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> from the .csproj file and added XML documentation for the serialization members that were previously undocumented.

@gewarren
gewarren marked this pull request as ready for review February 13, 2026 22:54
CopilotAI review requested due to automatic review settings February 13, 2026 22:54

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, following the pattern established in PR #124227. The documentation adds comprehensive API descriptions including type-level remarks, constructor documentation, property and method documentation with proper XML conventions.

Changes:

  • Removed UseCompilerGeneratedDocXmlFile property from the project file to enable compiler-generated XML documentation
  • Added comprehensive XML documentation for WebProxy class covering 11 constructors, 6 properties, and 3 methods including WPAD support details
  • Added XML documentation for IWebProxyScript interface covering all interface members with WPAD/PAC implementation details

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.

FileDescription
src/libraries/System.Net.WebProxy/src/System.Net.WebProxy.csprojRemoved UseCompilerGeneratedDocXmlFile property to enable compiler-generated documentation
src/libraries/System.Net.WebProxy/src/System/Net/WebProxy.csAdded comprehensive XML documentation for class, constructors, properties, and methods (239 lines total)
src/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.csAdded XML documentation for interface and all methods with WPAD/PAC details

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
…lete API references, improve parameter descriptions
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@stephentoub

Copy link
Copy Markdown
Member

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
auto-merge was automatically disabled February 15, 2026 23:55

Head branch was pushed to by a user without write access

CopilotAI commented Feb 15, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

🤖 Copilot Code Review — PR #124396

Holistic Assessment

Motivation: ✅ The PR is well-justified. It backports official XML documentation from dotnet-api-docs to enable compiler-generated documentation for System.Net.WebProxy and System.Net.IWebProxyScript. This is part of the ongoing effort to move documentation into source code for better maintainability and consistency.

Approach: ✅ The approach is correct. The PR removes the opt-out flag (UseCompilerGeneratedDocXmlFile=false), adds comprehensive XML documentation to all public members, and follows the established backport process from PR #124227. The documentation has been properly adapted from the original XML sources with appropriate modifications for .NET Core (removing obsolete API references, clarifying platform-specific behavior, removing .NET Framework-centric content).

Summary: ✅ LGTM. The PR successfully backports XML documentation for 11 constructors, 6 properties, and 3 methods across 2 types. All public APIs are now documented with proper XML conventions. The documentation has been refined through multiple review cycles to remove incorrect exception tags, obsolete API references, and placeholder text. The code compiles successfully with no warnings or errors. One minor duplicate exception tag was found and removed in commit 3be15ea.


Detailed Findings

✅ Documentation Completeness — All public APIs documented

All public members in WebProxy.cs and IWebProxyScript.cs now have comprehensive XML documentation including:

  • Type-level summaries and remarks
  • Constructor documentation with all parameter descriptions
  • Property documentation with value descriptions
  • Method documentation with parameter, return value, and exception descriptions

This satisfies the requirement to enable compiler-generated documentation.

✅ XML Documentation Conventions — Proper syntax used

The documentation follows C# XML doc conventions correctly:

  • Uses <see langword="null"/>, <see langword="true"/>, <see langword="false"/> for language keywords
  • Uses <see cref="T:System.Net.Http.HttpClient"/> with T: prefix for external types not available in this assembly
  • Uses <see cref="MemberName"/> for references within the same type
  • Uses <c> tags for inline code examples (e.g., <c>"DIRECT"</c>, <c>"PROXY host:port"</c>)
  • Proper use of <para>, <list>, <item> for structured content
  • Parameter descriptions follow guidelines (concise noun phrases without redundant type mentions)

✅ Platform-Specific Adaptations — .NET Framework content appropriately handled

The documentation correctly addresses platform differences:

  • GetDefaultProxy remarks clarified as ".NET Framework" specific (line 38)
  • Obsolete GlobalProxySelection.Select API references removed
  • .NET Framework-specific application domain text removed from IWebProxyScript
  • PlatformNotSupportedException properly documented on serialization members and GetDefaultProxy

✅ Exception Documentation Accuracy — Corrected after review

The PR correctly documents exceptions:

  • Removed incorrect InvalidOperationException documentation from Credentials and UseDefaultCredentials properties (these are simple auto-properties that don't validate or throw)
  • Added PlatformNotSupportedException to serialization constructor and GetObjectData method
  • ArgumentNullException and UriFormatException documented where appropriate

✅ Parameter Description Improvements — Replaced placeholder text

IWebProxyScript parameter descriptions were improved from "Internal only" placeholders to meaningful documentation:

  • scriptLocation: "The URI that identifies the location of the proxy auto-configuration script"
  • script: "The script content to load and prepare for execution"
  • helperType: "The type that provides helper methods or services available to the script at runtime"
  • url: "The destination URL for which proxy information is requested"
  • host: "The host name associated with the destination URL"
  • Return value for Run: Explains it returns proxy configuration directives with examples

✅ Build Verification — No errors or warnings

The code compiles successfully across all target frameworks (net11.0, net11.0-browser, net11.0-wasi) with 0 warnings and 0 errors after enabling compiler-generated documentation enforcement.

💡 Minor Issue Fixed — Duplicate exception tag removed

Found and removed a duplicate <exception cref="PlatformNotSupportedException"> tag on GetObjectData method (lines 401-402) in commit 3be15ea. This was likely introduced during a merge conflict resolution or incremental editing.


Recommendation

✅ Approve and merge. This PR successfully completes the XML documentation backport for System.Net.WebProxy and System.Net.IWebProxyScript. All feedback from human reviewers and automated review has been addressed. The documentation is complete, accurate, and follows established conventions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…agraph
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
@MihaZupanMihaZupan added this to the 11.0.0 milestone Feb 26, 2026
@gewarren
gewarren merged commit 42b1679 into mainFeb 27, 2026
90 of 92 checks passed
@gewarren
gewarren deleted the copilot/backport-xml-docs-webproxy branch February 27, 2026 00:00
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 29, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@stephentoub@gewarren@MihaZupan
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Backport XML documentation for WebProxy and IWebProxyScript - #124396

Merged
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy
Feb 27, 2026
Merged

Backport XML documentation for WebProxy and IWebProxyScript#124396
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy

Conversation

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Description

Backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, per instructions in #124227.

Changes

System.Net.WebProxy.csproj - Updated project configuration:

  • Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> to enable compiler-generated XML documentation

WebProxy.cs - Added XML docs for:

  • Type-level documentation with concise remarks focusing on core functionality
  • All 11 constructors (parameterless, Uri-based, string-based, with bypass settings and credentials)
  • Serialization members: WebProxy(SerializationInfo, StreamingContext) constructor and GetObjectData method with PlatformNotSupportedException documentation
  • 6 properties: Address, BypassProxyOnLocal, BypassList, BypassArrayList, Credentials, UseDefaultCredentials
  • 3 methods: GetProxy, IsBypassed, GetDefaultProxy

IWebProxyScript.cs - Added XML docs for:

  • Type-level documentation
  • All interface methods: Close(), Load(), Run() with meaningful parameter descriptions

All documentation uses proper C# XML conventions with <see langword="null"/> for keywords, <see cref="T:TypeName"/> for external type references, and concise parameter descriptions. Documentation has been refined through review to:

  • Remove .NET Framework-centric content (application domain references, obsolete API mentions, platform-specific behavior descriptions)
  • Remove incorrect exception documentation from auto-properties (Credentials, UseDefaultCredentials)
  • Add proper exception documentation for members that throw PlatformNotSupportedException (serialization members, GetDefaultProxy)
  • Replace placeholder "Internal only" parameter descriptions with meaningful documentation
  • Remove repetitive constructor remarks that simply restated parameter assignments
  • Simplify type-level remarks to essential information only
  • Focus documentation on core API behavior without implementation details

Source:

Impact: 172 lines of documentation added across 3 files


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

CopilotAI changed the title [WIP] Backport XML docs for WebProxy and IWebProxyScriptBackport XML documentation for WebProxy and IWebProxyScriptFeb 13, 2026
CopilotAI requested a review from gewarrenFebruary 13, 2026 18:35

@gewarrengewarren left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…descriptions, update IWebProxyScript remarks
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Done in commit 0287cd0. Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> from the .csproj file and added XML documentation for the serialization members that were previously undocumented.

@gewarren
gewarren marked this pull request as ready for review February 13, 2026 22:54
CopilotAI review requested due to automatic review settings February 13, 2026 22:54

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, following the pattern established in PR #124227. The documentation adds comprehensive API descriptions including type-level remarks, constructor documentation, property and method documentation with proper XML conventions.

Changes:

  • Removed UseCompilerGeneratedDocXmlFile property from the project file to enable compiler-generated XML documentation
  • Added comprehensive XML documentation for WebProxy class covering 11 constructors, 6 properties, and 3 methods including WPAD support details
  • Added XML documentation for IWebProxyScript interface covering all interface members with WPAD/PAC implementation details

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.

FileDescription
src/libraries/System.Net.WebProxy/src/System.Net.WebProxy.csprojRemoved UseCompilerGeneratedDocXmlFile property to enable compiler-generated documentation
src/libraries/System.Net.WebProxy/src/System/Net/WebProxy.csAdded comprehensive XML documentation for class, constructors, properties, and methods (239 lines total)
src/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.csAdded XML documentation for interface and all methods with WPAD/PAC details

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
…lete API references, improve parameter descriptions
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@stephentoub

Copy link
Copy Markdown
Member

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
auto-merge was automatically disabled February 15, 2026 23:55

Head branch was pushed to by a user without write access

CopilotAI commented Feb 15, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

🤖 Copilot Code Review — PR #124396

Holistic Assessment

Motivation: ✅ The PR is well-justified. It backports official XML documentation from dotnet-api-docs to enable compiler-generated documentation for System.Net.WebProxy and System.Net.IWebProxyScript. This is part of the ongoing effort to move documentation into source code for better maintainability and consistency.

Approach: ✅ The approach is correct. The PR removes the opt-out flag (UseCompilerGeneratedDocXmlFile=false), adds comprehensive XML documentation to all public members, and follows the established backport process from PR #124227. The documentation has been properly adapted from the original XML sources with appropriate modifications for .NET Core (removing obsolete API references, clarifying platform-specific behavior, removing .NET Framework-centric content).

Summary: ✅ LGTM. The PR successfully backports XML documentation for 11 constructors, 6 properties, and 3 methods across 2 types. All public APIs are now documented with proper XML conventions. The documentation has been refined through multiple review cycles to remove incorrect exception tags, obsolete API references, and placeholder text. The code compiles successfully with no warnings or errors. One minor duplicate exception tag was found and removed in commit 3be15ea.


Detailed Findings

✅ Documentation Completeness — All public APIs documented

All public members in WebProxy.cs and IWebProxyScript.cs now have comprehensive XML documentation including:

  • Type-level summaries and remarks
  • Constructor documentation with all parameter descriptions
  • Property documentation with value descriptions
  • Method documentation with parameter, return value, and exception descriptions

This satisfies the requirement to enable compiler-generated documentation.

✅ XML Documentation Conventions — Proper syntax used

The documentation follows C# XML doc conventions correctly:

  • Uses <see langword="null"/>, <see langword="true"/>, <see langword="false"/> for language keywords
  • Uses <see cref="T:System.Net.Http.HttpClient"/> with T: prefix for external types not available in this assembly
  • Uses <see cref="MemberName"/> for references within the same type
  • Uses <c> tags for inline code examples (e.g., <c>"DIRECT"</c>, <c>"PROXY host:port"</c>)
  • Proper use of <para>, <list>, <item> for structured content
  • Parameter descriptions follow guidelines (concise noun phrases without redundant type mentions)

✅ Platform-Specific Adaptations — .NET Framework content appropriately handled

The documentation correctly addresses platform differences:

  • GetDefaultProxy remarks clarified as ".NET Framework" specific (line 38)
  • Obsolete GlobalProxySelection.Select API references removed
  • .NET Framework-specific application domain text removed from IWebProxyScript
  • PlatformNotSupportedException properly documented on serialization members and GetDefaultProxy

✅ Exception Documentation Accuracy — Corrected after review

The PR correctly documents exceptions:

  • Removed incorrect InvalidOperationException documentation from Credentials and UseDefaultCredentials properties (these are simple auto-properties that don't validate or throw)
  • Added PlatformNotSupportedException to serialization constructor and GetObjectData method
  • ArgumentNullException and UriFormatException documented where appropriate

✅ Parameter Description Improvements — Replaced placeholder text

IWebProxyScript parameter descriptions were improved from "Internal only" placeholders to meaningful documentation:

  • scriptLocation: "The URI that identifies the location of the proxy auto-configuration script"
  • script: "The script content to load and prepare for execution"
  • helperType: "The type that provides helper methods or services available to the script at runtime"
  • url: "The destination URL for which proxy information is requested"
  • host: "The host name associated with the destination URL"
  • Return value for Run: Explains it returns proxy configuration directives with examples

✅ Build Verification — No errors or warnings

The code compiles successfully across all target frameworks (net11.0, net11.0-browser, net11.0-wasi) with 0 warnings and 0 errors after enabling compiler-generated documentation enforcement.

💡 Minor Issue Fixed — Duplicate exception tag removed

Found and removed a duplicate <exception cref="PlatformNotSupportedException"> tag on GetObjectData method (lines 401-402) in commit 3be15ea. This was likely introduced during a merge conflict resolution or incremental editing.


Recommendation

✅ Approve and merge. This PR successfully completes the XML documentation backport for System.Net.WebProxy and System.Net.IWebProxyScript. All feedback from human reviewers and automated review has been addressed. The documentation is complete, accurate, and follows established conventions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…agraph
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
@MihaZupanMihaZupan added this to the 11.0.0 milestone Feb 26, 2026
@gewarren
gewarren merged commit 42b1679 into mainFeb 27, 2026
90 of 92 checks passed
@gewarren
gewarren deleted the copilot/backport-xml-docs-webproxy branch February 27, 2026 00:00
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 29, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@stephentoub@gewarren@MihaZupan
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Backport XML documentation for WebProxy and IWebProxyScript - #124396

Merged
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy
Feb 27, 2026
Merged

Backport XML documentation for WebProxy and IWebProxyScript#124396
gewarren merged 9 commits into
mainfrom
copilot/backport-xml-docs-webproxy

Conversation

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Description

Backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, per instructions in #124227.

Changes

System.Net.WebProxy.csproj - Updated project configuration:

  • Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> to enable compiler-generated XML documentation

WebProxy.cs - Added XML docs for:

  • Type-level documentation with concise remarks focusing on core functionality
  • All 11 constructors (parameterless, Uri-based, string-based, with bypass settings and credentials)
  • Serialization members: WebProxy(SerializationInfo, StreamingContext) constructor and GetObjectData method with PlatformNotSupportedException documentation
  • 6 properties: Address, BypassProxyOnLocal, BypassList, BypassArrayList, Credentials, UseDefaultCredentials
  • 3 methods: GetProxy, IsBypassed, GetDefaultProxy

IWebProxyScript.cs - Added XML docs for:

  • Type-level documentation
  • All interface methods: Close(), Load(), Run() with meaningful parameter descriptions

All documentation uses proper C# XML conventions with <see langword="null"/> for keywords, <see cref="T:TypeName"/> for external type references, and concise parameter descriptions. Documentation has been refined through review to:

  • Remove .NET Framework-centric content (application domain references, obsolete API mentions, platform-specific behavior descriptions)
  • Remove incorrect exception documentation from auto-properties (Credentials, UseDefaultCredentials)
  • Add proper exception documentation for members that throw PlatformNotSupportedException (serialization members, GetDefaultProxy)
  • Replace placeholder "Internal only" parameter descriptions with meaningful documentation
  • Remove repetitive constructor remarks that simply restated parameter assignments
  • Simplify type-level remarks to essential information only
  • Focus documentation on core API behavior without implementation details

Source:

Impact: 172 lines of documentation added across 3 files


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

CopilotAI changed the title [WIP] Backport XML docs for WebProxy and IWebProxyScriptBackport XML documentation for WebProxy and IWebProxyScriptFeb 13, 2026
CopilotAI requested a review from gewarrenFebruary 13, 2026 18:35

@gewarrengewarren left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…descriptions, update IWebProxyScript remarks
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>

CopilotAI commented Feb 13, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot Please also update the .csproj file to use the compiler generated XML docs as indicated in the instructions.

Done in commit 0287cd0. Removed <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile> from the .csproj file and added XML documentation for the serialization members that were previously undocumented.

@gewarren
gewarren marked this pull request as ready for review February 13, 2026 22:54
CopilotAI review requested due to automatic review settings February 13, 2026 22:54

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports XML documentation from dotnet-api-docs for System.Net.WebProxy and System.Net.IWebProxyScript to their source implementations, following the pattern established in PR #124227. The documentation adds comprehensive API descriptions including type-level remarks, constructor documentation, property and method documentation with proper XML conventions.

Changes:

  • Removed UseCompilerGeneratedDocXmlFile property from the project file to enable compiler-generated XML documentation
  • Added comprehensive XML documentation for WebProxy class covering 11 constructors, 6 properties, and 3 methods including WPAD support details
  • Added XML documentation for IWebProxyScript interface covering all interface members with WPAD/PAC implementation details

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.

FileDescription
src/libraries/System.Net.WebProxy/src/System.Net.WebProxy.csprojRemoved UseCompilerGeneratedDocXmlFile property to enable compiler-generated documentation
src/libraries/System.Net.WebProxy/src/System/Net/WebProxy.csAdded comprehensive XML documentation for class, constructors, properties, and methods (239 lines total)
src/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.csAdded XML documentation for interface and all methods with WPAD/PAC details

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
…lete API references, improve parameter descriptions
Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@stephentoub

Copy link
Copy Markdown
Member

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
auto-merge was automatically disabled February 15, 2026 23:55

Head branch was pushed to by a user without write access

CopilotAI commented Feb 15, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot please invoke the code-review skill and post the analysis/results as a comment on this PR

🤖 Copilot Code Review — PR #124396

Holistic Assessment

Motivation: ✅ The PR is well-justified. It backports official XML documentation from dotnet-api-docs to enable compiler-generated documentation for System.Net.WebProxy and System.Net.IWebProxyScript. This is part of the ongoing effort to move documentation into source code for better maintainability and consistency.

Approach: ✅ The approach is correct. The PR removes the opt-out flag (UseCompilerGeneratedDocXmlFile=false), adds comprehensive XML documentation to all public members, and follows the established backport process from PR #124227. The documentation has been properly adapted from the original XML sources with appropriate modifications for .NET Core (removing obsolete API references, clarifying platform-specific behavior, removing .NET Framework-centric content).

Summary: ✅ LGTM. The PR successfully backports XML documentation for 11 constructors, 6 properties, and 3 methods across 2 types. All public APIs are now documented with proper XML conventions. The documentation has been refined through multiple review cycles to remove incorrect exception tags, obsolete API references, and placeholder text. The code compiles successfully with no warnings or errors. One minor duplicate exception tag was found and removed in commit 3be15ea.


Detailed Findings

✅ Documentation Completeness — All public APIs documented

All public members in WebProxy.cs and IWebProxyScript.cs now have comprehensive XML documentation including:

  • Type-level summaries and remarks
  • Constructor documentation with all parameter descriptions
  • Property documentation with value descriptions
  • Method documentation with parameter, return value, and exception descriptions

This satisfies the requirement to enable compiler-generated documentation.

✅ XML Documentation Conventions — Proper syntax used

The documentation follows C# XML doc conventions correctly:

  • Uses <see langword="null"/>, <see langword="true"/>, <see langword="false"/> for language keywords
  • Uses <see cref="T:System.Net.Http.HttpClient"/> with T: prefix for external types not available in this assembly
  • Uses <see cref="MemberName"/> for references within the same type
  • Uses <c> tags for inline code examples (e.g., <c>"DIRECT"</c>, <c>"PROXY host:port"</c>)
  • Proper use of <para>, <list>, <item> for structured content
  • Parameter descriptions follow guidelines (concise noun phrases without redundant type mentions)

✅ Platform-Specific Adaptations — .NET Framework content appropriately handled

The documentation correctly addresses platform differences:

  • GetDefaultProxy remarks clarified as ".NET Framework" specific (line 38)
  • Obsolete GlobalProxySelection.Select API references removed
  • .NET Framework-specific application domain text removed from IWebProxyScript
  • PlatformNotSupportedException properly documented on serialization members and GetDefaultProxy

✅ Exception Documentation Accuracy — Corrected after review

The PR correctly documents exceptions:

  • Removed incorrect InvalidOperationException documentation from Credentials and UseDefaultCredentials properties (these are simple auto-properties that don't validate or throw)
  • Added PlatformNotSupportedException to serialization constructor and GetObjectData method
  • ArgumentNullException and UriFormatException documented where appropriate

✅ Parameter Description Improvements — Replaced placeholder text

IWebProxyScript parameter descriptions were improved from "Internal only" placeholders to meaningful documentation:

  • scriptLocation: "The URI that identifies the location of the proxy auto-configuration script"
  • script: "The script content to load and prepare for execution"
  • helperType: "The type that provides helper methods or services available to the script at runtime"
  • url: "The destination URL for which proxy information is requested"
  • host: "The host name associated with the destination URL"
  • Return value for Run: Explains it returns proxy configuration directives with examples

✅ Build Verification — No errors or warnings

The code compiles successfully across all target frameworks (net11.0, net11.0-browser, net11.0-wasi) with 0 warnings and 0 errors after enabling compiler-generated documentation enforcement.

💡 Minor Issue Fixed — Duplicate exception tag removed

Found and removed a duplicate <exception cref="PlatformNotSupportedException"> tag on GetObjectData method (lines 401-402) in commit 3be15ea. This was likely introduced during a merge conflict resolution or incremental editing.


Recommendation

✅ Approve and merge. This PR successfully completes the XML documentation backport for System.Net.WebProxy and System.Net.IWebProxyScript. All feedback from human reviewers and automated review has been addressed. The documentation is complete, accurate, and follows established conventions.

Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs Outdated
…agraph
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/WebProxy.cs
Comment threadsrc/libraries/System.Net.WebProxy/src/System/Net/IWebProxyScript.cs Outdated
Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
@MihaZupanMihaZupan added this to the 11.0.0 milestone Feb 26, 2026
@gewarren
gewarren merged commit 42b1679 into mainFeb 27, 2026
90 of 92 checks passed
@gewarren
gewarren deleted the copilot/backport-xml-docs-webproxy branch February 27, 2026 00:00
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 29, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@stephentoub@gewarren@MihaZupan