Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(droid): workaround for ItemsControl's ObjectDisposedException #16631

Merged
merged 1 commit into from May 15, 2024

Conversation

Xiaoy312
Copy link
Contributor

@Xiaoy312 Xiaoy312 commented May 8, 2024

GitHub Issue (If applicable): (linked from private issue)

PR Type

What kind of change does this PR introduce?

  • Bugfix

What is the current behavior?

Leaked ItemsControl.ItemsSource subscription can cause ObjectDisposedException to be thrown when the said source is updated.

What is the new behavior?

The exception is prevented.

PR Checklist

Please check if your PR fulfills the following requirements:

Other information

@Xiaoy312 Xiaoy312 marked this pull request as ready for review May 8, 2024 17:48
@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-16631/index.html

@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-16631/index.html

@jeromelaban
Copy link
Member

@Mergifyio backport release/stable/5.2

Copy link
Contributor

mergify bot commented May 9, 2024

backport release/stable/5.2

✅ Backports have been created

@jeromelaban jeromelaban enabled auto-merge May 9, 2024 15:32
@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-16631/index.html

@Xiaoy312 Xiaoy312 added the ready-to-merge Automatically merge the PR once all '.mergify.yml' policies are met label May 9, 2024
@jeromelaban
Copy link
Member

/azp run

Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-16631/index.html

@Xiaoy312 Xiaoy312 added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. and removed ready-to-merge Automatically merge the PR once all '.mergify.yml' policies are met labels May 10, 2024
@Xiaoy312
Copy link
Contributor Author

fixme:

  • When_XBind_TargetDisposed_Test: Assert.Fail failed. Timed out on waiting the view to be disposed

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-16631/index.html

@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-16631/index.html

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-16631/index.html

@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-16631/index.html

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-16631/index.html

@nventive-devops
Copy link
Contributor

The build 125134 found UI Test snapshots differences: android-28-net7: 19, android-28-net7-Snap: 51, ios: 6, ios-Snap: 24, skia-gtk-screenshots: 20, skia-linux-screenshots: 32, skia-windows-screenshots: 20, wasm: 315, wasm-automated-net7.0-UWP-Default-automated: 21, wasm-automated-net7.0-UWP-RuntimeTests-0: 0, wasm-automated-net7.0-UWP-RuntimeTests-1: 0, wasm-automated-net7.0-UWP-RuntimeTests-2: 0, wasm-automated-net7.0-WinUI-Benchmarks-automated: 0, wasm-automated-net7.0-WinUI-RuntimeTests-0: 0, wasm-automated-net7.0-WinUI-RuntimeTests-1: 0, wasm-automated-net7.0-WinUI-RuntimeTests-2: 0

