-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[net9.0] Merge main to net9.0 #22218
Commits on Apr 16, 2024
-
[X] Fix TargetType simplification bug (#21764)
* Add unit test * Simplify TargetType=x:Type before setting resources
Configuration menu - View commit details
-
Copy full SHA for df8aa54 - Browse repository at this point
Copy the full SHA df8aa54View commit details
Commits on Apr 17, 2024
-
fix: Use AppContext.BaseDirectory instead of Environment.CurrentDirec…
Configuration menu - View commit details
-
Copy full SHA for d6a3c50 - Browse repository at this point
Copy the full SHA d6a3c50View commit details -
Remove 2nd webview2 used to add
base
tag to passed htmlMike Corsaro committedApr 17, 2024 Configuration menu - View commit details
-
Copy full SHA for 3006205 - Browse repository at this point
Copy the full SHA 3006205View commit details -
Mike Corsaro committed
Apr 17, 2024 Configuration menu - View commit details
-
Copy full SHA for c0f393a - Browse repository at this point
Copy the full SHA c0f393aView commit details
Commits on Apr 18, 2024
-
[ios/catalyst] fix memory leak with CollectionView (#21850)
Fixes: #20710 Context: https://github.com/marco-skizza/MauiCollectionView Testing the sample above, you can see a memory leak when setting up a `CollectionView`'s `DataTemplate` in XAML, but it appears to work just fine with C#. Using `dotnet-gcdump` with a `Release` build of the app, I see: ![image](https://github.com/dotnet/maui/assets/840039/6b4b8682-2989-4108-8726-daf46da146e4) You can cause the C# version to leak, if you make the lambda an instance method: * jonathanpeppers/iOSMauiCollectionView@3e5fb02 XAML just *happens* to use an instance method, no matter if XamlC is on/off. I was able to reproduce this in `CollectionViewTests.iOS.cs` by making the `CollectionView` look like a "user control" and create an instance method. There is a "cycle" that causes the problem here: * `Microsoft.Maui.Controls.Handlers.Items.VerticalCell` (note this is a `UICollectionViewCell`) -> * `DataTemplate` -> * `Func<object>` -> * `PageXamlLeak` (or `PageCsOk` w/ my change) -> * `CollectionView` -> * `Microsoft.Maui.Controls.Handlers.Items.VerticalCell` The solution being to make `TemplatedCell` (which is a subclass of `VerticalCell`) hold only a `WeakReference` to the `DataTemplate`. With this change in place, the test passes. ~~ Notes about Catalyst ~~ 1. The new test passes on Catalyst (with the `#if` removed), if you run it by itself 2. If you run *all* the tests, it seems like there is a `Window` -> `Page` -> `CollectionView` that makes the test fail. 3. This seems like it's all related to the test setup, and not a bug. It seems like what is here might be OK for now? If Catalyst leaks, it would probably leak on iOS as well and the test passes there.
Configuration menu - View commit details
-
Copy full SHA for d3335ad - Browse repository at this point
Copy the full SHA d3335adView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8e4450c - Browse repository at this point
Copy the full SHA 8e4450cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9fd58d7 - Browse repository at this point
Copy the full SHA 9fd58d7View commit details -
[iOS] Fix crash closing Popup with WebView (#21923)
* [iOS] Fix crash closing Popup with WebView (#21718) * Added repro sample * Fix the issue * Added UI Test * Updated csproj * More changes * Removed sample and test * More changes * Removed unnecesary changes * Added UITest * Update Issue21846.xaml.cs * Update Issue21846Modal.xaml.cs * Update Issue21846.cs --------- Co-authored-by: Javier Suárez <javiersuarezruiz@hotmail.com>
Configuration menu - View commit details
-
Copy full SHA for 94d4aa2 - Browse repository at this point
Copy the full SHA 94d4aa2View commit details -
* Bump the Locker action version Refer to microsoft/vscode-github-triage-actions#210 * Restrict the Locker action to dotnet org
Configuration menu - View commit details
-
Copy full SHA for 345bb16 - Browse repository at this point
Copy the full SHA 345bb16View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6487271 - Browse repository at this point
Copy the full SHA 6487271View commit details -
Configuration menu - View commit details
-
Copy full SHA for e94eec6 - Browse repository at this point
Copy the full SHA e94eec6View commit details
Commits on Apr 19, 2024
-
Configuration menu - View commit details
-
Copy full SHA for ebd35ca - Browse repository at this point
Copy the full SHA ebd35caView commit details -
[windows] less interops in calling
get_Children
(#21792)The PR trivially attempts to decrease the number of interops, using a local variable. Contributes to #21787
Configuration menu - View commit details
-
Copy full SHA for 1d635bb - Browse repository at this point
Copy the full SHA 1d635bbView commit details -
[controls] fix leak in ImageSource, caused by Task that never complet…
…es (#21928) Context: https://github.com/AdamEssenmacher/MemoryToolkit.Maui/tree/main/samples Testing the above sample, I saw some odd results in a `.gcdump` related to `UriImageSource` inside a `CollectionView`: AsyncTaskMethodBuilder+AsyncStateMachineBox<VoidTaskResult, Microsoft.Maui.Controls.ImageElement+<CancelOldValue>d__10>, Count: 182 Dictionary+Entry<Int32, Task>[], Count: 182 Dictionary<Int32, Task> [Static variable Task.s_currentActiveTasks], Count: 1 It appears that we `await` a `Task` that never completes, which is: https://github.com/dotnet/maui/blob/8e4450cbc14932a6c74aeb8b7bfee9c94eca18b0/src/Controls/src/Core/ImageElement.cs#L129 The `Task` also holds onto the `ImageSource` and whatever memory it happened to use. That would be ok if the `Task` completed. I could reproduce the problem in a test: [Fact] public async Task CancelCompletes() { var imageSource = new StreamImageSource { Stream = _ => Task.FromResult<Stream>(new MemoryStream()) }; await ((IStreamImageSource)imageSource).GetStreamAsync(); await imageSource.Cancel(); // This should complete! } This non-completing `Task` can occur when changing `Image.Source`, which would certainly be bad while scrolling a `CollectionView`! To fix, I refactored the code slightly and had the problematic case return: return Task.FromResult(false);
Configuration menu - View commit details
-
Copy full SHA for 4cfdc90 - Browse repository at this point
Copy the full SHA 4cfdc90View commit details -
More IndexOf() optimization (#20083)
* Use better IndexOf where possible * apply similar performance improvement to the predicate-based IndexOf() * use built-in IndexOfChild on Android * add braces as per new editorconfig rule * use TryGetValue to avoid double lookup --------- Co-authored-by: Edward Miller <symbiogenisis@outlook.com>
1Configuration menu - View commit details
-
Copy full SHA for f73fcc6 - Browse repository at this point
Copy the full SHA f73fcc6View commit details -
Configuration menu - View commit details
-
Copy full SHA for b0e562e - Browse repository at this point
Copy the full SHA b0e562eView commit details
Commits on Apr 20, 2024
-
[ios/catalyst] fix memory leak in gestures (#21887)
* [ios/catalyst] fix memory leak in gestures Related: #21089 Context: jonathanpeppers/iOSMauiCollectionView@547b7fa Doing something like this and running on iOS or Catalyst: <CollectionView.ItemTemplate> <DataTemplate> <Label Text="{Binding Name}"> <Label.GestureRecognizers> <TapGestureRecognizer Command="{Binding BindingContext.Command}" /> </Label.GestureRecognizers> </Label> </DataTemplate> </CollectionView.ItemTemplate> Causes a memory leak. I could reproduce this in a test that is a bit more elaborate than #21089, showing issues for different types of gestures: * Usage of `ShouldReceiveTouch` creates a cycle: * `GesturePlatformManager` -> `UIGestureRecognizer.ShouldReceiveTouch` -> `GesturePlatformManager` * We can move `ShouldReceiveTouch` to a "proxy" class, and avoid the cycle. * `PanGestureRecognizer` has closures that cause the same cycle: * `this.PlatformView` -> `eventTracker?.PlatformView` * `panRecognizer` -> `((PanGestureRecognizer)panGestureRecognizer)` * These already had a `WeakReference` to use instead, but we could just make use of them. There *may* be a general problem with `CollectionView` in how it doesn't tear down `GesturePlatformManager` in the same way for children. But in either case, the problems above are cycles that should be broken. * Fix test on Windows
Configuration menu - View commit details
-
Copy full SHA for be17057 - Browse repository at this point
Copy the full SHA be17057View commit details
Commits on Apr 22, 2024
-
Setup scaffolding for legacy test runner (#21423)
* Just added a couple of tests * Focus on Android and iOS (for now) * Added legacy tests to the pipeline * More changes * More changes * Fixed build * Created ui-tests-legacy-steps.yml * More changes * More changes * Updated Appium to RC7 * Update ui-tests.yml * Fixed test on Android * Fixed test * More changes * More changes * Updated snapshot * More fixes * Clean code * Run test only on iOS * Added pending constant * Fix build error * More changes * Update ControlGallery.iOS.Appium.UITests.csproj * Update ControlGallery.Shared.Appium.UITests.csproj * Trying to run only on iOS * This is the fix, I feel it * Fix merge error --------- Co-authored-by: Gerald Versluis <gerald.versluis@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 632080a - Browse repository at this point
Copy the full SHA 632080aView commit details -
[WinUI]
GesturePlatformManager.Windows.cs
- unused variable (#21953)* Code style * Remove unused line
Configuration menu - View commit details
-
Copy full SHA for 7ba723c - Browse repository at this point
Copy the full SHA 7ba723cView commit details -
IndexOf() stackOverflow fix (#20083) (#21965)
* Update EnumerableExtensions.cs * Update EnumerableExtensions.cs
Configuration menu - View commit details
-
Copy full SHA for 86e22dd - Browse repository at this point
Copy the full SHA 86e22ddView commit details -
Add visual test for webview2 on windows
Mike Corsaro committedApr 22, 2024 Configuration menu - View commit details
-
Copy full SHA for 143550b - Browse repository at this point
Copy the full SHA 143550bView commit details -
Co-authored-by: Edward Miller <symbiogenisis@outlook.com>
Configuration menu - View commit details
-
Copy full SHA for 3f9472b - Browse repository at this point
Copy the full SHA 3f9472bView commit details
Commits on Apr 23, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 994117b - Browse repository at this point
Copy the full SHA 994117bView commit details -
Add s/triaged label for issues opened by (core) team (#22006)
* Add s/triaged label for issues opened by (core) team Alternate approach to #21775 as that clearly didn't work. Hoping this _will_ work! From the original PR: > Adds a rule to the bot that adds the s/triaged label to an issue which is opened by the core team (someone with write permissions on the repo). A lot of times these issues are tasks and/or very cryptic to the triage team. This way, the triage team will skip these issues and we assume the issues are valid ones and/or not issues that need triage. * Update resourceManagement.yml
Configuration menu - View commit details
-
Copy full SHA for 17b05bc - Browse repository at this point
Copy the full SHA 17b05bcView commit details -
[Windows] Remove 2nd WebView used to add
base
tag when using HtmlWe……bViewSource (#21892) ### Description of Change This PR removes the use of a 2nd "hidden" WebView2 that was used to parse and add a HTML `base` tag to the `head` tag when setting the HTML source of a WebView to a string. This was done by appending the `base` tag script to the start of the user's HTML string, which the WebView then adds into the `head` element. While this is technically not valid HTML, all current browsers correct this behavior. This is a work-around for the lack of being able to set the base URL when navigating to a string using WebView2 (MicrosoftEdge/WebView2Feedback#530). As a bonus, using `HtmlWebViewSource` should now be 2x faster 😅 ### Issues Fixed Fixes #21631
Configuration menu - View commit details
-
Copy full SHA for 440fa7f - Browse repository at this point
Copy the full SHA 440fa7fView commit details
Commits on Apr 24, 2024
-
Configuration menu - View commit details
-
Copy full SHA for c1912df - Browse repository at this point
Copy the full SHA c1912dfView commit details -
[iOS] Add UITest for #21806 (#21951)
* Add UITest and use IsDescendant of ContainverVC * Add button to focus entry in the navbar * UITests working separately * Use the modal stack
Configuration menu - View commit details
-
Copy full SHA for a0abfd0 - Browse repository at this point
Copy the full SHA a0abfd0View commit details -
[ios/catalyst] fix memory leaks in ListView (#22007)
* [ios/catalyst] fix memory leaks in ListView Fixes: #20025 I could reproduce the leak here, pretty easily with changes to `MemoryTests`. `ListView` has several cycles that prevent garbage collection from happening: * `FormsUITableViewController` has `ListView _list` * `FormsUITableViewController` -> `ListView` -> `ListViewRenderer` -> `FormsUITableViewController` * `ListViewDataSource` has `UITableView _uiTableView` * `ListViewDataSource` -> `UITableView` -> `ListViewDataSource` * `ListViewDataSource` has `FormsUITableViewController _uiTableViewController` * `ListViewDataSource` -> `FormsUITableViewController` -> `UITableView` -> `ListViewDataSource` * `ListViewDataSource` has `protected ListView List` * `ListViewDataSource` -> `ListView` -> `ListViewRenderer` -> `FormsUITableViewController` -> `UITableView` -> `ListViewDataSource` I changed the above fields to all be `WeakReference<T>` and the leaks went away. * Tentative fix for Android Context: #18757 * Revert "Tentative fix for Android" This reverts commit b294779. * Ignore ListView test on Android for now
Configuration menu - View commit details
-
Copy full SHA for d92bebd - Browse repository at this point
Copy the full SHA d92bebdView commit details
Commits on Apr 25, 2024
-
[UI Testing] Split mouse and touch Appium actions and added pending o…
…nes (TouchAndHold etc) (#21305) * Split mouse and touch Appium actions * More changes * Fixes * Fix build errors * More changes * Fix build errors * More updates
Configuration menu - View commit details
-
Copy full SHA for abada83 - Browse repository at this point
Copy the full SHA abada83View commit details -
[Windows] Use correct build version check (#22013)
* [Windows] Use correct build version check Windows 11 version isn't actually 11.*, it's 10.0.21996 * Update Connectivity.uwp.cs
Configuration menu - View commit details
-
Copy full SHA for c1aabfe - Browse repository at this point
Copy the full SHA c1aabfeView commit details -
Navigate Directly to Test (#22019)
* Navigate Directly To Test * - add additional wait for element
Configuration menu - View commit details
-
Copy full SHA for 218a9de - Browse repository at this point
Copy the full SHA 218a9deView commit details
Commits on Apr 26, 2024
-
Configuration menu - View commit details
-
Copy full SHA for adbc760 - Browse repository at this point
Copy the full SHA adbc760View commit details -
[iOS] Implemented PrefersHomeIndicatorAutoHidden, PrefersStatusBarHid…
Configuration menu - View commit details
-
Copy full SHA for 409c620 - Browse repository at this point
Copy the full SHA 409c620View commit details -
Configuration menu - View commit details
-
Copy full SHA for 70c2903 - Browse repository at this point
Copy the full SHA 70c2903View commit details -
[iOS] Allow compat iOS buttons to resize image and to respect spacing…
… and padding (#21759) * Fix the iOS button to resize the image, respect padding, and respect spacing * allow UITest - waiting for CI results * Allow the image to actually take up the whole space and fix issue with buttons without images or titles resizing * Add UITest screenshot * remove changes to sandbox * Added manual testing sample * More changes in the sample * Do not hide the text if it doesn't fit and resize if no title * UITests cannot share the same name --------- Co-authored-by: Javier Suárez <javiersuarezruiz@hotmail.com>
Configuration menu - View commit details
-
Copy full SHA for 63eb6b6 - Browse repository at this point
Copy the full SHA 63eb6b6View commit details -
Fix null reference exception in KeyboardAutoManagerScroll when UIWind…
…ow is null (#21753) * Fix null reference when window is null When using certain controls ie bottom sheets and search bars there can be a crash when the keyboard displays. Check for null & return early if it is. * set flag to false if returning * remove change on line 1 * Add IsDescendant of ContainerVC * remove the extra IsKeyboardAutoScrollHandling flag * remove extra style changes * Add UITest * Use UIView AccessibilityIdentifier on UITest * Add ignore in platform and remove catch in favor of rebasing main --------- Co-authored-by: tj-devel709 <tj.devel709@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 7a37ebf - Browse repository at this point
Copy the full SHA 7a37ebfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0117681 - Browse repository at this point
Copy the full SHA 0117681View commit details
Commits on Apr 27, 2024
-
[android] use Java primitive
boolean
forUriImageSource
(#22040)Context: https://cs.android.com/android/platform/superproject/main/+/main:libcore/ojluni/annotations/hiddenapi/java/lang/Boolean.java;l=109?q=boolean.java Some internal APIs in MAUI were using `java.lang.Boolean` when they could just use `boolean` instead. Java `boolean` is a primitive type, while `java.lang.Boolean` is an object (that can be null). This is similar to `bool` vs `bool?` in C#, except Java does not have `struct`. This avoids: * JNI field lookup of `Boolean.TRUE` and `Boolean.FALSE` on startup * JNI field reads of `Boolean.TRUE` and `Boolean.FALSE` on every `UriImageSource` creation * Creating a C# instance of `Java.Lang.Boolean`, and the bookkeeping for reusing C# instances I was also going to change `ImageLoaderCallback.onComplete`, but it is listed as a public API. This is a small improvement, but should help all `UriImageSource` on Android.
Configuration menu - View commit details
-
Copy full SHA for 48d5ebf - Browse repository at this point
Copy the full SHA 48d5ebfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 944f085 - Browse repository at this point
Copy the full SHA 944f085View commit details -
Co-authored-by: Edward Miller <symbiogenisis@outlook.com>
Configuration menu - View commit details
-
Copy full SHA for 6654fac - Browse repository at this point
Copy the full SHA 6654facView commit details
Commits on Apr 28, 2024
-
Improve error logging for failed resizetizering (#22064)
* Improve error logging for failed resizetizering * Fix tests
Configuration menu - View commit details
-
Copy full SHA for e33d176 - Browse repository at this point
Copy the full SHA e33d176View commit details
Commits on Apr 29, 2024
-
[UI Testing] Implement PressEnter method (#22112)
* Implement PressEnter method on appium * IsKeyboardShown not implemented on Windows * Updated test
Configuration menu - View commit details
-
Copy full SHA for 8a54162 - Browse repository at this point
Copy the full SHA 8a54162View commit details -
Fix TabbedPage title displaying incorrectly (#17039)
* Fix TabbedPage title displaying incorrectly Presently, when a navigation page is created and a tabbed page is added to it with children, the navigation page uses the tabbed page's selected child title as its title. This behavior is unexpected when using standard tabs (tabs on the top) in a navigation page on Android. Without a custom tabbed page, this behavior makes sense, especially for bottom tabs; however, when a custom tabbed page is defined, it seems that the title should not be overridden. Fixes #8577 * Add device tests * Add unit tests * Updated test * More tests * Fixed test not being able to fail * Changed GetTitle to work with more than just TabbedPages * Removed tests that deal with Child page titles replacing the Toolbar title --------- Co-authored-by: Javier Suárez <javiersuarezruiz@hotmail.com> Co-authored-by: Dustin Wojciechowski <dustin.wojciechowski@microsoft.com> Co-authored-by: Dustin Wojciechowski <dustinwo@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 6328b76 - Browse repository at this point
Copy the full SHA 6328b76View commit details
Commits on Apr 30, 2024
-
Update dependencies from https://github.com/dotnet/xharness build 202…
…40424.1 (#22119) Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit From Version 9.0.0-prerelease.24208.1 -> To Version 9.0.0-prerelease.24224.1 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 7d9fb20 - Browse repository at this point
Copy the full SHA 7d9fb20View commit details
Commits on May 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 05e72cf - Browse repository at this point
Copy the full SHA 05e72cfView commit details -
Configuration menu - View commit details
-
Copy full SHA for a2f1a89 - Browse repository at this point
Copy the full SHA a2f1a89View commit details -
Configuration menu - View commit details
-
Copy full SHA for ab80939 - Browse repository at this point
Copy the full SHA ab80939View commit details
Commits on May 2, 2024
-
Android mipmap/appicon failing with "APT2260" (#21838)
Context https://developercommunity.visualstudio.com/t/Android-mipmapappicon-failing-with-APT/10622494 Users are reporting this error quite allot. During a build it fails with the following error ``` APT2260 resource mipmap/appicon (aka xxx:mipmap/appicon) not found. ``` Further investigation this only appears to happen during a full build of all the platforms. Specifying `-f net8.0-android` on the build this does not seem to happen at all. The problem is the build gets into a weird situation where the `mauiimage.stamp` file is present but none of the generated images are. Considering that the stamp file gets generated AFTER the images its kinda difficult to see how this even occurs. The work around for this is to write the list of generated image files to `mauiimage.outputs`. We can then read this list back on subsequent builds and use that list for the `Outputs` of the `ResizetizeImages` target. This means the target will run if either the stamp file or any of the expected images are not present.
Configuration menu - View commit details
-
Copy full SHA for ff5f3f0 - Browse repository at this point
Copy the full SHA ff5f3f0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2fc4774 - Browse repository at this point
Copy the full SHA 2fc4774View commit details -
Configuration menu - View commit details
-
Copy full SHA for 222ca3c - Browse repository at this point
Copy the full SHA 222ca3cView commit details
Commits on May 6, 2024
-
Merge branch 'main' into merge-main-net90
# Conflicts: # Microsoft.Maui.sln # eng/Version.Details.xml # src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt # src/Core/src/Platform/iOS/KeyboardAutoManagerScroll.cs
Configuration menu - View commit details
-
Copy full SHA for 9257ab7 - Browse repository at this point
Copy the full SHA 9257ab7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2e8568d - Browse repository at this point
Copy the full SHA 2e8568dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 43fee72 - Browse repository at this point
Copy the full SHA 43fee72View commit details