Skip to content

Revert - [iOS & Mac] Fix and Re-enable "Cells Do Not Leak" and "Handler Does Not Leak" Device Tests - #37672

Merged
kubaflo merged 1 commit into
dotnet:inflight/candidatefrom
BagavathiPerumal:revert-36698
Aug 20, 2026
Merged

kubaflo merged 1 commit into
dotnet:inflight/candidatefrom
BagavathiPerumal:revert-36698

Conversation

@BagavathiPerumal

Copy link
Copy Markdown
Contributor

Issue details:

PR #36698 aimed to fix and re-enable the "Cells Do Not Leak" and "Handler Does Not Leak" device memory-leak tests on iOS and Mac. To achieve this, it changed TemplatedCell and ItemsViewController on iOS so that a cell's bound view is detached from the parent's logical children — and the cell's native subviews are cleared — during disposal, ensuring templated views are released deterministically instead of being permanently rooted.

After this change merged, the NavigateForwardWhenLooped and NavigateBackWhenLooped CarouselView UI tests started failing on iOS.

Description of changes:

This reverts the changes introduced in PR #36698, which modified TemplatedCell.cs and ItemsViewController.cs on iOS/MacCatalyst to detach a cell's bound view from the parent's logical children and clear its native subviews during disposal.

Reverting restores the prior cell disposal behavior, fixing the CarouselView looped-navigation regression (#37571). As a side effect, it also re-introduces the original memory-leak test failures that PR #36698 addressed.

Issues Fixed

Fixes #37571

@dotnet-policy-service dotnet-policy-service Bot added the partner/syncfusion Issues / PR's with Syncfusion collaboration label Aug 20, 2026
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
There may be pipelines that require an authorized user to comment /azp run to run.

@BagavathiPerumal BagavathiPerumal added the community ✨ Community Contribution label Aug 20, 2026
@sheiksyedm
sheiksyedm marked this pull request as ready for review August 20, 2026 12:46
@sheiksyedm
sheiksyedm requested a review from kubaflo August 20, 2026 12:46
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
There may be pipelines that require an authorized user to comment /azp run to run.

@kubaflo
kubaflo merged commit 5669804 into dotnet:inflight/candidate Aug 20, 2026
31 of 43 checks passed
@github-actions github-actions Bot added this to the .NET 10 SR11 milestone Aug 20, 2026
kubaflo pushed a commit that referenced this pull request Sep 3, 2026
…er Does Not Leak" Device Tests (#37672)

<!--
!!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING
MAIN. !!!!!!!
-->

### Issue details:

PR #36698 aimed to fix and re-enable the "Cells Do Not Leak" and
"Handler Does Not Leak" device memory-leak tests on iOS and Mac. To
achieve this, it changed `TemplatedCell` and `ItemsViewController` on
iOS so that a cell's bound view is detached from the parent's logical
children — and the cell's native subviews are cleared — during disposal,
ensuring templated views are released deterministically instead of being
permanently rooted.

After this change merged, the `NavigateForwardWhenLooped` and
`NavigateBackWhenLooped` CarouselView UI tests started failing on iOS.

### Description of changes:

This reverts the changes introduced in PR #36698, which modified
`TemplatedCell.cs` and `ItemsViewController.cs` on iOS/MacCatalyst to
detach a cell's bound view from the parent's logical children and clear
its native subviews during disposal.

Reverting restores the prior cell disposal behavior, fixing the
CarouselView looped-navigation regression (#37571). As a side effect, it
also re-introduces the original memory-leak test failures that PR #36698
addressed.

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #37571

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->
kubaflo pushed a commit that referenced this pull request Sep 4, 2026
…er Does Not Leak" Device Tests (#37672)

<!--
!!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING
MAIN. !!!!!!!
-->

### Issue details:

PR #36698 aimed to fix and re-enable the "Cells Do Not Leak" and
"Handler Does Not Leak" device memory-leak tests on iOS and Mac. To
achieve this, it changed `TemplatedCell` and `ItemsViewController` on
iOS so that a cell's bound view is detached from the parent's logical
children — and the cell's native subviews are cleared — during disposal,
ensuring templated views are released deterministically instead of being
permanently rooted.

After this change merged, the `NavigateForwardWhenLooped` and
`NavigateBackWhenLooped` CarouselView UI tests started failing on iOS.

### Description of changes:

This reverts the changes introduced in PR #36698, which modified
`TemplatedCell.cs` and `ItemsViewController.cs` on iOS/MacCatalyst to
detach a cell's bound view from the parent's logical children and clear
its native subviews during disposal.

Reverting restores the prior cell disposal behavior, fixing the
CarouselView looped-navigation regression (#37571). As a side effect, it
also re-introduces the original memory-leak test failures that PR #36698
addressed.

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #37571

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->
@kubaflo kubaflo mentioned this pull request Sep 6, 2026
5 of 8 tasks
kubaflo pushed a commit that referenced this pull request Sep 7, 2026
…er Does Not Leak" Device Tests (#37672)

<!--
!!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING
MAIN. !!!!!!!
-->

### Issue details:

PR #36698 aimed to fix and re-enable the "Cells Do Not Leak" and
"Handler Does Not Leak" device memory-leak tests on iOS and Mac. To
achieve this, it changed `TemplatedCell` and `ItemsViewController` on
iOS so that a cell's bound view is detached from the parent's logical
children — and the cell's native subviews are cleared — during disposal,
ensuring templated views are released deterministically instead of being
permanently rooted.

After this change merged, the `NavigateForwardWhenLooped` and
`NavigateBackWhenLooped` CarouselView UI tests started failing on iOS.

### Description of changes:

This reverts the changes introduced in PR #36698, which modified
`TemplatedCell.cs` and `ItemsViewController.cs` on iOS/MacCatalyst to
detach a cell's bound view from the parent's logical children and clear
its native subviews during disposal.

Reverting restores the prior cell disposal behavior, fixing the
CarouselView looped-navigation regression (#37571). As a side effect, it
also re-introduces the original memory-leak test failures that PR #36698
addressed.

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #37571

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->
kubaflo pushed a commit that referenced this pull request Sep 8, 2026
…er Does Not Leak" Device Tests (#37672)

<!--
!!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING
MAIN. !!!!!!!
-->

### Issue details:

PR #36698 aimed to fix and re-enable the "Cells Do Not Leak" and
"Handler Does Not Leak" device memory-leak tests on iOS and Mac. To
achieve this, it changed `TemplatedCell` and `ItemsViewController` on
iOS so that a cell's bound view is detached from the parent's logical
children — and the cell's native subviews are cleared — during disposal,
ensuring templated views are released deterministically instead of being
permanently rooted.

After this change merged, the `NavigateForwardWhenLooped` and
`NavigateBackWhenLooped` CarouselView UI tests started failing on iOS.

### Description of changes:

This reverts the changes introduced in PR #36698, which modified
`TemplatedCell.cs` and `ItemsViewController.cs` on iOS/MacCatalyst to
detach a cell's bound view from the parent's logical children and clear
its native subviews during disposal.

Reverting restores the prior cell disposal behavior, fixing the
CarouselView looped-navigation regression (#37571). As a side effect, it
also re-introduces the original memory-leak test failures that PR #36698
addressed.

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #37571

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->
kubaflo pushed a commit that referenced this pull request Sep 9, 2026
…er Does Not Leak" Device Tests (#37672)

<!--
!!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING
MAIN. !!!!!!!
-->

### Issue details:

PR #36698 aimed to fix and re-enable the "Cells Do Not Leak" and
"Handler Does Not Leak" device memory-leak tests on iOS and Mac. To
achieve this, it changed `TemplatedCell` and `ItemsViewController` on
iOS so that a cell's bound view is detached from the parent's logical
children — and the cell's native subviews are cleared — during disposal,
ensuring templated views are released deterministically instead of being
permanently rooted.

After this change merged, the `NavigateForwardWhenLooped` and
`NavigateBackWhenLooped` CarouselView UI tests started failing on iOS.

### Description of changes:

This reverts the changes introduced in PR #36698, which modified
`TemplatedCell.cs` and `ItemsViewController.cs` on iOS/MacCatalyst to
detach a cell's bound view from the parent's logical children and clear
its native subviews during disposal.

Reverting restores the prior cell disposal behavior, fixing the
CarouselView looped-navigation regression (#37571). As a side effect, it
also re-introduces the original memory-leak test failures that PR #36698
addressed.

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #37571

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->
kubaflo added a commit that referenced this pull request Sep 11, 2026
<!-- Please let the below note in for people that find this PR -->
> [!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](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

## What's Coming

This draft promotes the current `inflight/candidate` contents into
`main` for the .NET 10 SR11 (`10.0.110`) candidate cycle.

## Candidate Snapshot

- Initial source: `inflight/current`, followed by candidate-specific
stabilization and approved backports
- Rebased onto `main`:
[`b96aa036`](b96aa03)
- Current candidate head:
[`b643a7e3`](b643a7e)
- Final candidate commits relative to `main`: [111
commits](b96aa03...inflight/candidate)
- Rebase accounting: all 111 pre-rebase commits map exactly to 111
rebased commits, with no modified, dropped, or added patches
- Patch version: `110`
- PR #37033 remains intentionally excluded because it merged into
`inflight/current` after the initial candidate cut.

## Stabilization Since the Initial Cut

- #37669 fixes the MauiBlazorWebView device-test build.
- #37672 reverts unstable iOS and Mac Catalyst leak tests.
- #37810 reverts the iOS wrapped-scroll-content large-title change.
- #37837 completes iOS `ScrollView` requests inside collapsed branches.
- #37438 updates the first set of candidate test failures.
- #38021 fixes the Windows `ContentPresenter` device-test regression;
its patch is now supplied by `main`.
- #38096 reverts the Accelerometer weak-event change.
- #38126 backports the BlazorWebView and HybridWebView fixes.
- #38028 updates the remaining candidate test failures and stale iOS
snapshots.

## Rebase Validation

- [x] Commit accounting: 111 exact mappings with no modified, dropped,
or added patches
- [x] Independent reference merge and rebased branch have the identical
tree ID `3e10281363c889cbafd4de790911efb0ae365e2a`
- [x] BuildTasks succeeds with 0 warnings and 0 errors across the
restored Android, iOS, Mac Catalyst, and .NET targets
- [x] All 39 focused `ScrollViewUnitTests` pass
- [x] No merge commits, conflict markers, or new whitespace warnings;
the 26 existing whitespace warnings remain unchanged
- [ ] Post-rebase `maui-pr`, `maui-pr-devicetests`, and
`maui-pr-uitests` runs complete
- [ ] Candidate-only build and test failures triaged
- [ ] Release-readiness assessment completed

This PR remains a draft while candidate validation and stabilization
continue.

Co-authored-by: Jakub Florkowski <42434498+kubaflo@users.noreply.github.com>
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 20, 2026

This branch was previously deployed

1 inactive deployment
copilot-pat-pool — cc12c5d9 Deployed Aug 20, 2026 by BagavathiPerumal via conclusion #1442
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

community ✨ Community Contribution partner/syncfusion Issues / PR's with Syncfusion collaboration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants