Bug 1280234 - Add Mozilla-only telemetry WebExtension API. r=
MozReview-Commit-ID: BlF08SMRJsN
new file mode 100644
--- /dev/null
+++ b/toolkit/components/extensions/ext-telemetry.js
@@ -0,0 +1,25 @@
+"use strict";
+
+const {utils: Cu} = Components;
+
+Cu.import("resource://gre/modules/TelemetryController.jsm");
+
+this.telemetry = class extends ExtensionAPI {
+ getAPI(context) {
+ let {extension} = context;
+ return {
+ telemetry: {
+ send(message, options = {
+ addClientId: true,
+ addEnvironment: true,
+ }) {
+ TelemetryController.submitExternalPing(
+ extension.id,
+ message,
+ options
+ );
+ },
+ },
+ };
+ }
+};
--- a/toolkit/components/extensions/jar.mn
+++ b/toolkit/components/extensions/jar.mn
@@ -24,16 +24,17 @@ toolkit.jar:
content/extensions/ext-notifications.js
content/extensions/ext-permissions.js
content/extensions/ext-privacy.js
content/extensions/ext-protocolHandlers.js
content/extensions/ext-proxy.js
content/extensions/ext-runtime.js
content/extensions/ext-storage.js
content/extensions/ext-tabs-base.js
+ content/extensions/ext-telemetry.js
content/extensions/ext-theme.js
content/extensions/ext-toolkit.js
content/extensions/ext-toolkit.json
content/extensions/ext-topSites.js
content/extensions/ext-webRequest.js
content/extensions/ext-webNavigation.js
# Below is a separate group using the naming convention ext-c-*.js that run
# in the child process.
--- a/toolkit/components/extensions/schemas/jar.mn
+++ b/toolkit/components/extensions/schemas/jar.mn
@@ -25,14 +25,15 @@ toolkit.jar:
content/extensions/schemas/manifest.json
content/extensions/schemas/native_manifest.json
content/extensions/schemas/notifications.json
content/extensions/schemas/permissions.json
content/extensions/schemas/proxy.json
content/extensions/schemas/privacy.json
content/extensions/schemas/runtime.json
content/extensions/schemas/storage.json
+ content/extensions/schemas/telemetry.json
content/extensions/schemas/test.json
content/extensions/schemas/theme.json
content/extensions/schemas/top_sites.json
content/extensions/schemas/types.json
content/extensions/schemas/web_navigation.json
content/extensions/schemas/web_request.json
new file mode 100644
--- /dev/null
+++ b/toolkit/components/extensions/schemas/telemetry.json
@@ -0,0 +1,22 @@
+[
+ {
+ "namespace": "telemetry",
+ "description": "Use the browser.telemetry API to send telemetry data to a telemetry service.",
+ "permissions": ["telemetry", "mozillaAddons"],
+ "functions": [{
+ "name": "send",
+ "type": "function",
+ "description": "Sends a ping to the Telemetry back-end.",
+ "parameters": [
+ {
+ "name": "message",
+ "type": "object"
+ },
+ {
+ "name": "options",
+ "type": "object"
+ }
+ ]
+ }]
+ }
+]