summaryrefslogtreecommitdiffstats
path: root/toolkit/system/windowsPackageManager/nsIWindowsPackageManager.idl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--toolkit/system/windowsPackageManager/nsIWindowsPackageManager.idl41
1 files changed, 41 insertions, 0 deletions
diff --git a/toolkit/system/windowsPackageManager/nsIWindowsPackageManager.idl b/toolkit/system/windowsPackageManager/nsIWindowsPackageManager.idl
new file mode 100644
index 0000000000..c78fc841e7
--- /dev/null
+++ b/toolkit/system/windowsPackageManager/nsIWindowsPackageManager.idl
@@ -0,0 +1,41 @@
+/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsISupports.idl"
+
+[scriptable, uuid(ad57ac40-52f0-11ec-ada8-4f671255c4aa)]
+interface nsIWindowsPackageManager : nsISupports
+{
+/* Searches for any user installed MSIX packages whose
+ * packageFamilyName matches any of the provided `aNamePrefixes`
+ * and returns them. The Windows APIs only allow querying user
+ * installed packages without elevation, so this will not see any
+ * packages installed by another user.
+ */
+ Array<AString> findUserInstalledPackages(in Array<AString> prefix);
+
+/* When running within a Packaged App environment, returns the
+ * InstalledDate of the Package. If called when not running within
+ * a Packaged App environment, throws NS_ERROR_NOT_IMPLEMENTED.
+ * Any other others will cause NS_ERROR_FAILURE to be thrown.
+ */
+ unsigned long long getInstalledDate();
+
+/* Retrieves the campaignId, if any, a user's Microsoft Store install is
+ * associated with. These are present if the user clicked a "ms-window-store://"
+ * or "https://" link that included a "cid" query argument the very first time
+ * they installed the app. (This value appears to be cached forever, so
+ * subsequent installs will not refresh it.) If a non-empty campaign ID is
+ * found it will be assumed to be a properly formatted attribution code and
+ * have an additional "msstoresignedin" key appended to it indicate whether or
+ * not the user was signed in when they installed the application. This key
+ * will either be set to "true" or "false".
+ *
+ * @throw NS_ERROR_NOT_IMPLEMENTED if called on Windows 8 or earlier, or from
+ * a non-packaged build.
+ * @throw NS_ERROR_FAILURE for any other errors
+ */
+ AString getCampaignId();
+};