Dev/bc public api phase4#23619
Conversation
BC08: NavigatingCancelEventArgs ctor -> internal. BC11: PageStackEntry.SourcePageType setter -> internal. BC12: Frame.BackStack setter -> internal. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Tighten members that are public in Uno but non-public/absent in WinUI: BC09: ComboBox.OnIsDropDownOpenChanged -> private protected. BC15: seal PropertyPath. BC20: FrameworkPropertyMetadata.DefaultUpdateSourceTrigger -> internal. BC22: IMenu/IMenuPresenter/ISubMenuOwner -> internal. BC24: hide BrushConverter from IntelliSense. BC25: Border.ChildProperty -> internal. BC28: CompositionSpriteShape.StrokeDashArray setter -> internal. BC48: MaterializableList<T> -> internal. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
BC57: ToggleButton/TextBox/ToggleSwitch implemented the internal IFrameworkTemplatePoolAware.OnTemplateRecycled as a public method; move to explicit-interface implementation to match WinUI surface. Update the runtime test to invoke through the interface. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
BC62: rename the misspelled Application.TraceProvider.LauchedStart/ LauchedStop constants to LaunchedStart/LaunchedStop (#13709). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
BC64: Duration.TimeSpan was a mutable public field; make it a get-only property to match WinUI. Unary + returns the operand unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Check off the 14 completed Phase 4 visibility/signature items. BC16: dropped (pooled DependencyPropertyChangedEventArgs already captures the allocation win; struct stays disabled). BC41: blocked/deferred (Microsoft.UI.Input.PointerPoint is not reachable from Uno.UI.Composition without relocating the type). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
BC17: XamlCompositionBrushBase.CompositionBrush public -> protected.
BC19: remove Uno-only FlyoutBase.Close() (synonym of Hide()); callers
and tests use Hide().
BC36: ContentPresenter.ContentTemplateRoot public -> internal (WinUI
exposes it only on ContentControl, which stays public).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
BC34: remove TextBox's empty OnVerticalContentAlignmentChanged override and narrow ContentPresenter.OnVerticalContentAlignmentChanged from protected virtual to private protected (not a WinUI extensibility point). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
BC65: FrameworkElement and ContentControl implemented IEnumerable (+ GetEnumerator) which WinUI does not. Remove the interface and its members. Symmetric removal, so compile-safe on all targets; native-WASM build to be confirmed on CI (wasm-tools unavailable locally). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
BC43: remove the op_Explicit binary-compat shim on
Microsoft.UI.Input.PointerPoint (implicit operators stay).
BC49: remove the empty no-op RestoreBindings()/ClearBindings() from
DependencyObjectStore and stop the DependencyObjectGenerator from
emitting the public wrappers on every DependencyObject.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
BC63: remove the public binary-compat SetterBase.set_Property(string)
shim (no WinUI equivalent; forwarded to internal OnStringPropertyChanged).
BC27: reimplement DoubleCollection over a private List<double> (IList<double>)
instead of deriving from List<double>, matching WinUI and PointCollection.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This reverts commit fea246119bae19c75e0e1e3c3558e85c2ca15c92.
Removing IEnumerable from FrameworkElement/ContentControl breaks C#
collection-initializer syntax (new Panel { child }) across tests,
samples, and user code. Reverted; needs a decision + migration sweep.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
BC16 is decided (dropped): the DependencyPropertyChangedEventArgs pool already captures the allocation win, and the struct drops precedence/ bypass fields. Delete the #if false struct and its stale commented reference instead of leaving 'bring back in Uno 6' dead code. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Move Microsoft.UI.Input.PointerPoint, PointerPointProperties, PointerUpdateKind, PointerDeviceType and IPointerPointTransform down from Uno.UI to Uno.UWP so lower assemblies can name them in public signatures, and drop the legacy Windows.UI.Input pointer/gesture/manipulation family. - Relocate the 5 types (+ their generated stubs) into Uno.UWP and route them there in the WinAppSDK sync generator (GetNamespaceBasePath). - Remove the Uno.UI\UI\Input\WinRT\*.cs link from the 4 Uno.UWP csprojs and delete the now-unbacked Windows.UI.Input.* generated stubs; skip them in the generator so a future sync does not reintroduce them. - BC41: VisualInteractionSource.TryRedirectForManipulation and ICompositionTarget now take Microsoft.UI.Input.PointerPoint (WinUI parity). - Migrate all consumers (CoreWindow, InputManager, injection, Skia input hosts, tests, samples) from Windows.UI.Input.* to Microsoft.UI.Input.*. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
WinAppSDK sync generator drift detected on
|
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html |
- Sync generated stubs to actual generator output: the relocated Microsoft.UI.Input.* stubs now live in Uno.UWP, where ShouldEmitNativeDefines is true, so they carry the __ANDROID__/__IOS__/__TVOS__/__WASM__ platform conditions; the dropped Ink methods use the canonical "Forced skipping" comments; DoubleCollection GetEnumerator comment realigned. - Resolve namespace collisions on non-Skia heads that only surface off the Skia build: MacOS/Tizen no longer import Microsoft.UI.Input (it shadowed Windows.UI.Core.KeyEventArgs); they call the PointerPointProperties extension fully-qualified and keep type aliases. Android MotionEvent/Pointer helpers disambiguate PointerDeviceType to Windows.Devices.Input. - Remove duplicate `using Microsoft.UI.Input;` directives (CS0105) introduced by the namespace migration across tests and samples. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html |
…ings/RestoreBindings BC49 removed the obsolete ClearBindings/RestoreBindings shims from DependencyObjectGenerator but left the TestNested golden stale. The build failure in the first CI run masked this (unit tests never ran); with the build green it surfaced. Align the expected OuterClass.Inner.cs baseline. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html |
The Phase-4 API-alignment changes on this branch (visibility reductions, signature fixes, the Microsoft.UI.Input.PointerPoint relocation, and the BC49 ClearBindings/RestoreBindings removal) are intentional public-API breaks that were never added to the diff-ignore set. The first CI runs masked this (the managed build failed before packaging ran). Add the entries the Uno.PackageDiff validation reported for the 6.6 base set: 8 types, 4 properties, 1 field, 231 methods (mostly ClearBindings/ RestoreBindings across DependencyObject types). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html |
The previous commit added the entries only to the 6.6 IgnoreSet, but PackageDiff applies the set matching the current latest-stable base (Uno.WinUI 6.5.237 → the "6.5" set), so they weren't matched. Mirror the entries into the 6.5 set (as the existing recent breaks are), keeping the 6.6 copy for when stable advances. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html |
The package-diff dropped from 976 to 2 unmatched after the 6.5 entries; the remainder is CommunityToolkit.WinUI.Lottie.LottieVisualSourceBase ClearBindings/RestoreBindings (BC49), which weren't in the first log sample. Add them to the 6.5 and 6.6 sets. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html |
|
The build 220938 did not find any UI Test snapshots differences. |
The package-diff runs per-package; after Uno.WinUI passed it advanced to the Uno.WinRT (Uno.UWP) package and flagged the dropped legacy Windows.UI.Input.* pointer/gesture/manipulation types, the retyped Windows.UI.Core.PointerEventArgs.CurrentPoint/GetIntermediatePoints (now Microsoft.UI.Input.PointerPoint), and Uno.Collections.MaterializableList (BC48). Add these to the applied 6.5 set (and 6.6). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html |
|
The build 220970 did not find any UI Test snapshots differences. |
|
|
…orm/uno into dev/bc-public-api-phase4 # Conflicts: # build/PackageDiffIgnore.xml
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-23619/wasm-skia-net9/index.html |
|
The build 221070 found UI Test snapshots differences: Details
|
|
|
GitHub Issue: closes https://github.com/unoplatform/uno-private/issues/2126
PR Type:
What changed? 🚀
PR Checklist ✅
Screenshots Compare Test Runresults.