uno
uno copied to clipboard
fix: Scrolling on WebKit randomly produces blank content temporarily
GitHub Issue (If applicable): closes #17640
PR Type
What kind of change does this PR introduce?
- Bugfix
What is the current behavior?
Safari sometimes causes blank content to show up temporarily until a user action when scrolling, especially when the window is not active. See https://stackoverflow.com/q/9807620 for detailed discussion.
The issue is not Uno side - I have exported raw HTML of the state with blanked out content and after it appeared again and there was not actual difference, so it is all on the rendering side of the browser.
What is the new behavior?
Applying -webkit-transform3d to the direct child of ScrollContentPresenter seems to resolve this issue, pending further testing. Setting this should not collide with transform set from managed code, where we set it directly on the individual elements.
PR Checklist
Please check if your PR fulfills the following requirements:
- [ ] Docs have been added/updated which fit documentation template (for bug fixes / features)
- [ ] Unit Tests and/or UI Tests for the changes have been added (for bug fixes / features) (if applicable)
- [ ] Validated PR
Screenshots Compare Test Runresults. - [x] Contains NO breaking changes
- [x] Associated with an issue (GitHub or internal) and uses the automatic close keywords.
- [x] Commits must be following the Conventional Commits specification.
Other information
Internal Issue (If applicable):
🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-18054/index.html
🤖 Your WebAssembly Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-18054/index.html
The build 137798 found UI Test snapshots differences: android-28-net8: 22, android-28-net8-Snap: 59, ios: 7, ios-Snap: 45, skia-gtk-screenshots: 28, skia-linux-screenshots: 28, skia-windows-screenshots: 26, wasm: 399, wasm-automated-net8.0-UWP-Default-automated: 635, wasm-automated-net8.0-UWP-RuntimeTests-0: 0, wasm-automated-net8.0-UWP-RuntimeTests-1: 0, wasm-automated-net8.0-UWP-RuntimeTests-2: 0, wasm-automated-net8.0-WinUI-Benchmarks-automated: 0, wasm-automated-net8.0-WinUI-RuntimeTests-0: 0, wasm-automated-net8.0-WinUI-RuntimeTests-1: 0, wasm-automated-net8.0-WinUI-RuntimeTests-2: 0
Details
-
android-28-net8: 22 changed over 832🚨🚨 Comparison Details (first 20) 🚨🚨
DecimalFormatterTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPageDetereminate_ProgressRing_Validation0_[#FF0000_#FF0000_#FF0000_#FF0000]_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIDeterminateProgressRingDetereminate_ProgressRing_Validation75_[#FF0000_#008000_#008000_#008000]_Progress-Ring-Value-75Detereminate_ProgressRing_Validation50_[#FF0000_#008000_#008000_#FF0000]_Progress-Ring-Value-50ImageStretch_None_Uno_UI_Samples_UITests_ImageTestsControl_Image_Stretch_NoneProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220NativeCommandBar_Size_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_DynamicProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItemsSelectionTest_UITests_Microsoft_UI_Xaml_Controls_RadioButtonsTests_RadioButtonsPageSequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPageToggleCollapsedStateToVerifyClipping_UITests_Shared_Microsoft_UI_Xaml_Controls_ExpanderTests_ExpanderColorValidationPageWebView_NavigateToLongString_AfterSuccessUpDownEnabledTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPageWhen_FontWeight_Changed_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_FontWeight_DynamicWhen_MaxLines_Changed_Without_TextWrapping_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_SimpleText_MaxLines_Different_Font_SizeDetereminate_ProgressRing_Validation25_[#FF0000_#008000_#FF0000_#FF0000]_Progress-Ring-Value-25When_Parent_PointerMoved_After_drag_on_non-scrolling_ScrollViewerWhen_Parent_PointerMoved_After_drag_on_ScrollViewer_-_touchRadioButtons_Enable_Validation_Uno_UI_Samples_Content_UITests_ButtonTestsControl_RadioButton_IsEnabled_Automated
-
android-28-net8-Snap: 59 changed over 1065🚨🚨 Comparison Details (first 20) 🚨🚨
Image_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Vertical_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_VerticalMediaPlayerElement_Using_3gp_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_3gp_ExtensionMediaPlayerElement_Using_mp3_Audio_only_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Mp3_ExtensionMediaPlayerElement_Using_ogg_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Ogg_ExtensionScrolling_MUXControlsTestApp_ScrollViewDynamicPage_MUXControlsTestApp_ScrollViewDynamicPageScrolling_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPageListView_ListViewChangeView_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewChangeViewTextBlock_TextBlock_LineHeight_Inlines_Uno_UI_Samples_Content_UITests_TextBlockControl_TextBlock_LineHeight_InlinesTextBlock_TextBlock_Nested_Measure_With_Outer_Alignments_Uno_UI_Samples_Content_UITests_TextBlockControl_TextBlock_Nested_Measure_With_Outer_AlignmentsIcons_UITests_Shared_Windows_UI_Xaml_Controls_BitmapIconTests_BitmapIcon_Foreground_UITests_Shared_Windows_UI_Xaml_Controls_BitmapIconTests_BitmapIcon_ForegroundListView_ListViewScrollBar_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewScrollBarMediaPlayerElement_Mini_player_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_MinimalTeachingTip_UITests_Microsoft_UI_Xaml_Controls_TeachingTipTests_TeachingTipPage_UITests_Microsoft_UI_Xaml_Controls_TeachingTipTests_TeachingTipPageTextBox_PasswordBox_Header_PlaceholderText_Uno_UI_Samples_Content_UITests_TextBoxControl_PasswordBox_Header_PlaceholderTextTextBox_PasswordBox_InputScope_NumericPin_Uno_UI_Samples_Content_UITests_TextBoxControl_PasswordBox_InputScope_NumericPinImage_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_FromMsAppData_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_FromMsAppDataListView_ListView_Padding_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListView_PaddingListView_ListView_Padding_Unconstrained_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListView_Padding_UnconstrainedTextBlock_TextBlock_Inlines_TemplatedParent_Uno_UI_Samples_Content_UITests_TextBlockControl_TextBlock_Inlines_TemplatedParentBreadcrumbBar_MUXControlsTestApp_BreadcrumbBarPage_MUXControlsTestApp_BreadcrumbBarPage
-
ios: 7 changed over 268🚨🚨 Comparison Details (first 20) 🚨🚨
ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220When_ExtendedSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_PointersProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_PointersCheck_ListView_Swallows_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_MeasureSequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPageTextBox_UpdatedBinding_On_OneWay_Mode_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_Bindings
-
ios-Snap: 45 changed over 1056🚨🚨 Comparison Details (first 20) 🚨🚨
Brushes_ImageBrushWithScaleTransform_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushWithScaleTransformBrushes_PanelImageBrush_Uno_UI_Samples_UITests_ImageBrushTestControl_PanelImageBrushListView_ListViewSelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItemsNavigationView_FluentStyle_NavigationViewSample_SamplesApp_Samples_Microsoft_UI_Xaml_Controls_NavigationViewTests_FluentStyle_FluentStyle_NavigationViewSampleTextBlock_Attributed_text_FontSize_Changing_Uno_UI_Samples_Content_UITests_TextBlockControl_Attributed_text_FontSize_ChangingColorPicker_ColorPickerSample_UITests_Microsoft_UI_Xaml_Controls_ColorPickerTests_ColorPickerSampleColorPicker_WinUIColorPickerPage_UITests_Shared_Microsoft_UI_Xaml_Controls_ColorPickerTests_WinUIColorPickerPageImage_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Formats_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_FormatsShapes_UITests_Windows_UI_Xaml_Shapes_Ellipse_StrokeThickness_UITests_Windows_UI_Xaml_Shapes_Ellipse_StrokeThicknessMediaPlayerElement_Mini_player_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_MinimalImage_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Smaller_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_SmallerImage_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Taller_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_TallerImage_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Wider_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_WiderBrushes_ImageBrushStretch_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushStretchDefault_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigationImage_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Horizontal_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_HorizontalBrushes_PathImageBrushfill_Uno_UI_Samples_UITests_ImageBrushTestControl_PathImageBrushfillBrushes_Uno_UI_Samples_UITests_ImageBrushTestControl_DoubleImageBrushInList_Uno_UI_Samples_UITests_ImageBrushTestControl_DoubleImageBrushInListGrid_Grid_DataBound_ColumnRow_Definitions_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_DataBound_ColumnRow_DefinitionsListView_ListView_WithScrollViewer_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListView_WithScrollViewer
-
skia-gtk-screenshots: 28 changed over 2216🚨🚨 Comparison Details (first 20) 🚨🚨
CalendarView_Theming.pngCalendarView_Theming.png-darkImageOpened.pngMini player.png-darkMini player.pngRectangleStretchFill.pngPanelImageBrush.png-darkPanelImageBrush.pngColorPickerSample.png-darkColorPickerSample.pngSelectorBarSamplePage.png-darkSelectorBarSamplePage.pngEllipsemaskingEllipseSuperpositionPanel.pngUniform100x100.png-darkUniform100x100.pngNative.png-darkNative.pngRectanglemaskingRectangleGrid.pngImageBrushChangingCornerRadius.pngImageBrush_UniformToFill.png
-
skia-linux-screenshots: 28 changed over 2216🚨🚨 Comparison Details (first 20) 🚨🚨
CalendarView_Theming.png-darkCalendarView_Theming.pngBorderImageBrush.png-darkBorderImageBrush.pngImageIconPage.png-darkImageIconPage.pngImageInStackPanel.png-darkImageInStackPanel.pngImage_UseTargetSize.png-darkImage_UseTargetSize.pngCompositionEffectBrush.png-darkCompositionEffectBrush.pngEllipse.png-darkEllipse.pngImageBrush_SameWithDelay.png-darkImageBrush_SameWithDelay.pngImageBrushStretch.png-darkImageBrushStretch.pngRectangle.png-darkRectangle.png
-
skia-windows-screenshots: 26 changed over 2216🚨🚨 Comparison Details (first 20) 🚨🚨
BorderImageBrush.pngBorderImageBrushRelativeTransform.png-darkBorderImageBrushRelativeTransform.pngCalendarView_Theming.png-darkImageIconPage.png-darkImageIconPage.pngImage_UseTargetSize.png-darkImage_UseTargetSize.pngBorderImageBrush.png-darkCalendarView_Theming.pngDoubleImageBrushInList.png-darkDoubleImageBrushInList.pngImageBrush_SameWithDelay.png-darkImageBrush_SameWithDelay.pngImagesInlineInFlipView.png-darkImagesInlineInFlipView.pngMini player.png-darkMini player.pngImageBrushAlignmentXY2.png-darkImageBrushAlignmentXY2.png
-
wasm: 399 changed over 1043🚨🚨 Comparison Details (first 20) 🚨🚨
GenericApp.Views.Samples.Shared.Content.UITests.GridViewMultipleSelectionModeMUXControlsTestApp.HierarchicalNavigationViewMarkupMUXControlsTestApp.InfoBarPageMUXControlsTestApp.NavigationViewCustomThemeResourcesPageSamplesApp.Samples.Windows_UI_Xaml_Controls.NavigationViewTests.NavigationView_BasicNavigationSamplesApp.Samples.Windows_UI_Xaml_Controls.NavigationViewTests.NavigationView_Pane_AutomatedSamplesApp.Windows_UI_Xaml_Controls.Canvas.Measure_Children_In_CanvasSamplesApp.Windows_UI_Xaml_Controls.ListView.ListViewMarginTestSamplesApp.Windows_UI_Xaml_Shapes.PathTestsControl.PathResizeTestUITests.Microsoft_UI_Xaml_Controls.ImageIconTests.ImageIconPageUITests.Microsoft_UI_Xaml_Controls.InfoBadgeTests.InfoBadgePageUITests.Microsoft_UI_Xaml_Controls.NavigationViewTests.NavigationViewBasicPageUITests.Shared.Windows_Globalization.Language_PropertiesUITests.Shared.Windows_Security_Credentials.PasswordVaultTests.CredentialsPersistenceUITests.Shared.Windows_UI_Xaml.UIElementTests.UIElement_Native_ChildUITests.Shared.Windows_UI_Xaml.VisualStateTests.VisualState_ComplexSetters_AutomatedUITests.Shared.Windows_UI_Xaml.ViusalStateTests.VisualState_AdaptiveTrigger_StoryboardUITests.Shared.Windows_UI_Xaml_Controls.ContentDialogTests.ContentDialog_ClosingUITests.Shared.Windows_UI_Xaml_Controls.ContentDialogTests.ContentDialog_SimpleUITests.Shared.Windows_UI_Xaml_Controls.TextBoxControl.TextBox_Binding_Null
-
wasm-automated-net8.0-UWP-Default-automated: 635 changed over 1952🚨🚨 Comparison Details (first 20) 🚨🚨
Automation_UITests_Shared_Windows_UI_Xaml_Automation_AutomationProperties_Name_UITests_Shared_Windows_UI_Xaml_Automation_AutomationProperties_NameAutoSuggestBox_UITests_Windows_UI_Xaml_Controls_AutoSuggestBoxTests_AutoSuggestBox_Description_UITests_Windows_UI_Xaml_Controls_AutoSuggestBoxTests_AutoSuggestBox_DescriptionBitmapImage_vs_SvgImageSource_BitmapLocal_UITests_Windows_UI_Xaml_Controls_ImageTests_BitmapImage_vs_SvgImageSourceBorder_CornerRadius_BorderThickness_UITests_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_BorderThicknessCheck_CornerRadius_Border_Basic_sampleClipping_UITests_Shared_Windows_UI_Xaml_Clipping_ClippingToControlBounds_UITests_Shared_Windows_UI_Xaml_Clipping_ClippingToControlBoundsContentDialog_Closing_Deferred_UITests_Shared_Windows_UI_Xaml_Controls_ContentDialogTests_ContentDialog_ClosingDefault_UITests_Toolkit_ElevatedView_CornerRadius_UITests_Toolkit_ElevatedView_CornerRadiusDefault_UITests_Toolkit_ElevatedView_Levels_UITests_Toolkit_ElevatedView_LevelsFocusManager_GetFocusedElement_Grid_Validation_Uno_UI_Samples_Content_UITests_FocusTests_FocusManager_GetFocus_AutomatedKeyboard_Textbox_InsideScrollViewer_Validation_5_-_Remove_Focus_on_numberTextBoxKeyboard_Textbox_InsideScrollViewer_Validation_Uno_UI_Samples_Content_UITests_TextBoxControl_Input_Test_InsideScrollerViewer_AutomatedKeyboard_Textbox_IsEnabled_Validation_Uno_UI_Samples_Content_UITests_TextBoxControl_Input_Test_InsideScrollerViewer_AutomatedBitmapImage_vs_SvgImageSource_BitmapRemote_UITests_Windows_UI_Xaml_Controls_ImageTests_BitmapImage_vs_SvgImageSourceBitmapImage_vs_SvgImageSource_SvgRemote_UITests_Windows_UI_Xaml_Controls_ImageTests_BitmapImage_vs_SvgImageSourceBorder_CornerRadius_BorderThickness_Border-CornerRadius-10-BorderThickness-10_0_0_10Buttons_ToggleSwitch_IsEnable_Automated_Uno_UI_Samples_Content_UITests_ButtonTestsControl_ToggleSwitch_IsEnable_AutomatedButtons_UITests_Microsoft_UI_Xaml_Controls_RadioButtonsTests_RadioButtonsBasicPage_UITests_Microsoft_UI_Xaml_Controls_RadioButtonsTests_RadioButtonsBasicPageClipping_SamplesApp_Windows_UI_Xaml_Clipping_ButtonClippingTestsControl_SamplesApp_Windows_UI_Xaml_Clipping_ButtonClippingTestsControlComboBoxTests_Fullscreen_Popup_Generic_Opened
-
wasm-automated-net8.0-UWP-RuntimeTests-0: 0 changed over 1 -
wasm-automated-net8.0-UWP-RuntimeTests-1: 0 changed over 1 -
wasm-automated-net8.0-UWP-RuntimeTests-2: 0 changed over 1 -
wasm-automated-net8.0-WinUI-Benchmarks-automated: 0 changed over 1 -
wasm-automated-net8.0-WinUI-RuntimeTests-0: 0 changed over 1 -
wasm-automated-net8.0-WinUI-RuntimeTests-1: 0 changed over 1 -
wasm-automated-net8.0-WinUI-RuntimeTests-2: 0 changed over 1