-
Notifications
You must be signed in to change notification settings - Fork 334
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
Feature for sharing security descriptors (take 2) #2005
Conversation
uint32_t accessRequestCount, | ||
_In_reads_(accessRequestCount) | ||
const AppContainerNameAndAccess* accessRequests, | ||
_In_opt_ PSID principal, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this also be const?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sadly the way PSID
is defined is as typedef PVOID PSID
, and we do not have an equivalent typedef PCVOID PCSID
in the platform SDK (... yet) ... so if you wanted to add a conditional typedef for PCSID
that's probably fine.
(The SID
struct type becomes PISID
, but you have to reinterpret_cast from PSID to SID*.)
dev/AccessControl/GetSecurityDescriptorForAppContainerNames.cpp
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@DefaultRyan, a few minor nits, but mostly looks good. Please address before submitted. As to the question about an overload for getting for one app, I don't see the current code as problematic, but it would make things easier if that's a common usage. I'll defer to @jonwis on that one.
…sscontrol_code_3 # Conflicts: # WindowsAppRuntime.sln
uint32_t accessRequestCount, | ||
_In_reads_(accessRequestCount) | ||
const AppContainerNameAndAccess* accessRequests, | ||
_In_opt_ PSID principal, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sadly the way PSID
is defined is as typedef PVOID PSID
, and we do not have an equivalent typedef PCVOID PCSID
in the platform SDK (... yet) ... so if you wanted to add a conditional typedef for PCSID
that's probably fine.
(The SID
struct type becomes PISID
, but you have to reinterpret_cast from PSID to SID*.)
dev/AccessControl/GetSecurityDescriptorForAppContainerNames.cpp
Outdated
Show resolved
Hide resolved
|
||
DWORD sdLength = 0; | ||
|
||
if (!::MakeSelfRelativeSD(absoluteSD.get(), nullptr, &sdLength)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This little blobbet sounds like a good addition to wil's token_helpers.h if you're eventually inclined.
wil::unique_any_psid GetCurrentProcessSid() | ||
{ | ||
wil::unique_any_psid result; | ||
wil::unique_process_heap_ptr<TOKEN_GROUPS> tg; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like TOKEN_GROUPS
is missing from https://github.com/microsoft/wil/blob/f9284c19c9873664978b873b8858d7dfacc6af1e/include/wil/token_helpers.h#L39 - consider adding it there and using it when a new wil update is available. But there is TOKEN_GROUPS_AND_PRIVILEGES
, maybe that helps?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The helper for TOKEN_GROUPS_AND_PRIVELEGES
doesn't work in this case. But I'll add a helper to WIL.
If so please update the API spec and code for review. If not, please remove this from the comment as it won't reflect the comment.
Is this feature committed and expected in 1.1? If so then you don't need to tag anything. A release cycle has Experimental release(s) (i.e. whatever's in main) and towards the latter part of the cycle sees Preview release(s) and then ultimately the Stable release. Experimental marking and Velocity'izing implementation is only relevant if a feature is experimental when we have Preview and Stable releases, as that marking+Velocity is how we 'strip' the experimental bits from a release. If you're not committed for 1.1 then yes, you need to mark+Velocity. If you're unsure you could wait a bit until Preview|Stable gets closer and worst case mark+Velocity for that. It's easy enough to add if/when needed. OTOH you could mark+Velocity now, and later when Preview|Stable rolls around if you're not experimental you could remove the mark+Velocity bits. Deferred-optimization vs proactive-implementation, whichever fits best fits your case :-) |
dev/AccessControl/GetSecurityDescriptorForAppContainerNames.cpp
Outdated
Show resolved
Hide resolved
dev/AccessControl/GetSecurityDescriptorForAppContainerNames.cpp
Outdated
Show resolved
Hide resolved
dev/AccessControl/GetSecurityDescriptorForAppContainerNames.cpp
Outdated
Show resolved
Hide resolved
dev/AccessControl/GetSecurityDescriptorForAppContainerNames.cpp
Outdated
Show resolved
Hide resolved
dev/AccessControl/GetSecurityDescriptorForAppContainerNames.cpp
Outdated
Show resolved
Hide resolved
entry.grfInheritance = NO_INHERITANCE; | ||
entry.Trustee.TrusteeForm = TRUSTEE_IS_SID; | ||
entry.Trustee.TrusteeType = TRUSTEE_IS_USER; | ||
entry.Trustee.ptstrName = static_cast<PWSTR>(principal); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
principal is a parameter of type PSID. Casting that to PWSTR is wrong, or you're doing something funky like passing a string to the function rather than a SID?
If principal really is a string and not a SID then the parameter type should change
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
EXPLICIT_ACCESS_W
is a weird struct.
The docs say ptstrName
is part of a union that also has a SID*
field (for the TRUSTEE_IS_SID
option), but they're mostly lying. A reading of AccCtrl.h
shows that union is only in effect for MIDL, and only the ptstrName
field exists. So we're stuck with casting to assign this field. :(
test/AccessControlTests/APITests.cpp
Outdated
{ | ||
::Test::Packages::RemovePackage(GetTestPackageFamilyName()); | ||
::Test::Bootstrap::Setup(); | ||
::Test::Packages::WapProj::AddPackage(TAEF::GetDeploymentDir(), GetTestPackageFile(), L".msix"); // Installs PushNotificationsTestApp.msix |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you need it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this about the out-of-date comment? I've updated it.
…sscontrol_code_3 # Conflicts: # WindowsAppRuntime.sln # dev/WindowsAppRuntime_DLL/WindowsAppRuntime.def
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
* Enable SBOM generation for WindowsAppSDK (#1979) * TDBuild - updating localized resource files. * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * TDBuild - updating localized resource files. * DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995) * TDBuild - updating localized resource files. * Add new font selection APIs to DWrite API spec (#1967) * Add new font selection APIs to DWriteCore API spec. * Add descriptions of font family models and font selection algorithms. * AppLifecycle Restart API (#1134) * Initial restart API branch * Formatting to code blocks * Updates to heading * Removed preamble * Updates to overview * Removing resources content * Updating restart spec with latest changes * Fixed summary * Updates to API details, mechanism and sample * run markdown prettifier * Updating mechanism * Updating formatting for consistency * Updates to return value description * Updates to spec after latest review * Prettified to match md guidelines, fixed nits Co-authored-by: Hamza Usmani <mousma@microsoft.com> * Initial RequestRestartNow API (#1882) * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * New test passes with API. * updated comment * Error handling changes and packaged code paths. * Removed unused tests, and added new test. * cleanup * transport packaging stuff * typo * Enable control flow guard for Release only. * PR feedback * Add ARM64 * Update to support packaged scenarios. This needs to be further scoped to only Desktop Bridge apps. * Detect UWP and redirect. * Reduce access usage. * Final API Name updates * Add MRTCore interface name and id (#1989) * Correct CsWinRTWindowsMetadata * WindowsSdkPackageVersion * Suffix * suffix only * 22 * Update * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Generate cert (#1986) * Update DevCheck to generate MSTest.pfx/.cer * Refactor temp handling. Add .user dir * Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil * Add -Remove-DevTestCert and -Remove-DevTestPfx * Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx * Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use * Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx * Update MSTest references * Start of changing NMAKEfiles to MSBuild * Add new file * MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects * 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts... * Tweaked the vcxproj to successfully create .msix via MakeMSIX! * Moved MakeMSIX.targets to the root (with other build files) * It works! Got the test projects building with the .pfx and .pwd * Rewiring test projects to use MakeMsix.targets instead of NMake * Yet more MakeMsix fixup * Fixed the package name * Added dummy Clean command (for now) * Fixed Deployment's test package where source files get put to different subdir+filename inside the msix * Fix DevCheck Start-Service to gracefully degrade if not running as admin * DeploymentTests were missing a build order dependency on BootstrapDLL project * Updated DevCheck generated cert to have 12-month lifespan (like current one) * Move Framework.* projects from makemsix.cmd to MakeMSIX.targets * Delete makemsix.cmd (obsolete) * Updated test projects to use static manifests instead of generated from a template (unnecessary complexity) * Deleted obsolete MakeAppxManifestFromTemplate.* * Removed obsolete manifest/template handling. Removed printfery debugging * Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error * Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr) * Deleted obsolete files * Replaced SolutionDir with RepoRoot * Rewrote installer's testpackage creation project to use MakeMSIX * Fixed naming inconsistencies * Addressed some issues. More to come * Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun * Fix bad merge * Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets * Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets * Updated projects to use the common RepoTestCertificate* * Removed obsolete and redundant <Error> check * Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late * Test WTH is going on * Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers * Add DevCheck support to RunTestsInHelix job * Merge/Port 1.0 license support into main/1.1 (#2012) * Update installer to support both publishing IDs used in App SDK. (#1759) * draft changes * fixing typo Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Added MSIX license support (#1783) * Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf) * Simplified help * Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install * It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting. * Add license support to Deployment API and a new InstallLicenses API (#1790) * Updated DeploymentManager to install license files if necessary * Add stubs for the InstallLicenseFile() methods * Change installer to install licenses BEFORE packages, for higher reliability * Copy the license header to the source tree to use whehn building via the pipeline] * Add Licensing API and export from Bootstrap'r * Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN * yml changes to pickup licensing package when needed. * moving restore to the top of the pipeline. * moving back, wrong stage * Fixed license filename * add nuget authenticate call * differnt connection * adding nuget config for build * avoid using licensing support in github / PR builds, which don't have access to the resources * update script to capture package version / name. * one missed check * Incorported feedback * udpdating nuget.config name to avoid conflicts. Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Incorporated feedback Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019) * Exclude CsWinRT.Dependency (#2021) * Bad merge fix missed copying main_license.xml to the testpackages directory (#2025) * Feature for sharing security descriptors (take 2) (#2005) * Initial * Working tests * WinRT implementation * Delay load both DLLS and perform full bootstrap setup. It works! * PR feedback * Wrap long lines * Merge in test package changes * Reworded a password prompt for clarity (#2035) * Remove 19h1 and add 21H1 to Helix test queue. (#2038) * Windows SDK version should match that of other projects (#2043) Co-authored-by: Eric Langlois <erlangl@microsoft.com> * Moving Intellisense files to single location (#2028) * Moving Intellisense files to foundation repo * Moving Intellisense files into one location * Moving Intellisense files to internal repo Co-authored-by: Eric Johnson <ejohn@microsoft.com> * Reworded a password prompt for clarity (#2045) * Enable APIscan-friendly build options (#2050) * Solution updated by VS Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com> Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com> Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Howard Kapustein <howardk@microsoft.com> Co-authored-by: Niklas Borson <niklasb@microsoft.com> Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com> Co-authored-by: Hamza Usmani <mousma@microsoft.com> Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com> Co-authored-by: Hui Chen <huichen@microsoft.com> Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com> Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> Co-authored-by: Ryan Shepherd <ryansh@microsoft.com> Co-authored-by: Eric Langlois <erlangl@microsoft.com> Co-authored-by: Eric Johnson <ericjohnson327@gmail.com> Co-authored-by: Eric Johnson <ejohn@microsoft.com>
* Enable SBOM generation for WindowsAppSDK (#1979) * TDBuild - updating localized resource files. * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * TDBuild - updating localized resource files. * DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995) * TDBuild - updating localized resource files. * Add new font selection APIs to DWrite API spec (#1967) * Add new font selection APIs to DWriteCore API spec. * Add descriptions of font family models and font selection algorithms. * AppLifecycle Restart API (#1134) * Initial restart API branch * Formatting to code blocks * Updates to heading * Removed preamble * Updates to overview * Removing resources content * Updating restart spec with latest changes * Fixed summary * Updates to API details, mechanism and sample * run markdown prettifier * Updating mechanism * Updating formatting for consistency * Updates to return value description * Updates to spec after latest review * Prettified to match md guidelines, fixed nits Co-authored-by: Hamza Usmani <mousma@microsoft.com> * Initial RequestRestartNow API (#1882) * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * New test passes with API. * updated comment * Error handling changes and packaged code paths. * Removed unused tests, and added new test. * cleanup * transport packaging stuff * typo * Enable control flow guard for Release only. * PR feedback * Add ARM64 * Update to support packaged scenarios. This needs to be further scoped to only Desktop Bridge apps. * Detect UWP and redirect. * Reduce access usage. * Final API Name updates * Add MRTCore interface name and id (#1989) * Correct CsWinRTWindowsMetadata * WindowsSdkPackageVersion * Suffix * suffix only * 22 * Update * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Generate cert (#1986) * Update DevCheck to generate MSTest.pfx/.cer * Refactor temp handling. Add .user dir * Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil * Add -Remove-DevTestCert and -Remove-DevTestPfx * Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx * Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use * Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx * Update MSTest references * Start of changing NMAKEfiles to MSBuild * Add new file * MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects * 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts... * Tweaked the vcxproj to successfully create .msix via MakeMSIX! * Moved MakeMSIX.targets to the root (with other build files) * It works! Got the test projects building with the .pfx and .pwd * Rewiring test projects to use MakeMsix.targets instead of NMake * Yet more MakeMsix fixup * Fixed the package name * Added dummy Clean command (for now) * Fixed Deployment's test package where source files get put to different subdir+filename inside the msix * Fix DevCheck Start-Service to gracefully degrade if not running as admin * DeploymentTests were missing a build order dependency on BootstrapDLL project * Updated DevCheck generated cert to have 12-month lifespan (like current one) * Move Framework.* projects from makemsix.cmd to MakeMSIX.targets * Delete makemsix.cmd (obsolete) * Updated test projects to use static manifests instead of generated from a template (unnecessary complexity) * Deleted obsolete MakeAppxManifestFromTemplate.* * Removed obsolete manifest/template handling. Removed printfery debugging * Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error * Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr) * Deleted obsolete files * Replaced SolutionDir with RepoRoot * Rewrote installer's testpackage creation project to use MakeMSIX * Fixed naming inconsistencies * Addressed some issues. More to come * Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun * Fix bad merge * Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets * Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets * Updated projects to use the common RepoTestCertificate* * Removed obsolete and redundant <Error> check * Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late * Test WTH is going on * Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers * Add DevCheck support to RunTestsInHelix job * Merge/Port 1.0 license support into main/1.1 (#2012) * Update installer to support both publishing IDs used in App SDK. (#1759) * draft changes * fixing typo Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Added MSIX license support (#1783) * Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf) * Simplified help * Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install * It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting. * Add license support to Deployment API and a new InstallLicenses API (#1790) * Updated DeploymentManager to install license files if necessary * Add stubs for the InstallLicenseFile() methods * Change installer to install licenses BEFORE packages, for higher reliability * Copy the license header to the source tree to use whehn building via the pipeline] * Add Licensing API and export from Bootstrap'r * Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN * yml changes to pickup licensing package when needed. * moving restore to the top of the pipeline. * moving back, wrong stage * Fixed license filename * add nuget authenticate call * differnt connection * adding nuget config for build * avoid using licensing support in github / PR builds, which don't have access to the resources * update script to capture package version / name. * one missed check * Incorported feedback * udpdating nuget.config name to avoid conflicts. Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Incorporated feedback Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019) * Exclude CsWinRT.Dependency (#2021) * Bad merge fix missed copying main_license.xml to the testpackages directory (#2025) * Feature for sharing security descriptors (take 2) (#2005) * Initial * Working tests * WinRT implementation * Delay load both DLLS and perform full bootstrap setup. It works! * PR feedback * Wrap long lines * Merge in test package changes * Reworded a password prompt for clarity (#2035) * Remove 19h1 and add 21H1 to Helix test queue. (#2038) * Windows SDK version should match that of other projects (#2043) Co-authored-by: Eric Langlois <erlangl@microsoft.com> * Moving Intellisense files to single location (#2028) * Moving Intellisense files to foundation repo * Moving Intellisense files into one location * Moving Intellisense files to internal repo Co-authored-by: Eric Johnson <ejohn@microsoft.com> * Reworded a password prompt for clarity (#2045) * Enable APIscan-friendly build options (#2050) * DynamicDependencies: support elevation (#2066) * Changed DynamicDependencies' mechanism to get ApplicationData for non-System definitions. Only use the PackagedCOM object when running in an AppContainer (where hopping to another process is necessary). Elevated (and MediumIL) can directly use ApplicationDataManager (a necessity for Elevation, a nicety for MediumIL) * New file * Remove elevated blockers. Fixup to work for elevation. Update elevation test to verify success (as expected) instead of failure (as previously expected) * Fixup DDLMShadow logging to not fail on timeout (WINDOWSAPPSDK_DDLM_SHUTDOWN and ..._CALLER_TERMINATED). Previously would crash because WIL faults if LOG_*() called with SUCCEEDED(hr), but this was the last thing in the process before exit so we didn't notice. Should change to alternative logging (Telemetry?) but need to check options before deciding which way to jump. Update will be coming * Add tests for Elevation * Add a missing comment * ignore failures button' * Revert "ignore failures button'" This reverts commit ef2c8ad. * Add button to allow publishing even if there are test failures (#2070) * Update to FrameworkUDK 1.1.0-CI-22541.1001.220207-1139.1 (#2077) * Move CSWinRT to Toolset Dependencies in Version.Details.xml (#2084) * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.10001 (#2092) Microsoft.WinAppSDK.EngCommon From Version 1.1.0-20220125.0-CI -> To Version 1.1.0-20220210.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * bad merge * Adding a non-async PowerNotificiations::EffectivePowerMode method (#2076) * Added EffectivePowerMode2 * Added EffectivePowerMode2 Co-authored-by: Huzaifa Danish <modanish@microsoft.com> Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com> Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com> Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Howard Kapustein <howardk@microsoft.com> Co-authored-by: Niklas Borson <niklasb@microsoft.com> Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com> Co-authored-by: Hamza Usmani <mousma@microsoft.com> Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com> Co-authored-by: Hui Chen <huichen@microsoft.com> Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com> Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> Co-authored-by: Ryan Shepherd <ryansh@microsoft.com> Co-authored-by: Eric Langlois <erlangl@microsoft.com> Co-authored-by: Eric Johnson <ericjohnson327@gmail.com> Co-authored-by: Eric Johnson <ejohn@microsoft.com> Co-authored-by: Will Thant <kythant@microsoft.com> Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com> Co-authored-by: Huzaifa Danish <modanish@microsoft.com>
* Enable SBOM generation for WindowsAppSDK (#1979) * TDBuild - updating localized resource files. * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * TDBuild - updating localized resource files. * DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995) * TDBuild - updating localized resource files. * Add new font selection APIs to DWrite API spec (#1967) * Add new font selection APIs to DWriteCore API spec. * Add descriptions of font family models and font selection algorithms. * AppLifecycle Restart API (#1134) * Initial restart API branch * Formatting to code blocks * Updates to heading * Removed preamble * Updates to overview * Removing resources content * Updating restart spec with latest changes * Fixed summary * Updates to API details, mechanism and sample * run markdown prettifier * Updating mechanism * Updating formatting for consistency * Updates to return value description * Updates to spec after latest review * Prettified to match md guidelines, fixed nits Co-authored-by: Hamza Usmani <mousma@microsoft.com> * Initial RequestRestartNow API (#1882) * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * New test passes with API. * updated comment * Error handling changes and packaged code paths. * Removed unused tests, and added new test. * cleanup * transport packaging stuff * typo * Enable control flow guard for Release only. * PR feedback * Add ARM64 * Update to support packaged scenarios. This needs to be further scoped to only Desktop Bridge apps. * Detect UWP and redirect. * Reduce access usage. * Final API Name updates * Add MRTCore interface name and id (#1989) * Correct CsWinRTWindowsMetadata * WindowsSdkPackageVersion * Suffix * suffix only * 22 * Update * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Generate cert (#1986) * Update DevCheck to generate MSTest.pfx/.cer * Refactor temp handling. Add .user dir * Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil * Add -Remove-DevTestCert and -Remove-DevTestPfx * Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx * Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use * Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx * Update MSTest references * Start of changing NMAKEfiles to MSBuild * Add new file * MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects * 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts... * Tweaked the vcxproj to successfully create .msix via MakeMSIX! * Moved MakeMSIX.targets to the root (with other build files) * It works! Got the test projects building with the .pfx and .pwd * Rewiring test projects to use MakeMsix.targets instead of NMake * Yet more MakeMsix fixup * Fixed the package name * Added dummy Clean command (for now) * Fixed Deployment's test package where source files get put to different subdir+filename inside the msix * Fix DevCheck Start-Service to gracefully degrade if not running as admin * DeploymentTests were missing a build order dependency on BootstrapDLL project * Updated DevCheck generated cert to have 12-month lifespan (like current one) * Move Framework.* projects from makemsix.cmd to MakeMSIX.targets * Delete makemsix.cmd (obsolete) * Updated test projects to use static manifests instead of generated from a template (unnecessary complexity) * Deleted obsolete MakeAppxManifestFromTemplate.* * Removed obsolete manifest/template handling. Removed printfery debugging * Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error * Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr) * Deleted obsolete files * Replaced SolutionDir with RepoRoot * Rewrote installer's testpackage creation project to use MakeMSIX * Fixed naming inconsistencies * Addressed some issues. More to come * Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun * Fix bad merge * Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets * Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets * Updated projects to use the common RepoTestCertificate* * Removed obsolete and redundant <Error> check * Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late * Test WTH is going on * Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers * Add DevCheck support to RunTestsInHelix job * Merge/Port 1.0 license support into main/1.1 (#2012) * Update installer to support both publishing IDs used in App SDK. (#1759) * draft changes * fixing typo Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Added MSIX license support (#1783) * Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf) * Simplified help * Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install * It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting. * Add license support to Deployment API and a new InstallLicenses API (#1790) * Updated DeploymentManager to install license files if necessary * Add stubs for the InstallLicenseFile() methods * Change installer to install licenses BEFORE packages, for higher reliability * Copy the license header to the source tree to use whehn building via the pipeline] * Add Licensing API and export from Bootstrap'r * Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN * yml changes to pickup licensing package when needed. * moving restore to the top of the pipeline. * moving back, wrong stage * Fixed license filename * add nuget authenticate call * differnt connection * adding nuget config for build * avoid using licensing support in github / PR builds, which don't have access to the resources * update script to capture package version / name. * one missed check * Incorported feedback * udpdating nuget.config name to avoid conflicts. Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Incorporated feedback Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019) * Exclude CsWinRT.Dependency (#2021) * Bad merge fix missed copying main_license.xml to the testpackages directory (#2025) * Feature for sharing security descriptors (take 2) (#2005) * Initial * Working tests * WinRT implementation * Delay load both DLLS and perform full bootstrap setup. It works! * PR feedback * Wrap long lines * Merge in test package changes * Reworded a password prompt for clarity (#2035) * Remove 19h1 and add 21H1 to Helix test queue. (#2038) * Windows SDK version should match that of other projects (#2043) Co-authored-by: Eric Langlois <erlangl@microsoft.com> * Moving Intellisense files to single location (#2028) * Moving Intellisense files to foundation repo * Moving Intellisense files into one location * Moving Intellisense files to internal repo Co-authored-by: Eric Johnson <ejohn@microsoft.com> * Reworded a password prompt for clarity (#2045) * Enable APIscan-friendly build options (#2050) * DynamicDependencies: support elevation (#2066) * Changed DynamicDependencies' mechanism to get ApplicationData for non-System definitions. Only use the PackagedCOM object when running in an AppContainer (where hopping to another process is necessary). Elevated (and MediumIL) can directly use ApplicationDataManager (a necessity for Elevation, a nicety for MediumIL) * New file * Remove elevated blockers. Fixup to work for elevation. Update elevation test to verify success (as expected) instead of failure (as previously expected) * Fixup DDLMShadow logging to not fail on timeout (WINDOWSAPPSDK_DDLM_SHUTDOWN and ..._CALLER_TERMINATED). Previously would crash because WIL faults if LOG_*() called with SUCCEEDED(hr), but this was the last thing in the process before exit so we didn't notice. Should change to alternative logging (Telemetry?) but need to check options before deciding which way to jump. Update will be coming * Add tests for Elevation * Add a missing comment * ignore failures button' * Revert "ignore failures button'" This reverts commit ef2c8ad. * Add button to allow publishing even if there are test failures (#2070) * Update to FrameworkUDK 1.1.0-CI-22541.1001.220207-1139.1 (#2077) * Move CSWinRT to Toolset Dependencies in Version.Details.xml (#2084) * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.10001 (#2092) Microsoft.WinAppSDK.EngCommon From Version 1.1.0-20220125.0-CI -> To Version 1.1.0-20220210.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Adding a non-async PowerNotificiations::EffectivePowerMode method (#2076) * Added EffectivePowerMode2 * Added EffectivePowerMode2 Co-authored-by: Huzaifa Danish <modanish@microsoft.com> * Update dependencies from https://github.com/microsoft/CsWinRT build 1.5.0.220207.5 (#2072) [main] Update dependencies from Microsoft/CsWinRT - Merge branch 'main' into darc-main-309a8238-dc1b-428e-92c2-4f38e8ba749a Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com> Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com> Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Howard Kapustein <howardk@microsoft.com> Co-authored-by: Niklas Borson <niklasb@microsoft.com> Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com> Co-authored-by: Hamza Usmani <mousma@microsoft.com> Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com> Co-authored-by: Hui Chen <huichen@microsoft.com> Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com> Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> Co-authored-by: Ryan Shepherd <ryansh@microsoft.com> Co-authored-by: Eric Langlois <erlangl@microsoft.com> Co-authored-by: Eric Johnson <ericjohnson327@gmail.com> Co-authored-by: Eric Johnson <ejohn@microsoft.com> Co-authored-by: Will Thant <kythant@microsoft.com> Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com> Co-authored-by: Huzaifa Danish <modanish@microsoft.com>
* Add constness to parameters (#2124) * Refactor AppNotificationManager and add firstNotificationReceived (#2119) * Refactor AppNotificationManager and add firstNotificationReceived * Address nits * Fix handler exception logic * FI main into feature branch WNP_ToastNotifications_L1 (#2123) * Enable SBOM generation for WindowsAppSDK (#1979) * TDBuild - updating localized resource files. * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * TDBuild - updating localized resource files. * DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995) * TDBuild - updating localized resource files. * Add new font selection APIs to DWrite API spec (#1967) * Add new font selection APIs to DWriteCore API spec. * Add descriptions of font family models and font selection algorithms. * AppLifecycle Restart API (#1134) * Initial restart API branch * Formatting to code blocks * Updates to heading * Removed preamble * Updates to overview * Removing resources content * Updating restart spec with latest changes * Fixed summary * Updates to API details, mechanism and sample * run markdown prettifier * Updating mechanism * Updating formatting for consistency * Updates to return value description * Updates to spec after latest review * Prettified to match md guidelines, fixed nits Co-authored-by: Hamza Usmani <mousma@microsoft.com> * Initial RequestRestartNow API (#1882) * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * New test passes with API. * updated comment * Error handling changes and packaged code paths. * Removed unused tests, and added new test. * cleanup * transport packaging stuff * typo * Enable control flow guard for Release only. * PR feedback * Add ARM64 * Update to support packaged scenarios. This needs to be further scoped to only Desktop Bridge apps. * Detect UWP and redirect. * Reduce access usage. * Final API Name updates * Add MRTCore interface name and id (#1989) * Correct CsWinRTWindowsMetadata * WindowsSdkPackageVersion * Suffix * suffix only * 22 * Update * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Generate cert (#1986) * Update DevCheck to generate MSTest.pfx/.cer * Refactor temp handling. Add .user dir * Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil * Add -Remove-DevTestCert and -Remove-DevTestPfx * Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx * Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use * Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx * Update MSTest references * Start of changing NMAKEfiles to MSBuild * Add new file * MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects * 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts... * Tweaked the vcxproj to successfully create .msix via MakeMSIX! * Moved MakeMSIX.targets to the root (with other build files) * It works! Got the test projects building with the .pfx and .pwd * Rewiring test projects to use MakeMsix.targets instead of NMake * Yet more MakeMsix fixup * Fixed the package name * Added dummy Clean command (for now) * Fixed Deployment's test package where source files get put to different subdir+filename inside the msix * Fix DevCheck Start-Service to gracefully degrade if not running as admin * DeploymentTests were missing a build order dependency on BootstrapDLL project * Updated DevCheck generated cert to have 12-month lifespan (like current one) * Move Framework.* projects from makemsix.cmd to MakeMSIX.targets * Delete makemsix.cmd (obsolete) * Updated test projects to use static manifests instead of generated from a template (unnecessary complexity) * Deleted obsolete MakeAppxManifestFromTemplate.* * Removed obsolete manifest/template handling. Removed printfery debugging * Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error * Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr) * Deleted obsolete files * Replaced SolutionDir with RepoRoot * Rewrote installer's testpackage creation project to use MakeMSIX * Fixed naming inconsistencies * Addressed some issues. More to come * Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun * Fix bad merge * Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets * Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets * Updated projects to use the common RepoTestCertificate* * Removed obsolete and redundant <Error> check * Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late * Test WTH is going on * Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers * Add DevCheck support to RunTestsInHelix job * Merge/Port 1.0 license support into main/1.1 (#2012) * Update installer to support both publishing IDs used in App SDK. (#1759) * draft changes * fixing typo Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Added MSIX license support (#1783) * Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf) * Simplified help * Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install * It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting. * Add license support to Deployment API and a new InstallLicenses API (#1790) * Updated DeploymentManager to install license files if necessary * Add stubs for the InstallLicenseFile() methods * Change installer to install licenses BEFORE packages, for higher reliability * Copy the license header to the source tree to use whehn building via the pipeline] * Add Licensing API and export from Bootstrap'r * Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN * yml changes to pickup licensing package when needed. * moving restore to the top of the pipeline. * moving back, wrong stage * Fixed license filename * add nuget authenticate call * differnt connection * adding nuget config for build * avoid using licensing support in github / PR builds, which don't have access to the resources * update script to capture package version / name. * one missed check * Incorported feedback * udpdating nuget.config name to avoid conflicts. Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Incorporated feedback Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019) * Exclude CsWinRT.Dependency (#2021) * Bad merge fix missed copying main_license.xml to the testpackages directory (#2025) * Feature for sharing security descriptors (take 2) (#2005) * Initial * Working tests * WinRT implementation * Delay load both DLLS and perform full bootstrap setup. It works! * PR feedback * Wrap long lines * Merge in test package changes * Reworded a password prompt for clarity (#2035) * Remove 19h1 and add 21H1 to Helix test queue. (#2038) * Windows SDK version should match that of other projects (#2043) Co-authored-by: Eric Langlois <erlangl@microsoft.com> * Moving Intellisense files to single location (#2028) * Moving Intellisense files to foundation repo * Moving Intellisense files into one location * Moving Intellisense files to internal repo Co-authored-by: Eric Johnson <ejohn@microsoft.com> * Reworded a password prompt for clarity (#2045) * Enable APIscan-friendly build options (#2050) * DynamicDependencies: support elevation (#2066) * Changed DynamicDependencies' mechanism to get ApplicationData for non-System definitions. Only use the PackagedCOM object when running in an AppContainer (where hopping to another process is necessary). Elevated (and MediumIL) can directly use ApplicationDataManager (a necessity for Elevation, a nicety for MediumIL) * New file * Remove elevated blockers. Fixup to work for elevation. Update elevation test to verify success (as expected) instead of failure (as previously expected) * Fixup DDLMShadow logging to not fail on timeout (WINDOWSAPPSDK_DDLM_SHUTDOWN and ..._CALLER_TERMINATED). Previously would crash because WIL faults if LOG_*() called with SUCCEEDED(hr), but this was the last thing in the process before exit so we didn't notice. Should change to alternative logging (Telemetry?) but need to check options before deciding which way to jump. Update will be coming * Add tests for Elevation * Add a missing comment * ignore failures button' * Revert "ignore failures button'" This reverts commit ef2c8ad. * Add button to allow publishing even if there are test failures (#2070) * Update to FrameworkUDK 1.1.0-CI-22541.1001.220207-1139.1 (#2077) * Move CSWinRT to Toolset Dependencies in Version.Details.xml (#2084) * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.10001 (#2092) Microsoft.WinAppSDK.EngCommon From Version 1.1.0-20220125.0-CI -> To Version 1.1.0-20220210.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Adding a non-async PowerNotificiations::EffectivePowerMode method (#2076) * Added EffectivePowerMode2 * Added EffectivePowerMode2 Co-authored-by: Huzaifa Danish <modanish@microsoft.com> * Update dependencies from https://github.com/microsoft/CsWinRT build 1.5.0.220207.5 (#2072) [main] Update dependencies from Microsoft/CsWinRT - Merge branch 'main' into darc-main-309a8238-dc1b-428e-92c2-4f38e8ba749a Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com> Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com> Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Howard Kapustein <howardk@microsoft.com> Co-authored-by: Niklas Borson <niklasb@microsoft.com> Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com> Co-authored-by: Hamza Usmani <mousma@microsoft.com> Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com> Co-authored-by: Hui Chen <huichen@microsoft.com> Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com> Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> Co-authored-by: Ryan Shepherd <ryansh@microsoft.com> Co-authored-by: Eric Langlois <erlangl@microsoft.com> Co-authored-by: Eric Johnson <ericjohnson327@gmail.com> Co-authored-by: Eric Johnson <ejohn@microsoft.com> Co-authored-by: Will Thant <kythant@microsoft.com> Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com> Co-authored-by: Huzaifa Danish <modanish@microsoft.com> * Adding CS Projections to Toast Notifications (#2116) * Adding C# projections * arm configs aren't supposed to be set * missed a reference to push notifications * Need to publish the DLLs Co-authored-by: Eric Langlois <erlangl@microsoft.com> * Retrieve Push/Toast Activator from registry (#2094) * Able to get both Push/Toast Activator from registry * Address comments and also remove unneccessary unittests as per new design * Implement pure Register function for AppNotifications Optimize unittests * Infer DisplayName and Icon * Address Comments * Nit: replace XML toast creation with hstring in demo app * Restore PushNotificationManager * Restore com guid in PushNotificationdemoapp * Update PushNotificationUtility.h * Update PushNotificationManager.cpp * Update PushNotificationManager.cpp * Update main.cpp * Mostly bug fixes on DisplayName/Icon logic * Fixing bad merge * Fixed bad throw check Co-authored-by: Venkata Sharath Chandra Manchala <vemancha@microsoft.com> Co-authored-by: Sharath Manchala <10109130+sharath2727@users.noreply.github.com> Co-authored-by: Daniel Ayala <14967941+danielayala94@users.noreply.github.com> * Remove PushNotificationActivationInfo Co-authored-by: Pavan Hullumane <pavanh@microsoft.com> Co-authored-by: Paul Purifoy <33183370+pmpurifoy@users.noreply.github.com> Co-authored-by: eric langlois <email@ericlanglois.com> Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com> Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com> Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Howard Kapustein <howardk@microsoft.com> Co-authored-by: Niklas Borson <niklasb@microsoft.com> Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com> Co-authored-by: Hamza Usmani <mousma@microsoft.com> Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com> Co-authored-by: Hui Chen <huichen@microsoft.com> Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com> Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> Co-authored-by: Ryan Shepherd <ryansh@microsoft.com> Co-authored-by: Eric Langlois <erlangl@microsoft.com> Co-authored-by: Eric Johnson <ericjohnson327@gmail.com> Co-authored-by: Eric Johnson <ejohn@microsoft.com> Co-authored-by: Will Thant <kythant@microsoft.com> Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com> Co-authored-by: Huzaifa Danish <modanish@microsoft.com> Co-authored-by: Daniel Ayala <14967941+danielayala94@users.noreply.github.com>
* Add constness to parameters (#2124) * Refactor AppNotificationManager and add firstNotificationReceived (#2119) * Refactor AppNotificationManager and add firstNotificationReceived * Address nits * Fix handler exception logic * FI main into feature branch WNP_ToastNotifications_L1 (#2123) * Enable SBOM generation for WindowsAppSDK (#1979) * TDBuild - updating localized resource files. * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * TDBuild - updating localized resource files. * DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995) * TDBuild - updating localized resource files. * Add new font selection APIs to DWrite API spec (#1967) * Add new font selection APIs to DWriteCore API spec. * Add descriptions of font family models and font selection algorithms. * AppLifecycle Restart API (#1134) * Initial restart API branch * Formatting to code blocks * Updates to heading * Removed preamble * Updates to overview * Removing resources content * Updating restart spec with latest changes * Fixed summary * Updates to API details, mechanism and sample * run markdown prettifier * Updating mechanism * Updating formatting for consistency * Updates to return value description * Updates to spec after latest review * Prettified to match md guidelines, fixed nits Co-authored-by: Hamza Usmani <mousma@microsoft.com> * Initial RequestRestartNow API (#1882) * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * New test passes with API. * updated comment * Error handling changes and packaged code paths. * Removed unused tests, and added new test. * cleanup * transport packaging stuff * typo * Enable control flow guard for Release only. * PR feedback * Add ARM64 * Update to support packaged scenarios. This needs to be further scoped to only Desktop Bridge apps. * Detect UWP and redirect. * Reduce access usage. * Final API Name updates * Add MRTCore interface name and id (#1989) * Correct CsWinRTWindowsMetadata * WindowsSdkPackageVersion * Suffix * suffix only * 22 * Update * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Generate cert (#1986) * Update DevCheck to generate MSTest.pfx/.cer * Refactor temp handling. Add .user dir * Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil * Add -Remove-DevTestCert and -Remove-DevTestPfx * Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx * Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use * Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx * Update MSTest references * Start of changing NMAKEfiles to MSBuild * Add new file * MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects * 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts... * Tweaked the vcxproj to successfully create .msix via MakeMSIX! * Moved MakeMSIX.targets to the root (with other build files) * It works! Got the test projects building with the .pfx and .pwd * Rewiring test projects to use MakeMsix.targets instead of NMake * Yet more MakeMsix fixup * Fixed the package name * Added dummy Clean command (for now) * Fixed Deployment's test package where source files get put to different subdir+filename inside the msix * Fix DevCheck Start-Service to gracefully degrade if not running as admin * DeploymentTests were missing a build order dependency on BootstrapDLL project * Updated DevCheck generated cert to have 12-month lifespan (like current one) * Move Framework.* projects from makemsix.cmd to MakeMSIX.targets * Delete makemsix.cmd (obsolete) * Updated test projects to use static manifests instead of generated from a template (unnecessary complexity) * Deleted obsolete MakeAppxManifestFromTemplate.* * Removed obsolete manifest/template handling. Removed printfery debugging * Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error * Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr) * Deleted obsolete files * Replaced SolutionDir with RepoRoot * Rewrote installer's testpackage creation project to use MakeMSIX * Fixed naming inconsistencies * Addressed some issues. More to come * Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun * Fix bad merge * Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets * Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets * Updated projects to use the common RepoTestCertificate* * Removed obsolete and redundant <Error> check * Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late * Test WTH is going on * Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers * Add DevCheck support to RunTestsInHelix job * Merge/Port 1.0 license support into main/1.1 (#2012) * Update installer to support both publishing IDs used in App SDK. (#1759) * draft changes * fixing typo Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Added MSIX license support (#1783) * Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf) * Simplified help * Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install * It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting. * Add license support to Deployment API and a new InstallLicenses API (#1790) * Updated DeploymentManager to install license files if necessary * Add stubs for the InstallLicenseFile() methods * Change installer to install licenses BEFORE packages, for higher reliability * Copy the license header to the source tree to use whehn building via the pipeline] * Add Licensing API and export from Bootstrap'r * Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN * yml changes to pickup licensing package when needed. * moving restore to the top of the pipeline. * moving back, wrong stage * Fixed license filename * add nuget authenticate call * differnt connection * adding nuget config for build * avoid using licensing support in github / PR builds, which don't have access to the resources * update script to capture package version / name. * one missed check * Incorported feedback * udpdating nuget.config name to avoid conflicts. Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Incorporated feedback Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019) * Exclude CsWinRT.Dependency (#2021) * Bad merge fix missed copying main_license.xml to the testpackages directory (#2025) * Feature for sharing security descriptors (take 2) (#2005) * Initial * Working tests * WinRT implementation * Delay load both DLLS and perform full bootstrap setup. It works! * PR feedback * Wrap long lines * Merge in test package changes * Reworded a password prompt for clarity (#2035) * Remove 19h1 and add 21H1 to Helix test queue. (#2038) * Windows SDK version should match that of other projects (#2043) Co-authored-by: Eric Langlois <erlangl@microsoft.com> * Moving Intellisense files to single location (#2028) * Moving Intellisense files to foundation repo * Moving Intellisense files into one location * Moving Intellisense files to internal repo Co-authored-by: Eric Johnson <ejohn@microsoft.com> * Reworded a password prompt for clarity (#2045) * Enable APIscan-friendly build options (#2050) * DynamicDependencies: support elevation (#2066) * Changed DynamicDependencies' mechanism to get ApplicationData for non-System definitions. Only use the PackagedCOM object when running in an AppContainer (where hopping to another process is necessary). Elevated (and MediumIL) can directly use ApplicationDataManager (a necessity for Elevation, a nicety for MediumIL) * New file * Remove elevated blockers. Fixup to work for elevation. Update elevation test to verify success (as expected) instead of failure (as previously expected) * Fixup DDLMShadow logging to not fail on timeout (WINDOWSAPPSDK_DDLM_SHUTDOWN and ..._CALLER_TERMINATED). Previously would crash because WIL faults if LOG_*() called with SUCCEEDED(hr), but this was the last thing in the process before exit so we didn't notice. Should change to alternative logging (Telemetry?) but need to check options before deciding which way to jump. Update will be coming * Add tests for Elevation * Add a missing comment * ignore failures button' * Revert "ignore failures button'" This reverts commit ef2c8ad. * Add button to allow publishing even if there are test failures (#2070) * Update to FrameworkUDK 1.1.0-CI-22541.1001.220207-1139.1 (#2077) * Move CSWinRT to Toolset Dependencies in Version.Details.xml (#2084) * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.10001 (#2092) Microsoft.WinAppSDK.EngCommon From Version 1.1.0-20220125.0-CI -> To Version 1.1.0-20220210.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Adding a non-async PowerNotificiations::EffectivePowerMode method (#2076) * Added EffectivePowerMode2 * Added EffectivePowerMode2 Co-authored-by: Huzaifa Danish <modanish@microsoft.com> * Update dependencies from https://github.com/microsoft/CsWinRT build 1.5.0.220207.5 (#2072) [main] Update dependencies from Microsoft/CsWinRT - Merge branch 'main' into darc-main-309a8238-dc1b-428e-92c2-4f38e8ba749a Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com> Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com> Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Howard Kapustein <howardk@microsoft.com> Co-authored-by: Niklas Borson <niklasb@microsoft.com> Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com> Co-authored-by: Hamza Usmani <mousma@microsoft.com> Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com> Co-authored-by: Hui Chen <huichen@microsoft.com> Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com> Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> Co-authored-by: Ryan Shepherd <ryansh@microsoft.com> Co-authored-by: Eric Langlois <erlangl@microsoft.com> Co-authored-by: Eric Johnson <ericjohnson327@gmail.com> Co-authored-by: Eric Johnson <ejohn@microsoft.com> Co-authored-by: Will Thant <kythant@microsoft.com> Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com> Co-authored-by: Huzaifa Danish <modanish@microsoft.com> * Adding CS Projections to Toast Notifications (#2116) * Adding C# projections * arm configs aren't supposed to be set * missed a reference to push notifications * Need to publish the DLLs Co-authored-by: Eric Langlois <erlangl@microsoft.com> * Retrieve Push/Toast Activator from registry (#2094) * Able to get both Push/Toast Activator from registry * Address comments and also remove unneccessary unittests as per new design * Implement pure Register function for AppNotifications Optimize unittests * Infer DisplayName and Icon * Address Comments * Nit: replace XML toast creation with hstring in demo app * Restore PushNotificationManager * Restore com guid in PushNotificationdemoapp * Update PushNotificationUtility.h * Update PushNotificationManager.cpp * Update PushNotificationManager.cpp * Update main.cpp * Mostly bug fixes on DisplayName/Icon logic * Fixing bad merge * Fixed bad throw check Co-authored-by: Venkata Sharath Chandra Manchala <vemancha@microsoft.com> Co-authored-by: Sharath Manchala <10109130+sharath2727@users.noreply.github.com> Co-authored-by: Daniel Ayala <14967941+danielayala94@users.noreply.github.com> * Remove PushNotificationActivationInfo Co-authored-by: Pavan Hullumane <pavanh@microsoft.com> Co-authored-by: Paul Purifoy <33183370+pmpurifoy@users.noreply.github.com> Co-authored-by: eric langlois <email@ericlanglois.com> Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com> Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com> Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Howard Kapustein <howardk@microsoft.com> Co-authored-by: Niklas Borson <niklasb@microsoft.com> Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com> Co-authored-by: Hamza Usmani <mousma@microsoft.com> Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com> Co-authored-by: Hui Chen <huichen@microsoft.com> Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com> Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> Co-authored-by: Ryan Shepherd <ryansh@microsoft.com> Co-authored-by: Eric Langlois <erlangl@microsoft.com> Co-authored-by: Eric Johnson <ericjohnson327@gmail.com> Co-authored-by: Eric Johnson <ejohn@microsoft.com> Co-authored-by: Will Thant <kythant@microsoft.com> Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com> Co-authored-by: Huzaifa Danish <modanish@microsoft.com> Co-authored-by: Daniel Ayala <14967941+danielayala94@users.noreply.github.com>
* Enable SBOM generation for WindowsAppSDK (#1979) * TDBuild - updating localized resource files. * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * TDBuild - updating localized resource files. * DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995) * TDBuild - updating localized resource files. * Add new font selection APIs to DWrite API spec (#1967) * Add new font selection APIs to DWriteCore API spec. * Add descriptions of font family models and font selection algorithms. * AppLifecycle Restart API (#1134) * Initial restart API branch * Formatting to code blocks * Updates to heading * Removed preamble * Updates to overview * Removing resources content * Updating restart spec with latest changes * Fixed summary * Updates to API details, mechanism and sample * run markdown prettifier * Updating mechanism * Updating formatting for consistency * Updates to return value description * Updates to spec after latest review * Prettified to match md guidelines, fixed nits Co-authored-by: Hamza Usmani <mousma@microsoft.com> * Initial RequestRestartNow API (#1882) * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * New test passes with API. * updated comment * Error handling changes and packaged code paths. * Removed unused tests, and added new test. * cleanup * transport packaging stuff * typo * Enable control flow guard for Release only. * PR feedback * Add ARM64 * Update to support packaged scenarios. This needs to be further scoped to only Desktop Bridge apps. * Detect UWP and redirect. * Reduce access usage. * Final API Name updates * Add MRTCore interface name and id (#1989) * Correct CsWinRTWindowsMetadata * WindowsSdkPackageVersion * Suffix * suffix only * 22 * Update * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Generate cert (#1986) * Update DevCheck to generate MSTest.pfx/.cer * Refactor temp handling. Add .user dir * Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil * Add -Remove-DevTestCert and -Remove-DevTestPfx * Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx * Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use * Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx * Update MSTest references * Start of changing NMAKEfiles to MSBuild * Add new file * MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects * 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts... * Tweaked the vcxproj to successfully create .msix via MakeMSIX! * Moved MakeMSIX.targets to the root (with other build files) * It works! Got the test projects building with the .pfx and .pwd * Rewiring test projects to use MakeMsix.targets instead of NMake * Yet more MakeMsix fixup * Fixed the package name * Added dummy Clean command (for now) * Fixed Deployment's test package where source files get put to different subdir+filename inside the msix * Fix DevCheck Start-Service to gracefully degrade if not running as admin * DeploymentTests were missing a build order dependency on BootstrapDLL project * Updated DevCheck generated cert to have 12-month lifespan (like current one) * Move Framework.* projects from makemsix.cmd to MakeMSIX.targets * Delete makemsix.cmd (obsolete) * Updated test projects to use static manifests instead of generated from a template (unnecessary complexity) * Deleted obsolete MakeAppxManifestFromTemplate.* * Removed obsolete manifest/template handling. Removed printfery debugging * Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error * Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr) * Deleted obsolete files * Replaced SolutionDir with RepoRoot * Rewrote installer's testpackage creation project to use MakeMSIX * Fixed naming inconsistencies * Addressed some issues. More to come * Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun * Fix bad merge * Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets * Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets * Updated projects to use the common RepoTestCertificate* * Removed obsolete and redundant <Error> check * Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late * Test WTH is going on * Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers * Add DevCheck support to RunTestsInHelix job * Merge/Port 1.0 license support into main/1.1 (#2012) * Update installer to support both publishing IDs used in App SDK. (#1759) * draft changes * fixing typo Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Added MSIX license support (#1783) * Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf) * Simplified help * Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install * It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting. * Add license support to Deployment API and a new InstallLicenses API (#1790) * Updated DeploymentManager to install license files if necessary * Add stubs for the InstallLicenseFile() methods * Change installer to install licenses BEFORE packages, for higher reliability * Copy the license header to the source tree to use whehn building via the pipeline] * Add Licensing API and export from Bootstrap'r * Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN * yml changes to pickup licensing package when needed. * moving restore to the top of the pipeline. * moving back, wrong stage * Fixed license filename * add nuget authenticate call * differnt connection * adding nuget config for build * avoid using licensing support in github / PR builds, which don't have access to the resources * update script to capture package version / name. * one missed check * Incorported feedback * udpdating nuget.config name to avoid conflicts. Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Incorporated feedback Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019) * Exclude CsWinRT.Dependency (#2021) * Bad merge fix missed copying main_license.xml to the testpackages directory (#2025) * Feature for sharing security descriptors (take 2) (#2005) * Initial * Working tests * WinRT implementation * Delay load both DLLS and perform full bootstrap setup. It works! * PR feedback * Wrap long lines * Merge in test package changes * Reworded a password prompt for clarity (#2035) * Remove 19h1 and add 21H1 to Helix test queue. (#2038) * Windows SDK version should match that of other projects (#2043) Co-authored-by: Eric Langlois <erlangl@microsoft.com> * Moving Intellisense files to single location (#2028) * Moving Intellisense files to foundation repo * Moving Intellisense files into one location * Moving Intellisense files to internal repo Co-authored-by: Eric Johnson <ejohn@microsoft.com> * Reworded a password prompt for clarity (#2045) * Enable APIscan-friendly build options (#2050) * DynamicDependencies: support elevation (#2066) * Changed DynamicDependencies' mechanism to get ApplicationData for non-System definitions. Only use the PackagedCOM object when running in an AppContainer (where hopping to another process is necessary). Elevated (and MediumIL) can directly use ApplicationDataManager (a necessity for Elevation, a nicety for MediumIL) * New file * Remove elevated blockers. Fixup to work for elevation. Update elevation test to verify success (as expected) instead of failure (as previously expected) * Fixup DDLMShadow logging to not fail on timeout (WINDOWSAPPSDK_DDLM_SHUTDOWN and ..._CALLER_TERMINATED). Previously would crash because WIL faults if LOG_*() called with SUCCEEDED(hr), but this was the last thing in the process before exit so we didn't notice. Should change to alternative logging (Telemetry?) but need to check options before deciding which way to jump. Update will be coming * Add tests for Elevation * Add a missing comment * ignore failures button' * Revert "ignore failures button'" This reverts commit ef2c8ad. * Add button to allow publishing even if there are test failures (#2070) * Update to FrameworkUDK 1.1.0-CI-22541.1001.220207-1139.1 (#2077) * Move CSWinRT to Toolset Dependencies in Version.Details.xml (#2084) * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.10001 (#2092) Microsoft.WinAppSDK.EngCommon From Version 1.1.0-20220125.0-CI -> To Version 1.1.0-20220210.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Adding a non-async PowerNotificiations::EffectivePowerMode method (#2076) * Added EffectivePowerMode2 * Added EffectivePowerMode2 Co-authored-by: Huzaifa Danish <modanish@microsoft.com> * Update dependencies from https://github.com/microsoft/CsWinRT build 1.5.0.220207.5 (#2072) [main] Update dependencies from Microsoft/CsWinRT - Merge branch 'main' into darc-main-309a8238-dc1b-428e-92c2-4f38e8ba749a * Update AppLifecycle StateNotifications.md (#2103) Add EffectivePowerMode2 * Update to FrameworkUDK 1.1.0-CI-22541.1002.220217-1401.0 (#2141) * Update MSIX package names' spec to match actual 1.0 behavior (missed updating spec when we updated code for 1.0-stable) (#2104) Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com> Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com> Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Howard Kapustein <howardk@microsoft.com> Co-authored-by: Niklas Borson <niklasb@microsoft.com> Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com> Co-authored-by: Hamza Usmani <mousma@microsoft.com> Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com> Co-authored-by: Hui Chen <huichen@microsoft.com> Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com> Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> Co-authored-by: Ryan Shepherd <ryansh@microsoft.com> Co-authored-by: Eric Langlois <erlangl@microsoft.com> Co-authored-by: Eric Johnson <ericjohnson327@gmail.com> Co-authored-by: Eric Johnson <ejohn@microsoft.com> Co-authored-by: Will Thant <kythant@microsoft.com> Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com> Co-authored-by: Huzaifa Danish <modanish@microsoft.com> Co-authored-by: andreww-msft <30507740+andreww-msft@users.noreply.github.com>
* Move pushHandlers to PushNotificationManager * Add exception if no com register * Update PushNotificationManager.cpp * Move statics to member variables * Update PushNotificationManager.cpp * Update PushNotificationManager.cpp * Only allow event handlers before register * Update PushNotificationManager.cpp * Remove PushNotificationActivationInfo (#2132) * Add constness to parameters (#2124) * Refactor AppNotificationManager and add firstNotificationReceived (#2119) * Refactor AppNotificationManager and add firstNotificationReceived * Address nits * Fix handler exception logic * FI main into feature branch WNP_ToastNotifications_L1 (#2123) * Enable SBOM generation for WindowsAppSDK (#1979) * TDBuild - updating localized resource files. * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * TDBuild - updating localized resource files. * DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995) * TDBuild - updating localized resource files. * Add new font selection APIs to DWrite API spec (#1967) * Add new font selection APIs to DWriteCore API spec. * Add descriptions of font family models and font selection algorithms. * AppLifecycle Restart API (#1134) * Initial restart API branch * Formatting to code blocks * Updates to heading * Removed preamble * Updates to overview * Removing resources content * Updating restart spec with latest changes * Fixed summary * Updates to API details, mechanism and sample * run markdown prettifier * Updating mechanism * Updating formatting for consistency * Updates to return value description * Updates to spec after latest review * Prettified to match md guidelines, fixed nits Co-authored-by: Hamza Usmani <mousma@microsoft.com> * Initial RequestRestartNow API (#1882) * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * New test passes with API. * updated comment * Error handling changes and packaged code paths. * Removed unused tests, and added new test. * cleanup * transport packaging stuff * typo * Enable control flow guard for Release only. * PR feedback * Add ARM64 * Update to support packaged scenarios. This needs to be further scoped to only Desktop Bridge apps. * Detect UWP and redirect. * Reduce access usage. * Final API Name updates * Add MRTCore interface name and id (#1989) * Correct CsWinRTWindowsMetadata * WindowsSdkPackageVersion * Suffix * suffix only * 22 * Update * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Generate cert (#1986) * Update DevCheck to generate MSTest.pfx/.cer * Refactor temp handling. Add .user dir * Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil * Add -Remove-DevTestCert and -Remove-DevTestPfx * Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx * Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use * Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx * Update MSTest references * Start of changing NMAKEfiles to MSBuild * Add new file * MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects * 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts... * Tweaked the vcxproj to successfully create .msix via MakeMSIX! * Moved MakeMSIX.targets to the root (with other build files) * It works! Got the test projects building with the .pfx and .pwd * Rewiring test projects to use MakeMsix.targets instead of NMake * Yet more MakeMsix fixup * Fixed the package name * Added dummy Clean command (for now) * Fixed Deployment's test package where source files get put to different subdir+filename inside the msix * Fix DevCheck Start-Service to gracefully degrade if not running as admin * DeploymentTests were missing a build order dependency on BootstrapDLL project * Updated DevCheck generated cert to have 12-month lifespan (like current one) * Move Framework.* projects from makemsix.cmd to MakeMSIX.targets * Delete makemsix.cmd (obsolete) * Updated test projects to use static manifests instead of generated from a template (unnecessary complexity) * Deleted obsolete MakeAppxManifestFromTemplate.* * Removed obsolete manifest/template handling. Removed printfery debugging * Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error * Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr) * Deleted obsolete files * Replaced SolutionDir with RepoRoot * Rewrote installer's testpackage creation project to use MakeMSIX * Fixed naming inconsistencies * Addressed some issues. More to come * Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun * Fix bad merge * Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets * Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets * Updated projects to use the common RepoTestCertificate* * Removed obsolete and redundant <Error> check * Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late * Test WTH is going on * Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers * Add DevCheck support to RunTestsInHelix job * Merge/Port 1.0 license support into main/1.1 (#2012) * Update installer to support both publishing IDs used in App SDK. (#1759) * draft changes * fixing typo Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Added MSIX license support (#1783) * Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf) * Simplified help * Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install * It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting. * Add license support to Deployment API and a new InstallLicenses API (#1790) * Updated DeploymentManager to install license files if necessary * Add stubs for the InstallLicenseFile() methods * Change installer to install licenses BEFORE packages, for higher reliability * Copy the license header to the source tree to use whehn building via the pipeline] * Add Licensing API and export from Bootstrap'r * Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN * yml changes to pickup licensing package when needed. * moving restore to the top of the pipeline. * moving back, wrong stage * Fixed license filename * add nuget authenticate call * differnt connection * adding nuget config for build * avoid using licensing support in github / PR builds, which don't have access to the resources * update script to capture package version / name. * one missed check * Incorported feedback * udpdating nuget.config name to avoid conflicts. Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Incorporated feedback Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019) * Exclude CsWinRT.Dependency (#2021) * Bad merge fix missed copying main_license.xml to the testpackages directory (#2025) * Feature for sharing security descriptors (take 2) (#2005) * Initial * Working tests * WinRT implementation * Delay load both DLLS and perform full bootstrap setup. It works! * PR feedback * Wrap long lines * Merge in test package changes * Reworded a password prompt for clarity (#2035) * Remove 19h1 and add 21H1 to Helix test queue. (#2038) * Windows SDK version should match that of other projects (#2043) Co-authored-by: Eric Langlois <erlangl@microsoft.com> * Moving Intellisense files to single location (#2028) * Moving Intellisense files to foundation repo * Moving Intellisense files into one location * Moving Intellisense files to internal repo Co-authored-by: Eric Johnson <ejohn@microsoft.com> * Reworded a password prompt for clarity (#2045) * Enable APIscan-friendly build options (#2050) * DynamicDependencies: support elevation (#2066) * Changed DynamicDependencies' mechanism to get ApplicationData for non-System definitions. Only use the PackagedCOM object when running in an AppContainer (where hopping to another process is necessary). Elevated (and MediumIL) can directly use ApplicationDataManager (a necessity for Elevation, a nicety for MediumIL) * New file * Remove elevated blockers. Fixup to work for elevation. Update elevation test to verify success (as expected) instead of failure (as previously expected) * Fixup DDLMShadow logging to not fail on timeout (WINDOWSAPPSDK_DDLM_SHUTDOWN and ..._CALLER_TERMINATED). Previously would crash because WIL faults if LOG_*() called with SUCCEEDED(hr), but this was the last thing in the process before exit so we didn't notice. Should change to alternative logging (Telemetry?) but need to check options before deciding which way to jump. Update will be coming * Add tests for Elevation * Add a missing comment * ignore failures button' * Revert "ignore failures button'" This reverts commit ef2c8ad. * Add button to allow publishing even if there are test failures (#2070) * Update to FrameworkUDK 1.1.0-CI-22541.1001.220207-1139.1 (#2077) * Move CSWinRT to Toolset Dependencies in Version.Details.xml (#2084) * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.10001 (#2092) Microsoft.WinAppSDK.EngCommon From Version 1.1.0-20220125.0-CI -> To Version 1.1.0-20220210.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Adding a non-async PowerNotificiations::EffectivePowerMode method (#2076) * Added EffectivePowerMode2 * Added EffectivePowerMode2 Co-authored-by: Huzaifa Danish <modanish@microsoft.com> * Update dependencies from https://github.com/microsoft/CsWinRT build 1.5.0.220207.5 (#2072) [main] Update dependencies from Microsoft/CsWinRT - Merge branch 'main' into darc-main-309a8238-dc1b-428e-92c2-4f38e8ba749a Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com> Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com> Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Howard Kapustein <howardk@microsoft.com> Co-authored-by: Niklas Borson <niklasb@microsoft.com> Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com> Co-authored-by: Hamza Usmani <mousma@microsoft.com> Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com> Co-authored-by: Hui Chen <huichen@microsoft.com> Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com> Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> Co-authored-by: Ryan Shepherd <ryansh@microsoft.com> Co-authored-by: Eric Langlois <erlangl@microsoft.com> Co-authored-by: Eric Johnson <ericjohnson327@gmail.com> Co-authored-by: Eric Johnson <ejohn@microsoft.com> Co-authored-by: Will Thant <kythant@microsoft.com> Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com> Co-authored-by: Huzaifa Danish <modanish@microsoft.com> * Adding CS Projections to Toast Notifications (#2116) * Adding C# projections * arm configs aren't supposed to be set * missed a reference to push notifications * Need to publish the DLLs Co-authored-by: Eric Langlois <erlangl@microsoft.com> * Retrieve Push/Toast Activator from registry (#2094) * Able to get both Push/Toast Activator from registry * Address comments and also remove unneccessary unittests as per new design * Implement pure Register function for AppNotifications Optimize unittests * Infer DisplayName and Icon * Address Comments * Nit: replace XML toast creation with hstring in demo app * Restore PushNotificationManager * Restore com guid in PushNotificationdemoapp * Update PushNotificationUtility.h * Update PushNotificationManager.cpp * Update PushNotificationManager.cpp * Update main.cpp * Mostly bug fixes on DisplayName/Icon logic * Fixing bad merge * Fixed bad throw check Co-authored-by: Venkata Sharath Chandra Manchala <vemancha@microsoft.com> Co-authored-by: Sharath Manchala <10109130+sharath2727@users.noreply.github.com> Co-authored-by: Daniel Ayala <14967941+danielayala94@users.noreply.github.com> * Remove PushNotificationActivationInfo Co-authored-by: Pavan Hullumane <pavanh@microsoft.com> Co-authored-by: Paul Purifoy <33183370+pmpurifoy@users.noreply.github.com> Co-authored-by: eric langlois <email@ericlanglois.com> Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com> Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com> Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Howard Kapustein <howardk@microsoft.com> Co-authored-by: Niklas Borson <niklasb@microsoft.com> Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com> Co-authored-by: Hamza Usmani <mousma@microsoft.com> Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com> Co-authored-by: Hui Chen <huichen@microsoft.com> Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com> Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> Co-authored-by: Ryan Shepherd <ryansh@microsoft.com> Co-authored-by: Eric Langlois <erlangl@microsoft.com> Co-authored-by: Eric Johnson <ericjohnson327@gmail.com> Co-authored-by: Eric Johnson <ejohn@microsoft.com> Co-authored-by: Will Thant <kythant@microsoft.com> Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com> Co-authored-by: Huzaifa Danish <modanish@microsoft.com> Co-authored-by: Daniel Ayala <14967941+danielayala94@users.noreply.github.com> * Update PushNotificationManager.cpp * Add unit tests * Remove sink registration from PushReceived * 1.Address minor comments 2.Use exclusive locks to lock member variables * Remove foregroundsink for unpackaged applications in Unregister * Refactor Register flow * Lock RegisterSinkHelper * More changes to Register * Update PushNotificationManager.cpp * Rename m_protocolRegistration ->m_lrpRegistration * Implement Unregister APIs for PushNotificationManager (#2152) * Change error codes and move registering to member * Addressing comments * Add unittests (#2177) * Rename Unittests * Remove helpers (#2180) * Remove helpers * Update PushNotificationManager.cpp * Update PushNotificationManager.cpp * Update PushNotificationManager.cpp * Revamp Unregister/UnregisterAll in PushNotificationManager (#2179) * Revamp Unregister/UnregisterAll in PushNotificationManager * Address minor comments * Rename m_singletonBackgroundRegistration to m_singletonLongRunningSinkRegistration * Remove Multiple Channel request unittest * Resolving more comments Co-authored-by: Sharath Manchala <10109130+sharath2727@users.noreply.github.com> Co-authored-by: Pavan Hullumane <pavanh@microsoft.com> Co-authored-by: eric langlois <email@ericlanglois.com> Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com> Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com> Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Howard Kapustein <howardk@microsoft.com> Co-authored-by: Niklas Borson <niklasb@microsoft.com> Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com> Co-authored-by: Hamza Usmani <mousma@microsoft.com> Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com> Co-authored-by: Hui Chen <huichen@microsoft.com> Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com> Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> Co-authored-by: Ryan Shepherd <ryansh@microsoft.com> Co-authored-by: Eric Langlois <erlangl@microsoft.com> Co-authored-by: Eric Johnson <ericjohnson327@gmail.com> Co-authored-by: Eric Johnson <ejohn@microsoft.com> Co-authored-by: Will Thant <kythant@microsoft.com> Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com> Co-authored-by: Huzaifa Danish <modanish@microsoft.com> Co-authored-by: Daniel Ayala <14967941+danielayala94@users.noreply.github.com> Co-authored-by: Venkata Sharath Chandra Manchala <vemancha@microsoft.com>
* Enable SBOM generation for WindowsAppSDK (#1979) * TDBuild - updating localized resource files. * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * TDBuild - updating localized resource files. * DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995) * TDBuild - updating localized resource files. * Add new font selection APIs to DWrite API spec (#1967) * Add new font selection APIs to DWriteCore API spec. * Add descriptions of font family models and font selection algorithms. * AppLifecycle Restart API (#1134) * Initial restart API branch * Formatting to code blocks * Updates to heading * Removed preamble * Updates to overview * Removing resources content * Updating restart spec with latest changes * Fixed summary * Updates to API details, mechanism and sample * run markdown prettifier * Updating mechanism * Updating formatting for consistency * Updates to return value description * Updates to spec after latest review * Prettified to match md guidelines, fixed nits Co-authored-by: Hamza Usmani <mousma@microsoft.com> * Initial RequestRestartNow API (#1882) * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * Initial API signature * snap for driving home * RestartAgent basic build infra * builds now * Updates to the calling API and the restartagent. * switch to using common implementation of IsPackagedProcess()/HasIdentity() * update * New test passes with API. * updated comment * Error handling changes and packaged code paths. * Removed unused tests, and added new test. * cleanup * transport packaging stuff * typo * Enable control flow guard for Release only. * PR feedback * Add ARM64 * Update to support packaged scenarios. This needs to be further scoped to only Desktop Bridge apps. * Detect UWP and redirect. * Reduce access usage. * Final API Name updates * Add MRTCore interface name and id (#1989) * Correct CsWinRTWindowsMetadata * WindowsSdkPackageVersion * Suffix * suffix only * 22 * Update * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018) Microsoft.WinAppSDK.EngCommon From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Generate cert (#1986) * Update DevCheck to generate MSTest.pfx/.cer * Refactor temp handling. Add .user dir * Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil * Add -Remove-DevTestCert and -Remove-DevTestPfx * Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx * Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use * Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx * Update MSTest references * Start of changing NMAKEfiles to MSBuild * Add new file * MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects * 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts... * Tweaked the vcxproj to successfully create .msix via MakeMSIX! * Moved MakeMSIX.targets to the root (with other build files) * It works! Got the test projects building with the .pfx and .pwd * Rewiring test projects to use MakeMsix.targets instead of NMake * Yet more MakeMsix fixup * Fixed the package name * Added dummy Clean command (for now) * Fixed Deployment's test package where source files get put to different subdir+filename inside the msix * Fix DevCheck Start-Service to gracefully degrade if not running as admin * DeploymentTests were missing a build order dependency on BootstrapDLL project * Updated DevCheck generated cert to have 12-month lifespan (like current one) * Move Framework.* projects from makemsix.cmd to MakeMSIX.targets * Delete makemsix.cmd (obsolete) * Updated test projects to use static manifests instead of generated from a template (unnecessary complexity) * Deleted obsolete MakeAppxManifestFromTemplate.* * Removed obsolete manifest/template handling. Removed printfery debugging * Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error * Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr) * Deleted obsolete files * Replaced SolutionDir with RepoRoot * Rewrote installer's testpackage creation project to use MakeMSIX * Fixed naming inconsistencies * Addressed some issues. More to come * Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun * Fix bad merge * Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets * Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets * Updated projects to use the common RepoTestCertificate* * Removed obsolete and redundant <Error> check * Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late * Test WTH is going on * Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers * Add DevCheck support to RunTestsInHelix job * Merge/Port 1.0 license support into main/1.1 (#2012) * Update installer to support both publishing IDs used in App SDK. (#1759) * draft changes * fixing typo Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Added MSIX license support (#1783) * Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf) * Simplified help * Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install * It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting. * Add license support to Deployment API and a new InstallLicenses API (#1790) * Updated DeploymentManager to install license files if necessary * Add stubs for the InstallLicenseFile() methods * Change installer to install licenses BEFORE packages, for higher reliability * Copy the license header to the source tree to use whehn building via the pipeline] * Add Licensing API and export from Bootstrap'r * Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN * yml changes to pickup licensing package when needed. * moving restore to the top of the pipeline. * moving back, wrong stage * Fixed license filename * add nuget authenticate call * differnt connection * adding nuget config for build * avoid using licensing support in github / PR builds, which don't have access to the resources * update script to capture package version / name. * one missed check * Incorported feedback * udpdating nuget.config name to avoid conflicts. Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Incorporated feedback Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> * Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019) * Exclude CsWinRT.Dependency (#2021) * Bad merge fix missed copying main_license.xml to the testpackages directory (#2025) * Feature for sharing security descriptors (take 2) (#2005) * Initial * Working tests * WinRT implementation * Delay load both DLLS and perform full bootstrap setup. It works! * PR feedback * Wrap long lines * Merge in test package changes * Reworded a password prompt for clarity (#2035) * Remove 19h1 and add 21H1 to Helix test queue. (#2038) * Windows SDK version should match that of other projects (#2043) Co-authored-by: Eric Langlois <erlangl@microsoft.com> * Moving Intellisense files to single location (#2028) * Moving Intellisense files to foundation repo * Moving Intellisense files into one location * Moving Intellisense files to internal repo Co-authored-by: Eric Johnson <ejohn@microsoft.com> * Reworded a password prompt for clarity (#2045) * Enable APIscan-friendly build options (#2050) * DynamicDependencies: support elevation (#2066) * Changed DynamicDependencies' mechanism to get ApplicationData for non-System definitions. Only use the PackagedCOM object when running in an AppContainer (where hopping to another process is necessary). Elevated (and MediumIL) can directly use ApplicationDataManager (a necessity for Elevation, a nicety for MediumIL) * New file * Remove elevated blockers. Fixup to work for elevation. Update elevation test to verify success (as expected) instead of failure (as previously expected) * Fixup DDLMShadow logging to not fail on timeout (WINDOWSAPPSDK_DDLM_SHUTDOWN and ..._CALLER_TERMINATED). Previously would crash because WIL faults if LOG_*() called with SUCCEEDED(hr), but this was the last thing in the process before exit so we didn't notice. Should change to alternative logging (Telemetry?) but need to check options before deciding which way to jump. Update will be coming * Add tests for Elevation * Add a missing comment * ignore failures button' * Revert "ignore failures button'" This reverts commit ef2c8ad. * Add button to allow publishing even if there are test failures (#2070) * Update to FrameworkUDK 1.1.0-CI-22541.1001.220207-1139.1 (#2077) * Move CSWinRT to Toolset Dependencies in Version.Details.xml (#2084) * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.10001 (#2092) Microsoft.WinAppSDK.EngCommon From Version 1.1.0-20220125.0-CI -> To Version 1.1.0-20220210.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Adding a non-async PowerNotificiations::EffectivePowerMode method (#2076) * Added EffectivePowerMode2 * Added EffectivePowerMode2 Co-authored-by: Huzaifa Danish <modanish@microsoft.com> * Update dependencies from https://github.com/microsoft/CsWinRT build 1.5.0.220207.5 (#2072) [main] Update dependencies from Microsoft/CsWinRT - Merge branch 'main' into darc-main-309a8238-dc1b-428e-92c2-4f38e8ba749a * Update AppLifecycle StateNotifications.md (#2103) Add EffectivePowerMode2 * Update to FrameworkUDK 1.1.0-CI-22541.1002.220217-1401.0 (#2141) * Update MSIX package names' spec to match actual 1.0 behavior (missed updating spec when we updated code for 1.0-stable) (#2104) * Publish all BuildOutput as a pipeline artifact, to enable running additional tests in the future. (#2149) * Publish all of the build output as an artifact. * Use Pipeline artifacts instead. * Attempt downloading the pipeline BuildOutput artifact in the Helix tests. * Apparently we can't have multiple pipeline artifacts. * Fix * Fix filtering. * They are reversed. * Folders inside folders. * Sigh. * Comments * Remove old method. * Remove debug output. * Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.25001 (#2181) Microsoft.WinAppSDK.EngCommon From Version 1.1.0-20220210.0-CI -> To Version 1.1.0-20220225.0-CI Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * IsSelfContained() (#2135) * Add detection if WinAppSDK is deployed via MSIX or SelfContained * Tweaked IsSelfContained to use C++ constant for the framework packagefamilyname * Added placeholder for dev docs how to detect/use IsSelfContained. Details coming in next commit * Fixed IsSelfContained to use GetCurrentPackageGraph (as intentded. Doh! on my part) * Added tests for IsSelfContained (and ToUtf8/16! Fixed an infinite recursion stack overflow bug too :-) * Added docs. Partially fixed SelfContained package family name (handles 2 out of 3 cases). 3rd case in follow up PR * Changed IsSelfContained() from inline code to exported function * Fixed tests * Added TestShutdown. Updated the docs. Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com> Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com> Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Howard Kapustein <howardk@microsoft.com> Co-authored-by: Niklas Borson <niklasb@microsoft.com> Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com> Co-authored-by: Hamza Usmani <mousma@microsoft.com> Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com> Co-authored-by: Hui Chen <huichen@microsoft.com> Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com> Co-authored-by: Ben Kuhn <bjk4929@yahoo.com> Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com> Co-authored-by: Ryan Shepherd <ryansh@microsoft.com> Co-authored-by: Eric Langlois <erlangl@microsoft.com> Co-authored-by: Eric Johnson <ericjohnson327@gmail.com> Co-authored-by: Eric Johnson <ejohn@microsoft.com> Co-authored-by: Will Thant <kythant@microsoft.com> Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com> Co-authored-by: Huzaifa Danish <modanish@microsoft.com> Co-authored-by: andreww-msft <30507740+andreww-msft@users.noreply.github.com> Co-authored-by: Jeff Genovy <29107334+jefgen@users.noreply.github.com>
This resurrects #209 , rather than attempt to re-merge an extremely old branch when so much has changed, I've created a new PR here.
The two major requests on the old PR, which are both addressed here, were to get the WinRT API coded up, and to make sure we hand out a self-relative security descriptor.
After coding up the tests for the WinRT API, I'm having some doubts about the WinRT version taking an array of name/mask structs. This pattern makes it much harder to avoid creating hstrings on the heap, and I wouldn't have thought it commonplace for callers to specify multiple app container names at a time. I'll probably change the WinRT API to take a single app container name and access mask, so as not to defeat helpers like C++/WinRT's
param::hstring
helper. I'd like to get some thoughts from people like @jonwis , @BenJKuhn , and @mikebattista, and @DrusTheAxe. Also, any thoughts on if this should be marked preview/experimental (with velocity)?