Fix OnNavigatedTo not firing after PopModalAsync when tab is changed inside modal#35803
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 35803Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 35803" |
|
/review -b feature/enhanced-reviewer |
1 similar comment
|
/review -b feature/enhanced-reviewer |
|
/review -b feature/enhanced-reviewer |
|
/review rerun |
|
/review rerun |
|
/review -b feature/enhanced-reviewer |
MauiBot
left a comment
There was a problem hiding this comment.
AI Review Summary
@praveenkumarkarunanithi — new AI review results are available based on this last commit:
10cb3ca.
fix and test update To request a fresh review after new comments or commits, comment/review rerun.
Review Sessions — click to expand
Gate — Test Before & After Fix
Gate Result: ✅ PASSED
Platform: IOS · Base: main · Merge base: dd5b6d2e
| Test | Without Fix (expect FAIL) | With Fix (expect PASS) |
|---|---|---|
🖥️ Issue35756 Issue35756 |
✅ FAIL — 287s | ✅ PASS — 114s |
🔴 Without fix — 🖥️ Issue35756: FAIL ✅ · 287s
Determining projects to restore...
Restored /Users/cloudtest/vss/_work/1/s/src/Graphics/src/Graphics/Graphics.csproj (in 554 ms).
Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/BindingSourceGen/Controls.BindingSourceGen.csproj (in 550 ms).
Restored /Users/cloudtest/vss/_work/1/s/src/Essentials/src/Essentials.csproj (in 5.81 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/Controls/Foldable/src/Controls.Foldable.csproj (in 7.93 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/Core/maps/src/Maps.csproj (in 7.93 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj (in 7.94 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/BlazorWebView/src/Maui/Microsoft.AspNetCore.Components.WebView.Maui.csproj (in 7.95 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/Controls/Maps/src/Controls.Maps.csproj (in 7.94 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/Core/Controls.Core.csproj (in 7.95 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/Core/src/Core.csproj (in 7.96 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/Xaml/Controls.Xaml.csproj (in 7.96 sec).
/Users/cloudtest/vss/_work/1/s/.dotnet/packs/Microsoft.iOS.Sdk.net10.0_26.0/26.0.11017/targets/Xamarin.Shared.Sdk.targets(309,3): warning : RuntimeIdentifier was set on the command line, and will override the value for RuntimeIdentifiers set in the project file. [/Users/cloudtest/vss/_work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-ios]
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Graphics -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Graphics/Debug/net10.0-ios26.0/Microsoft.Maui.Graphics.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Essentials -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Essentials/Debug/net10.0-ios26.0/Microsoft.Maui.Essentials.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Core/Debug/net10.0-ios26.0/Microsoft.Maui.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Maps -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Maps/Debug/net10.0-ios26.0/Microsoft.Maui.Maps.dll
Controls.BindingSourceGen -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.BindingSourceGen/Debug/netstandard2.0/Microsoft.Maui.Controls.BindingSourceGen.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Controls.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Core/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Controls.Maps -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Maps/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.Maps.dll
Microsoft.AspNetCore.Components.WebView.Maui -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Microsoft.AspNetCore.Components.WebView.Maui/Debug/net10.0-ios26.0/Microsoft.AspNetCore.Components.WebView.Maui.dll
Controls.Xaml -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Xaml/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.Xaml.dll
Controls.Foldable -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Foldable/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.Foldable.dll
Detected signing identity:
Code Signing Key: "" (-)
Provisioning Profile: "" () - no entitlements
Bundle Id: com.microsoft.maui.uitests
App Id: com.microsoft.maui.uitests
Controls.TestCases.HostApp -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.HostApp/Debug/net10.0-ios/iossimulator-arm64/Controls.TestCases.HostApp.dll
Optimizing assemblies for size may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
Optimizing assemblies for size. This process might take a while.
Build succeeded.
/Users/cloudtest/vss/_work/1/s/.dotnet/packs/Microsoft.iOS.Sdk.net10.0_26.0/26.0.11017/targets/Xamarin.Shared.Sdk.targets(309,3): warning : RuntimeIdentifier was set on the command line, and will override the value for RuntimeIdentifiers set in the project file. [/Users/cloudtest/vss/_work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-ios]
1 Warning(s)
0 Error(s)
Time Elapsed 00:02:33.62
Determining projects to restore...
Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/UITest.Core/UITest.Core.csproj (in 767 ms).
Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/VisualTestUtils/VisualTestUtils.csproj (in 767 ms).
Restored /Users/cloudtest/vss/_work/1/s/src/Controls/tests/CustomAttributes/Controls.CustomAttributes.csproj (in 5 ms).
Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/BindingSourceGen/Controls.BindingSourceGen.csproj (in 828 ms).
Restored /Users/cloudtest/vss/_work/1/s/src/Graphics/src/Graphics/Graphics.csproj (in 1.25 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/Essentials/src/Essentials.csproj (in 1.27 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/UITest.NUnit/UITest.NUnit.csproj (in 1.34 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/Core/src/Core.csproj (in 1.35 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/Core/Controls.Core.csproj (in 1.37 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/UITest.Appium/UITest.Appium.csproj (in 2.03 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/UITest.Analyzers/UITest.Analyzers.csproj (in 2.43 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/TestUtils/src/VisualTestUtils.MagickNet/VisualTestUtils.MagickNet.csproj (in 2.41 sec).
Restored /Users/cloudtest/vss/_work/1/s/src/Controls/tests/TestCases.iOS.Tests/Controls.TestCases.iOS.Tests.csproj (in 3.24 sec).
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Controls.CustomAttributes -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.CustomAttributes/Debug/net10.0/Controls.CustomAttributes.dll
Graphics -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Graphics/Debug/net10.0/Microsoft.Maui.Graphics.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Essentials -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Essentials/Debug/net10.0/Microsoft.Maui.Essentials.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Core/Debug/net10.0/Microsoft.Maui.dll
Controls.BindingSourceGen -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.BindingSourceGen/Debug/netstandard2.0/Microsoft.Maui.Controls.BindingSourceGen.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Controls.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Core/Debug/net10.0/Microsoft.Maui.Controls.dll
UITest.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Core/Debug/net10.0/UITest.Core.dll
VisualTestUtils -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/VisualTestUtils/Debug/netstandard2.0/VisualTestUtils.dll
UITest.NUnit -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.NUnit/Debug/net10.0/UITest.NUnit.dll
UITest.Appium -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Appium/Debug/net10.0/UITest.Appium.dll
VisualTestUtils.MagickNet -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/VisualTestUtils.MagickNet/Debug/netstandard2.0/VisualTestUtils.MagickNet.dll
UITest.Analyzers -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Analyzers/Debug/netstandard2.0/UITest.Analyzers.dll
Controls.TestCases.iOS.Tests -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll
Test run for /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (arm64)
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
[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.06] Discovering: Controls.TestCases.iOS.Tests
[xUnit.net 00:00:00.19] Discovered: Controls.TestCases.iOS.Tests
NUnit Adapter 4.5.0.0: Test execution started
Running selected tests in /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll
NUnit3TestExecutor discovered 1 of 1 NUnit test cases using Current Discovery mode, Non-Explicit run
>>>>> 6/11/2026 6:54:06 AM FixtureSetup for Issue35756(iOS)
>>>>> 6/11/2026 6:54:11 AM OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal Start
>>>>> 6/11/2026 6:54:16 AM OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal Stop
>>>>> 6/11/2026 6:54:16 AM Log types: syslog, crashlog, performance, safariConsole, safariNetwork, server
Failed OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal [5 s]
Error Message:
Assert.That(App.WaitForElement("Tab1NavigatedToCount").GetText(), Is.EqualTo("NavigatedTo count: 3"))
String lengths are both 20. Strings differ at index 19.
Expected: "NavigatedTo count: 3"
But was: "NavigatedTo count: 2"
------------------------------^
Stack Trace:
at Microsoft.Maui.TestCases.Tests.Issues.Issue35756.OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue35756.cs:line 30
1) at Microsoft.Maui.TestCases.Tests.Issues.Issue35756.OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue35756.cs:line 30
NUnit Adapter 4.5.0.0: Test execution complete
Results File: /Users/cloudtest/vss/_work/1/s/CustomAgentLogsTmp/UITests/TestResults/Issue35756.trx
Total tests: 1
Failed: 1
Test Run Failed.
Total time: 1.3939 Minutes
>>> TRX_RESULT_FILE: /Users/cloudtest/vss/_work/1/s/CustomAgentLogsTmp/UITests/TestResults/Issue35756.trx
🟢 With fix — 🖥️ Issue35756: PASS ✅ · 114s
Determining projects to restore...
Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/BindingSourceGen/Controls.BindingSourceGen.csproj (in 447 ms).
Restored /Users/cloudtest/vss/_work/1/s/src/Graphics/src/Graphics/Graphics.csproj (in 466 ms).
Restored /Users/cloudtest/vss/_work/1/s/src/Essentials/src/Essentials.csproj (in 469 ms).
Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/Core/Controls.Core.csproj (in 516 ms).
Restored /Users/cloudtest/vss/_work/1/s/src/Core/src/Core.csproj (in 532 ms).
6 of 11 projects are up-to-date for restore.
/Users/cloudtest/vss/_work/1/s/.dotnet/packs/Microsoft.iOS.Sdk.net10.0_26.0/26.0.11017/targets/Xamarin.Shared.Sdk.targets(309,3): warning : RuntimeIdentifier was set on the command line, and will override the value for RuntimeIdentifiers set in the project file. [/Users/cloudtest/vss/_work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-ios]
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Graphics -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Graphics/Debug/net10.0-ios26.0/Microsoft.Maui.Graphics.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Essentials -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Essentials/Debug/net10.0-ios26.0/Microsoft.Maui.Essentials.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Core/Debug/net10.0-ios26.0/Microsoft.Maui.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Maps -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Maps/Debug/net10.0-ios26.0/Microsoft.Maui.Maps.dll
Controls.BindingSourceGen -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.BindingSourceGen/Debug/netstandard2.0/Microsoft.Maui.Controls.BindingSourceGen.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Controls.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Core/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Controls.Xaml -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Xaml/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.Xaml.dll
Microsoft.AspNetCore.Components.WebView.Maui -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Microsoft.AspNetCore.Components.WebView.Maui/Debug/net10.0-ios26.0/Microsoft.AspNetCore.Components.WebView.Maui.dll
Controls.Foldable -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Foldable/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.Foldable.dll
Controls.Maps -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Maps/Debug/net10.0-ios26.0/Microsoft.Maui.Controls.Maps.dll
Detected signing identity:
Code Signing Key: "" (-)
Provisioning Profile: "" () - no entitlements
Bundle Id: com.microsoft.maui.uitests
App Id: com.microsoft.maui.uitests
Controls.TestCases.HostApp -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.HostApp/Debug/net10.0-ios/iossimulator-arm64/Controls.TestCases.HostApp.dll
Optimizing assemblies for size may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
Optimizing assemblies for size. This process might take a while.
Build succeeded.
/Users/cloudtest/vss/_work/1/s/.dotnet/packs/Microsoft.iOS.Sdk.net10.0_26.0/26.0.11017/targets/Xamarin.Shared.Sdk.targets(309,3): warning : RuntimeIdentifier was set on the command line, and will override the value for RuntimeIdentifiers set in the project file. [/Users/cloudtest/vss/_work/1/s/src/Controls/tests/TestCases.HostApp/Controls.TestCases.HostApp.csproj::TargetFramework=net10.0-ios]
1 Warning(s)
0 Error(s)
Time Elapsed 00:00:56.80
Determining projects to restore...
Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/BindingSourceGen/Controls.BindingSourceGen.csproj (in 541 ms).
Restored /Users/cloudtest/vss/_work/1/s/src/Essentials/src/Essentials.csproj (in 540 ms).
Restored /Users/cloudtest/vss/_work/1/s/src/Graphics/src/Graphics/Graphics.csproj (in 537 ms).
Restored /Users/cloudtest/vss/_work/1/s/src/Core/src/Core.csproj (in 517 ms).
Restored /Users/cloudtest/vss/_work/1/s/src/Controls/src/Core/Controls.Core.csproj (in 585 ms).
8 of 13 projects are up-to-date for restore.
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Controls.CustomAttributes -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.CustomAttributes/Debug/net10.0/Controls.CustomAttributes.dll
Graphics -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Graphics/Debug/net10.0/Microsoft.Maui.Graphics.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Essentials -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Essentials/Debug/net10.0/Microsoft.Maui.Essentials.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Core/Debug/net10.0/Microsoft.Maui.dll
Controls.BindingSourceGen -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.BindingSourceGen/Debug/netstandard2.0/Microsoft.Maui.Controls.BindingSourceGen.dll
##vso[build.updatebuildnumber]10.0.80-ci+azdo.14347528
Controls.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Core/Debug/net10.0/Microsoft.Maui.Controls.dll
UITest.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Core/Debug/net10.0/UITest.Core.dll
VisualTestUtils -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/VisualTestUtils/Debug/netstandard2.0/VisualTestUtils.dll
UITest.Appium -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Appium/Debug/net10.0/UITest.Appium.dll
VisualTestUtils.MagickNet -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/VisualTestUtils.MagickNet/Debug/netstandard2.0/VisualTestUtils.MagickNet.dll
UITest.NUnit -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.NUnit/Debug/net10.0/UITest.NUnit.dll
UITest.Analyzers -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Analyzers/Debug/netstandard2.0/UITest.Analyzers.dll
Controls.TestCases.iOS.Tests -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll
Test run for /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (arm64)
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
[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.05] Discovering: Controls.TestCases.iOS.Tests
[xUnit.net 00:00:00.18] Discovered: Controls.TestCases.iOS.Tests
NUnit Adapter 4.5.0.0: Test execution started
Running selected tests in /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll
NUnit3TestExecutor discovered 1 of 1 NUnit test cases using Current Discovery mode, Non-Explicit run
>>>>> 6/11/2026 6:56:02 AM FixtureSetup for Issue35756(iOS)
>>>>> 6/11/2026 6:56:06 AM OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal Start
>>>>> 6/11/2026 6:56:11 AM OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal Stop
Passed OnNavigatedToFiresAfterPopModalWhenTabChangedFromInsideModal [4 s]
NUnit Adapter 4.5.0.0: Test execution complete
Results File: /Users/cloudtest/vss/_work/1/s/CustomAgentLogsTmp/UITests/TestResults/Issue35756.trx
Test Run Successful.
Total tests: 1
Passed: 1
Total time: 26.3805 Seconds
>>> TRX_RESULT_FILE: /Users/cloudtest/vss/_work/1/s/CustomAgentLogsTmp/UITests/TestResults/Issue35756.trx
📁 Fix files reverted (2 files)
eng/pipelines/ci-copilot.ymlsrc/Controls/src/Core/Page/Page.cs
UI Tests — Page,TabbedPage
Detected UI test categories: Page,TabbedPage
❌ Deep UI tests — 43 passed, 28 failed across 2 categories on platform-pool agent (replaces in-process counts above).
🧪 UI Test Execution Results (deep, platform pool)
| Category | Tests | Snapshot diffs |
|---|---|---|
Page |
9/26 (17 ❌) | 17 diff PNGs |
TabbedPage |
34/50 (11 ❌) | 14 diff PNGs |
❌ Page — 17 failed tests
NavigationBarBackgroundShouldChange
System.InvalidOperationException :
Snapshot different than baseline: NavigationBarBackgroundShouldChangeLightTheme.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: NavigationBarBackgroundShouldChangeLightTheme.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the
...
ContentPage_Padding_WithBackgroundColor
System.InvalidOperationException : Unable to extract difference percentage from exception message.
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) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_Padding_WithBackgroundColor() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 76
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)
ContentPage_Title_WithBackgroundColorAndPadding
System.InvalidOperationException : Unable to extract difference percentage from exception message.
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) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_Title_WithBackgroundColorAndPadding() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 111
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)
ContentPage_IsVisible_WithoutTitle
System.InvalidOperationException : Unable to extract difference percentage from exception message.
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) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_IsVisible_WithoutTitle() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 61
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
ThemeUnspecifiedDoesNotAffectModalPageSheet
System.InvalidOperationException :
Snapshot different than baseline: ThemeUnspecifiedDoesNotAffectModalPageSheet.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: ThemeUnspecifiedDoesNotAffectModalPageSheet.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the base
...
ContentPage_zContent
System.InvalidOperationException : Unable to extract difference percentage from exception message.
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) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_zContent() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 30
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)
ContentPage_Background_WithRTL
System.InvalidOperationException : Unable to extract difference percentage from exception message.
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) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_Background_WithRTL() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 126
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
ContentPageBackgroundImageSourceWorks
System.InvalidOperationException :
Snapshot different than baseline: ContentPageBackgroundImageSourceWorks.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: ContentPageBackgroundImageSourceWorks.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
...
ContentPage_Padding_WithRTL
System.InvalidOperationException : Unable to extract difference percentage from exception message.
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) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_Padding_WithRTL() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 141
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)
ContentPage_HideSoftinput_WithPaddingAndBackground
System.InvalidOperationException :
Snapshot different than baseline: ContentPage_HideSoftinput_WithPaddingAndBackground.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: ContentPage_HideSoftinput_WithPaddingAndBackground.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a bug), then u
...
ContentPage_IsVisible_WithTitle
System.InvalidOperationException : Unable to extract difference percentage from exception message.
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) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_IsVisible_WithTitle() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 45
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)
ContentPage_HideSoftinput_WithRTLAndPadding
System.InvalidOperationException :
Snapshot different than baseline: ContentPage_HideSoftinput_WithRTLAndPadding.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: ContentPage_HideSoftinput_WithRTLAndPadding.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a bug), then update the base
...
Issue23674Test
System.InvalidOperationException :
Snapshot different than baseline: Issue23674Test.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: Issue23674Test.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build arti
...
TitleViewShouldBeVisible
System.InvalidOperationException :
Snapshot different than baseline: TitleViewShouldBeVisible.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: TitleViewShouldBeVisible.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or dow
...
ContentPage_Title_WithBackgroundColor
System.InvalidOperationException : Unable to extract difference percentage from exception message.
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) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_Title_WithBackgroundColor() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 92
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)
ContentPage_Title_WithPaddingAndHideSoftInput
System.InvalidOperationException :
Snapshot different than baseline: ContentPage_Title_WithPaddingAndHideSoftInput.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: ContentPage_Title_WithPaddingAndHideSoftInput.png (size differs - baseline is 1124x1126 pixels, actual is 1206x1312 pixels)
If the correct baseline has changed (this isn't a a bug), then update the
...
ContentPage_Padding_WithTitle
System.InvalidOperationException : Unable to extract difference percentage from exception message.
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) in /_/src/Controls/tests/TestCases.Shared.Tests/UITest.cs:line 296
at Microsoft.Maui.TestCases.Tests.ContentPageFeatureTests.ContentPage_Padding_WithTitle() in /_/src/Controls/tests/TestCases.Shared.Tests/Tests/FeatureMatrix/ContentPageFeatureTests.cs:line 157
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)
❌ TabbedPage — 11 failed tests
VerifyTabbedPageDoesNotHaveMultipleTabsSelected
System.InvalidOperationException :
Snapshot different than baseline: VerifyTabbedPageDoesNotHaveMultipleTabsSelected.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: VerifyTabbedPageDoesNotHaveMultipleTabsSelected.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update
...
TabbedPageFlowDirectionUpdatesOnRuntimeChange
System.InvalidOperationException :
Snapshot different than baseline: TabbedPageFlowDirection_DefaultRightToLeftLayout.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: TabbedPageFlowDirection_DefaultRightToLeftLayout.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then updat
...
DynamicFontImageSourceColorShouldApplyOnTabIcon
System.InvalidOperationException :
Snapshot different than baseline: DynamicFontImageSourceColorShouldApplyOnTabIcon.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: DynamicFontImageSourceColorShouldApplyOnTabIcon.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update
...
NavigationBarLayoutWithMixedHasNavigationBar
System.InvalidOperationException :
Snapshot different than baseline: NavigationBarLayoutWithMixedHasNavigationBar.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: NavigationBarLayoutWithMixedHasNavigationBar.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the ba
...
GradientInTabBarShouldChange
System.InvalidOperationException :
Snapshot different than baseline: GradientInTabBarShouldChange.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: GradientInTabBarShouldChange.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachmen
...
Issue12324TabbedPageVisualTest
System.InvalidOperationException :
Snapshot different than baseline: Issue12324TabbedPageVisualTest.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: Issue12324TabbedPageVisualTest.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attac
...
UpdatedSelectionIndicatorProperly
System.InvalidOperationException :
Snapshot different than baseline: UpdatedSelectionIndicatorProperly.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: UpdatedSelectionIndicatorProperly.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test
...
Issue22899Test
System.InvalidOperationException :
Snapshot different than baseline: Issue22899Test.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: Issue22899Test.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment or download the build arti
...
TabBarIconsShouldAutoscaleTabbedPage
System.InvalidOperationException :
Snapshot different than baseline: TabBarIconsShouldAutoscaleTabbedPage.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: TabBarIconsShouldAutoscaleTabbedPage.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
Se
...
FontImageSourceColorShouldApplyOnTabIcon
System.InvalidOperationException :
Snapshot different than baseline: FontImageSourceColorShouldApplyOnTabIcon.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: FontImageSourceColorShouldApplyOnTabIcon.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline i
...
TabbedPageBackButtonUpdated
System.InvalidOperationException :
Snapshot different than baseline: TabbedPageBackButtonUpdated.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
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
iOS 26 visual tests require an iPhone 11 Pro simulator for correct screen resolution.
To create the simulator, run:
xcrun simctl create "iPhone 11 Pro" com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro com.apple.CoreSimulator.SimRuntime.iOS-26-0
Then run the tests targeting the new simulator.
----> VisualTestUtils.VisualTestFailedException :
Snapshot different than baseline: TabbedPageBackButtonUpdated.png (size differs - baseline is 1124x2286 pixels, actual is 1206x2472 pixels)
If the correct baseline has changed (this isn't a a bug), then update the baseline image.
See test attachment
...
📎 Download drop-deep-uitests artifact (TRX + snapshot diffs)
Pre-Flight — Context & Validation
Issue: #35756 - Changing TabbedPage.CurrentPage from modal page no longer fires OnNavigatedTo on PopModalAsync
PR: #35803 - Fix OnNavigatedTo not firing after PopModalAsync when tab is changed inside modal
Platforms Affected: iOS, Android reported; PR labeled iOS/Android/Windows/macOS; iOS used for gate and candidate testing
Files Changed: 1 implementation, 2 test
Key Findings
- Issue #35756 is a regression from 10.0.60 to 10.0.70: after changing
TabbedPage.CurrentPagefrom inside a modal,PopModalAsyncshould fireOnNavigatedToagain for the returned-to tab, producing count 3 instead of count 2. - PR #35803 changes
Page.SendNavigatedToso a container's current child page can receive aPopnavigated-to event even if a prior tab switch inside a modal left the child'sHasNavigatedToflag set. - Gate already passed on iOS: the new
Issue35756UI test fails without the fix and passes with the fix. - PR discussion through authenticated
ghcould not be fetched, but public API metadata, local diff, and generated gate artifacts were available.
Code Review Summary
Verdict: LGTM
Confidence: high
Errors: 0 | Warnings: 0 | Suggestions: 2
Key code review findings:
- Suggestion:
src/Controls/src/Core/Page/Page.cs:856comment about whyPopToRootis excluded is slightly imprecise, but behavior is correct. - Suggestion:
src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue35756.cscould optionally add a no-tab-switch regression assertion to prove the original duplicate-navigation guard remains intact.
Fix Candidates
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| PR | PR #35803 | Reset the container child page's HasNavigatedTo flag before cascading NavigationType.Pop from Page.SendNavigatedTo. |
PASS (Gate) | src/Controls/src/Core/Page/Page.cs |
Original PR fix; UI test fails without it and passes with it. |
Code Review — Deep Analysis
Code Review — PR #35803
Independent Assessment
What this changes: Page.SendNavigatedTo now explicitly resets a container child page's HasNavigatedTo flag to false before cascading a Pop navigation event into it. The cascade logic is otherwise identical to the pre-existing code.
Inferred motivation: The HasNavigatedTo guard that prevents duplicate OnNavigatedTo events can be spuriously set to true on a tab-child page before the modal closes, because a tab switch from inside a modal fires SendNavigatedTo(Replace) directly on the child — bypassing the SendNavigatedFrom call that would have cleared the flag. When the modal is later dismissed, the guard silently swallows the OnNavigatedTo for the returning page.
Reconciliation with PR Narrative
Author claims: The regression was introduced by PR #31931 (fix for #23902). That PR added the HasNavigatedTo guard to prevent duplicate OnNavigatedTo. The tab-switch-inside-modal scenario exposes a gap: SendNavigatedFrom is only called on the modal, not on the TabbedPage's children, so their HasNavigatedTo is never reset before the Pop cascade.
Agreement: The analysis precisely matches the code. The fix is narrowly scoped and does not weaken the original guard introduced for #23902.
Findings
💡 Suggestion — Comment about PopToRoot exclusion is slightly imprecise
Page.cs:856
// PopToRoot is excluded: SendNavigatedFrom already resets all flags before PopToRoot cascades.This reasoning is partially inaccurate. For PopToRoot within a NavigationPage, SendNavigatedFrom is only called on the top-of-stack page (previousPage), not on the root TabbedPage's children directly. The reason PopToRoot doesn't need the reset is different: when you push away from a TabbedPage to start building a nav stack, SendNavigatedFrom(Push) cascades through the TabbedPage to its CurrentPage, resetting HasNavigatedTo at that point. By the time PopToRoot fires, the child flag is already false — not because PopToRoot's own SendNavigatedFrom resets it, but because the earlier Push already did. The comment could mislead future readers.
Not a correctness bug — the behavior is correct. Just a comment to revisit.
💡 Suggestion — Test missing a "no regression" assertion for the non-tab-switch flow
TestCases.Shared.Tests/Tests/Issues/Issue35756.cs
The test verifies the fix scenario (count=3 after pop). It doesn't assert that OnNavigatedTo doesn't over-fire in a normal pop (no tab switch). A count of 3 is the right number here, but a second test method could validate that popping a modal without switching tabs still yields count=2 (initial + pop), confirming the original HasNavigatedTo guard still holds. This is optional — UI test bloat is a real concern — but it would prevent a future regression that removes the guard entirely.
Devil's Advocate
"Is the Pop reset too broad?" — Considered: this also fires for NavigationPage.CurrentPage when a modal is popped over a NavigationPage. But NavigationPage.CurrentPage.HasNavigatedTo is false at that point (it was reset by SendNavigatedFrom(Push) when the modal was pushed), so the explicit reset is a no-op.
"Could the tab-switch Navigate Replace fire a count increment unexpectedly?" — The test expects count=3: initial(1), Replace from tab-switch-inside-modal(2), Pop from dismiss(3). This is intentional and correct — the Replace fires SendNavigatedTo directly on Tab1 from MultiPage.cs:107, which is the designed behavior for page switching. The fix ensures the Pop also fires, which is the bug being fixed.
"Is Shell affected?" — Shell implements IPageContainer<Page>, so the cascade applies to it too. When a modal is popped over Shell, the SendNavigatedFrom(Push) cascade at modal-push time already clears Shell.CurrentPage.HasNavigatedTo, making the new reset a no-op. No regression risk.
"Could count be 4 if something fires twice?" — The HasNavigatedTo guard on this (TabbedPage) prevents TabbedPage from re-firing. The child's guard is reset then immediately set again via containerChild.SendNavigatedTo, and that call respects the guard for any of the child's own children. No double-fire path.
Verdict: LGTM
Confidence: high
Summary: The fix is a minimal, correctly-scoped change that addresses the exact gap in the HasNavigatedTo guard. The HostApp reproducer and UI test accurately cover the bug scenario with the right expected value. The two suggestions above are optional polish items, not blockers.
Fix — Analysis & Comparison
Fix Candidates
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| 1 | try-fix | Let NavigationType.Pop bypass the HasNavigatedTo duplicate-event guard in Page.SendNavigatedTo. |
✅ PASS | 1 file | Passed Issue35756, but broader than PR because it changes all Pop guard semantics and risks reintroducing duplicate Pop notifications fixed by #23902. |
| 2 | try-fix | Clear selected child navigation state from MultiPage.CurrentPage when the container itself is inactive under a modal. |
✅ PASS | 2 files | Passed Issue35756, but more invasive than PR because it adds an internal helper and changes MultiPage replacement semantics globally. |
| PR | PR #35803 | Reset only the cascaded container child before NavigationType.Pop in Page.SendNavigatedTo. |
✅ PASSED (Gate) | 1 file | Narrowest passing fix; preserves Replace semantics and original duplicate guard behavior outside the stale child Pop cascade. |
Cross-Pollination
| Model | Round | New Ideas? | Details |
|---|---|---|---|
| maui-expert-reviewer | 2 | No | Considered a prevention approach that would skip MultiPage.CurrentPage Replace SendNavigatedTo while the container is inactive. Rejected as not worth testing because it changes observable Replace behavior for tabs while a modal is open and is therefore broader than the PR. |
Exhausted: Yes
Selected Fix: PR's fix — It is the narrowest validated solution: it acts only where stale state causes harm, only for NavigationType.Pop, only for the current child cascade, and does not alter normal Replace or all-Pop event semantics.
Attempt Details
try-fix-1 — Pop bypasses guard
- Approach: Change
if (HasNavigatedTo)toif (HasNavigatedTo && args.NavigationType != NavigationType.Pop)inPage.SendNavigatedTo. - Diff:
CustomAgentLogsTmp/PRState/35803/PRAgent/try-fix/attempt-1/fix.diff - Test result: ✅ PASS,
BuildAndRunHostApp.ps1 -Platform ios -TestFilter "Issue35756" - Failure analysis: Not failed, but rejected because it weakens duplicate-event protection for every Pop path rather than only the stale child cascade.
try-fix-2 — Clear inactive MultiPage child state
- Approach: Add
Page.ClearHasNavigatedTo()and call it afterMultiPage.CurrentPagesends ReplaceNavigatedTowhen theMultiPageitself is not navigated-to. - Diff:
CustomAgentLogsTmp/PRState/35803/PRAgent/try-fix/attempt-2/fix.diff - Test result: ✅ PASS,
BuildAndRunHostApp.ps1 -Platform ios -TestFilter "Issue35756" - Failure analysis: Not failed, but rejected because it expands the changed surface to
MultiPageplus an internal helper and changes inactive tab replacement state globally.
Report — Final Recommendation
Comparative Report — PR #35803
Candidate Ranking
| Rank | Candidate | Regression result | Assessment |
|---|---|---|---|
| 1 | pr |
✅ Passed iOS gate | Narrowest validated fix. It clears only the stale current-child HasNavigatedTo state immediately before a container cascades NavigationType.Pop, preserving the duplicate-event guard and normal tab replacement semantics elsewhere. |
| 1 | pr-plus-reviewer |
✅ Same as pr |
Expert reviewer returned no actionable findings, so this candidate is behaviorally identical to pr; it ties with pr but does not improve on it. |
| 3 | try-fix-2 |
✅ Passed targeted iOS test | Fixes the stale state earlier by clearing selected child state after inactive MultiPage.CurrentPage replacement. This is broader than the PR because it adds a helper and changes inactive MultiPage replacement state globally. |
| 4 | try-fix-1 |
✅ Passed targeted iOS test | Allows every NavigationType.Pop to bypass the duplicate HasNavigatedTo guard. This is the broadest passing approach and risks reintroducing duplicate Pop notifications that the guard was intended to prevent. |
No candidate failed regression tests, so ranking is based on correctness risk and scope.
Candidate Details
pr
The submitted PR resets the current child page's HasNavigatedTo flag only when a container is cascading a NavigationType.Pop. This directly addresses the stale flag created when a tab is selected while a modal is open, allowing the pop-return notification to reach the selected tab. It leaves Replace, Push, and ordinary duplicate OnNavigatedTo suppression unchanged.
pr-plus-reviewer
The MAUI expert reviewer found no actionable inline findings, and the raw findings artifact is an empty array. Because no feedback needed to be applied, this candidate is the same implementation as pr.
try-fix-2
This candidate clears selected child navigation state from MultiPage.CurrentPage when the MultiPage itself is inactive. It passed the targeted iOS regression, but it changes a broader lifecycle point and introduces new internal API surface solely to manage the state transition.
try-fix-1
This candidate bypasses the HasNavigatedTo duplicate guard for all Pop navigation. It passed the targeted iOS regression, but it changes the meaning of Pop delivery globally rather than only repairing the stale child cascade that causes this issue.
Winner
pr is the winning candidate. pr-plus-reviewer is equivalent because the expert reviewer had no changes to apply, but the canonical submitted PR candidate is preferred for the manifest because it is the unchanged PR fix. It has the best risk profile among all passing candidates: targeted, minimal, and backed by the gate result showing the regression fails without the fix and passes with it.
Future Action — review latest findings
No alternative fix was selected for this run. Review the session findings and CI results before merging.
Hoists regression-fix PRs that are in flight (open against main or as
backports targeting the SR) into a prominent section right under the
Blocking summary — these were previously buried in Tier 2 of the
detailed regression breakdown.
Captures two classifications:
- open-on-main: fix PR is OPEN against main awaiting merge
(next action: watch for merge → open backport)
- backport-in-progress: fix PR already merged, open backport targets SR
(next action: land the backport before ship)
The section is omitted entirely when no regression has an open fix PR
in flight, so green SR reports stay terse.
Example: SR8 (#35876) now surfaces #35822 (Android RenderThread crash
fix) and #35803 (TabbedPage navigation regression fix) at the top of
the issue instead of buried at line 100+ in the tier-2 detail.
10 new unit tests cover header rendering, link extraction, base-ref
display, status emoji, title truncation, ordering relative to Blocking
and Ship-readiness sections, and the empty-case omission.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
|
/review tests |
Tests Failure Analysis
Test Failure Review: Likely unrelated - click to expandOverall verdict: Likely unrelated All observed failures are in CarouselView, CollectionView, and visual snapshot tests — none of which are touched by this PR. The device-test pipeline has also been failing on
Recommended actionNo action needed for these failures: device tests are a pre-existing baseline failure on Evidence detailsPR scope: 3 files changed — Device tests baseline: CarouselView ADB error (infrastructure): Visual test failure: Limitation: No AzDO token was available; authenticated |
The classifier picked the newest cross-referenced PR from the issue timeline without first checking whether the SR already had a fix from a different PR. This caused issues that were fixed by SR-direct PRs (e.g. #35768 against release/10.0.1xx-sr7) to be reported as 'open-on-main' needing backport, when in fact the forward-flow main companion PR (e.g. #35803) just happened to also close the issue. Real example from SR8 dogfood: issue #35756 → fixed by #35768 (merged to SR7, inherited by SR8) misclassified as 'open-on-main' because #35803 (the forward-flow main PR) is OPEN Should be: 'in-sr-active' — no action needed Fix: before the candidate-PR walk, check srContents.fixedIssues (the deterministic closing-keyword ground truth from SR commits). If the issue appears there, classify based on the SR commit's PR number, with revert-awareness. + 8 new assertions covering the SR-direct-fix path, the reverted-on-SR edge case, and backward compat with partial SrContents shape. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Note
Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue.
Thank you!
Root Cause
When a modal is closed through
PopModalAsync, the framework cascadesSendNavigatedTo(Pop)down to the current child of theTabbedPage(for example,Tab1). InsideSendNavigatedTo, a guard (if (HasNavigatedTo) return) prevents duplicateOnNavigatedToevents from firing. This guard was introduced in PR #31931 to fix issue #23902 .The issue occurs when the user switches tabs while a modal is open. That tab switch triggers a normal
Replacenavigation within theTabbedPage, which setsTab1.HasNavigatedTo = true. Later, when the modal is closed,SendNavigatedFromis invoked only on the modal page itself — the tab child pages never receiveSendNavigatedFrom, so theirHasNavigatedToflags are not reset.As a result, when the subsequent
Popcascade reachesTab1, itsHasNavigatedToflag is stilltruefrom the earlier in-modal tab switch. The duplicate-event guard therefore incorrectly suppresses theOnNavigatedToevent that should fire when returning to the page after the modal closes.Description of Change
Updated
Page.SendNavigatedToso that when navigation cascades into a container child page, the child’sHasNavigatedToflag is reset before cascading — but only forNavigationType.Pop.Poprepresents returning to an existing page and should always trigger a legitimate newOnNavigatedToevent.PushandReplaceflows remain unchanged, preserving the original duplicate-event protection introduced for issue #23902.Regression details
The regression was introduced by PR #31931
Issues Fixed
Fixes #35756
Tested the behaviour in the following platforms
Screenshots
BeforeFix.mov
AfterFix.mov