Skip to content

feat: Implement High Contrast Mode Support for Skia#22965

Open
morning4coffe-dev wants to merge 2 commits intomasterfrom
dev/doti/hcm-skia
Open

feat: Implement High Contrast Mode Support for Skia#22965
morning4coffe-dev wants to merge 2 commits intomasterfrom
dev/doti/hcm-skia

Conversation

@morning4coffe-dev
Copy link
Copy Markdown
Member

GitHub Issue: closes https://github.com/unoplatform/private/issues/1073

PR Type:

  • ✨ Feature

What is the new behavior? 🚀

This pull request improves theme resource handling and high contrast support across platforms, especially for macOS and Windows. It introduces new theme resource brushes for accent and text colors, updates the sample app to use these resources for better visual clarity, and adds platform-level detection and notification for high contrast mode changes. Additionally, it refines the logic for theme switching in the sample app and removes some unused code.

These changes lay the groundwork for more robust accessibility support and make theme resources more flexible and maintainable across platforms and get closer to WinUI3.

PR Checklist ✅

Please check if your PR fulfills the following requirements:

Copilot AI review requested due to automatic review settings April 4, 2026 23:40
@github-actions github-actions Bot added platform/wasm 🌐 Categorizes an issue or PR as relevant to the WebAssembly platform platform/android 🤖 Categorizes an issue or PR as relevant to the Android platform platform/macos 🍏 Categorizes an issue or PR as relevant to the macOS platform platform/ios 🍎 Categorizes an issue or PR as relevant to the iOS platform area/skia ✏️ Categorizes an issue or PR as relevant to Skia area/automation Categorizes an issue or PR as relevant to project automation kind/documentation platform/x11 🐧 Categorizes an issue or PR as relevant to X11 labels Apr 4, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds cross-platform High Contrast mode plumbing (detection, notifications, and resource updates) with a focus on Skia and WebAssembly, and wires High Contrast adjustments into Skia text rendering and theme resource resolution.

Changes:

  • Introduces platform high-contrast detection + change notifications via SystemThemeHelper (Skia/Win32/Linux/macOS/WASM + Android/iOS hooks).
  • Updates theme/resource resolution to support a dedicated "HighContrast" theme dictionary and to refresh theme bindings when HC state/colors change.
  • Adds High Contrast text adjustment (opacity + backplate) in Skia text rendering and includes new unit/runtime tests + sample updates.

Reviewed changes

