summaryrefslogtreecommitdiffstats
path: root/dom/webidl/MozSelfSupport.webidl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/webidl/MozSelfSupport.webidl')
-rw-r--r--dom/webidl/MozSelfSupport.webidl77
1 files changed, 77 insertions, 0 deletions
diff --git a/dom/webidl/MozSelfSupport.webidl b/dom/webidl/MozSelfSupport.webidl
new file mode 100644
index 000000000..d13aa112c
--- /dev/null
+++ b/dom/webidl/MozSelfSupport.webidl
@@ -0,0 +1,77 @@
+/* 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/. */
+
+/**
+ * The MozSelfSupport interface allows external Mozilla support sites such as
+ * FHR and SUMO to access data and control settings that are not otherwise
+ * exposed to external content.
+ *
+ * At the moment, this is a ChromeOnly interface, but the plan is to allow
+ * specific Mozilla domains to access it directly.
+ */
+[ChromeOnly,
+ JSImplementation="@mozilla.org/mozselfsupport;1",
+ Constructor()]
+interface MozSelfSupport
+{
+ /**
+ * Controls whether uploading FHR data is allowed.
+ */
+ attribute boolean healthReportDataSubmissionEnabled;
+
+ /**
+ * Retrieve a list of the archived Telemetry pings.
+ * This contains objects with ping info, which are of the form:
+ * {
+ * type: <string>, // The pings type, e.g. "main", "environment-change", ...
+ * timestampCreated: <number>, // The time the ping was created (ms since unix epoch).
+ * id: <string>, // The pings UUID.
+ * }
+ *
+ * @return Promise<sequence<Object>>
+ * Resolved with the ping infos when the archived ping list has been built.
+ */
+ Promise<sequence<object>> getTelemetryPingList();
+
+ /**
+ * Retrieve an archived Telemetry ping by it's id.
+ * This will load the ping data async from the archive, possibly hitting the disk.
+ *
+ * @return Promise<Object>
+ * Resolved with the ping data, see the Telemetry "main" ping documentation for the format.
+ */
+ Promise<object> getTelemetryPing(DOMString pingID);
+
+ /**
+ * Get the current Telemetry environment - see the Telemetry documentation for details on the format.
+ *
+ * @return Promise<Object>
+ * Resolved with an object containing the Telemetry environment data.
+ */
+ Promise<object> getCurrentTelemetryEnvironment();
+
+ /**
+ * Get a Telemetry "main" ping containing the current session measurements.
+ *
+ * @return Promise<Object>
+ * Resolved with the ping data, see the Telemetry "main" ping documentation for the format.
+ */
+ Promise<object> getCurrentTelemetrySubsessionPing();
+
+ /**
+ * Resets a named pref:
+ * - if there is a default value, then change the value back to default,
+ * - if there's no default value, then delete the pref,
+ * - no-op otherwise.
+ *
+ * @param DOMString
+ * The name of the pref to reset.
+ */
+ void resetPref(DOMString name);
+
+ /**
+ * Resets original search engines, and resets the default one.
+ */
+ void resetSearchEngines();
+};