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

perf(anim): Don't refresh triggers and transitions during parsing #19228

Merged
merged 2 commits into from
Jan 16, 2025

Conversation

jeromelaban
Copy link
Member

What is the new behavior?

VisualState instances changes in VisualStateGroup won't trigger updates during XAML parsing, avoiding intermediate discarded animations.

@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-19228/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-19228/index.html

@unodevops
Copy link
Contributor

⚠️⚠️ The build 152008 has failed on Uno.UI - CI.

@jeromelaban jeromelaban marked this pull request as ready for review January 15, 2025 14:04
src/Uno.UI/UI/Xaml/VisualStateGroup.cs Outdated Show resolved Hide resolved
src/Uno.UI/UI/Xaml/VisualStateGroup.cs Outdated Show resolved Hide resolved
@jeromelaban
Copy link
Member Author

@Mergifyio backport release/stable/5.6

Copy link
Contributor

mergify bot commented Jan 15, 2025

backport release/stable/5.6

✅ Backports have been created

@unodevops
Copy link
Contributor

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

@jeromelaban
Copy link
Member Author

/azp run

Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@unodevops
Copy link
Contributor

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

@unodevops
Copy link
Contributor

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

@nventive-devops
Copy link
Contributor

The build 152219 found UI Test snapshots differences: android-28-net8: 20, android-28-net8-Snap: 36, ios: 7, ios-Snap: 42, skia-gtk-screenshots: 66, skia-linux-screenshots: 67, skia-windows-screenshots: 71, wasm: 233, wasm-automated-net9.0-UWP-Default-automated: 25, wasm-automated-net9.0-UWP-RuntimeTests-0: 0, wasm-automated-net9.0-UWP-RuntimeTests-1: 0, wasm-automated-net9.0-UWP-RuntimeTests-2: 0, wasm-automated-net9.0-WinUI-Benchmarks-automated: 0, wasm-automated-net9.0-WinUI-RuntimeTests-0: 0, wasm-automated-net9.0-WinUI-RuntimeTests-1: 0, wasm-automated-net9.0-WinUI-RuntimeTests-2: 0

