mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-04 18:29:29 +02:00
55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
/* 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/. */
|
|
|
|
/* globals main, browser, catcher, log */
|
|
|
|
"use strict";
|
|
|
|
this.analytics = (function () {
|
|
const exports = {};
|
|
|
|
let telemetryEnabled;
|
|
|
|
exports.incrementCount = function (scalar) {
|
|
const allowedScalars = [
|
|
"download",
|
|
"upload",
|
|
"copy",
|
|
"visible",
|
|
"full_page",
|
|
"custom",
|
|
"element",
|
|
];
|
|
if (!allowedScalars.includes(scalar)) {
|
|
const err = `incrementCount passed an unrecognized scalar ${scalar}`;
|
|
log.warn(err);
|
|
return Promise.resolve();
|
|
}
|
|
return browser.telemetry
|
|
.scalarAdd(`screenshots.${scalar}`, 1)
|
|
.catch(err => {
|
|
log.warn(`incrementCount failed with error: ${err}`);
|
|
});
|
|
};
|
|
|
|
exports.refreshTelemetryPref = function () {
|
|
return browser.telemetry.canUpload().then(
|
|
result => {
|
|
telemetryEnabled = result;
|
|
},
|
|
error => {
|
|
// If there's an error reading the pref, we should assume that we shouldn't send data
|
|
telemetryEnabled = false;
|
|
throw error;
|
|
}
|
|
);
|
|
};
|
|
|
|
exports.isTelemetryEnabled = function () {
|
|
catcher.watchPromise(exports.refreshTelemetryPref());
|
|
return telemetryEnabled;
|
|
};
|
|
|
|
return exports;
|
|
})();
|