Skip to content
This repository was archived by the owner on Jan 11, 2023. It is now read-only.

Commit c6109f1

Browse files
authored
disable telemetry until forced (#295)
1 parent 7732d8d commit c6109f1

2 files changed

Lines changed: 23 additions & 6 deletions

File tree

src/background/telemetry.js

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ const TELEMETRY_CATEGORY = "lockboxv1";
1414
// which seems like a code smell, while the action / middleware approach solves
1515
// this nicely.
1616

17+
let enabled = false;
18+
function getTelemetryEnabled() { return enabled; }
19+
1720
function registerEvents() {
1821
const events = {
1922
"startup": {
@@ -146,6 +149,10 @@ function registerScalars() {
146149

147150
async function recordEvent({ method, object, extra = null, value = null }) {
148151
let result;
152+
if (!enabled) {
153+
return result;
154+
}
155+
149156
// Note: 'extra' objects must have string values. Replace null with empty
150157
// string, and convert numbers to strings.
151158
if (extra) {
@@ -178,14 +185,19 @@ async function recordEvent({ method, object, extra = null, value = null }) {
178185
}
179186

180187
function scalarSet({ name, value }) {
181-
return browser.telemetry.scalarSet(`${TELEMETRY_CATEGORY}.${name}`, value);
188+
return enabled && browser.telemetry.scalarSet(`${TELEMETRY_CATEGORY}.${name}`, value);
182189
}
183190

184191
function scalarAdd({ name, value }) {
185-
return browser.telemetry.scalarAdd(`${TELEMETRY_CATEGORY}.${name}`, value);
192+
return enabled && browser.telemetry.scalarAdd(`${TELEMETRY_CATEGORY}.${name}`, value);
186193
}
187194

188-
export function initializeTelemetry() {
195+
export function initializeTelemetry(force) {
196+
if (!enabled && !force) {
197+
return;
198+
}
199+
200+
enabled = true;
189201
registerEvents();
190202
registerScalars();
191203

@@ -195,5 +207,5 @@ export function initializeTelemetry() {
195207
});
196208
}
197209

198-
const exported = { recordEvent, scalarSet, scalarAdd };
210+
const exported = { getTelemetryEnabled, recordEvent, scalarSet, scalarAdd };
199211
export default exported;

test/unit/background/telemetry-test.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,13 @@ describe("background > telemetry", () => {
3131
spyEmbeddedRecordEvent.restore();
3232
});
3333

34-
it("registers for telemetry", () => {
34+
it("does not register for telemetry unless forced", () => {
3535
initializeTelemetry();
36+
expect(spyEvents).to.not.have.been.called;
37+
expect(spyScalars).to.not.have.been.called;
38+
});
39+
it("registers for telemetry", () => {
40+
initializeTelemetry(true);
3641
expect(spyEvents).to.have.been.calledWith("lockboxv1", {
3742
"startup": {
3843
methods: ["startup"],
@@ -140,7 +145,7 @@ describe("background > telemetry", () => {
140145

141146
let caught = false;
142147
try {
143-
initializeTelemetry();
148+
initializeTelemetry(true);
144149
} catch (e) {
145150
caught = true;
146151
}

0 commit comments

Comments
 (0)