diff options
Diffstat (limited to 'toolkit/components/telemetry/TelemetryLog.jsm')
-rw-r--r-- | toolkit/components/telemetry/TelemetryLog.jsm | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/toolkit/components/telemetry/TelemetryLog.jsm b/toolkit/components/telemetry/TelemetryLog.jsm new file mode 100644 index 000000000..ab62f195b --- /dev/null +++ b/toolkit/components/telemetry/TelemetryLog.jsm @@ -0,0 +1,35 @@ +/* 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/. */ + +this.EXPORTED_SYMBOLS = ["TelemetryLog"]; + +const Cc = Components.classes; +const Ci = Components.interfaces; + +const Telemetry = Cc["@mozilla.org/base/telemetry;1"].getService(Ci.nsITelemetry); +var gLogEntries = []; + +this.TelemetryLog = Object.freeze({ + log: function(id, data) { + id = String(id); + var ts; + try { + ts = Math.floor(Telemetry.msSinceProcessStart()); + } catch (e) { + // If timestamp is screwed up, we just give up instead of making up + // data. + return; + } + + var entry = [id, ts]; + if (data !== undefined) { + entry = entry.concat(Array.prototype.map.call(data, String)); + } + gLogEntries.push(entry); + }, + + entries: function() { + return gLogEntries; + } +}); |