Details
  • android-28-net8: 20 changed over 829

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • DecimalFormatterTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • Detereminate_ProgressRing_Validation25_[#FF0000_#008000_#FF0000_#FF0000]_Progress-Ring-Value-25
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • NativeCommandBar_Size_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_Dynamic
    • SelectionOnLoad_UITests_Microsoft_UI_Xaml_Controls_RadioButtonsTests_RadioButtonsInitialLoadSelected
    • WebView_NavigateToAnchor_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation
    • WebView_NavigateToLongString_AfterSuccess
    • UpDownEnabledTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • WebView_NavigateToAnchor_Initial
    • When_Hardware_Back_Button_Pressed_UITests_Windows_UI_Core_SystemNavigationManagerTests_HardwareBackButton
    • When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • Button_IsEnabled_Validation_Uno_UI_Samples_Content_UITests_ButtonTestsControl_Button_IsEnabled_Automated
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_MultipleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • Detereminate_ProgressRing_Validation75_[#FF0000_#008000_#008000_#008000]_Progress-Ring-Value-75
    • When_Parent_PointerMoved_After_drag_on_non-scrolling_ScrollViewer
    • When_Parent_PointerMoved_After_drag_on_ScrollViewer_-_touch
    • Detereminate_ProgressRing_Validation50_[#FF0000_#008000_#008000_#FF0000]_Progress-Ring-Value-50
  • android-28-net8-Snap: 36 changed over 1067

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Buttons_UITests_Microsoft_UI_Xaml_Controls_RadioButtonsTests_RadioButtonsPage_UITests_Microsoft_UI_Xaml_Controls_RadioButtonsTests_RadioButtonsPage
    • ListView_ListView_With_ListViews_Count_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure
    • ColorPicker_ColorPickerSample_UITests_Microsoft_UI_Xaml_Controls_ColorPickerTests_ColorPickerSample
    • 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
    • NavigationView_MUXControlsTestApp_NavigationViewCustomThemeResourcesPage_MUXControlsTestApp_NavigationViewCustomThemeResourcesPage
    • Pickers_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming
    • Transform_Basics_UITests_Shared_Windows_UI_Xaml_Media_Transform_Basics
    • WebView_WebView_ChromeClient_Uno_UI_Samples_Content_UITests_WebView_WebView_ChromeClient
    • WebView_WebView_JavascriptInvoke_Uno_UI_Samples_Content_UITests_WebView_WebView_JavascriptInvoke
    • Gesture_Recognizer_Pointer_Events_test_bench_UITests_Shared_Windows_UI_Input_GestureRecognizer_PointersEvents
    • NavigationView_MUXControlsTestApp_NavigationViewTopNavPage_MUXControlsTestApp_NavigationViewTopNavPage
    • RatingControl_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage
    • TabView_UITests_Microsoft_UI_Xaml_Controls_TabViewTests_TabViewPage_UITests_Microsoft_UI_Xaml_Controls_TabViewTests_TabViewPage
    • TextBlock_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_Layout_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_Layout
    • Transform_UITests_Shared_Windows_UI_Xaml_Media_Transform_Basics_Automated_UITests_Shared_Windows_UI_Xaml_Media_Transform_Basics_Automated
    • TreeView_UITests_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeView_ItemInvoked_UITests_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeView_ItemInvoked
    • TreeView_UITests_Microsoft_UI_Xaml_Controls_TreeView_TreeViewBasics_UITests_Microsoft_UI_Xaml_Controls_TreeView_TreeViewBasics
    • UIElement_Arrange_Performance01_UITests_Shared_Windows_UI_Xaml_UIElementTests_Arrange_Performance01
  • ios: 7 changed over 267

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • When_ExtendedSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_MultipleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • When_NoSelection_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • TextBox_UpdatedBinding_On_OneWay_Mode_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_Bindings
    • When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
  • ios-Snap: 42 changed over 1058

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Brushes_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList
    • Clipping_SamplesApp_Windows_UI_Xaml_Clipping_XamlButtonWithClipping_Scrollable_SamplesApp_Windows_UI_Xaml_Clipping_XamlButtonWithClipping_Scrollable
    • Default_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation
    • NavigationView_MUXControlsTestApp_NavigationViewMenuItemStretchPage_MUXControlsTestApp_NavigationViewMenuItemStretchPage
    • NavigationView_MUXControlsTestApp_NavigationViewMinimalPage_MUXControlsTestApp_NavigationViewMinimalPage
    • ListView_ListViewGroupedChanging_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewGroupedChanging
    • WebView_WebView2_Mailto_SamplesApp_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_Mailto
    • Brushes_ImageBrushStretch2_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushStretch2
    • Default_UITests_Windows_UI_Xaml_DragAndDrop_DragDrop_TestPage_UITests_Windows_UI_Xaml_DragAndDrop_DragDrop_TestPage
    • Image_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Horizontal_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Horizontal
    • Image_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Vertical_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Vertical
    • WebView_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_ExecuteScriptAsync_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_ExecuteScriptAsync
    • WebView_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_NavigationProperties_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_NavigationProperties
    • Brushes_PanelImageBrush_Uno_UI_Samples_UITests_ImageBrushTestControl_PanelImageBrush
    • Image_EmptyImageFixedWidth_Uno_UI_Samples_UITests_ImageTestsControl_EmptyImageFixedWidth
    • NavigationView_FluentStyle_NavigationViewSample_SamplesApp_Samples_Microsoft_UI_Xaml_Controls_NavigationViewTests_FluentStyle_FluentStyle_NavigationViewSample
    • Animations_UITests_Windows_UI_Xaml_Media_Animation_FadeInOutThemeAnimationPage_UITests_Windows_UI_Xaml_Media_Animation_FadeInOutThemeAnimationPage
    • Brushes_PathImageBrushfill_Uno_UI_Samples_UITests_ImageBrushTestControl_PathImageBrushfill
    • Buttons_Custom_Button_With_ContentTemplate_Uno_UI_Samples_Content_UITests_ButtonTestsControl_Custom_Button_With_ContentTemplate
    • Default_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected
  • skia-gtk-screenshots: 66 changed over 2232

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ButtonClippingTestsControl.png
    • DragDrop_TestPage.png-dark
    • DragDrop_TestPage.png
    • Popup_Simple.png-dark
    • Popup_Simple.png
    • UIElement_Layout_Bug2879.png-dark
    • ImagesInlineInFlipView.png-dark
    • ImagesInlineInFlipView.png
    • ButtonClippingTestsControl.png-dark
    • ClipboardTests.png-dark
    • ClipboardTests.png
    • ImageSourceUrlMsAppDataScheme.png-dark
    • ImageSourceUrlMsAppDataScheme.png
    • RepeatButton_Automated.png-dark
    • UIElement_ContextFlyout.png-dark
    • UIElement_ContextFlyout.png
    • Focus_FocusVisual_Properties.png-dark
    • Focus_FocusVisual_Properties.png
    • DropDownButtonPage.png-dark
    • DisplayInformation.png
  • skia-linux-screenshots: 67 changed over 2232

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • DisplayInformation.png-dark
    • DisplayInformation.png
    • ClipboardTests.png
    • Ellipse.png-dark
    • Ellipse.png
    • ImageWithLateSourceUniformToFill.png-dark
    • ImageWithLateSourceUniformToFill.png
    • Gamepad_Enumeration.png-dark
    • Gamepad_Enumeration.png
    • DropDownButtonPage.png-dark
    • DropDownButtonPage.png
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • ListViewHeaderUpdate.png-dark
    • ListViewHeaderUpdate.png
    • BorderImageBrushRelativeTransform.png-dark
    • Buttons.png
    • BorderImageBrushRelativeTransform.png
    • Buttons.png-dark
    • CalendarView_Theming.png-dark
  • skia-windows-screenshots: 71 changed over 2232

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • BorderImageBrush.png-dark
    • ButtonClippingTestsControl.png-dark
    • Ellipse.png-dark
    • Ellipse.png
    • BorderImageBrushRelativeTransform.png-dark
    • BorderImageBrushRelativeTransform.png
    • Focus_FocusVisual_Properties.png-dark
    • Focus_FocusVisual_Properties.png
    • CalendarView_Theming.png
    • DisplayInformation.png-dark
    • DisplayInformation.png
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • Image_UseTargetSize.png-dark
    • Image_UseTargetSize.png
    • DropDownButtonPage.png-dark
    • DropDownButtonPage.png
    • ImageBrushInList.png-dark
    • ImageBrushInList.png
    • ImageInStackPanel.png-dark
  • wasm: 233 changed over 1043

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • MUXControlsTestApp.HierarchicalNavigationViewMarkup
    • MUXControlsTestApp.NavigationViewMenuItemStretchPage
    • MUXControlsTestApp.NavigationViewSelectedItemEdgeCasePage
    • MUXControlsTestApp.RefreshContainerPage
    • SamplesApp.Wasm.Windows_UI_Xaml_Media.Transform.Border_With_RotateTransform
    • SamplesApp.Wasm.Windows_UI_Xaml_Media.Transform.Border_With_ScaleTransform
    • SamplesApp.Windows_UI_Xaml_Controls.ListView.ListView_Image
    • SamplesApp.Windows_UI_Xaml_Shapes.PathTestsControl.Path_Geometry
    • UITests.Microsoft_UI_Xaml_Controls.RefreshContainerTests.RefreshContainerNavigation
    • UITests.Microsoft_UI_Xaml_Controls.RefreshContainerTests.RefreshContainerScrollTop
    • UITests.Shared.Windows_UI_Xaml_Controls.MenuFlyoutTests.MenuFlyout_IosNative
    • UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_PlaceholderForeground
    • UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_VerticalAlignment
    • UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_Visibility
    • Uno.UI.Samples.Content.UITests.Animations.DoubleAnimation_BeginTime
    • Uno.UI.Samples.Content.UITests.Animations.VisualState_AdaptiveTrigger_UsingOneStateOnly
    • Uno.UI.Samples.Content.UITests.Animations.VisualState_Setters
    • Uno.UI.Samples.Content.UITests.Animations.VisualState_Setter_StaticResource
    • Benchmarks.Shared.Controls.BenchmarkDotNetTestsPage
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ComboBox.ComboBox_IsSelected
  • wasm-automated-net9.0-UWP-Default-automated: 25 changed over 1947

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Gesture_Recognizer_Pointer_Events_test_bench_UITests_Shared_Windows_UI_Input_GestureRecognizer_PointersEvents
    • ListView_ListViewSelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • MediaPlayerElement_Mini_player_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Minimal
    • MediaPlayerElement_Sources_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Sources
    • 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
    • Default_StrokeThickness_MyPath
    • Default_StrokeThickness_MyEllipse_0_StrokeThickness
    • Default_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected
    • Brushes_BorderImageBrush_Uno_UI_Samples_UITests_ImageBrushTestControl_BorderImageBrush
    • Default_StrokeThickness_MyPolygon
    • Default_StrokeThickness_MyPolygon_0_StrokeThickness
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • MUX_MUXControlsTestApp_RefreshVisualizerPage_MUXControlsTestApp_RefreshVisualizerPage
    • Pickers_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming
    • Border_OnepxThicknessandRadiusAndTextBlock_Uno_UI_Samples_UITests_BorderTestsControl_OnepxThicknessandRadiusAndTextBlock
    • Expander_WinUIExpanderPage_UITests_Shared_Microsoft_UI_Xaml_Controls_ExpanderTests_WinUIExpanderPage
    • Default_StrokeThickness_MyRect_0_StrokeThickness
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
  • wasm-automated-net9.0-UWP-RuntimeTests-0: 0 changed over 1

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

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

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

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

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

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

@jeromelaban jeromelaban merged commit 8ee94d1 into master Jan 16, 2025
113 of 114 checks passed
@jeromelaban jeromelaban deleted the dev/jela/vs-adjust branch January 16, 2025 13:22
jeromelaban added a commit that referenced this pull request Jan 16, 2025
…5.6/pr-19228

perf(anim): Don't refresh triggers and transitions during parsing (backport #19228)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants