terminal/src/cascadia
Leonard Hecker 2be394f421
Fix layering of fragment profiles (#11325)
This commit fixes layering of fragment profiles without an update key.
The previous CascadiaSettings deserializer first assembled all builtin
profiles and only then parsed the user's settings.json file.
This meant that even though fragment profiles were added to `_allProfiles`
unconditionally, they did get layered properly with user profiles regardless,
as user profiles were always properly layered.

The new CascadiaSettings approach since 168d28b was a direct translation of this
approach but this is incorrect: As the new approach reads user profiles first,
all inbox profiles, including fragments, must equally use proper layering,
instead of adding profiles unconditionally.

While this commit fixes the bug it maintains a regression:
Duplicate fragment profile GUIDs will not be detected and instead fragments with
identical GUID will all be added as parents to a single user profile.
I considered to fix this regression, but felt that this new behavior is better
than the old one, since a user often can't directly control installed fragments,
and is unlikely to occur in practice. This simplifies the implementation.

## PR Checklist
* [x] Closes #11323
* [x] I work here
* [x] Tests added/passed

## Validation Steps Performed

* Fragment layering works ✔️
2021-09-24 16:21:27 +00:00
..
CascadiaPackage Update to MUX 2.7 (#11240) 2021-09-20 22:08:55 +00:00
inc Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
LocalTests_SettingsModel Properly escape constructed wt command-lines (#11314) 2021-09-24 16:17:16 +00:00
LocalTests_TerminalApp Reduce usage of Json::Value throughout Terminal.Settings.Model (#11184) 2021-09-22 16:27:31 +00:00
PublicTerminalCore Implement Keyboard Selection (#10824) 2021-09-23 12:24:32 -07:00
Remoting Attempt to make the monarch more thread safe. (#11189) 2021-09-21 21:21:45 +00:00
ShellExtension Properly escape constructed wt command-lines (#11314) 2021-09-24 16:17:16 +00:00
TerminalApp Add shield to tab row when elevated (#11224) 2021-09-23 17:44:20 +00:00
TerminalAzBridge Upgrade to C++/WinRT 2.0.210825.3 (#11188) 2021-09-10 21:33:13 +00:00
TerminalConnection Change exit code to hex; Fix format spec (#11123) 2021-09-21 15:47:17 +00:00
TerminalControl Implement Keyboard Selection (#10824) 2021-09-23 12:24:32 -07:00
TerminalCore [a11y] Ensure buffer is initialized before interacting with it (#11312) 2021-09-23 15:14:03 -07:00
TerminalSettingsEditor Reduce usage of Json::Value throughout Terminal.Settings.Model (#11184) 2021-09-22 16:27:31 +00:00
TerminalSettingsModel Fix layering of fragment profiles (#11325) 2021-09-24 16:21:27 +00:00
UnitTests_Control Reduce usage of Json::Value throughout Terminal.Settings.Model (#11184) 2021-09-22 16:27:31 +00:00
UnitTests_Remoting Attempt to make the monarch more thread safe. (#11189) 2021-09-21 21:21:45 +00:00
UnitTests_TerminalCore Implement Keyboard Selection (#10824) 2021-09-23 12:24:32 -07:00
ut_app Reduce usage of Json::Value throughout Terminal.Settings.Model (#11184) 2021-09-22 16:27:31 +00:00
WindowsTerminal Update to MUX 2.7 (#11240) 2021-09-20 22:08:55 +00:00
WindowsTerminal_UIATests Enable /Zc:preprocessor (#10593) 2021-07-13 23:00:11 +00:00
WindowsTerminalUniversal Update to MUX 2.7 (#11240) 2021-09-20 22:08:55 +00:00
WinRTUtils Properly escape constructed wt command-lines (#11314) 2021-09-24 16:17:16 +00:00
WpfTerminalControl wpf: make sure to pack api-ms-win-core-synch-l1-2-0 (#10587) 2021-07-08 10:31:59 -05:00
WpfTerminalTestNetCore wpf: make sure to pack api-ms-win-core-synch-l1-2-0 (#10587) 2021-07-08 10:31:59 -05:00
wt Upgrade Windows SDK to 19041 (#10118) 2021-05-20 16:04:25 +00:00
CascadiaResources.build.items Update Cascadia Code to 2106.17 (#10455) 2021-06-18 20:47:19 +00:00