Copilot reviewed 37 out of 40 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/Uno.UWP/UI/ViewManagement/UISettings.cs Returns foreground/background from high-contrast system colors when available.
src/Uno.UWP/UI/ViewManagement/AccessibilitySettings.cs Implements HC/HC scheme for WASM+Skia and adds internal IsHighContrastActive for theme selection.
src/Uno.UWP/ts/Windows/Helpers/Theming/SystemThemeHelper.ts Adds WASM-side high contrast detection + observers via matchMedia.
src/Uno.UWP/js/Uno.Wasm.d.ts Updates typings for new WASM high contrast interop methods.
src/Uno.UWP/Helpers/Theming/SystemThemeHelper.wasm.cs Adds WASM high contrast polling + dispatch callback into .NET.
src/Uno.UWP/Helpers/Theming/SystemThemeHelper.UIKit.cs Adds iOS/tvOS “increase contrast” observation + mapping to HC scheme/colors.
src/Uno.UWP/Helpers/Theming/SystemThemeHelper.skia.cs Adds Skia extension surface for HC state/scheme/colors + events.
src/Uno.UWP/Helpers/Theming/SystemThemeHelper.Interop.wasm.cs Adds JSImport bindings for WASM high contrast query/observer.
src/Uno.UWP/Helpers/Theming/SystemThemeHelper.cs Centralizes HC state/scheme/colors caching and change detection alongside theme detection.
src/Uno.UWP/Helpers/Theming/SystemThemeHelper.Android.cs Adds Android high-contrast detection + observers (secure setting + accessibility listener).
src/Uno.UWP/Helpers/Theming/ISystemThemeHelperExtension.skia.cs Extends Skia theme helper extension contract with HC APIs + event.
src/Uno.UWP/Helpers/Theming/HighContrastSystemColors.cs Adds a struct to carry platform HC system colors.
src/Uno.UWP/FeatureConfiguration/WinRTFeatureConfiguration.Accessibility.cs Adds HC overrides (state/scheme/colors) and notifies UISettings/AccessibilitySettings.
src/Uno.UI/UI/Xaml/UIElement.HighContrast.cs Adds HighContrastAdjustment DP and helpers for HC text adjustment.
src/Uno.UI/UI/Xaml/ResourceResolver.cs Updates theme-binding refresh path and attempts to apply platform HC system colors into resources.
src/Uno.UI/UI/Xaml/ResourceDictionary.cs Adds HC-aware active theme dictionary selection and improves theme-binding update traversal snapshots.
src/Uno.UI/UI/Xaml/FrameworkElement.Theming.cs Ensures theme propagation/push uses "HighContrast" key when HC is active.
src/Uno.UI/UI/Xaml/Documents/UnicodeText.skia.cs Adds HC text adjustment (opacity + backplate + selection foreground) for shaped text path.
src/Uno.UI/UI/Xaml/Documents/ParsedText.skia.cs Adds HC text adjustment (opacity + backplate + selection foreground) for parsed text path.
src/Uno.UI/UI/Xaml/Documents/IParsedText.skia.cs Updates draw signature to pass owning element for HC adjustment logic.
src/Uno.UI/UI/Xaml/Controls/TextBlock/TextBlock.skia.cs Passes this into ParsedText.Draw for HC adjustment.
src/Uno.UI/UI/Xaml/ApplicationHelper.cs Ensures resource theme key is updated before reapplying theme.
src/Uno.UI/UI/Xaml/Application.HighContrast.cs Adds Application.HighContrastAdjustment storage + invalidation hook (platform-limited build).
src/Uno.UI/UI/Xaml/Application.cs Hooks HC change events, updates resource/theme propagation, and invalidates visuals for HC adjustment changes.
src/Uno.UI/Generated/3.0.0.0/Microsoft.UI.Xaml/UIElement.cs Removes generated HC adjustment members in favor of manual implementation.
src/Uno.UI/Generated/3.0.0.0/Microsoft.UI.Xaml/Application.cs Removes generated HC adjustment member in favor of manual implementation.
src/Uno.UI.Tests/Windows_UI_Xaml/Given_ResourceDictionary.cs Adds unit tests for HC theme dictionary caching + HC system color reapplication.
src/Uno.UI.Tests/Windows_UI_Xaml/Given_HighContrastAdjustment.cs Adds unit tests for Application/UIElement HC adjustment defaults and inheritance.
src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml/Given_ResourceDictionary.cs Adds runtime test ensuring theme binding updates work with lazy theme dictionaries.
src/Uno.UI.Runtime.Skia.X11/Helpers/Theming/LinuxSystemThemeHelper.cs Adds Linux HC detection (portal contrast + fallback heuristics) + change event.
src/Uno.UI.Runtime.Skia.Win32/Helpers/Theming/Win32SystemThemeHelperExtension.cs Adds Win32 HC detection, scheme naming, and system color extraction.
src/Uno.UI.Runtime.Skia.Win32.Support/NativeMethods.txt Adds Win32 APIs needed for HC detection/system colors to the support list.
src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOApplication.m Adds macOS “increase contrast” getter + change notification callback.
src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOApplication.h Declares macOS HC callback + getter exports.
src/Uno.UI.Runtime.Skia.MacOS/Native/NativeUno.cs Adds P/Invoke for macOS HC getter + callback registration.
src/Uno.UI.Runtime.Skia.MacOS/Helpers/Theming/MacOSSystemThemeHelperExtension.cs Adds macOS HC reporting + event propagation into the Skia extension.
src/Uno.UI.Runtime.Skia.AppleUIKit/UI/Xaml/Window/RootViewController.cs Refreshes HC state on trait changes.
src/Uno.UI.Runtime.Skia.Android/ApplicationActivity.cs Refreshes HC state on configuration changes.
src/SamplesApp/UITests.Shared/Windows_UI_Xaml/ThemeResources/BasicThemeResources.xaml.cs Fixes parent theme toggling logic and null-safety.
src/SamplesApp/UITests.Shared/Windows_UI_Xaml/ThemeResources/BasicThemeResources.xaml Updates sample resources to use SystemColor* in HC + demonstrates HC adjustment opt-out.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +696 to +712
private static void ApplyHighContrastSystemColors(ResourceDictionary dictionary, HighContrastSystemColors? highContrastSystemColors)
{
if (!dictionary.TryGetThemeDictionary("HighContrast", out var highContrastThemeDictionary))
{
return;
}

var baselineColors = GetOrCreateHighContrastSystemColorDefaults(highContrastThemeDictionary);

foreach (var (resourceKey, selector) in _highContrastSystemColorMappings)
{
var targetColor = highContrastSystemColors is { } colors
? selector(colors)
: selector(baselineColors);

SetColorResource(highContrastThemeDictionary, resourceKey, targetColor);
}
Copy link

Copilot AI Apr 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

UpdateHighContrastSystemColors() currently applies SystemColor* overrides to any ResourceDictionary that has a "HighContrast" theme dictionary. Some system theme dictionaries (e.g. FluentTheme Common_themeresources.xaml) reference SystemColorWindowColor/etc but do not define those keys locally, so GetColorResource() falls back to Transparent and SetColorResource() then injects Transparent values. This breaks HighContrast rendering on platforms where HighContrastSystemColors is null even while HC is active (e.g. WASM where GetHighContrastSystemColorsPlatform is unimplemented), because ThemeResource lookups will be shadowed by the injected Transparent values. Consider only setting colors for keys that already exist in the target dictionary (skip missing keys), and/or resolve baseline via shouldCheckSystem:true so referenced system defaults are used instead of Transparent when platform colors aren't available.

Copilot uses AI. Check for mistakes.
Comment on lines +52 to +66
/// <summary>
/// Gets whether the system High Contrast mode is currently enabled.
/// </summary>
internal static bool IsHighContrastEnabled => _lastHighContrast ??= GetIsHighContrastEnabled();

/// <summary>
/// Gets the name of the active High Contrast scheme.
/// </summary>
internal static string HighContrastSchemeName => _lastHighContrastScheme ??= GetHighContrastSchemeName();

/// <summary>
/// Gets the current High Contrast system colors, if available.
/// </summary>
internal static HighContrastSystemColors? HighContrastSystemColors => GetCurrentHighContrastSystemColors(IsHighContrastEnabled);

Copy link

Copilot AI Apr 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HighContrastSystemColors is recomputed on every access (calls GetCurrentHighContrastSystemColors + potentially platform interop). This property is used during rendering (e.g., UIElement.GetHighContrastTextColors during Skia text draw), so repeated P/Invokes/JS interop can become a hot-path cost. Consider returning the cached _lastHighContrastSystemColors (initialized in ObserveThemeChanges and updated in RefreshHighContrast), with a lazy fallback for cases where observation hasn't started yet.

Copilot uses AI. Check for mistakes.
Comment on lines +69 to +78
/// <summary>
/// Gets whether High Contrast is currently active (from any source).
/// This is used internally for theme selection.
/// </summary>
internal static bool IsHighContrastActive =>
#if __SKIA__ || __WASM__
WinRTFeatureConfiguration.Accessibility.HighContrastOverride ?? SystemThemeHelper.IsHighContrastEnabled;
#else
WinRTFeatureConfiguration.Accessibility.HighContrast;
#endif
Copy link

Copilot AI Apr 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IsHighContrastActive is used by Uno.UI for theme dictionary selection, but it only consults OS high-contrast state on SKIA/WASM. This means OS high-contrast changes detected by SystemThemeHelper on Android/iOS/macOS/etc (you added observers + RefreshHighContrast calls) won’t actually activate the HighContrast theme dictionaries because IsHighContrastActive remains tied to WinRTFeatureConfiguration.Accessibility.HighContrast on those platforms. Consider folding SystemThemeHelper.IsHighContrastEnabled into IsHighContrastActive for the other platforms that now report HC, while still allowing WinRTFeatureConfiguration overrides to force-enable/disable.

Copilot uses AI. Check for mistakes.
@unodevops
Copy link
Copy Markdown
Contributor

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

@nventive-devops
Copy link
Copy Markdown
Contributor

The build 205560 found UI Test snapshots differences: android-28-net9: 17, android-28-net9-Snap: 24, ios: 5, ios-Snap: 45, skia-linux-screenshots: 71, skia-windows-screenshots: 88, wasm: 109, wasm-automated-net10.0-WinUI-Benchmarks-automated: 0, wasm-automated-net10.0-WinUI-Default-automated: 13, wasm-automated-net10.0-WinUI-RuntimeTests-0: 0, wasm-automated-net10.0-WinUI-RuntimeTests-1: 0, wasm-automated-net10.0-WinUI-RuntimeTests-2: 0

Details
  • android-28-net9: 17 changed over 758

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Detereminate_ProgressRing_Validation75_[#FF0000_#008000_#008000_#008000]_Progress-Ring-Value-75
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • UpDownEnabledTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • When_Parent_PointerMoved_After_drag_on_ScrollViewer_-_touch
    • When_Parent_PointerMoved_After_drag_on_non-scrolling_ScrollViewer
    • When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_NoSelection_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • 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
    • NativeCommandBar_Size_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_Dynamic
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • WebView_NavigateToAnchor_Initial
    • Detereminate_ProgressRing_Validation25_[#FF0000_#008000_#FF0000_#FF0000]_Progress-Ring-Value-25
    • ListView_ListViewWithHeader_InitializesTest_SamplesApp_Windows_UI_Xaml_Controls_ListView_HorizontalListViewGrouped
    • WebView_NavigateToAnchor_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation
    • WebView_NavigateToLongString_AfterSuccess
    • Detereminate_ProgressRing_Validation50_[#FF0000_#008000_#008000_#FF0000]_Progress-Ring-Value-50
  • android-28-net9-Snap: 24 changed over 1069

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • TabView_MUXControlsTestApp_TabViewPage_MUXControlsTestApp_TabViewPage
    • Default_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected
    • ListView_ListView_With_ListViews_Count_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure
    • NavigationView_MUXControlsTestApp_NavigationViewTopNavPage_MUXControlsTestApp_NavigationViewTopNavPage
    • ListView_HorizontalListView_Padding_SamplesApp_Windows_UI_Xaml_Controls_ListView_HorizontalListView_Padding
    • CommandBar_Examples_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_Examples
    • MUX_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage
    • Projection_PlaneProjection_Basic_UITests_Shared_Windows_UI_Xaml_Media_Projection_PlaneProjection_Basic
    • RatingControl_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage
    • CommandBarFlyout_MUXControlsTestApp_CommandBarFlyoutPage_MUXControlsTestApp_CommandBarFlyoutPage
    • Gesture_Recognizer_Pointer_Events_test_bench_UITests_Shared_Windows_UI_Input_GestureRecognizer_PointersEvents
    • MediaPlayerElement_Using_ogg_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Ogg_Extension
    • Scrolling_MUXControlsTestApp_ScrollViewDynamicPage_MUXControlsTestApp_ScrollViewDynamicPage
    • Scrolling_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Uno_UI_Samples_UITests_Image_Image_Stretch
    • NavigationView_MUXControlsTestApp_NavigationViewRS4Page_MUXControlsTestApp_NavigationViewRS4Page
    • TextBlock_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_Layout_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_Layout
    • UIElement_TransformToVisual_Simple_UITests_Shared_Windows_UI_Xaml_UIElementTests_TransformToVisual_Simple
    • MediaPlayerElement_Mini_player_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Minimal
    • Transform_Basics_UITests_Shared_Windows_UI_Xaml_Media_Transform_Basics
  • ios: 5 changed over 213

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • TextBox_UpdatedBinding_On_OneWay_Mode_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_Bindings
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
  • ios-Snap: 45 changed over 988

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Grid_CenteredGridinGridwiththreefixedsizechildren_Uno_UI_Samples_Content_UITests_GridTestsControl_CenteredGridinGridwiththreefixedsizechildren
    • Image_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Formats_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Formats
    • Microsoft_UI_Xaml_Media_UITests_Windows_UI_Xaml_Media_ThemeShadowTests_ThemeShadow_Overlap_UITests_Windows_UI_Xaml_Media_ThemeShadowTests_ThemeShadow_Overlap
    • Brushes_ImageBrushWithScaleTransform_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushWithScaleTransform
    • Icons_UITests_Microsoft_UI_Xaml_Controls_ImageIconTests_ImageIconPage_UITests_Microsoft_UI_Xaml_Controls_ImageIconTests_ImageIconPage
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Smaller_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Smaller
    • 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
    • SwipeControl_MUXControlsTestApp_SwipeControlPage2_MUXControlsTestApp_SwipeControlPage2
    • Brushes_ImageBrushStretch_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushStretch
    • Brushes_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList
    • Grid_Grid_DataBound_ColumnRow_Definitions_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_DataBound_ColumnRow_Definitions
    • TextBlock_UITests_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_JustifiedText_UITests_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_JustifiedText
    • Brushes_PanelImageBrush_Uno_UI_Samples_UITests_ImageBrushTestControl_PanelImageBrush
    • Buttons_Custom_Button_With_ContentTemplate_Uno_UI_Samples_Content_UITests_ButtonTestsControl_Custom_Button_With_ContentTemplate
    • Default_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation
    • NavigationView_FluentStyle_NavigationViewSample_SamplesApp_Samples_Microsoft_UI_Xaml_Controls_NavigationViewTests_FluentStyle_FluentStyle_NavigationViewSample
    • Pointers_UITests_Windows_UI_Input_PointersTests_HitTest_Control_UITests_Windows_UI_Input_PointersTests_HitTest_Control
    • NavigationView_MUXControlsTestApp_NavigationViewCustomThemeResourcesPage_MUXControlsTestApp_NavigationViewCustomThemeResourcesPage
    • NavigationView_MUXControlsTestApp_NavigationViewMenuItemStretchPage_MUXControlsTestApp_NavigationViewMenuItemStretchPage
  • skia-linux-screenshots: 71 changed over 2322

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • DropDownButtonPage.png-dark
    • ExpanderColorValidationPage.png-dark
    • ExpanderColorValidationPage.png
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • Buttons.png-dark
    • ClipboardTests.png-dark
    • Examples.png-dark
    • Examples.png
    • DynamicFont.png-dark
    • DynamicFont.png
    • ImagesInlineInFlipView.png-dark
    • ImagesInlineInFlipView.png
    • ButtonClippingTestsControl.png-dark
    • ImageIconPage.png-dark
    • ImageIconPage.png
    • ListViewHeaderUpdate.png-dark
    • ButtonClippingTestsControl.png
    • ColorPickerSample.png-dark
    • ColorPickerSample.png
  • skia-windows-screenshots: 88 changed over 2324

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Gamepad_CurrentReading.png-dark
    • Gamepad_CurrentReading.png
    • Gamepad_Enumeration.png-dark
    • Gamepad_Enumeration.png
    • BasicThemeResources.png-dark
    • BasicThemeResources.png
    • BitmapIcon_Foreground.png
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • Buttons.png-dark
    • ClipboardTests.png-dark
    • ContentPresenter_Template.png-dark
    • ContentPresenter_Template.png
    • ContentPresenter_TextProperties.png-dark
    • DisplayInformation.png-dark
    • ContentPresenter_TextProperties.png
    • DisplayInformation.png
    • FluentStyle_NavigationViewSample.png-dark
    • FluentStyle_NavigationViewSample.png
    • CalendarView_Theming.png-dark
  • wasm: 109 changed over 1068

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • MUXControlsTestApp.CommandBarFlyoutPage
    • MUXControlsTestApp.SwipeControlPage
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ComboBox.ComboBox_Corners
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ListView.ListView_IsSelected
    • SamplesApp.Windows_UI_Xaml_Controls.ListView.ListViewResizable
    • SamplesApp.Windows_UI_Xaml_Controls.ListView.ListViewLegacy
    • SamplesApp.Windows_UI_Xaml_Controls.ListView.ListView_ItemTemplateSelector_And_ItemContainerStyleSelector
    • UITests.Shared.Windows_Devices.Midi.MidiDeviceOutputTests
    • UITests.Shared.Windows_Globalization.Language_Properties
    • UITests.Shared.Windows_Graphics_Display.DisplayInformationTests
    • UITests.Shared.Windows_UI_Xaml_Controls.CommandBar.CommandBar_Xaml_Automated
    • UITests.Shared.Windows_UI_Xaml_Media.Transform.List_With_Transformed_Ancestor
    • UITests.Shared.Windows_UI_Xaml_Controls.ScrollViewerTests.ScrollViewer_Content_Smaller_Than_Viewport
    • UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TestPage
    • UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TreeView
    • UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_ImplicitParentTextBlockStyle
    • UITests.Windows_UI_Xaml_Controls.UIElementCollectionTests.UIElementCollection_Insert
    • UITests.Windows_UI_Xaml_Controls.ViewBoxTests.Viewbox_Behavior
    • UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_SelectionHighlightColor
    • UITests.Windows_UI_Xaml_Input.Keyboard.Keyboard_Events
  • wasm-automated-net10.0-WinUI-Benchmarks-automated: 0 changed over 1

  • wasm-automated-net10.0-WinUI-Default-automated: 13 changed over 877

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Default_StrokeThickness_MyLine
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • When_StretchAndAlignmentNone_ImageBrush-50-50-None-XLeft-YBottom
    • Default_StrokeThickness_MyPath
    • Default_StrokeThickness_MyPolyline
    • When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • Default_StrokeThickness_MyPolygon
    • Default_StrokeThickness_MyRect
    • Default_StrokeThickness_MyEllipse
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • When_Theme_Changed_No_Crash_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming
    • When_TransformToVisual_ScrollViewer_UITests_Shared_Windows_UI_Xaml_UIElementTests_TransformToVisual_ScrollViewer
  • wasm-automated-net10.0-WinUI-RuntimeTests-0: 0 changed over 1

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

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

Comment thread src/Uno.UI/UI/Xaml/UIElement.HighContrast.cs
Copilot AI review requested due to automatic review settings April 9, 2026 21:27
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 38 out of 42 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 55 to +57
private static readonly Logger _log = typeof(ResourceResolver).Log();
private static readonly Dictionary<ResourceDictionary, HighContrastSystemColors> _highContrastSystemColorDefaults = new();
private static readonly (string ResourceKey, Func<HighContrastSystemColors, Color> Selector)[] _highContrastSystemColorMappings =
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

_highContrastSystemColorDefaults caches baseline colors keyed by ResourceDictionary with strong references and is never cleared. If HighContrast theme dictionaries are created dynamically (e.g., per XamlRoot or during hot reload), this can retain them indefinitely. Consider using a ConditionalWeakTable<ResourceDictionary, HighContrastSystemColors> (or another weak-key approach) so dictionaries can be collected, or explicitly evict entries when dictionaries are no longer reachable.

Copilot uses AI. Check for mistakes.
{
ApplyHighContrastSystemColors(dictionary, highContrastSystemColors);

foreach (var mergedDictionary in dictionary.MergedDictionaries)
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

UpdateHighContrastSystemColors recurses over dictionary.MergedDictionaries using foreach. Since MergedDictionaries is an ObservableCollection, modifying merged dictionaries during this update (e.g., hot reload or runtime dictionary changes) can throw 'Collection was modified' exceptions. Consider iterating a snapshot (e.g., ToArray()) or index-based copy before recursing.

Suggested change
foreach (var mergedDictionary in dictionary.MergedDictionaries)
foreach (var mergedDictionary in dictionary.MergedDictionaries.ToArray())

Copilot uses AI. Check for mistakes.
Comment on lines +983 to +989
/// <summary>
/// Forces all ResourceDictionary instances to re-evaluate their active theme dictionary.
/// This is needed when High Contrast state changes but the base theme key remains the same.
/// </summary>
internal void InvalidateActiveThemeDictionary()
{
_activeTheme = ResourceKey.Empty;
Copy link

Copilot AI Apr 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The XML doc for InvalidateActiveThemeDictionary says it "Forces all ResourceDictionary instances" to re-evaluate their active theme dictionary, but this is an instance method and only invalidates the current dictionary. Consider rewording the comment to avoid implying global invalidation, or (if global invalidation is intended) route this through a centralized mechanism.

Copilot uses AI. Check for mistakes.
@unodevops
Copy link
Copy Markdown
Contributor

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

@nventive-devops
Copy link
Copy Markdown
Contributor

The build 206490 found UI Test snapshots differences: android-28-net9: 17, android-28-net9-Snap: 24, ios: 5, ios-Snap: 45, skia-linux-screenshots: 71, skia-windows-screenshots: 425, wasm: 109, wasm-automated-net10.0-WinUI-Benchmarks-automated: 0, wasm-automated-net10.0-WinUI-Default-automated: 50, wasm-automated-net10.0-WinUI-RuntimeTests-0: 0, wasm-automated-net10.0-WinUI-RuntimeTests-1: 0, wasm-automated-net10.0-WinUI-RuntimeTests-2: 0

Details
  • android-28-net9: 17 changed over 758

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ListView_ListViewWithHeader_InitializesTest_SamplesApp_Windows_UI_Xaml_Controls_ListView_HorizontalListViewGrouped
    • NativeCommandBar_Size_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_Dynamic
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • UpDownEnabledTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • When_ExtendedSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_Parent_PointerMoved_After_drag_on_non-scrolling_ScrollViewer
    • When_MultipleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • WebView_NavigateToAnchor_Initial
    • WebView_NavigateToAnchor_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation
    • WebView_NavigateToLongString_AfterSuccess
    • Detereminate_ProgressRing_Validation50_[#FF0000_#008000_#008000_#FF0000]_Progress-Ring-Value-50
    • When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_NoSelection_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_ScrollViewer_-_touch
    • Detereminate_ProgressRing_Validation25_[#FF0000_#008000_#FF0000_#FF0000]_Progress-Ring-Value-25
  • android-28-net9-Snap: 24 changed over 1069

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ListView_HorizontalListView_Padding_SamplesApp_Windows_UI_Xaml_Controls_ListView_HorizontalListView_Padding
    • MediaPlayerElement_Using_ogg_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Ogg_Extension
    • Gesture_Recognizer_Pointer_Events_test_bench_UITests_Shared_Windows_UI_Input_GestureRecognizer_PointersEvents
    • ListView_ListView_With_ListViews_Count_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure
    • NavigationView_MUXControlsTestApp_NavigationViewRS4Page_MUXControlsTestApp_NavigationViewRS4Page
    • RatingControl_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage
    • Projection_PlaneProjection_Basic_UITests_Shared_Windows_UI_Xaml_Media_Projection_PlaneProjection_Basic
    • TabView_MUXControlsTestApp_TabViewPage_MUXControlsTestApp_TabViewPage
    • Scrolling_MUXControlsTestApp_ScrollViewDynamicPage_MUXControlsTestApp_ScrollViewDynamicPage
    • Scrolling_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage
    • TextBlock_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_Layout_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_Layout
    • CommandBarFlyout_MUXControlsTestApp_CommandBarFlyoutPage_MUXControlsTestApp_CommandBarFlyoutPage
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Uno_UI_Samples_UITests_Image_Image_Stretch
    • NavigationView_MUXControlsTestApp_NavigationViewTopNavPage_MUXControlsTestApp_NavigationViewTopNavPage
    • MUX_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage
    • CommandBar_Examples_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_Examples
    • Transform_Basics_UITests_Shared_Windows_UI_Xaml_Media_Transform_Basics
    • Default_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected
    • Scrolling_MUXControlsTestApp_ScrollViewWithScrollControllersPage_MUXControlsTestApp_ScrollViewWithScrollControllersPage
    • UIElement_TransformToVisual_Simple_UITests_Shared_Windows_UI_Xaml_UIElementTests_TransformToVisual_Simple
  • ios: 5 changed over 213

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • TextBox_UpdatedBinding_On_OneWay_Mode_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_Bindings
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
  • ios-Snap: 45 changed over 988

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • NavigationView_MUXControlsTestApp_NavigationViewMinimalPage_MUXControlsTestApp_NavigationViewMinimalPage
    • Performance_UITests_Windows_UI_Xaml_Performance_Performance_1000ButtonsContinuousRendering_UITests_Windows_UI_Xaml_Performance_Performance_1000ButtonsContinuousRendering
    • Brushes_BorderImageBrush_Uno_UI_Samples_UITests_ImageBrushTestControl_BorderImageBrush
    • Brushes_GenericApp_Views_Content_UITests_ImageBrushTestControl_BorderImageBrushRelativeTransform_GenericApp_Views_Content_UITests_ImageBrushTestControl_BorderImageBrushRelativeTransform
    • Brushes_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList
    • Grid_CenteredGridinGridwiththreefixedsizechildren_Uno_UI_Samples_Content_UITests_GridTestsControl_CenteredGridinGridwiththreefixedsizechildren
    • Default_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation
    • Icons_UITests_Microsoft_UI_Xaml_Controls_ImageIconTests_ImageIconPage_UITests_Microsoft_UI_Xaml_Controls_ImageIconTests_ImageIconPage
    • Microsoft_UI_Xaml_Media_UITests_Windows_UI_Xaml_Media_ThemeShadowTests_ThemeShadow_Overlap_UITests_Windows_UI_Xaml_Media_ThemeShadowTests_ThemeShadow_Overlap
    • MenuBar_SimpleMenuBar_UITests_Shared_Windows_UI_Xaml_Controls_MenuBarTests_SimpleMenuBar
    • Microsoft_UI_Composition_UITests_Shared_Windows_UI_Composition_SKCanvasElement_Simple_UITests_Shared_Windows_UI_Composition_SKCanvasElement_Simple
    • Microsoft_UI_Composition_UITests_Windows_UI_Composition_InteractionTrackerAndExpressionAnimationSample_UITests_Windows_UI_Composition_InteractionTrackerAndExpressionAnimationSample
    • Pointers_UITests_Windows_UI_Input_PointersTests_HitTest_Control_UITests_Windows_UI_Input_PointersTests_HitTest_Control
    • ContentControl_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_Nested_TemplatedParent_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_Nested_TemplatedParent
    • Grid_Grid_DataBound_ColumnRow_Definitions_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_DataBound_ColumnRow_Definitions
    • 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_Alignment_SizeOnControl_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Alignment_SizeOnControl
    • Brushes_ImageBrushWithScaleTransform_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushWithScaleTransform
    • Buttons_Custom_Button_With_ContentTemplate_Uno_UI_Samples_Content_UITests_ButtonTestsControl_Custom_Button_With_ContentTemplate
    • Image_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Formats_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Formats
  • skia-linux-screenshots: 71 changed over 2322

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ButtonClippingTestsControl.png
    • Buttons.png-dark
    • ColorPickerSample.png-dark
    • ColorPickerSample.png
    • Gamepad_CurrentReading.png-dark
    • Gamepad_CurrentReading.png
    • Gamepad_Enumeration.png-dark
    • Gamepad_Enumeration.png
    • DisplayInformation.png-dark
    • DisplayInformation.png
    • CompositionEffectBrush.png-dark
    • CompositionEffectBrush.png
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • ClipboardTests.png-dark
    • ClipboardTests.png
    • CalendarView_Theming.png-dark
    • CalendarView_Theming.png
    • ButtonClippingTestsControl.png-dark
    • DynamicFont.png-dark
  • skia-windows-screenshots: 425 changed over 2326

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • AndroidWindowInsets.png-dark
    • AutomationProperties_Name.png
    • CalendarView_Theming.png-dark
    • CalendarView_Theming.png
    • Clipping652.png-dark
    • Clipping652.png
    • Flyout_Events.png
    • Battery.png-dark
    • Battery.png
    • BitmapImage_vs_SvgImageSource.png-dark
    • ButtonClippingTestsControl.png
    • Buttons.png-dark
    • Capture.png
    • CornerRadiusControls.png-dark
    • CornerRadiusControls.png
    • CheckBox_Button.png-dark
    • CheckBox_Button.png
    • Display.DisplayRequest.png-dark
    • Display.DisplayRequest.png
    • DropDownButtonPage.png-dark
  • wasm: 109 changed over 1068

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ListView.ListView_IsSelected
    • SamplesApp.Windows_UI_Xaml_Controls.ListView.ListViewLegacy
    • UITests.Shared.Microsoft_UI_Xaml_Controls.ExpanderTests.WinUIExpanderPage
    • UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_ClipboardMethods
    • MUXControlsTestApp.CommandBarFlyoutPage
    • MUXControlsTestApp.SwipeControlPage
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ComboBox.ComboBox_PlaceholderText
    • UITests.Shared.Windows_UI_Input.GestureRecognizerTests.Button_Inside_Border
    • UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TestPage
    • UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TreeView
    • UITests.Windows_UI_Xaml_Shapes.Shape_StrokeTest
    • UITests.Microsoft_UI_Xaml_Controls.TreeViewTests.TreeView_ItemInvoked
    • UITests.Shared.Windows_Graphics_Display.DisplayInformationTests
    • UITests.Windows_UI_Xaml_Controls.ViewBoxTests.Viewbox_Behavior
    • UITests.Windows_UI_Xaml_Input.Keyboard.Keyboard_Events
    • Uno.UI.Samples.Content.UITests.ButtonTestsControl.AppBar_KeyBoard
    • SamplesApp.Windows_UI_Xaml_Controls.ListView.ListViewHeaderFooter_ImplicitlyBinded
    • SamplesApp.Windows_UI_Xaml_Controls.ListView.ListView_ItemTemplateSelector_And_ItemContainerStyleSelector
    • UITests.Shared.Windows_UI_Xaml_Controls.ComboBox.ComboBox_ComboBoxItem_Selection
    • UITests.Shared.Windows_UI_Xaml_Controls.ToggleSwitchControl.ToggleSwitchUnloadReload
  • wasm-automated-net10.0-WinUI-Benchmarks-automated: 0 changed over 1

  • wasm-automated-net10.0-WinUI-Default-automated: 50 changed over 877

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • Screenshots_Image_Stretch_Algmnt_Inf_Vertical_Mode-0
    • Screenshots_Image_Stretch_Algmnt_Inf_Vertical_Mode-1
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • Screenshots_Image_Stretch_Alignment_Wider_Mode-2
    • Screenshots_Image_Stretch_Alignment_Wider_Mode-3
    • When_Padding_Is_Changed_Then_Cache_Is_Missed_UITests_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_MeasureCache
    • Default_StrokeThickness_MyLine
    • Screenshots_Image_Stretch_Algmnt_Inf_Horizontal_Mode-0
    • Screenshots_Image_Stretch_Algmnt_Inf_Horizontal_Mode-1
    • Screenshots_Image_Stretch_Algmnt_Inf_Horizontal_Mode-2
    • Screenshots_Image_Stretch_Algmnt_Inf_Horizontal_Mode-3
    • When_MaxLines_Then_AlignmentPositionIsCorrect_Uno_UI_Samples_Content_UITests_TextBlockControl_SimpleText_MaxLines_Two_With_Wrap
    • Screenshots_Image_Stretch_Alignment_Equal_Mode-2
    • Screenshots_Image_Stretch_Alignment_Equal_Mode-3
    • Screenshots_Image_Stretch_Alignment_SizeOnControl_Mode-0
    • Screenshots_Image_Stretch_Alignment_SizeOnControl_Mode-1
    • Default_StrokeThickness_MyPolygon
    • Screenshots_Image_Stretch_Alignment_Taller_Mode-2
    • Screenshots_Image_Stretch_Alignment_Taller_Mode-3
  • wasm-automated-net10.0-WinUI-RuntimeTests-0: 0 changed over 1

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/automation Categorizes an issue or PR as relevant to project automation area/skia ✏️ Categorizes an issue or PR as relevant to Skia kind/documentation platform/android 🤖 Categorizes an issue or PR as relevant to the Android platform platform/ios 🍎 Categorizes an issue or PR as relevant to the iOS platform platform/macos 🍏 Categorizes an issue or PR as relevant to the macOS platform platform/wasm 🌐 Categorizes an issue or PR as relevant to the WebAssembly platform platform/x11 🐧 Categorizes an issue or PR as relevant to X11

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants