This is adding in the new Windows 11 only version of taskbar pinning. For the new pinning to work, we need to use limited access feature tokens. Those are going to be made private and aren't included with this change.
This change will compile, and will work if built against the correct limited access feature tokens, as specified in developer local machine config files, but for every other build, the new taskbar pinning won't work and will fall back to the old methods.
I will implement the try / release building machines using the secret limited access feature tokens in a follow-up diff.
Differential Revision: https://phabricator.services.mozilla.com/D205004
This is adding in the new Windows 11 only version of taskbar pinning. For the new pinning to work, we need to use limited access feature tokens. Those are going to be made private and aren't included with this change.
This change will compile, and will work if built against the correct limited access feature tokens, as specified in developer local machine config files, but for every other build, the new taskbar pinning won't work and will fall back to the old methods.
I will implement the try / release building machines using the secret limited access feature tokens in a follow-up diff.
Differential Revision: https://phabricator.services.mozilla.com/D205004
This is adding in the new Windows 11 only version of taskbar pinning. For the new pinning to work, we need to use limited access feature tokens. Those are going to be made private and aren't included with this change.
This change will compile, and will work if built against the correct limited access feature tokens, as specified in developer local machine config files, but for every other build, the new taskbar pinning won't work and will fall back to the old methods.
I will implement the try / release building machines using the secret limited access feature tokens in a follow-up diff.
Differential Revision: https://phabricator.services.mozilla.com/D205004
This is adding in the new Windows 11 only version of taskbar pinning. For the new pinning to work, we need to use limited access feature tokens. Those are going to be made private and aren't included with this change.
This change will compile, and will work if built against the correct limited access feature tokens, as specified in developer local machine config files, but for every other build, the new taskbar pinning won't work and will fall back to the old methods.
I will implement the try / release building machines using the secret limited access feature tokens in a follow-up diff.
Differential Revision: https://phabricator.services.mozilla.com/D205004
This is adding in the new Windows 11 only version of taskbar pinning. For the new pinning to work, we need to use limited access feature tokens. Those are going to be made private and aren't included with this change.
This change will compile, and will work if built against the correct limited access feature tokens, as specified in developer local machine config files, but for every other build, the new taskbar pinning won't work and will fall back to the old methods.
I will implement the try / release building machines using the secret limited access feature tokens in a follow-up diff.
Differential Revision: https://phabricator.services.mozilla.com/D205004
This is adding in the new Windows 11 only version of taskbar pinning. For the new pinning to work, we need to use limited access feature tokens. Those are going to be made private and aren't included with this change.
This change will compile, and will work if built against the correct limited access feature tokens, as specified in developer local machine config files, but for every other build, the new taskbar pinning won't work and will fall back to the old methods.
I will implement the try / release building machines using the secret limited access feature tokens in a follow-up diff.
Differential Revision: https://phabricator.services.mozilla.com/D205004
Previously the `boolean` type was also declared using a `bool` typedef in
xpidl, meaning that both were used in various places. This patch standardizes
on the built-in `boolean` type, removing the typedef.
Differential Revision: https://phabricator.services.mozilla.com/D206382
This modifies the implementation to delete the registry keys via `DeleteSubKey` instead of `DeleteSubKeyTree`. This no longer throws when the DENY permission is set on a registry key as is the case for file association keys. This does throw when we are unable to delete a registry key as has been observed in newer versions of windows. Similar to the Win32 API implementation, this now halts execution and returns an error to the invoking process.
Differential Revision: https://phabricator.services.mozilla.com/D203069
As per comments on this diff about getTaskbarTabShortcutPath () I added validation on the C++ side to ensure that the shortcut name passed in can be used as a filename. Tested the changes in the browser console window and confirmed that regular names "abcd" work and confirmed that bad names ("..\\something", ".\\s", ".s", "some?") failed and generated an exception in Javascript.
Differential Revision: https://phabricator.services.mozilla.com/D199590
This is a revision to remove the functionality that was added over 3 or 4 previous revisions to ultimately use Powershell to set the default browser in MSIX builds. On Windows with a new feature enabled by Microsoft, this results in the HTTP and HTTPS handler being reset to Edge, which is a terrible experience.
Since there's no solve, this is rolling that all back. Done as one set of changes here because it's all deleted code except for one line, a rollback isn't clean, and it would change the Javascript side to be non-async again, which isn't necessary.
This will effectively be reopening Bug 1818418 - Allow to use Windows UserChoice default mechanisms for MSIX packages. All of the bugs created in between were side effects of that change / fix.
I will not reopen that bug because we don't plan to fix it. Microsoft is rolling out new changes that explicitly disallow that mechanism. When it hits 100%, it won't work on any build type (MSIX or not).
Differential Revision: https://phabricator.services.mozilla.com/D197747
This fix addresses cleanup work from https://phabricator.services.mozilla.com/D194828
It also makes it so that all file/protocol handlers get set with one launch of Powershell, to speed things up. Which it does. A lot.
It also:
* makes somethings use of nsString (where it was easy to do)
* moves the thread managing code out of SetDefaultBrowser.cpp and into DefaultAgent.cpp
* puts auto in a couple of places to make the code easier to read
* removes some logging statements in the powershell script code
Differential Revision: https://phabricator.services.mozilla.com/D195839