/* 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/. */ "use strict"; ChromeUtils.defineESModuleGetters(this, { TelemetryController: "resource://gre/modules/TelemetryController.sys.mjs", TelemetryUtils: "resource://gre/modules/TelemetryUtils.sys.mjs", }); // Currently unsupported on Android: blocked on 1220177. // See 1280234 c67 for discussion. function desktopCheck() { if (AppConstants.MOZ_BUILD_APP !== "browser") { throw new ExtensionUtils.ExtensionError( "This API is only supported on desktop" ); } } this.telemetry = class extends ExtensionAPI { getAPI(_context) { return { telemetry: { submitPing(type, payload, options) { desktopCheck(); try { TelemetryController.submitExternalPing(type, payload, options); } catch (ex) { throw new ExtensionUtils.ExtensionError(ex); } }, canUpload() { desktopCheck(); // Note: remove the ternary and direct pref check when // TelemetryController.canUpload() is implemented (bug 1440089). try { const result = "canUpload" in TelemetryController ? TelemetryController.canUpload() : Services.prefs.getBoolPref( TelemetryUtils.Preferences.FhrUploadEnabled, false ); return result; } catch (ex) { throw new ExtensionUtils.ExtensionError(ex); } }, scalarAdd(_name, _value) { desktopCheck(); // No-op since bug 1930196 (Fx134). }, scalarSet(_name, _value) { desktopCheck(); // No-op since bug 1930196 (Fx134). }, scalarSetMaximum(_name, _value) { desktopCheck(); // No-op since bug 1930196 (Fx134). }, keyedScalarAdd(_name, _key, _value) { desktopCheck(); // No-op since bug 1930196 (Fx134). }, keyedScalarSet(_name, _key, _value) { desktopCheck(); // No-op since bug 1930196 (Fx134). }, keyedScalarSetMaximum(_name, _key, _value) { desktopCheck(); // No-op since bug 1930196 (Fx134). }, recordEvent(_category, _method, _object, _value, _extra) { desktopCheck(); // No-op since bug 1894533 (Fx132). }, registerScalars(_category, _data) { desktopCheck(); // No-op since bug 1930196 (Fx134). }, setEventRecordingEnabled(_category, _enabled) { desktopCheck(); // No-op since bug 1920562 (Fx133). }, registerEvents(_category, _data) { desktopCheck(); // No-op since bug 1894533 (Fx132). }, }, }; } };