Details
  • android-28-net7: 19 changed over 829

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • NavigateBackAndForthBetweenMenuItemsAndSettings_Fluent_SamplesApp_Samples_Microsoft_UI_Xaml_Controls_NavigationViewTests_FluentStyle_FluentStyle_NavigationViewSample
    • UpDownTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • DecimalFormatterTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • When_InListView_after_scroll
    • WebView_NavigateToAnchor_Initial
    • When_InScrollViewer_after_scroll
    • Detereminate_ProgressRing_Validation50_[#FF0000_#008000_#008000_#FF0000]_Progress-Ring-Value-50
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • When_Parent_PointerMoved_After_drag_on_non-scrolling_ScrollViewer
    • When_Parent_PointerMoved_After_drag_on_ScrollViewer_-_touch
    • Detereminate_ProgressRing_Validation75_[#FF0000_#008000_#008000_#008000]_Progress-Ring-Value-75
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • UpDownEnabledTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • WebView_NavigateToLongString_AfterSuccess
    • DatePicker_PickerFlyout_PlacementsbottomLeft_True_False_True_UITests_Windows_UI_Xaml_Controls_DatePicker_DatePicker_Placement
    • Detereminate_ProgressRing_Validation25_[#FF0000_#008000_#FF0000_#FF0000]_Progress-Ring-Value-25
    • SelectionTest_UITests_Microsoft_UI_Xaml_Controls_RadioButtonsTests_RadioButtonsPage
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
  • android-28-net7-Snap: 51 changed over 1059

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ListView_ListView_With_ListViews_Count_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure
    • MUX_NumberBox_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • MUX_UITests_Microsoft_UI_Xaml_Controls_SplitButtonTests_SplitButtonTestsPage_UITests_Microsoft_UI_Xaml_Controls_SplitButtonTests_SplitButtonTestsPage
    • MUX_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage
    • Brushes_BorderImageBrush_Uno_UI_Samples_UITests_ImageBrushTestControl_BorderImageBrush
    • Buttons_RadioButton_IsEnabled_Automated_Uno_UI_Samples_Content_UITests_ButtonTestsControl_RadioButton_IsEnabled_Automated
    • Buttons_RadioButton_Multiple_Unnamed_Groups_Uno_UI_Samples_Content_UITests_ButtonTestsControl_RadioButton_Multiple_Unnamed_Groups
    • ColorPicker_ColorPickerSample_UITests_Microsoft_UI_Xaml_Controls_ColorPickerTests_ColorPickerSample
    • Gesture_Recognizer_Pointer_Events_test_bench_UITests_Shared_Windows_UI_Input_GestureRecognizer_PointersEvents
    • MediaPlayerElement_Using_3gp_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_3gp_Extension
    • MediaPlayerElement_Using_mp3_Audio_only_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Mp3_Extension
    • MediaPlayerElement_Using_ogg_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Ogg_Extension
    • Image_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_Icons_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_Icons
    • ListView_ListViewLarge_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewLarge
    • MediaPlayerElement_Mini_player_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Minimal
    • TextBox_TextBox_Foreground_Uno_UI_Samples_Content_UITests_TextBoxControl_TextBox_Foreground
    • TextBox_TextBox_Formatting_Flicker_UITests_Shared_Windows_UI_Xaml_Controls_TextBoxTests_TextBox_Formatting_Flicker
    • TextBox_TextBox_Header_Uno_UI_Samples_Content_UITests_TextBoxControl_TextBox_Header
    • RatingControl_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage
    • SwipeControl_UITests_Windows_UI_Xaml_Controls_SwipeControlTests_SwipeControl_ScrollViewer_UITests_Windows_UI_Xaml_Controls_SwipeControlTests_SwipeControl_ScrollViewer
  • ios: 6 changed over 269

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • Check_ListView_Swallows_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • TextBox_UpdatedBinding_On_OneWay_Mode_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_Bindings
    • When_NoSelection_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
  • ios-Snap: 24 changed over 1050

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Image_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Formats_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Formats
    • Grid_CenteredGridinGridwiththreefixedsizechildren_Uno_UI_Samples_Content_UITests_GridTestsControl_CenteredGridinGridwiththreefixedsizechildren
    • Brushes_ImageBrushStretch_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushStretch
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Equal_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Equal
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Smaller_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Smaller
    • Brushes_GenericApp_Views_Content_UITests_ImageBrushTestControl_BorderImageBrushRelativeTransform_GenericApp_Views_Content_UITests_ImageBrushTestControl_BorderImageBrushRelativeTransform
    • Default_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation
    • ListView_ListView_With_ListViews_Count_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure
    • NavigationView_MUXControlsTestApp_NavigationViewMinimalPage_MUXControlsTestApp_NavigationViewMinimalPage
    • WebView_WebView2_ChromeClient_SamplesApp_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_ChromeClient
    • WebView_WebView2_Javascript_AlertConfirmPrompt_SamplesApp_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2ControlJavaScriptAlertConfirmPrompt
    • Image_ImageSourceStream_Uno_UI_Samples_UITests_ImageTestsControl_ImageSourceStream
    • Brushes_GenericApp_Views_Content_UITests_ImageBrushTestControl_ImageBrush_UniformToFill_GenericApp_Views_Content_UITests_ImageBrushTestControl_ImageBrush_UniformToFill
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Taller_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Taller
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Wider_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Wider
    • WebView_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_NavigationProperties_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_NavigationProperties
    • WebView_UITests_Microsoft_UI_Xaml_Controls_WebViewTests_WebView_InvokeScriptAsync_UITests_Microsoft_UI_Xaml_Controls_WebViewTests_WebView_InvokeScriptAsync
    • Brushes_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList
    • WebView_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_Basic_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_Basic
    • Transform_Basics_UITests_Shared_Windows_UI_Xaml_Media_Transform_Basics
  • skia-gtk-screenshots: 20 changed over 2190

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Using .ogg.png-dark
    • Using .ogg.png
    • Window_SetBackground.png-dark
    • Window_SetBackground.png
    • ImageSourceUrlMsAppDataScheme.png-dark
    • ImageSourceUrlMsAppDataScheme.png
    • UIElement_ContextFlyout.png-dark
    • UIElement_ContextFlyout.png
    • ImageInStackPanel.png-dark
    • ImageInStackPanel.png
    • BorderImageBrushRelativeTransform.png-dark
    • BorderImageBrushRelativeTransform.png
    • Mini player.png-dark
    • Mini player.png
    • Rectangle.png-dark
    • Rectangle.png
    • StretchNoneBoundingBoxInDoubleStackPanel.png-dark
    • StretchNoneBoundingBoxInDoubleStackPanel.png
    • Native.png-dark
    • Native.png
  • skia-linux-screenshots: 32 changed over 2190

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • AutomationProperties_Name.png
    • DragDrop_TestPage.png-dark
    • DragDrop_TestPage.png
    • AutomationProperties_Name.png-dark
    • ImageBrushAlignmentXY2.png-dark
    • ImageBrushAlignmentXY2.png
    • BorderImageBrushRelativeTransform.png-dark
    • CompositionEffectBrush.png-dark
    • CompositionEffectBrush.png
    • ImageBrush_UniformToFill.png-dark
    • ImageBrush_UniformToFill.png
    • BorderImageBrushRelativeTransform.png
    • ImageWithLateSourceUniformToFill.png-dark
    • ImageWithLateSourceUniformToFill.png
    • ListViewIncrementalLoading.png-dark
    • ListViewIncrementalLoading.png
    • ImageBrushStretch.png-dark
    • ImageBrushStretch.png
    • PanelImageBrush.png-dark
    • PanelImageBrush.png
  • skia-windows-screenshots: 20 changed over 2190

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • BorderImageBrush.png-dark
    • BorderImageBrush.png
    • Ellipse.png-dark
    • Ellipse.png
    • ImageBrushInList.png-dark
    • ImageBrushInList.png
    • Image_UseTargetSize.png-dark
    • Image_UseTargetSize.png
    • ImageIconPage.png-dark
    • ImageIconPage.png
    • ImagesInlineInFlipView.png-dark
    • ImagesInlineInFlipView.png
    • Mini player.png-dark
    • Mini player.png
    • StretchNoneBoundingBoxInDoubleStackPanel.png-dark
    • StretchNoneBoundingBoxInDoubleStackPanel.png
    • Uniform100x100.png-dark
    • Uniform100x100.png
    • UniformAlignmentCenterInDoubleStackPanelWebUri.png-dark
    • UniformAlignmentCenterInDoubleStackPanelWebUri.png
  • wasm: 315 changed over 1040

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Benchmarks.Shared.Controls.BenchmarkDotNetTestsPage
    • MUXControlsTestApp.NavigationViewBlankPage1
    • MUXControlsTestApp.NavigationViewItemTemplatePage
    • MUXControlsTestApp.NavigationViewRS3Page
    • SamplesApp.Windows_UI_Xaml_Shapes.PathTestsControl.PathVerticalOffset
    • UITests.Microsoft_UI_Xaml_Controls.NavigationViewTests.NavigationViewBasicPage
    • UITests.Microsoft_UI_Xaml_Controls.NumberBoxTests.NumberBox_Description
    • UITests.Microsoft_UI_Xaml_Controls.NumberBoxTests.NumberBox_ExpressionTest
    • UITests.Shared.Microsoft_UI_Xaml_Controls.ColorPickerTests.WinUIColorPickerPage
    • UITests.Shared.Microsoft_UI_Xaml_Controls.ExpanderTests.WinUIExpanderPage
    • UITests.Shared.Windows_UI_Xaml_Controls.NavigationViewTests.NavigationView_TopNavigation
    • UITests.Shared.Windows_UI_Xaml_Shapes.PathTestsControl.SVG_Path
    • UITests.Windows_UI_ViewManagement.ApplicationViewSizing
    • UITests.Windows_UI_ViewManagement.UISettingsTests
    • UITests.Windows_UI_Xaml_Controls.ComboBox.ComboBox_Dropdown_Background_4418
    • UITests.Windows_UI_Xaml_Controls.ItemsControl.ItemsControl_AppendItem
    • UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_WithPadding_Focus
    • UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_Wrapping
    • UITests.Windows_UI_Xaml_Controls.ThumbTests.Thumb_DragEvents
    • UITests.Windows_UI_Xaml_Controls.TimePicker.TimePicker_TimePickerFlyoutStyle
  • wasm-automated-net7.0-UWP-Default-automated: 21 changed over 1958

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • Border_NonUniformThicknessandRadius_Uno_UI_Samples_UITests_BorderTestsControl_NonUniformThicknessandRadius
    • Check_ListView_Swallows_Measure_after_scroll
    • MinMaxTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • MediaPlayerElement_Using_3gp_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_3gp_Extension
    • MediaPlayerElement_Using_mp3_Audio_only_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Mp3_Extension
    • Default_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • When_ExtendedSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • ListView_ListViewSelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • When_MultipleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • TextBlock_TextBlock_LineHeight_TextTrimming_Uno_UI_Samples_Content_UITests_TextBlockControl_TextBlock_LineHeight_TextTrimming
    • When_SingleSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • Path_UITests_Windows_UI_Xaml_Shapes_PathTestsControl_Path_Dynamic_Geometries_UITests_Windows_UI_Xaml_Shapes_PathTestsControl_Path_Dynamic_Geometries
    • Path_UITests_Windows_UI_Xaml_Shapes_PathTestsControl_Path_EllipseGeometry_UITests_Windows_UI_Xaml_Shapes_PathTestsControl_Path_EllipseGeometry
    • Path_UITests_Windows_UI_Xaml_Shapes_PathTestsControl_Path_FillRule_UITests_Windows_UI_Xaml_Shapes_PathTestsControl_Path_FillRule
    • When_NoSelection_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
  • wasm-automated-net7.0-UWP-RuntimeTests-0: 0 changed over 1

  • wasm-automated-net7.0-UWP-RuntimeTests-1: 0 changed over 1

  • wasm-automated-net7.0-UWP-RuntimeTests-2: 0 changed over 1

  • wasm-automated-net7.0-WinUI-Benchmarks-automated: 0 changed over 1

  • wasm-automated-net7.0-WinUI-RuntimeTests-0: 0 changed over 1

  • wasm-automated-net7.0-WinUI-RuntimeTests-1: 0 changed over 1

  • wasm-automated-net7.0-WinUI-RuntimeTests-2: 0 changed over 1

@jeromelaban jeromelaban merged commit 64aadee into master May 15, 2024
103 checks passed
@jeromelaban jeromelaban deleted the dev/xygu/20240507/xbind branch May 15, 2024 13:47
jeromelaban added a commit that referenced this pull request May 15, 2024
…5.2/pr-16631

fix(droid): workaround for ItemsControl's ObjectDisposedException (backport #16631)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants