[Windows] Fixed BoxView improper rendering inside Border #28465
Conversation
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
There was a problem hiding this comment.
Pull Request Overview
This PR fixes an issue where a BoxView inside a Border is improperly sized on Windows by adjusting the arrangement logic in ContentPanel.cs. The changes include subtracting the stroke thickness from the measured size to prevent double counting, along with new automated tests in both Shared and HostApp projects to verify the fix.
- Adjusted ArrangeOverride in ContentPanel.cs to subtract border stroke thickness.
- Added test case in TestCases.Shared.Tests.
- Added sample UI in TestCases.HostApp to display the BoxView inside a Border.
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| Issue19668.cs (Shared Tests) | Added automated test verifying the BoxView placement inside Border. |
| Issue19668.cs (HostApp) | Added sample page showcasing the Border and nested BoxView layout. |
| ContentPanel.cs | Modified ArrangeOverride to subtract stroke thickness, aligning Windows behavior with other platforms. |
Comments suppressed due to low confidence (1)
src/Core/src/Platform/Windows/ContentPanel.cs:62
- While Math.Max is used later to clamp dimensions to zero, consider adding a comment or an additional check to clarify that subtracting twice the stroke thickness will not unintentionally collapse the layout when available dimensions are small.
actual.Width -= _borderStroke.StrokeThickness * 2;
|
/rebase |
cf856bc to
d5735a3
Compare
kubaflo
left a comment
There was a problem hiding this comment.
Could you please review the AI's summary?
d5735a3 to
d2b45cc
Compare
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 28465Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 28465" |
Validated and addressed the concern. |
|
/azp run maui-pr-uitests , maui-pr-devicetests |
|
Azure Pipelines successfully started running 2 pipeline(s). |
kubaflo
left a comment
There was a problem hiding this comment.
Could you please check the ai's summary?
|
/review -b feature/refactor-copilot-yml |
kubaflo
left a comment
There was a problem hiding this comment.
Could you please resolve conflicts?
Rebased the branch and resolved all merge conflicts. |
|
/review -b feature/refactor-copilot-yml -p windows |
kubaflo
left a comment
There was a problem hiding this comment.
Could you please resolve conflicts?
|
/review -b feature/refactor-copilot-yml -p windows |
MauiBot
left a comment
There was a problem hiding this comment.
Expert Review — 1 findings
See inline comments for details.
🤖 AI Summary
📊 Review Session —
|
| Test | Without Fix (expect FAIL) | With Fix (expect PASS) |
|---|---|---|
📱 BorderTests (BorderShouldNotExpandBeyondRequestedSizeWithBoxViewContent) Category=Border |
✅ FAIL — 419s | ❌ FAIL — 220s |
🖥️ WebViewFeatureTests WebViewFeatureTests |
✅ FAIL — 787s | ❌ FAIL — 751s |
🔴 Without fix — 📱 BorderTests (BorderShouldNotExpandBeyondRequestedSizeWithBoxViewContent): FAIL ✅ · 419s
Determining projects to restore...
Restored D:\a\1\s\src\Controls\src\Xaml\Controls.Xaml.csproj (in 1.5 min).
Restored D:\a\1\s\src\Controls\src\Xaml.Design\Controls.Xaml.Design.csproj (in 12 ms).
Restored D:\a\1\s\src\Controls\src\Core\Controls.Core.csproj (in 70 ms).
Restored D:\a\1\s\src\Controls\src\Core.Design\Controls.Core.Design.csproj (in 4 ms).
Restored D:\a\1\s\src\Controls\src\BindingSourceGen\Controls.BindingSourceGen.csproj (in 1.16 sec).
Restored D:\a\1\s\src\Controls\Maps\src\Controls.Maps.csproj (in 674 ms).
Restored D:\a\1\s\src\Core\maps\src\Maps.csproj (in 25 ms).
Restored D:\a\1\s\src\TestUtils\src\DeviceTests\TestUtils.DeviceTests.csproj (in 724 ms).
Restored D:\a\1\s\src\TestUtils\src\DeviceTests.Runners\TestUtils.DeviceTests.Runners.csproj (in 335 ms).
Restored D:\a\1\s\src\TestUtils\src\DeviceTests.Runners.SourceGen\TestUtils.DeviceTests.Runners.SourceGen.csproj (in 4.36 sec).
Restored D:\a\1\s\src\Graphics\src\Graphics\Graphics.csproj (in 1.82 sec).
Restored D:\a\1\s\src\Graphics\src\Graphics.Win2D\Graphics.Win2D.csproj (in 4 ms).
Restored D:\a\1\s\src\Essentials\src\Essentials.csproj (in 20 ms).
Restored D:\a\1\s\src\Core\tests\DeviceTests.Shared\Core.DeviceTests.Shared.csproj (in 18 ms).
Restored D:\a\1\s\src\Core\src\Core.csproj (in 32 ms).
Restored D:\a\1\s\src\Controls\tests\DeviceTests\Controls.DeviceTests.csproj (in 1.76 min).
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Graphics -> D:\a\1\s\artifacts\bin\Graphics\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Graphics.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Essentials -> D:\a\1\s\artifacts\bin\Essentials\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Essentials.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Graphics.Win2D -> D:\a\1\s\artifacts\bin\Graphics.Win2D\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Graphics.Win2D.WinUI.Desktop.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Core -> D:\a\1\s\artifacts\bin\Core\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.dll
Controls.BindingSourceGen -> D:\a\1\s\artifacts\bin\Controls.BindingSourceGen\Release\netstandard2.0\Microsoft.Maui.Controls.BindingSourceGen.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Controls.Core -> D:\a\1\s\artifacts\bin\Controls.Core\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.dll
Maps -> D:\a\1\s\artifacts\bin\Maps\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Maps.dll
TestUtils.DeviceTests -> D:\a\1\s\artifacts\bin\TestUtils.DeviceTests\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.TestUtils.DeviceTests.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Controls.Xaml -> D:\a\1\s\artifacts\bin\Controls.Xaml\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Xaml.dll
Controls.Maps -> D:\a\1\s\artifacts\bin\Controls.Maps\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Maps.dll
TestUtils.DeviceTests.Runners -> D:\a\1\s\artifacts\bin\TestUtils.DeviceTests.Runners\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.TestUtils.DeviceTests.Runners.dll
Core.DeviceTests.Shared -> D:\a\1\s\artifacts\bin\Core.DeviceTests.Shared\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.DeviceTests.Shared.dll
TestUtils.DeviceTests.Runners.SourceGen -> D:\a\1\s\artifacts\bin\TestUtils.DeviceTests.Runners.SourceGen\Release\netstandard2.0\Microsoft.Maui.TestUtils.DeviceTests.Runners.SourceGen.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Graphics -> D:\a\1\s\artifacts\bin\Graphics\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Graphics.dll
Controls.DeviceTests -> D:\a\1\s\artifacts\bin\Controls.DeviceTests\Release\net10.0-windows10.0.19041.0\win-x64\Microsoft.Maui.Controls.DeviceTests.dll
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:04:58.80
Test run for D:\a\1\s\artifacts\bin\Controls.DeviceTests\Release\net10.0-windows10.0.19041.0\win-x64\Microsoft.Maui.Controls.DeviceTests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (x64)
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
Testhost process for source(s) 'D:\a\1\s\artifacts\bin\Controls.DeviceTests\Release\net10.0-windows10.0.19041.0\win-x64\Microsoft.Maui.Controls.DeviceTests.dll' exited with error: Unhandled exception. System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.TestPlatform.CoreUtilities, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.
File name: 'Microsoft.TestPlatform.CoreUtilities, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at Microsoft.VisualStudio.TestPlatform.TestHost.Program.Main(String[] args) in /_/src/vstest/src/testhost.x86/Program.cs:line 41
. Please check the diagnostic logs for more information.
Results File: D:\a\1\s\artifacts\log\TestResults.trx
Test Run Aborted.
Tests completed with exit code: 1
🟢 With fix — 📱 BorderTests (BorderShouldNotExpandBeyondRequestedSizeWithBoxViewContent): FAIL ❌ · 220s
Determining projects to restore...
Restored D:\a\1\s\src\Graphics\src\Graphics\Graphics.csproj (in 659 ms).
Restored D:\a\1\s\src\Core\maps\src\Maps.csproj (in 803 ms).
Restored D:\a\1\s\src\Graphics\src\Graphics.Win2D\Graphics.Win2D.csproj (in 15 ms).
Restored D:\a\1\s\src\Essentials\src\Essentials.csproj (in 36 ms).
Restored D:\a\1\s\src\Core\src\Core.csproj (in 111 ms).
Restored D:\a\1\s\src\Controls\src\Xaml.Design\Controls.Xaml.Design.csproj (in 12 ms).
Restored D:\a\1\s\src\Controls\src\Xaml\Controls.Xaml.csproj (in 79 ms).
Restored D:\a\1\s\src\Controls\src\Core.Design\Controls.Core.Design.csproj (in 5 ms).
Restored D:\a\1\s\src\Controls\src\BindingSourceGen\Controls.BindingSourceGen.csproj (in 45 ms).
Restored D:\a\1\s\src\Controls\src\Core\Controls.Core.csproj (in 75 ms).
Restored D:\a\1\s\src\Controls\Maps\src\Controls.Maps.csproj (in 59 ms).
5 of 16 projects are up-to-date for restore.
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Graphics -> D:\a\1\s\artifacts\bin\Graphics\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Graphics.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Graphics.Win2D -> D:\a\1\s\artifacts\bin\Graphics.Win2D\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Graphics.Win2D.WinUI.Desktop.dll
Essentials -> D:\a\1\s\artifacts\bin\Essentials\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Essentials.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Core -> D:\a\1\s\artifacts\bin\Core\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.dll
Controls.BindingSourceGen -> D:\a\1\s\artifacts\bin\Controls.BindingSourceGen\Release\netstandard2.0\Microsoft.Maui.Controls.BindingSourceGen.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Controls.Core -> D:\a\1\s\artifacts\bin\Controls.Core\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Maps -> D:\a\1\s\artifacts\bin\Maps\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Maps.dll
TestUtils.DeviceTests -> D:\a\1\s\artifacts\bin\TestUtils.DeviceTests\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.TestUtils.DeviceTests.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Controls.Xaml -> D:\a\1\s\artifacts\bin\Controls.Xaml\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Xaml.dll
Controls.Maps -> D:\a\1\s\artifacts\bin\Controls.Maps\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Maps.dll
TestUtils.DeviceTests.Runners -> D:\a\1\s\artifacts\bin\TestUtils.DeviceTests.Runners\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.TestUtils.DeviceTests.Runners.dll
Core.DeviceTests.Shared -> D:\a\1\s\artifacts\bin\Core.DeviceTests.Shared\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.DeviceTests.Shared.dll
TestUtils.DeviceTests.Runners.SourceGen -> D:\a\1\s\artifacts\bin\TestUtils.DeviceTests.Runners.SourceGen\Release\netstandard2.0\Microsoft.Maui.TestUtils.DeviceTests.Runners.SourceGen.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Graphics -> D:\a\1\s\artifacts\bin\Graphics\Release\net10.0-windows10.0.19041.0\Microsoft.Maui.Graphics.dll
Controls.DeviceTests -> D:\a\1\s\artifacts\bin\Controls.DeviceTests\Release\net10.0-windows10.0.19041.0\win-x64\Microsoft.Maui.Controls.DeviceTests.dll
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:03:28.73
Test run for D:\a\1\s\artifacts\bin\Controls.DeviceTests\Release\net10.0-windows10.0.19041.0\win-x64\Microsoft.Maui.Controls.DeviceTests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (x64)
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
Testhost process for source(s) 'D:\a\1\s\artifacts\bin\Controls.DeviceTests\Release\net10.0-windows10.0.19041.0\win-x64\Microsoft.Maui.Controls.DeviceTests.dll' exited with error: Unhandled exception. System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.TestPlatform.CoreUtilities, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.
File name: 'Microsoft.TestPlatform.CoreUtilities, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at Microsoft.VisualStudio.TestPlatform.TestHost.Program.Main(String[] args) in /_/src/vstest/src/testhost.x86/Program.cs:line 41
. Please check the diagnostic logs for more information.
WARNING: Overwriting results file: D:\a\1\s\artifacts\log\TestResults.trx
Results File: D:\a\1\s\artifacts\log\TestResults.trx
Test Run Aborted.
Tests completed with exit code: 1
🔴 Without fix — 🖥️ WebViewFeatureTests: FAIL ✅ · 787s
Determining projects to restore...
Restored D:\a\1\s\src\Controls\src\Xaml.Design\Controls.Xaml.Design.csproj (in 522 ms).
Restored D:\a\1\s\src\Controls\src\Core.Design\Controls.Core.Design.csproj (in 6 ms).
Restored D:\a\1\s\src\Controls\src\BindingSourceGen\Controls.BindingSourceGen.csproj (in 65 ms).
Restored D:\a\1\s\src\Controls\src\Core\Controls.Core.csproj (in 839 ms).
Restored D:\a\1\s\src\Controls\Maps\src\Controls.Maps.csproj (in 205 ms).
Restored D:\a\1\s\src\Controls\Foldable\src\Controls.Foldable.csproj (in 3.76 sec).
Restored D:\a\1\s\src\BlazorWebView\src\Maui\Microsoft.AspNetCore.Components.WebView.Maui.csproj (in 3.75 sec).
Restored D:\a\1\s\src\Graphics\src\Graphics.Win2D\Graphics.Win2D.csproj (in 26 ms).
Restored D:\a\1\s\src\Graphics\src\Graphics\Graphics.csproj (in 48 ms).
Restored D:\a\1\s\src\Essentials\src\Essentials.csproj (in 34 ms).
Restored D:\a\1\s\src\Core\src\Core.csproj (in 88 ms).
Restored D:\a\1\s\src\Core\maps\src\Maps.csproj (in 68 ms).
Restored D:\a\1\s\src\Controls\src\Xaml\Controls.Xaml.csproj (in 75 ms).
Restored D:\a\1\s\src\Controls\tests\TestCases.HostApp\Controls.TestCases.HostApp.csproj (in 798 ms).
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Graphics -> D:\a\1\s\artifacts\bin\Graphics\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Graphics.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Essentials -> D:\a\1\s\artifacts\bin\Essentials\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Essentials.dll
Graphics.Win2D -> D:\a\1\s\artifacts\bin\Graphics.Win2D\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Graphics.Win2D.WinUI.Desktop.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Core -> D:\a\1\s\artifacts\bin\Core\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.dll
Controls.BindingSourceGen -> D:\a\1\s\artifacts\bin\Controls.BindingSourceGen\Debug\netstandard2.0\Microsoft.Maui.Controls.BindingSourceGen.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Maps -> D:\a\1\s\artifacts\bin\Maps\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Maps.dll
Controls.Core -> D:\a\1\s\artifacts\bin\Controls.Core\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Microsoft.AspNetCore.Components.WebView.Maui -> D:\a\1\s\artifacts\bin\Microsoft.AspNetCore.Components.WebView.Maui\Debug\net10.0-windows10.0.19041.0\Microsoft.AspNetCore.Components.WebView.Maui.dll
Controls.Maps -> D:\a\1\s\artifacts\bin\Controls.Maps\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Maps.dll
Controls.Foldable -> D:\a\1\s\artifacts\bin\Controls.Foldable\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Foldable.dll
Controls.Xaml -> D:\a\1\s\artifacts\bin\Controls.Xaml\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Xaml.dll
Controls.TestCases.HostApp -> D:\a\1\s\artifacts\bin\Controls.TestCases.HostApp\Debug\net10.0-windows10.0.19041.0\win-x64\Controls.TestCases.HostApp.dll
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:06:07.62
Determining projects to restore...
Restored D:\a\1\s\src\TestUtils\src\UITest.NUnit\UITest.NUnit.csproj (in 2.49 sec).
Restored D:\a\1\s\src\TestUtils\src\UITest.Core\UITest.Core.csproj (in 4 ms).
Restored D:\a\1\s\src\TestUtils\src\UITest.Appium\UITest.Appium.csproj (in 2.05 sec).
Restored D:\a\1\s\src\TestUtils\src\VisualTestUtils.MagickNet\VisualTestUtils.MagickNet.csproj (in 5.65 sec).
Restored D:\a\1\s\src\TestUtils\src\VisualTestUtils\VisualTestUtils.csproj (in 2 ms).
Restored D:\a\1\s\src\Controls\tests\TestCases.WinUI.Tests\Controls.TestCases.WinUI.Tests.csproj (in 8.73 sec).
Restored D:\a\1\s\src\Controls\tests\CustomAttributes\Controls.CustomAttributes.csproj (in 5 ms).
Restored D:\a\1\s\src\TestUtils\src\UITest.Analyzers\UITest.Analyzers.csproj (in 9.52 sec).
7 of 15 projects are up-to-date for restore.
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Controls.CustomAttributes -> D:\a\1\s\artifacts\bin\Controls.CustomAttributes\Debug\net10.0\Controls.CustomAttributes.dll
Graphics -> D:\a\1\s\artifacts\bin\Graphics\Debug\net10.0\Microsoft.Maui.Graphics.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Essentials -> D:\a\1\s\artifacts\bin\Essentials\Debug\net10.0\Microsoft.Maui.Essentials.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Core -> D:\a\1\s\artifacts\bin\Core\Debug\net10.0\Microsoft.Maui.dll
Controls.Core.Design -> D:\a\1\s\artifacts\bin\Controls.Core.Design\Debug\net472\Microsoft.Maui.Controls.DesignTools.dll
Controls.BindingSourceGen -> D:\a\1\s\artifacts\bin\Controls.BindingSourceGen\Debug\netstandard2.0\Microsoft.Maui.Controls.BindingSourceGen.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Controls.Core -> D:\a\1\s\artifacts\bin\Controls.Core\Debug\net10.0\Microsoft.Maui.Controls.dll
UITest.Core -> D:\a\1\s\artifacts\bin\UITest.Core\Debug\net10.0\UITest.Core.dll
UITest.Appium -> D:\a\1\s\artifacts\bin\UITest.Appium\Debug\net10.0\UITest.Appium.dll
UITest.NUnit -> D:\a\1\s\artifacts\bin\UITest.NUnit\Debug\net10.0\UITest.NUnit.dll
VisualTestUtils -> D:\a\1\s\artifacts\bin\VisualTestUtils\Debug\netstandard2.0\VisualTestUtils.dll
VisualTestUtils.MagickNet -> D:\a\1\s\artifacts\bin\VisualTestUtils.MagickNet\Debug\netstandard2.0\VisualTestUtils.MagickNet.dll
UITest.Analyzers -> D:\a\1\s\artifacts\bin\UITest.Analyzers\Debug\netstandard2.0\UITest.Analyzers.dll
Controls.TestCases.WinUI.Tests -> D:\a\1\s\artifacts\bin\Controls.TestCases.WinUI.Tests\Debug\net10.0\Controls.TestCases.WinUI.Tests.dll
Test run for D:\a\1\s\artifacts\bin\Controls.TestCases.WinUI.Tests\Debug\net10.0\Controls.TestCases.WinUI.Tests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (x64)
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
NUnit Adapter 4.5.0.0: Test execution started
Running selected tests in D:\a\1\s\artifacts\bin\Controls.TestCases.WinUI.Tests\Debug\net10.0\Controls.TestCases.WinUI.Tests.dll
NUnit3TestExecutor discovered 24 of 24 NUnit test cases using Current Discovery mode, Non-Explicit run
>>>>> 5/31/2026 12:19:16 AM FixtureSetup for HybridWebViewFeatureTests(Windows)
>>>>> 5/31/2026 12:19:29 AM VerifyHybridWebView_DefaultValues Start
>>>>> 5/31/2026 12:19:31 AM VerifyHybridWebView_DefaultValues Stop
Passed VerifyHybridWebView_DefaultValues [1 s]
>>>>> 5/31/2026 12:19:31 AM VerifyHybridWebView_SameHybridRootWithDifferentDefaultFile Start
>>>>> 5/31/2026 12:19:39 AM VerifyHybridWebView_SameHybridRootWithDifferentDefaultFile Stop
Passed VerifyHybridWebView_SameHybridRootWithDifferentDefaultFile [8 s]
>>>>> 5/31/2026 12:19:39 AM VerifyHybridWebView_SameDefaultFileWithDifferentHybridRoot Start
>>>>> 5/31/2026 12:19:44 AM VerifyHybridWebView_SameDefaultFileWithDifferentHybridRoot Stop
Passed VerifyHybridWebView_SameDefaultFileWithDifferentHybridRoot [4 s]
>>>>> 5/31/2026 12:19:44 AM VerifyHybridWebView_EvaluateJavaScriptWithDifferentHybridRoot Start
>>>>> 5/31/2026 12:20:01 AM VerifyHybridWebView_EvaluateJavaScriptWithDifferentHybridRoot Stop
Passed VerifyHybridWebView_EvaluateJavaScriptWithDifferentHybridRoot [17 s]
>>>>> 5/31/2026 12:20:01 AM VerifyHybridWebView_EvaluateJavaScriptWithDifferentDefaultFile Start
>>>>> 5/31/2026 12:20:19 AM VerifyHybridWebView_EvaluateJavaScriptWithDifferentDefaultFile Stop
Passed VerifyHybridWebView_EvaluateJavaScriptWithDifferentDefaultFile [18 s]
>>>>> 5/31/2026 12:20:19 AM VerifyHybridWebView_SendMessageToJavaScript Start
>>>>> 5/31/2026 12:20:30 AM VerifyHybridWebView_SendMessageToJavaScript Stop
Passed VerifyHybridWebView_SendMessageToJavaScript [10 s]
>>>>> 5/31/2026 12:20:30 AM VerifyHybridWebViewWithIsVisibleFalse Start
>>>>> 5/31/2026 12:20:34 AM VerifyHybridWebViewWithIsVisibleFalse Stop
Passed VerifyHybridWebViewWithIsVisibleFalse [4 s]
>>>>> 5/31/2026 12:20:34 AM VerifyHybridWebViewWithShadow Start
>>>>> 5/31/2026 12:20:41 AM VerifyHybridWebViewWithShadow Stop
>>>>> 5/31/2026 12:20:41 AM Log types:
Failed VerifyHybridWebViewWithShadow [9 s]
Error Message:
VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: VerifyHybridWebViewWithShadow.png (0.62% difference)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.
More info: https://aka.ms/visual-test-workflow
Stack Trace:
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance, Boolean includeTitleBar) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.HybridWebViewFeatureTests.VerifyHybridWebViewWithShadow() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/HybridWebViewFeatureTests.cs:line 126
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
>>>>> 5/31/2026 12:20:45 AM FixtureSetup for WebViewFeatureTests(Windows)
>>>>> 5/31/2026 12:20:55 AM WebView_ValidateDefaultValues_VerifyInitialState Start
>>>>> 5/31/2026 12:20:57 AM WebView_ValidateDefaultValues_VerifyInitialState Stop
Passed WebView_ValidateDefaultValues_VerifyInitialState [2 s]
>>>>> 5/31/2026 12:20:57 AM WebView_VerifyCanGoBackForward Start
>>>>> 5/31/2026 12:21:28 AM WebView_VerifyCanGoBackForward Stop
Passed WebView_VerifyCanGoBackForward [30 s]
>>>>> 5/31/2026 12:21:28 AM WebView_SetHtmlSource_VerifyJavaScript Start
>>>>> 5/31/2026 12:21:36 AM WebView_SetHtmlSource_VerifyJavaScript Stop
Passed WebView_SetHtmlSource_VerifyJavaScript [7 s]
>>>>> 5/31/2026 12:21:36 AM WebView_SetUrlSource_VerifyNavigatingEvent Start
>>>>> 5/31/2026 12:21:46 AM WebView_SetUrlSource_VerifyNavigatingEvent Stop
Passed WebView_SetUrlSource_VerifyNavigatingEvent [9 s]
>>>>> 5/31/2026 12:21:46 AM WebView_SetUrlSource_VerifyNavigatedEvent Start
>>>>> 5/31/2026 12:21:59 AM WebView_SetUrlSource_VerifyNavigatedEvent Stop
Passed WebView_SetUrlSource_VerifyNavigatedEvent [13 s]
>>>>> 5/31/2026 12:21:59 AM WebView_SetHtmlSource_VerifyNavigatingEvent Start
>>>>> 5/31/2026 12:22:09 AM WebView_SetHtmlSource_VerifyNavigatingEvent Stop
Passed WebView_SetHtmlSource_VerifyNavigatingEvent [9 s]
>>>>> 5/31/2026 12:22:09 AM WebView_SetHtmlSource_VerifyNavigatedEvent Start
>>>>> 5/31/2026 12:22:14 AM WebView_SetHtmlSource_VerifyNavigatedEvent Stop
Passed WebView_SetHtmlSource_VerifyNavigatedEvent [5 s]
>>>>> 5/31/2026 12:22:14 AM WebView_SetIsVisibleFalse_VerifyWebViewHidden Start
>>>>> 5/31/2026 12:22:19 AM WebView_SetIsVisibleFalse_VerifyWebViewHidden Stop
Passed WebView_SetIsVisibleFalse_VerifyWebViewHidden [5 s]
>>>>> 5/31/2026 12:22:19 AM WebView_TestClearCookies_VerifyCookiesCleared Start
>>>>> 5/31/2026 12:22:24 AM WebView_TestClearCookies_VerifyCookiesCleared Stop
Passed WebView_TestClearCookies_VerifyCookiesCleared [4 s]
>>>>> 5/31/2026 12:22:24 AM WebView_TestCookieManagement_VerifyAddCookie Start
>>>>> 5/31/2026 12:22:31 AM WebView_TestCookieManagement_VerifyAddCookie Stop
Passed WebView_TestCookieManagement_VerifyAddCookie [7 s]
>>>>> 5/31/2026 12:22:31 AM WebView_TestCookieManagement_VerifyAddCookieAndEvaluateJavaScript Start
>>>>> 5/31/2026 12:22:41 AM WebView_TestCookieManagement_VerifyAddCookieAndEvaluateJavaScript Stop
Passed WebView_TestCookieManagement_VerifyAddCookieAndEvaluateJavaScript [9 s]
>>>>> 5/31/2026 12:22:41 AM WebView_TestCookieManagement_VerifyAddCookieWithUrlSource Start
>>>>> 5/31/2026 12:22:51 AM WebView_TestCookieManagement_VerifyAddCookieWithUrlSource Stop
Passed WebView_TestCookieManagement_VerifyAddCookieWithUrlSource [10 s]
>>>>> 5/31/2026 12:22:51 AM WebView_TestEvaluateJavaScriptAsync_VerifyJavaScriptExecution Start
>>>>> 5/31/2026 12:23:04 AM WebView_TestEvaluateJavaScriptAsync_VerifyJavaScriptExecution Stop
Passed WebView_TestEvaluateJavaScriptAsync_VerifyJavaScriptExecution [13 s]
>>>>> 5/31/2026 12:23:04 AM WebView_TestEvaluateJavaScriptAsync_VerifyJavaScriptExecutionWithMultiplePages Start
>>>>> 5/31/2026 12:23:11 AM WebView_TestEvaluateJavaScriptAsync_VerifyJavaScriptExecutionWithMultiplePages Stop
Passed WebView_TestEvaluateJavaScriptAsync_VerifyJavaScriptExecutionWithMultiplePages [7 s]
>>>>> 5/31/2026 12:23:11 AM WebView_TestReloadMethod_VerifyReloadFunctionality Start
>>>>> 5/31/2026 12:23:26 AM WebView_TestReloadMethod_VerifyReloadFunctionality Stop
Passed WebView_TestReloadMethod_VerifyReloadFunctionality [14 s]
>>>>> 5/31/2026 12:23:26 AM WebView_VerifyReloadFunctionalityForHtmlWebViewSource Start
>>>>> 5/31/2026 12:23:38 AM WebView_VerifyReloadFunctionalityForHtmlWebViewSource Stop
Passed WebView_VerifyReloadFunctionalityForHtmlWebViewSource [11 s]
NUnit Adapter 4.5.0.0: Test execution complete
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 10.0.0)
[xUnit.net 00:00:00.13] Discovering: Controls.TestCases.WinUI.Tests
[xUnit.net 00:00:00.31] Discovered: Controls.TestCases.WinUI.Tests
Results File: D:\a\1\s\CustomAgentLogsTmp\UITests\TestResults\WebViewFeatureTests.trx
Total tests: 24
Passed: 23
Failed: 1
Test Run Failed.
Total time: 4.7074 Minutes
>>> TRX_RESULT_FILE: D:\a\1\s\CustomAgentLogsTmp\UITests\TestResults\WebViewFeatureTests.trx
🟢 With fix — 🖥️ WebViewFeatureTests: FAIL ❌ · 751s
Determining projects to restore...
Restored D:\a\1\s\src\Controls\src\Xaml.Design\Controls.Xaml.Design.csproj (in 899 ms).
Restored D:\a\1\s\src\Controls\src\Core.Design\Controls.Core.Design.csproj (in 4 ms).
Restored D:\a\1\s\src\Controls\src\BindingSourceGen\Controls.BindingSourceGen.csproj (in 26 ms).
Restored D:\a\1\s\src\Controls\src\Core\Controls.Core.csproj (in 1.13 sec).
Restored D:\a\1\s\src\Controls\Maps\src\Controls.Maps.csproj (in 163 ms).
Restored D:\a\1\s\src\Graphics\src\Graphics.Win2D\Graphics.Win2D.csproj (in 39 ms).
Restored D:\a\1\s\src\Graphics\src\Graphics\Graphics.csproj (in 40 ms).
Restored D:\a\1\s\src\Essentials\src\Essentials.csproj (in 39 ms).
Restored D:\a\1\s\src\Core\src\Core.csproj (in 100 ms).
Restored D:\a\1\s\src\Core\maps\src\Maps.csproj (in 65 ms).
Restored D:\a\1\s\src\Controls\src\Xaml\Controls.Xaml.csproj (in 59 ms).
3 of 14 projects are up-to-date for restore.
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Graphics -> D:\a\1\s\artifacts\bin\Graphics\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Graphics.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Graphics.Win2D -> D:\a\1\s\artifacts\bin\Graphics.Win2D\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Graphics.Win2D.WinUI.Desktop.dll
Essentials -> D:\a\1\s\artifacts\bin\Essentials\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Essentials.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Core -> D:\a\1\s\artifacts\bin\Core\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.dll
Controls.BindingSourceGen -> D:\a\1\s\artifacts\bin\Controls.BindingSourceGen\Debug\netstandard2.0\Microsoft.Maui.Controls.BindingSourceGen.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Maps -> D:\a\1\s\artifacts\bin\Maps\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Maps.dll
Controls.Core -> D:\a\1\s\artifacts\bin\Controls.Core\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Controls.Maps -> D:\a\1\s\artifacts\bin\Controls.Maps\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Maps.dll
Microsoft.AspNetCore.Components.WebView.Maui -> D:\a\1\s\artifacts\bin\Microsoft.AspNetCore.Components.WebView.Maui\Debug\net10.0-windows10.0.19041.0\Microsoft.AspNetCore.Components.WebView.Maui.dll
Controls.Foldable -> D:\a\1\s\artifacts\bin\Controls.Foldable\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Foldable.dll
Controls.Xaml -> D:\a\1\s\artifacts\bin\Controls.Xaml\Debug\net10.0-windows10.0.19041.0\Microsoft.Maui.Controls.Xaml.dll
Controls.TestCases.HostApp -> D:\a\1\s\artifacts\bin\Controls.TestCases.HostApp\Debug\net10.0-windows10.0.19041.0\win-x64\Controls.TestCases.HostApp.dll
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:06:10.81
Determining projects to restore...
All projects are up-to-date for restore.
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Graphics -> D:\a\1\s\artifacts\bin\Graphics\Debug\net10.0\Microsoft.Maui.Graphics.dll
Controls.CustomAttributes -> D:\a\1\s\artifacts\bin\Controls.CustomAttributes\Debug\net10.0\Controls.CustomAttributes.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Essentials -> D:\a\1\s\artifacts\bin\Essentials\Debug\net10.0\Microsoft.Maui.Essentials.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Core -> D:\a\1\s\artifacts\bin\Core\Debug\net10.0\Microsoft.Maui.dll
Controls.Core.Design -> D:\a\1\s\artifacts\bin\Controls.Core.Design\Debug\net472\Microsoft.Maui.Controls.DesignTools.dll
Controls.BindingSourceGen -> D:\a\1\s\artifacts\bin\Controls.BindingSourceGen\Debug\netstandard2.0\Microsoft.Maui.Controls.BindingSourceGen.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14242424
Controls.Core -> D:\a\1\s\artifacts\bin\Controls.Core\Debug\net10.0\Microsoft.Maui.Controls.dll
UITest.Core -> D:\a\1\s\artifacts\bin\UITest.Core\Debug\net10.0\UITest.Core.dll
UITest.Appium -> D:\a\1\s\artifacts\bin\UITest.Appium\Debug\net10.0\UITest.Appium.dll
UITest.NUnit -> D:\a\1\s\artifacts\bin\UITest.NUnit\Debug\net10.0\UITest.NUnit.dll
VisualTestUtils -> D:\a\1\s\artifacts\bin\VisualTestUtils\Debug\netstandard2.0\VisualTestUtils.dll
VisualTestUtils.MagickNet -> D:\a\1\s\artifacts\bin\VisualTestUtils.MagickNet\Debug\netstandard2.0\VisualTestUtils.MagickNet.dll
UITest.Analyzers -> D:\a\1\s\artifacts\bin\UITest.Analyzers\Debug\netstandard2.0\UITest.Analyzers.dll
Controls.TestCases.WinUI.Tests -> D:\a\1\s\artifacts\bin\Controls.TestCases.WinUI.Tests\Debug\net10.0\Controls.TestCases.WinUI.Tests.dll
Test run for D:\a\1\s\artifacts\bin\Controls.TestCases.WinUI.Tests\Debug\net10.0\Controls.TestCases.WinUI.Tests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (x64)
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
NUnit Adapter 4.5.0.0: Test execution started
Running selected tests in D:\a\1\s\artifacts\bin\Controls.TestCases.WinUI.Tests\Debug\net10.0\Controls.TestCases.WinUI.Tests.dll
NUnit3TestExecutor discovered 24 of 24 NUnit test cases using Current Discovery mode, Non-Explicit run
>>>>> 5/31/2026 12:35:33 AM FixtureSetup for HybridWebViewFeatureTests(Windows)
>>>>> 5/31/2026 12:35:45 AM VerifyHybridWebView_DefaultValues Start
>>>>> 5/31/2026 12:35:49 AM VerifyHybridWebView_DefaultValues Stop
Passed VerifyHybridWebView_DefaultValues [3 s]
>>>>> 5/31/2026 12:35:49 AM VerifyHybridWebView_SameHybridRootWithDifferentDefaultFile Start
>>>>> 5/31/2026 12:35:55 AM VerifyHybridWebView_SameHybridRootWithDifferentDefaultFile Stop
Passed VerifyHybridWebView_SameHybridRootWithDifferentDefaultFile [6 s]
>>>>> 5/31/2026 12:35:55 AM VerifyHybridWebView_SameDefaultFileWithDifferentHybridRoot Start
>>>>> 5/31/2026 12:36:00 AM VerifyHybridWebView_SameDefaultFileWithDifferentHybridRoot Stop
Passed VerifyHybridWebView_SameDefaultFileWithDifferentHybridRoot [5 s]
>>>>> 5/31/2026 12:36:00 AM VerifyHybridWebView_EvaluateJavaScriptWithDifferentHybridRoot Start
>>>>> 5/31/2026 12:36:17 AM VerifyHybridWebView_EvaluateJavaScriptWithDifferentHybridRoot Stop
Passed VerifyHybridWebView_EvaluateJavaScriptWithDifferentHybridRoot [16 s]
>>>>> 5/31/2026 12:36:17 AM VerifyHybridWebView_EvaluateJavaScriptWithDifferentDefaultFile Start
>>>>> 5/31/2026 12:36:35 AM VerifyHybridWebView_EvaluateJavaScriptWithDifferentDefaultFile Stop
Passed VerifyHybridWebView_EvaluateJavaScriptWithDifferentDefaultFile [17 s]
>>>>> 5/31/2026 12:36:35 AM VerifyHybridWebView_SendMessageToJavaScript Start
>>>>> 5/31/2026 12:36:43 AM VerifyHybridWebView_SendMessageToJavaScript Stop
Passed VerifyHybridWebView_SendMessageToJavaScript [8 s]
>>>>> 5/31/2026 12:36:43 AM VerifyHybridWebViewWithIsVisibleFalse Start
>>>>> 5/31/2026 12:36:47 AM VerifyHybridWebViewWithIsVisibleFalse Stop
Passed VerifyHybridWebViewWithIsVisibleFalse [4 s]
>>>>> 5/31/2026 12:36:47 AM VerifyHybridWebViewWithShadow Start
>>>>> 5/31/2026 12:36:55 AM VerifyHybridWebViewWithShadow Stop
>>>>> 5/31/2026 12:36:55 AM Log types:
Failed VerifyHybridWebViewWithShadow [8 s]
Error Message:
VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: VerifyHybridWebViewWithShadow.png (0.62% difference)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.
More info: https://aka.ms/visual-test-workflow
Stack Trace:
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance, Boolean includeTitleBar) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.HybridWebViewFeatureTests.VerifyHybridWebViewWithShadow() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/HybridWebViewFeatureTests.cs:line 126
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
>>>>> 5/31/2026 12:36:58 AM FixtureSetup for WebViewFeatureTests(Windows)
>>>>> 5/31/2026 12:37:08 AM WebView_ValidateDefaultValues_VerifyInitialState Start
>>>>> 5/31/2026 12:37:10 AM WebView_ValidateDefaultValues_VerifyInitialState Stop
Passed WebView_ValidateDefaultValues_VerifyInitialState [2 s]
>>>>> 5/31/2026 12:37:10 AM WebView_VerifyCanGoBackForward Start
>>>>> 5/31/2026 12:37:43 AM WebView_VerifyCanGoBackForward Stop
Passed WebView_VerifyCanGoBackForward [33 s]
>>>>> 5/31/2026 12:37:44 AM WebView_SetHtmlSource_VerifyJavaScript Start
>>>>> 5/31/2026 12:37:52 AM WebView_SetHtmlSource_VerifyJavaScript Stop
Passed WebView_SetHtmlSource_VerifyJavaScript [8 s]
>>>>> 5/31/2026 12:37:52 AM WebView_SetUrlSource_VerifyNavigatingEvent Start
>>>>> 5/31/2026 12:38:01 AM WebView_SetUrlSource_VerifyNavigatingEvent Stop
Passed WebView_SetUrlSource_VerifyNavigatingEvent [8 s]
>>>>> 5/31/2026 12:38:01 AM WebView_SetUrlSource_VerifyNavigatedEvent Start
>>>>> 5/31/2026 12:38:14 AM WebView_SetUrlSource_VerifyNavigatedEvent Stop
Passed WebView_SetUrlSource_VerifyNavigatedEvent [12 s]
>>>>> 5/31/2026 12:38:14 AM WebView_SetHtmlSource_VerifyNavigatingEvent Start
>>>>> 5/31/2026 12:38:23 AM WebView_SetHtmlSource_VerifyNavigatingEvent Stop
Passed WebView_SetHtmlSource_VerifyNavigatingEvent [9 s]
>>>>> 5/31/2026 12:38:23 AM WebView_SetHtmlSource_VerifyNavigatedEvent Start
>>>>> 5/31/2026 12:38:28 AM WebView_SetHtmlSource_VerifyNavigatedEvent Stop
Passed WebView_SetHtmlSource_VerifyNavigatedEvent [5 s]
>>>>> 5/31/2026 12:38:28 AM WebView_SetIsVisibleFalse_VerifyWebViewHidden Start
>>>>> 5/31/2026 12:38:33 AM WebView_SetIsVisibleFalse_VerifyWebViewHidden Stop
Passed WebView_SetIsVisibleFalse_VerifyWebViewHidden [5 s]
>>>>> 5/31/2026 12:38:33 AM WebView_TestClearCookies_VerifyCookiesCleared Start
>>>>> 5/31/2026 12:38:38 AM WebView_TestClearCookies_VerifyCookiesCleared Stop
Passed WebView_TestClearCookies_VerifyCookiesCleared [4 s]
>>>>> 5/31/2026 12:38:38 AM WebView_TestCookieManagement_VerifyAddCookie Start
>>>>> 5/31/2026 12:38:45 AM WebView_TestCookieManagement_VerifyAddCookie Stop
Passed WebView_TestCookieManagement_VerifyAddCookie [7 s]
>>>>> 5/31/2026 12:38:45 AM WebView_TestCookieManagement_VerifyAddCookieAndEvaluateJavaScript Start
>>>>> 5/31/2026 12:38:55 AM WebView_TestCookieManagement_VerifyAddCookieAndEvaluateJavaScript Stop
Passed WebView_TestCookieManagement_VerifyAddCookieAndEvaluateJavaScript [9 s]
>>>>> 5/31/2026 12:38:55 AM WebView_TestCookieManagement_VerifyAddCookieWithUrlSource Start
>>>>> 5/31/2026 12:39:05 AM WebView_TestCookieManagement_VerifyAddCookieWithUrlSource Stop
Passed WebView_TestCookieManagement_VerifyAddCookieWithUrlSource [10 s]
>>>>> 5/31/2026 12:39:05 AM WebView_TestEvaluateJavaScriptAsync_VerifyJavaScriptExecution Start
>>>>> 5/31/2026 12:39:17 AM WebView_TestEvaluateJavaScriptAsync_VerifyJavaScriptExecution Stop
Passed WebView_TestEvaluateJavaScriptAsync_VerifyJavaScriptExecution [11 s]
>>>>> 5/31/2026 12:39:17 AM WebView_TestEvaluateJavaScriptAsync_VerifyJavaScriptExecutionWithMultiplePages Start
>>>>> 5/31/2026 12:39:24 AM WebView_TestEvaluateJavaScriptAsync_VerifyJavaScriptExecutionWithMultiplePages Stop
Passed WebView_TestEvaluateJavaScriptAsync_VerifyJavaScriptExecutionWithMultiplePages [7 s]
>>>>> 5/31/2026 12:39:24 AM WebView_TestReloadMethod_VerifyReloadFunctionality Start
>>>>> 5/31/2026 12:39:37 AM WebView_TestReloadMethod_VerifyReloadFunctionality Stop
Passed WebView_TestReloadMethod_VerifyReloadFunctionality [13 s]
>>>>> 5/31/2026 12:39:37 AM WebView_VerifyReloadFunctionalityForHtmlWebViewSource Start
>>>>> 5/31/2026 12:39:50 AM WebView_VerifyReloadFunctionalityForHtmlWebViewSource Stop
Passed WebView_VerifyReloadFunctionalityForHtmlWebViewSource [12 s]
NUnit Adapter 4.5.0.0: Test execution complete
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 10.0.0)
[xUnit.net 00:00:00.12] Discovering: Controls.TestCases.WinUI.Tests
[xUnit.net 00:00:00.29] Discovered: Controls.TestCases.WinUI.Tests
Results File: D:\a\1\s\CustomAgentLogsTmp\UITests\TestResults\WebViewFeatureTests.trx
Total tests: 24
Passed: 23
Failed: 1
Test Run Failed.
Total time: 4.5187 Minutes
>>> TRX_RESULT_FILE: D:\a\1\s\CustomAgentLogsTmp\UITests\TestResults\WebViewFeatureTests.trx
⚠️ Failure Details
- ❌ BorderTests (BorderShouldNotExpandBeyondRequestedSizeWithBoxViewContent) FAILED with fix (should pass)
- ❌ WebViewFeatureTests FAILED with fix (should pass)
Device tests: 1 of 24 failed
📁 Fix files reverted (3 files)
eng/pipelines/ci-copilot.ymlsrc/Core/src/Platform/Windows/ContentPanel.cssrc/Core/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt
🧪 UI Tests — ViewBaseTests,WebView
Detected UI test categories: ViewBaseTests,WebView
❌ Deep UI tests — 158 passed, 2 failed across 2 categories on platform-pool agent (replaces in-process counts above).
🧪 UI Test Execution Results (deep, platform pool)
| Category | Tests | Snapshot diffs |
|---|---|---|
ViewBaseTests |
115/115 ✓ | — |
WebView |
43/45 (2 ❌) | 1 diff PNG |
❌ WebView — 2 failed tests
VerifyHybridWebViewWithShadow
VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: VerifyHybridWebViewWithShadow.png (0.62% difference)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build artifacts to get the new snapshot file.
More info: https://aka.ms/visual-test-workflow
at Microsoft.Maui.TestCases.Tests.UITest.VerifyScreenshot(String name, Nullable`1 retryDelay, Nullable`1 retryTimeout, Int32 cropLeft, Int32 cropRight, Int32 cropTop, Int32 cropBottom, Double tolerance, Boolean includeTitleBar) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.HybridWebViewFeatureTests.VerifyHybridWebViewWithShadow() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/HybridWebViewFeatureTests.cs:line 126
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.RuntimeMethodInfo.Invoke(Ob
...
Issue6286_WebView_Test
The app was expected to be running still, investigate as possible crash
TearDown : The app was expected to be running still, investigate as possible crash
at UITest.Appium.NUnit.UITestBase.UITestBaseTearDown() in /_/src/TestUtils/src/UITest.NUnit/UITestBase.cs:line 159
at UITest.Appium.NUnit.UITestBase.TestTearDown() in /_/src/TestUtils/src/UITest.NUnit/UITestBase.cs:line 45
--TearDown
at UITest.Appium.NUnit.UITestBase.UITestBaseTearDown() in /_/src/TestUtils/src/UITest.NUnit/UITestBase.cs:line 159
at UITest.Appium.NUnit.UITestBase.TestTearDown() in /_/src/TestUtils/src/UITest.NUnit/UITestBase.cs:line 45
1) at UITest.Appium.NUnit.UITestBase.UITestBaseTearDown() in /_/src/TestUtils/src/UITest.NUnit/UITestBase.cs:line 159
at UITest.Appium.NUnit.UITestBase.TestTearDown() in /_/src/TestUtils/src/UITest.NUnit/UITestBase.cs:line 45
📎 Download drop-deep-uitests artifact (TRX + snapshot diffs)
🔍 Pre-Flight — Context & Validation
Issue: #19668 - BoxView inside Border not sized properly
PR: #28465 - [Windows] Fixed BoxView improper rendering inside Border
Platforms Affected: Windows
Files Changed: 2 implementation, 1 public API, 1 device test, 2 snapshots, plus unrelated CI/review workflow files
Key Findings
- The functional fix targets
src/Core/src/Platform/Windows/ContentPanel.cs; the PR branch currently caps Border measured size duringMeasureOverrideand usesLayoutInformation.GetLayoutSlot(Content)for clip offset. - The PR description is stale: it describes subtracting stroke thickness in
ArrangeOverride, but the actual implementation is a measure-time explicit-size cap. - Gate already failed and was not rerun: the Border device test build succeeded but testhost aborted with
FileNotFoundExceptionforMicrosoft.TestPlatform.CoreUtilities; WebViewFeatureTests failed aHybridWebViewWithShadowsnapshot both without and with the fix. - Impacted UI category:
Border(direct), with broader Windows visual/layout risk for Border-hosted content.
Code Review Summary
Verdict: NEEDS_CHANGES
Confidence: medium
Errors: 1 | Warnings: 2 | Suggestions: 1
Key code review findings:
- Required checks are currently blocked by merge conflicts / unavailable required CI for the reviewed head.
src/Core/src/Platform/Windows/ContentPanel.cs:67Measure cap applies to all explicit-size Border content, not just BoxView.src/Core/src/Platform/Windows/ContentPanel.cs:245GetLayoutSlot(Content)is appropriate at arrange-time, butUpdateClipcan also run before layout.src/Controls/tests/DeviceTests/Elements/Border/BorderTests.Windows.cs:84Add non-BoxView coverage because the fix affects all Border content.
Fix Candidates
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| PR | PR #28465 | Windows ContentPanel.MeasureOverride caps Border measured size at explicit dimensions; clip offset uses layout slot. |
FAILED (Gate) | src/Core/src/Platform/Windows/ContentPanel.cs, src/Core/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt, src/Controls/tests/DeviceTests/Elements/Border/BorderTests.Windows.cs |
Gate failure appears partially environmental/unrelated, but candidate is not empirically passing. |
🔬 Code Review — Deep Analysis
Code Review PR #28465
Independent Assessment
What this changes: Windows ContentPanel caps Border measured size to explicit Width/Height, returns actual from arrange, and uses LayoutInformation.GetLayoutSlot(Content) for clip offset. Adds a Windows device test and updates two WinUI snapshots.
Inferred motivation: Prevent Border measurement from being inflated by child explicit size plus stroke inset, fixing BoxView-in-Border sizing/clipping on Windows.
Reconciliation with PR Narrative
Author claims: The PR says the fix subtracts stroke thickness in ArrangeOverride.
Agreement/disagreement: Motivation matches #19668, but implementation differs: the real fix is measure-time capping, so the PR description is stale.
Findings
Error Required checks are currently blocked by merge conflicts
Latest check runs for head 71d05cbaa267f078fd140b4ba5c88c5371d59e56 show maui-pr, maui-pr-devicetests, maui-pr-uitests, and maui-pr-reviewer as action_required: skipped due to merge conflicts. This cannot be LGTM until mergeable and CI runs.
Warning Measure cap has broader scope than BoxView
src/Core/src/Platform/Windows/ContentPanel.cs:67
The cap applies to any explicit-size Border content. Two snapshot baselines changed too, so those visual changes should be confirmed intentional.
Warning Clip offset lifecycle could use clarification
src/Core/src/Platform/Windows/ContentPanel.cs:245
GetLayoutSlot(Content) is appropriate at arrange-time, but UpdateClip can run before layout via UpdateBorder. A comment noting initial zero-slot behavior would help.
Suggestion Add non-BoxView coverage
src/Controls/tests/DeviceTests/Elements/Border/BorderTests.Windows.cs:84
The test covers BoxView; consider adding a non-BoxView child case since the fix affects all Border content.
Devil's Advocate
The code approach looks sound and shrink-only. The snapshot concern is a sign-off gap, not proof of regression. Runtime validation remains incomplete because required CI is blocked.
Verdict: NEEDS_CHANGES
Confidence: medium
Summary: Code fix appears plausible, but merge conflicts block required CI. Review files written under CustomAgentLogsTmp/PRState/28465/PRAgent; no GitHub comments posted.
🔧 Fix — Analysis & Comparison
Fix Candidates
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| 1 | maui-expert-reviewer | Move explicit-size clamp from Windows ContentPanel.MeasureOverride into Border.CrossPlatformMeasure. |
BLOCKED | src/Controls/src/Core/Border/Border.cs, remove PR ContentPanel.MeasureOverride |
Cleaner semantic location, but cross-platform blast radius is larger than PR. |
| 2 | maui-expert-reviewer | Change shared LayoutExtensions.MeasureContent to cap explicit IContentView outer size after inset. |
BLOCKED | src/Core/src/Layouts/LayoutExtensions.cs, remove PR ContentPanel.MeasureOverride |
Addresses root helper but affects all IContentView consumers; high regression risk. |
| 3 | maui-expert-reviewer | Windows arrange/clip-only fix using final arrange slot; no measurement cap. | FAIL (design review) | src/Core/src/Platform/Windows/ContentPanel.cs |
Does not fix desired-size inflation, only visual arrangement/clipping. |
| PR | PR #28465 | Windows ContentPanel.MeasureOverride caps explicit Border size; clip offset uses LayoutInformation.GetLayoutSlot. |
FAILED (Gate) | src/Core/src/Platform/Windows/ContentPanel.cs, tests/API |
Gate failed, but failures include testhost assembly blocker and unrelated WebView snapshot failure. |
Cross-Pollination
| Model/Reviewer | Round | New Ideas? | Details |
|---|---|---|---|
| maui-expert-reviewer | 1 | Yes | Proposed the three meaningful buckets above: Border-layer clamp, shared measure helper clamp, arrange/clip-only Windows fix. |
| maui-expert-reviewer | 2 | No | After feeding back gate failures, reviewer reported no genuinely new non-trivial idea. A fourth idea would alter Windows explicit-size behavior broadly and risk regressions. |
Gate/Test Evidence Used
- Existing gate was not rerun per instruction.
- Targeted Border device test did not reach assertions: testhost aborted with
FileNotFoundExceptionforMicrosoft.TestPlatform.CoreUtilities. - WebView regression bucket failed
HybridWebViewWithShadowsnapshot with 0.62% difference both without and with the fix, so it is not useful for distinguishing these Border candidates.
Exhausted: Yes the remaining ideas are trivial variations of the three buckets or broader Windows explicit-size behavior changes with higher risk.
Selected Fix: PR's current Windows-local measurement cap remains the least risky candidate, but no candidate passed all tests. None is demonstrably better under the available evidence.
📋 Report — Final Recommendation
Comparative Report - PR #28465
Test evidence constraint
The supplied gate result is failed and was not rerun. The targeted Border test did not reach assertions because the testhost failed to load Microsoft.TestPlatform.CoreUtilities; the WebView snapshot failure reproduced both without and with the fix, so it does not distinguish these Border candidates. No candidate has a clean passing regression result in the available evidence.
Candidates that failed regression testing are ranked below any candidate that passed. Because none passed, the final ranking is based on correctness, blast radius, and whether the candidate improves regression coverage.
Candidate comparison
| Rank | Candidate | Result | Assessment |
|---|---|---|---|
| 1 | pr-plus-reviewer |
Gate failed/blocked; not rerun | Best available candidate. Keeps the Windows-local measurement cap from the PR, which is the least risky functional fix, and applies expert feedback by making the regression test match the original stroke-inset explicit-size repro. |
| 2 | pr |
Gate failed/blocked; not rerun | Functionally preferable to the try-fix alternatives because it is Windows-local and directly corrects desired-size inflation. Ranked below pr-plus-reviewer because its test exercises oversized content rather than the original same-size BoxView + Border stroke scenario. |
| 3 | try-fix-1 |
Blocked/not passing | Moves the cap into Border.CrossPlatformMeasure. This is semantically clean but changes Border measurement cross-platform, creating a larger regression surface than the Windows-only PR. |
| 4 | try-fix-2 |
Blocked/not passing | Changes shared LayoutExtensions.MeasureContent, which addresses a root helper but affects every IContentView consumer. The blast radius is too broad without a passing cross-platform layout matrix. |
| 5 | try-fix-3 |
Failed design review | Arrange/clip-only fix can hide a visual symptom but leaves desired-size inflation intact, so parents can still allocate an oversized slot. |
Winning candidate
Winner: pr-plus-reviewer.
Rationale: It preserves the PR's focused Windows-only measurement correction, avoids the broader cross-platform behavior changes in try-fix-1 and try-fix-2, and fixes the expert reviewer's main actionable issue by aligning the regression test with issue #19668. Although the gate is failed/blocked for all available candidates, no try-fix candidate has better empirical evidence or a safer design.
kubaflo
left a comment
There was a problem hiding this comment.
Can you resolve conflicts?
|
Reviewed and validated the AI summary findings, and addressed the concern. |
### Issue Details: Placing a BoxView inside a Border results in incorrect sizing. ### Root Cause On Windows, when content inside a Border has the same or larger explicit size than the Border itself, the WinUI AdjustForExplicitSize logic expands the content's measured size back to its requested dimensions, even after the available size has been reduced to account for the border stroke. This causes MeasureContent to return a desired size larger than the Border by StrokeThickness * 2, resulting in the parent layout allocating an oversized layout slot. Consequently, the right and bottom border strokes can be clipped during rendering. ### Description of Change Override MeasureOverride in the Windows ContentPanel to constrain the reported desired size to the Border's explicit Width and Height when both values are set. This ensures the correct desired size is returned to the parent layout, allowing the Border to receive the intended layout slot size while preserving the existing ArrangeOverride and clipping behavior. ### Validated the behaviour in the following platforms - [x] Android - [x] Windows - [x] iOS - [x] Mac ### Issues Fixed: Fixes #19668 ### Screenshots | Before | After | |---------|--------| | <img src="https://github.com/user-attachments/assets/b81f0982-e3c2-40d9-ab8b-0b1d743fa99a"> | <img src="https://github.com/user-attachments/assets/f45e3ebf-e48c-48dd-9c39-42c5413c9268"> |
Issue Details:
Placing a BoxView inside a Border results in incorrect sizing.
Root Cause
On Windows, when content inside a Border has the same or larger explicit size than the Border itself, the WinUI AdjustForExplicitSize logic expands the content's measured size back to its requested dimensions, even after the available size has been reduced to account for the border stroke. This causes MeasureContent to return a desired size larger than the Border by StrokeThickness * 2, resulting in the parent layout allocating an oversized layout slot. Consequently, the right and bottom border strokes can be clipped during rendering.
Description of Change
Override MeasureOverride in the Windows ContentPanel to constrain the reported desired size to the Border's explicit Width and Height when both values are set. This ensures the correct desired size is returned to the parent layout, allowing the Border to receive the intended layout slot size while preserving the existing ArrangeOverride and clipping behavior.
Validated the behaviour in the following platforms
Issues Fixed:
Fixes #19668
Screenshots