services/healthreport/providers.jsm
author Wes Kocher <wkocher@mozilla.com>
Mon, 05 Jan 2015 17:08:49 -0800
changeset 222089 2a193b7f395c8e6f3c21e83777ce2f540e4c04fe
parent 219296 57725f8e7aa143d7229d28b0a821a3e5e5c01a46
child 232871 cbfb5e4c944a3ba47a41f481ca97e7cfd904247e
permissions -rw-r--r--
Merge fx-team to m-c a=merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
     1
/* This Source Code Form is subject to the terms of the Mozilla Public
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
     2
 * License, v. 2.0. If a copy of the MPL was not distributed with this
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
     3
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
     4
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
     5
/**
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
     6
 * This file contains metrics data providers for the Firefox Health
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
     7
 * Report. Ideally each provider in this file exists in separate modules
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
     8
 * and lives close to the code it is querying. However, because of the
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
     9
 * overhead of JS compartments (which are created for each module), we
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    10
 * currently have all the code in one file. When the overhead of
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    11
 * compartments reaches a reasonable level, this file should be split
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    12
 * up.
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    13
 */
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    14
198491
dbd45a6fec49b7de087a0b84431025198157a6f8 Bug 1048989 - Fix 'useless expression' warnings with MERGED_COMPONENT. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 196530
diff changeset
    15
#ifndef MERGED_COMPARTMENT
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    16
198491
dbd45a6fec49b7de087a0b84431025198157a6f8 Bug 1048989 - Fix 'useless expression' warnings with MERGED_COMPONENT. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 196530
diff changeset
    17
"use strict";
120043
b0d6d514d3414193b7608e1983aaa87dc1446943 Bug 834936 - Temporarily load JSMs into fewer compartments; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 119974
diff changeset
    18
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    19
this.EXPORTED_SYMBOLS = [
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
    20
  "AddonsProvider",
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
    21
  "AppInfoProvider",
173531
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
    22
#ifdef MOZ_CRASHREPORTER
117849
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
    23
  "CrashesProvider",
173531
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
    24
#endif
130545
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
    25
  "HealthReportProvider",
196530
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
    26
  "HotfixProvider",
120935
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
    27
  "PlacesProvider",
121709
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
    28
  "SearchesProvider",
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
    29
  "SessionsProvider",
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
    30
  "SysInfoProvider",
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    31
];
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    32
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    33
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    34
120043
b0d6d514d3414193b7608e1983aaa87dc1446943 Bug 834936 - Temporarily load JSMs into fewer compartments; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 119974
diff changeset
    35
Cu.import("resource://gre/modules/Metrics.jsm");
b0d6d514d3414193b7608e1983aaa87dc1446943 Bug 834936 - Temporarily load JSMs into fewer compartments; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 119974
diff changeset
    36
b0d6d514d3414193b7608e1983aaa87dc1446943 Bug 834936 - Temporarily load JSMs into fewer compartments; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 119974
diff changeset
    37
#endif
b0d6d514d3414193b7608e1983aaa87dc1446943 Bug 834936 - Temporarily load JSMs into fewer compartments; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 119974
diff changeset
    38
135142
2b384740198ccbd06d8866278be22e28d00b4126 Bug 852411 - Migrating from promise.js to Promise.jsm; r=gps
Stefan Mirea <steven.mirea@gmail.com>
parents: 135141
diff changeset
    39
Cu.import("resource://gre/modules/Promise.jsm");
117849
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
    40
Cu.import("resource://gre/modules/osfile.jsm");
128823
3b681cdd0bc5b220a6e7e7e6a6a3ce5de4e8220a Bug 848519 - Part 3: Replace services-common/preferences.js with gre/modules/Preferences.jsm in imports. r=gavin
Nick Alexander <nalexander@mozilla.com>
parents: 126233
diff changeset
    41
Cu.import("resource://gre/modules/Preferences.jsm");
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    42
Cu.import("resource://gre/modules/Services.jsm");
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
    43
Cu.import("resource://gre/modules/Task.jsm");
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    44
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    45
Cu.import("resource://services-common/utils.js");
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    46
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
    47
XPCOMUtils.defineLazyModuleGetter(this, "AddonManager",
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
    48
                                  "resource://gre/modules/AddonManager.jsm");
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    49
XPCOMUtils.defineLazyModuleGetter(this, "UpdateChannel",
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    50
                                  "resource://gre/modules/UpdateChannel.jsm");
120935
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
    51
XPCOMUtils.defineLazyModuleGetter(this, "PlacesDBUtils",
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
    52
                                  "resource://gre/modules/PlacesDBUtils.jsm");
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
    53
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    54
164777
22c4e8746c69c2a0e2cac626156930f4d96dbf13 Bug 959356 - Report isWow64 in Firefox Health Report; r=bsmedberg
Gregory Szorc <gps@mozilla.com>
parents: 152656
diff changeset
    55
const LAST_NUMERIC_FIELD = {type: Metrics.Storage.FIELD_LAST_NUMERIC};
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    56
const LAST_TEXT_FIELD = {type: Metrics.Storage.FIELD_LAST_TEXT};
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    57
const DAILY_DISCRETE_NUMERIC_FIELD = {type: Metrics.Storage.FIELD_DAILY_DISCRETE_NUMERIC};
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    58
const DAILY_LAST_NUMERIC_FIELD = {type: Metrics.Storage.FIELD_DAILY_LAST_NUMERIC};
190918
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
    59
const DAILY_LAST_TEXT_FIELD = {type: Metrics.Storage.FIELD_DAILY_LAST_TEXT};
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    60
const DAILY_COUNTER_FIELD = {type: Metrics.Storage.FIELD_DAILY_COUNTER};
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    61
125439
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
    62
const TELEMETRY_PREF = "toolkit.telemetry.enabled";
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
    63
190918
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
    64
function isTelemetryEnabled(prefs) {
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
    65
  return prefs.get(TELEMETRY_PREF, false);
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
    66
}
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
    67
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    68
/**
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    69
 * Represents basic application state.
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    70
 *
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    71
 * This is roughly a union of nsIXULAppInfo, nsIXULRuntime, with a few extra
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    72
 * pieces thrown in.
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    73
 */
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    74
function AppInfoMeasurement() {
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
    75
  Metrics.Measurement.call(this);
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    76
}
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    77
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
    78
AppInfoMeasurement.prototype = Object.freeze({
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
    79
  __proto__: Metrics.Measurement.prototype,
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
    80
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
    81
  name: "appinfo",
125439
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
    82
  version: 2,
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
    83
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    84
  fields: {
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    85
    vendor: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    86
    name: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    87
    id: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    88
    version: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    89
    appBuildID: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    90
    platformVersion: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    91
    platformBuildID: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    92
    os: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    93
    xpcomabi: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    94
    updateChannel: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    95
    distributionID: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    96
    distributionVersion: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    97
    hotfixVersion: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    98
    locale: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
    99
    isDefaultBrowser: {type: Metrics.Storage.FIELD_DAILY_LAST_NUMERIC},
125439
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   100
    isTelemetryEnabled: {type: Metrics.Storage.FIELD_DAILY_LAST_NUMERIC},
125440
5645c4612346fc29b88199c493e2587f85c1e2a1 Bug 850483 - Record "blocklist enabled" flag in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125439
diff changeset
   101
    isBlocklistEnabled: {type: Metrics.Storage.FIELD_DAILY_LAST_NUMERIC},
125439
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   102
  },
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   103
});
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   104
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   105
/**
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   106
 * Legacy version of app info before Telemetry was added.
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   107
 *
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   108
 * The "last" fields have all been removed. We only report the longitudinal
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   109
 * field.
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   110
 */
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   111
function AppInfoMeasurement1() {
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   112
  Metrics.Measurement.call(this);
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   113
}
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   114
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   115
AppInfoMeasurement1.prototype = Object.freeze({
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   116
  __proto__: Metrics.Measurement.prototype,
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   117
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   118
  name: "appinfo",
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   119
  version: 1,
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   120
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   121
  fields: {
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   122
    isDefaultBrowser: {type: Metrics.Storage.FIELD_DAILY_LAST_NUMERIC},
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   123
  },
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   124
});
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   125
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   126
125442
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   127
function AppVersionMeasurement1() {
117844
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   128
  Metrics.Measurement.call(this);
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   129
}
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   130
125442
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   131
AppVersionMeasurement1.prototype = Object.freeze({
117844
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   132
  __proto__: Metrics.Measurement.prototype,
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   133
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   134
  name: "versions",
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   135
  version: 1,
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   136
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   137
  fields: {
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   138
    version: {type: Metrics.Storage.FIELD_DAILY_DISCRETE_TEXT},
117844
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   139
  },
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   140
});
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   141
125442
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   142
// Version 2 added the build ID.
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   143
function AppVersionMeasurement2() {
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   144
  Metrics.Measurement.call(this);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   145
}
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   146
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   147
AppVersionMeasurement2.prototype = Object.freeze({
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   148
  __proto__: Metrics.Measurement.prototype,
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   149
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   150
  name: "versions",
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   151
  version: 2,
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   152
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   153
  fields: {
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   154
    appVersion: {type: Metrics.Storage.FIELD_DAILY_DISCRETE_TEXT},
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   155
    platformVersion: {type: Metrics.Storage.FIELD_DAILY_DISCRETE_TEXT},
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   156
    appBuildID: {type: Metrics.Storage.FIELD_DAILY_DISCRETE_TEXT},
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   157
    platformBuildID: {type: Metrics.Storage.FIELD_DAILY_DISCRETE_TEXT},
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   158
  },
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   159
});
117844
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   160
138382
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   161
/**
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   162
 * Holds data on the application update functionality.
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   163
 */
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   164
function AppUpdateMeasurement1() {
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   165
  Metrics.Measurement.call(this);
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   166
}
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   167
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   168
AppUpdateMeasurement1.prototype = Object.freeze({
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   169
  __proto__: Metrics.Measurement.prototype,
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   170
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   171
  name: "update",
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   172
  version: 1,
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   173
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   174
  fields: {
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   175
    enabled: {type: Metrics.Storage.FIELD_DAILY_LAST_NUMERIC},
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   176
    autoDownload: {type: Metrics.Storage.FIELD_DAILY_LAST_NUMERIC},
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   177
  },
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   178
});
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   179
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   180
this.AppInfoProvider = function AppInfoProvider() {
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   181
  Metrics.Provider.call(this);
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   182
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   183
  this._prefs = new Preferences({defaultBranch: null});
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   184
}
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   185
AppInfoProvider.prototype = Object.freeze({
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   186
  __proto__: Metrics.Provider.prototype,
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   187
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   188
  name: "org.mozilla.appInfo",
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   189
125439
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   190
  measurementTypes: [
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   191
    AppInfoMeasurement,
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   192
    AppInfoMeasurement1,
138382
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   193
    AppUpdateMeasurement1,
125442
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   194
    AppVersionMeasurement1,
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   195
    AppVersionMeasurement2,
125439
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   196
  ],
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   197
122255
7da1d0ed25d7b57d9d4b8ea8b15f53e8da566d38 Bug 842377 - Rename "constant only" to "pull only"; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 121709
diff changeset
   198
  pullOnly: true,
120922
3446cda2c8b811dbeae1f0d726face752ce448bf Bug 836186 - Don't load FHR providers until they are used; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120043
diff changeset
   199
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   200
  appInfoFields: {
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   201
    // From nsIXULAppInfo.
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   202
    vendor: "vendor",
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   203
    name: "name",
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   204
    id: "ID",
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   205
    version: "version",
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   206
    appBuildID: "appBuildID",
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   207
    platformVersion: "platformVersion",
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   208
    platformBuildID: "platformBuildID",
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   209
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   210
    // From nsIXULRuntime.
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   211
    os: "OS",
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   212
    xpcomabi: "XPCOMABI",
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   213
  },
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   214
128772
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
   215
  postInit: function () {
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
   216
    return Task.spawn(this._postInit.bind(this));
117844
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   217
  },
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   218
128772
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
   219
  _postInit: function () {
125442
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   220
    let recordEmptyAppInfo = function () {
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   221
      this._setCurrentAppVersion("");
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   222
      this._setCurrentPlatformVersion("");
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   223
      this._setCurrentAppBuildID("");
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   224
      return this._setCurrentPlatformBuildID("");
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   225
    }.bind(this);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   226
117844
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   227
    // Services.appInfo should always be defined for any reasonably behaving
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   228
    // Gecko app. If it isn't, we insert a empty string sentinel value.
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   229
    let ai;
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   230
    try {
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   231
      ai = Services.appinfo;
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   232
    } catch (ex) {
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   233
      this._log.error("Could not obtain Services.appinfo: " +
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   234
                     CommonUtils.exceptionStr(ex));
125442
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   235
      yield recordEmptyAppInfo();
117844
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   236
      return;
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   237
    }
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   238
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   239
    if (!ai) {
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   240
      this._log.error("Services.appinfo is unavailable.");
125442
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   241
      yield recordEmptyAppInfo();
117844
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   242
      return;
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   243
    }
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   244
125442
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   245
    let currentAppVersion = ai.version;
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   246
    let currentPlatformVersion = ai.platformVersion;
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   247
    let currentAppBuildID = ai.appBuildID;
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   248
    let currentPlatformBuildID = ai.platformBuildID;
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   249
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   250
    // State's name doesn't contain "app" for historical compatibility.
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   251
    let lastAppVersion = yield this.getState("lastVersion");
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   252
    let lastPlatformVersion = yield this.getState("lastPlatformVersion");
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   253
    let lastAppBuildID = yield this.getState("lastAppBuildID");
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   254
    let lastPlatformBuildID = yield this.getState("lastPlatformBuildID");
117844
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   255
125442
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   256
    if (currentAppVersion != lastAppVersion) {
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   257
      yield this._setCurrentAppVersion(currentAppVersion);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   258
    }
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   259
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   260
    if (currentPlatformVersion != lastPlatformVersion) {
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   261
      yield this._setCurrentPlatformVersion(currentPlatformVersion);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   262
    }
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   263
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   264
    if (currentAppBuildID != lastAppBuildID) {
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   265
      yield this._setCurrentAppBuildID(currentAppBuildID);
117844
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   266
    }
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   267
125442
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   268
    if (currentPlatformBuildID != lastPlatformBuildID) {
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   269
      yield this._setCurrentPlatformBuildID(currentPlatformBuildID);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   270
    }
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   271
  },
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   272
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   273
  _setCurrentAppVersion: function (version) {
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   274
    this._log.info("Recording new application version: " + version);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   275
    let m = this.getMeasurement("versions", 2);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   276
    m.addDailyDiscreteText("appVersion", version);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   277
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   278
    // "app" not encoded in key for historical compatibility.
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   279
    return this.setState("lastVersion", version);
117844
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   280
  },
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   281
125442
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   282
  _setCurrentPlatformVersion: function (version) {
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   283
    this._log.info("Recording new platform version: " + version);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   284
    let m = this.getMeasurement("versions", 2);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   285
    m.addDailyDiscreteText("platformVersion", version);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   286
    return this.setState("lastPlatformVersion", version);
117844
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   287
  },
d4ce01fb62551508ec19742b8143db19de5d6d90 Bug 826580 - Record application version history in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117843
diff changeset
   288
125442
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   289
  _setCurrentAppBuildID: function (build) {
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   290
    this._log.info("Recording new application build ID: " + build);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   291
    let m = this.getMeasurement("versions", 2);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   292
    m.addDailyDiscreteText("appBuildID", build);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   293
    return this.setState("lastAppBuildID", build);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   294
  },
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   295
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   296
  _setCurrentPlatformBuildID: function (build) {
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   297
    this._log.info("Recording new platform build ID: " + build);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   298
    let m = this.getMeasurement("versions", 2);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   299
    m.addDailyDiscreteText("platformBuildID", build);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   300
    return this.setState("lastPlatformBuildID", build);
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   301
  },
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   302
59e0077b197573aef92e27088354a622ec3008c8 Bug 850450 - Longitudinal recording of build ID in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125440
diff changeset
   303
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   304
  collectConstantData: function () {
126233
9f88a271a336046d092ec58affbf28225bedc6b5 Bug 854606 - Use more SQLite transactions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 126229
diff changeset
   305
    return this.storage.enqueueTransaction(this._populateConstants.bind(this));
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   306
  },
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   307
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   308
  _populateConstants: function () {
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   309
    let m = this.getMeasurement(AppInfoMeasurement.prototype.name,
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   310
                                AppInfoMeasurement.prototype.version);
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   311
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   312
    let ai;
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   313
    try {
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   314
      ai = Services.appinfo;
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   315
    } catch (ex) {
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   316
      this._log.warn("Could not obtain Services.appinfo: " +
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   317
                     CommonUtils.exceptionStr(ex));
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   318
      throw ex;
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   319
    }
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   320
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   321
    if (!ai) {
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   322
      this._log.warn("Services.appinfo is unavailable.");
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   323
      throw ex;
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   324
    }
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   325
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   326
    for (let [k, v] in Iterator(this.appInfoFields)) {
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   327
      try {
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   328
        yield m.setLastText(k, ai[v]);
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   329
      } catch (ex) {
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   330
        this._log.warn("Error obtaining Services.appinfo." + v);
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   331
      }
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   332
    }
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   333
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   334
    try {
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   335
      yield m.setLastText("updateChannel", UpdateChannel.get());
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   336
    } catch (ex) {
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   337
      this._log.warn("Could not obtain update channel: " +
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   338
                     CommonUtils.exceptionStr(ex));
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   339
    }
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   340
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   341
    yield m.setLastText("distributionID", this._prefs.get("distribution.id", ""));
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   342
    yield m.setLastText("distributionVersion", this._prefs.get("distribution.version", ""));
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   343
    yield m.setLastText("hotfixVersion", this._prefs.get("extensions.hotfix.lastVersion", ""));
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   344
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   345
    try {
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   346
      let locale = Cc["@mozilla.org/chrome/chrome-registry;1"]
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   347
                     .getService(Ci.nsIXULChromeRegistry)
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   348
                     .getSelectedLocale("global");
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   349
      yield m.setLastText("locale", locale);
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   350
    } catch (ex) {
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   351
      this._log.warn("Could not obtain application locale: " +
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   352
                     CommonUtils.exceptionStr(ex));
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   353
    }
117852
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   354
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   355
    // FUTURE this should be retrieved periodically or at upload time.
125439
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   356
    yield this._recordIsTelemetryEnabled(m);
125440
5645c4612346fc29b88199c493e2587f85c1e2a1 Bug 850483 - Record "blocklist enabled" flag in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125439
diff changeset
   357
    yield this._recordIsBlocklistEnabled(m);
117852
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   358
    yield this._recordDefaultBrowser(m);
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   359
  },
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   360
125439
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   361
  _recordIsTelemetryEnabled: function (m) {
190918
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
   362
    let enabled = isTelemetryEnabled(this._prefs);
125439
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   363
    this._log.debug("Recording telemetry enabled (" + TELEMETRY_PREF + "): " + enabled);
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   364
    yield m.setDailyLastNumeric("isTelemetryEnabled", enabled ? 1 : 0);
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   365
  },
35970a2baa8d69a52c10e32f4517cd1fab2cad8f Bug 837292 - Part 3: Add a TelemetryEnabled flag to FHR. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125360
diff changeset
   366
125440
5645c4612346fc29b88199c493e2587f85c1e2a1 Bug 850483 - Record "blocklist enabled" flag in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125439
diff changeset
   367
  _recordIsBlocklistEnabled: function (m) {
5645c4612346fc29b88199c493e2587f85c1e2a1 Bug 850483 - Record "blocklist enabled" flag in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125439
diff changeset
   368
    let enabled = this._prefs.get("extensions.blocklist.enabled", false);
5645c4612346fc29b88199c493e2587f85c1e2a1 Bug 850483 - Record "blocklist enabled" flag in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125439
diff changeset
   369
    this._log.debug("Recording blocklist enabled: " + enabled);
5645c4612346fc29b88199c493e2587f85c1e2a1 Bug 850483 - Record "blocklist enabled" flag in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125439
diff changeset
   370
    yield m.setDailyLastNumeric("isBlocklistEnabled", enabled ? 1 : 0);
5645c4612346fc29b88199c493e2587f85c1e2a1 Bug 850483 - Record "blocklist enabled" flag in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125439
diff changeset
   371
  },
5645c4612346fc29b88199c493e2587f85c1e2a1 Bug 850483 - Record "blocklist enabled" flag in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 125439
diff changeset
   372
117852
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   373
  _recordDefaultBrowser: function (m) {
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   374
    let shellService;
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   375
    try {
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   376
      shellService = Cc["@mozilla.org/browser/shell-service;1"]
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   377
                       .getService(Ci.nsIShellService);
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   378
    } catch (ex) {
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   379
      this._log.warn("Could not obtain shell service: " +
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   380
                     CommonUtils.exceptionStr(ex));
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   381
    }
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   382
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   383
    let isDefault = -1;
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   384
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   385
    if (shellService) {
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   386
      try {
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   387
        // This uses the same set of flags used by the pref pane.
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   388
        isDefault = shellService.isDefaultBrowser(false, true) ? 1 : 0;
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   389
      } catch (ex) {
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   390
        this._log.warn("Could not determine if default browser: " +
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   391
                       CommonUtils.exceptionStr(ex));
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   392
      }
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   393
    }
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   394
967ca515b01226cd9f5e4bb635176f5b311d17e1 Bug 827187 - Report default browser flag in Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117849
diff changeset
   395
    return m.setDailyLastNumeric("isDefaultBrowser", isDefault);
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   396
  },
138382
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   397
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   398
  collectDailyData: function () {
139307
a9327bfcbd8a6ee4e59c7971d113e240fa31d424 Bug 864993 - Part 2: Properly implement app update collection; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 138382
diff changeset
   399
    return this.storage.enqueueTransaction(function getDaily() {
a9327bfcbd8a6ee4e59c7971d113e240fa31d424 Bug 864993 - Part 2: Properly implement app update collection; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 138382
diff changeset
   400
      let m = this.getMeasurement(AppUpdateMeasurement1.prototype.name,
a9327bfcbd8a6ee4e59c7971d113e240fa31d424 Bug 864993 - Part 2: Properly implement app update collection; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 138382
diff changeset
   401
                                  AppUpdateMeasurement1.prototype.version);
138382
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   402
139307
a9327bfcbd8a6ee4e59c7971d113e240fa31d424 Bug 864993 - Part 2: Properly implement app update collection; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 138382
diff changeset
   403
      let enabled = this._prefs.get("app.update.enabled", false);
a9327bfcbd8a6ee4e59c7971d113e240fa31d424 Bug 864993 - Part 2: Properly implement app update collection; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 138382
diff changeset
   404
      yield m.setDailyLastNumeric("enabled", enabled ? 1 : 0);
138382
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   405
139307
a9327bfcbd8a6ee4e59c7971d113e240fa31d424 Bug 864993 - Part 2: Properly implement app update collection; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 138382
diff changeset
   406
      let auto = this._prefs.get("app.update.auto", false);
a9327bfcbd8a6ee4e59c7971d113e240fa31d424 Bug 864993 - Part 2: Properly implement app update collection; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 138382
diff changeset
   407
      yield m.setDailyLastNumeric("autoDownload", auto ? 1 : 0);
a9327bfcbd8a6ee4e59c7971d113e240fa31d424 Bug 864993 - Part 2: Properly implement app update collection; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 138382
diff changeset
   408
    }.bind(this));
138382
ce7b43ed8bf1702e84b6430f7c4bd24bfe0e367a Bug 864993 - Add app update metrics to FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 135793
diff changeset
   409
  },
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   410
});
113830
213ad3540ebc91dffbde6b9b47753fea9bd19a08 Bug 809644 - Health Report provider for application info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents:
diff changeset
   411
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   412
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   413
function SysInfoMeasurement() {
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   414
  Metrics.Measurement.call(this);
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   415
}
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   416
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   417
SysInfoMeasurement.prototype = Object.freeze({
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   418
  __proto__: Metrics.Measurement.prototype,
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   419
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   420
  name: "sysinfo",
164777
22c4e8746c69c2a0e2cac626156930f4d96dbf13 Bug 959356 - Report isWow64 in Firefox Health Report; r=bsmedberg
Gregory Szorc <gps@mozilla.com>
parents: 152656
diff changeset
   421
  version: 2,
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   422
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   423
  fields: {
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   424
    cpuCount: {type: Metrics.Storage.FIELD_LAST_NUMERIC},
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   425
    memoryMB: {type: Metrics.Storage.FIELD_LAST_NUMERIC},
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   426
    manufacturer: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   427
    device: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   428
    hardware: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   429
    name: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   430
    version: LAST_TEXT_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   431
    architecture: LAST_TEXT_FIELD,
164777
22c4e8746c69c2a0e2cac626156930f4d96dbf13 Bug 959356 - Report isWow64 in Firefox Health Report; r=bsmedberg
Gregory Szorc <gps@mozilla.com>
parents: 152656
diff changeset
   432
    isWow64: LAST_NUMERIC_FIELD,
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   433
  },
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   434
});
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   435
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   436
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   437
this.SysInfoProvider = function SysInfoProvider() {
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   438
  Metrics.Provider.call(this);
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   439
};
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   440
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   441
SysInfoProvider.prototype = Object.freeze({
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   442
  __proto__: Metrics.Provider.prototype,
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   443
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   444
  name: "org.mozilla.sysinfo",
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   445
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   446
  measurementTypes: [SysInfoMeasurement],
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   447
122255
7da1d0ed25d7b57d9d4b8ea8b15f53e8da566d38 Bug 842377 - Rename "constant only" to "pull only"; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 121709
diff changeset
   448
  pullOnly: true,
120922
3446cda2c8b811dbeae1f0d726face752ce448bf Bug 836186 - Don't load FHR providers until they are used; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120043
diff changeset
   449
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   450
  sysInfoFields: {
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   451
    cpucount: "cpuCount",
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   452
    memsize: "memoryMB",
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   453
    manufacturer: "manufacturer",
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   454
    device: "device",
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   455
    hardware: "hardware",
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   456
    name: "name",
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   457
    version: "version",
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   458
    arch: "architecture",
183949
6399ede3f82f307b3d50b903ee4717c0f5e2205a Bug 959356 try #2 - fix the spelling and type of the isWow64 measurement, r=rnewman
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 182805
diff changeset
   459
    isWow64: "isWow64",
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   460
  },
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   461
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   462
  collectConstantData: function () {
126233
9f88a271a336046d092ec58affbf28225bedc6b5 Bug 854606 - Use more SQLite transactions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 126229
diff changeset
   463
    return this.storage.enqueueTransaction(this._populateConstants.bind(this));
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   464
  },
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   465
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   466
  _populateConstants: function () {
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   467
    let m = this.getMeasurement(SysInfoMeasurement.prototype.name,
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   468
                                SysInfoMeasurement.prototype.version);
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   469
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   470
    let si = Cc["@mozilla.org/system-info;1"]
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   471
               .getService(Ci.nsIPropertyBag2);
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   472
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   473
    for (let [k, v] in Iterator(this.sysInfoFields)) {
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   474
      try {
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   475
        if (!si.hasKey(k)) {
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   476
          this._log.debug("Property not available: " + k);
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   477
          continue;
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   478
        }
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   479
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   480
        let value = si.getProperty(k);
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   481
        let method = "setLastText";
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   482
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   483
        if (["cpucount", "memsize"].indexOf(k) != -1) {
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   484
          let converted = parseInt(value, 10);
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   485
          if (Number.isNaN(converted)) {
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   486
            continue;
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   487
          }
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   488
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   489
          value = converted;
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   490
          method = "setLastNumeric";
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   491
        }
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   492
164777
22c4e8746c69c2a0e2cac626156930f4d96dbf13 Bug 959356 - Report isWow64 in Firefox Health Report; r=bsmedberg
Gregory Szorc <gps@mozilla.com>
parents: 152656
diff changeset
   493
        switch (k) {
22c4e8746c69c2a0e2cac626156930f4d96dbf13 Bug 959356 - Report isWow64 in Firefox Health Report; r=bsmedberg
Gregory Szorc <gps@mozilla.com>
parents: 152656
diff changeset
   494
          case "memsize":
22c4e8746c69c2a0e2cac626156930f4d96dbf13 Bug 959356 - Report isWow64 in Firefox Health Report; r=bsmedberg
Gregory Szorc <gps@mozilla.com>
parents: 152656
diff changeset
   495
            // Round memory to mebibytes.
22c4e8746c69c2a0e2cac626156930f4d96dbf13 Bug 959356 - Report isWow64 in Firefox Health Report; r=bsmedberg
Gregory Szorc <gps@mozilla.com>
parents: 152656
diff changeset
   496
            value = Math.round(value / 1048576);
22c4e8746c69c2a0e2cac626156930f4d96dbf13 Bug 959356 - Report isWow64 in Firefox Health Report; r=bsmedberg
Gregory Szorc <gps@mozilla.com>
parents: 152656
diff changeset
   497
            break;
22c4e8746c69c2a0e2cac626156930f4d96dbf13 Bug 959356 - Report isWow64 in Firefox Health Report; r=bsmedberg
Gregory Szorc <gps@mozilla.com>
parents: 152656
diff changeset
   498
          case "isWow64":
22c4e8746c69c2a0e2cac626156930f4d96dbf13 Bug 959356 - Report isWow64 in Firefox Health Report; r=bsmedberg
Gregory Szorc <gps@mozilla.com>
parents: 152656
diff changeset
   499
            // Property is only present on Windows. hasKey() skipping from
22c4e8746c69c2a0e2cac626156930f4d96dbf13 Bug 959356 - Report isWow64 in Firefox Health Report; r=bsmedberg
Gregory Szorc <gps@mozilla.com>
parents: 152656
diff changeset
   500
            // above ensures undefined or null doesn't creep in here.
22c4e8746c69c2a0e2cac626156930f4d96dbf13 Bug 959356 - Report isWow64 in Firefox Health Report; r=bsmedberg
Gregory Szorc <gps@mozilla.com>
parents: 152656
diff changeset
   501
            value = value ? 1 : 0;
183949
6399ede3f82f307b3d50b903ee4717c0f5e2205a Bug 959356 try #2 - fix the spelling and type of the isWow64 measurement, r=rnewman
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 182805
diff changeset
   502
            method = "setLastNumeric";
164777
22c4e8746c69c2a0e2cac626156930f4d96dbf13 Bug 959356 - Report isWow64 in Firefox Health Report; r=bsmedberg
Gregory Szorc <gps@mozilla.com>
parents: 152656
diff changeset
   503
            break;
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   504
        }
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   505
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   506
        yield m[method](v, value);
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   507
      } catch (ex) {
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   508
        this._log.warn("Error obtaining system info field: " + k + " " +
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   509
                       CommonUtils.exceptionStr(ex));
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   510
      }
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   511
    }
117843
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   512
  },
ee9453c65e339986b43ecdb7ffb72c3eff5fafe6 Bug 812608 - Part 2: Refactor FHR on top of new Metrics APIs; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113833
diff changeset
   513
});
113833
15ec2b93f9c99fe7d8778f07bfcdb8bd3f2076ff Bug 812377 - Health report provider for collecting system info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 113830
diff changeset
   514
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   515
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   516
/**
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   517
 * Holds information about the current/active session.
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   518
 *
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   519
 * The fields within the current session are moved to daily session fields when
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   520
 * the application is shut down.
119356
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   521
 *
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   522
 * This measurement is backed by the SessionRecorder, not the database.
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   523
 */
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   524
function CurrentSessionMeasurement() {
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   525
  Metrics.Measurement.call(this);
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   526
}
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   527
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   528
CurrentSessionMeasurement.prototype = Object.freeze({
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   529
  __proto__: Metrics.Measurement.prototype,
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   530
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   531
  name: "current",
120938
d5390130b80e142196a70412acef6da4b0149c80 Bug 837238 - Record session time in seconds not milliseconds; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120935
diff changeset
   532
  version: 3,
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   533
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   534
  // Storage is in preferences.
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   535
  fields: {},
119356
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   536
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   537
  /**
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   538
   * All data is stored in prefs, so we have a custom implementation.
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   539
   */
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   540
  getValues: function () {
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   541
    let sessions = this.provider.healthReporter.sessionRecorder;
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   542
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   543
    let fields = new Map();
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   544
    let now = new Date();
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   545
    fields.set("startDay", [now, Metrics.dateToDays(sessions.startDate)]);
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   546
    fields.set("activeTicks", [now, sessions.activeTicks]);
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   547
    fields.set("totalTime", [now, sessions.totalTime]);
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   548
    fields.set("main", [now, sessions.main]);
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   549
    fields.set("firstPaint", [now, sessions.firstPaint]);
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   550
    fields.set("sessionRestored", [now, sessions.sessionRestored]);
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   551
125360
bc6c0983cec5211233785280ed9878c45c9c84ec Bug 845842 - Use promises that resolve on later ticks; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122697
diff changeset
   552
    return CommonUtils.laterTickResolvingPromise({
119356
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   553
      days: new Metrics.DailyValues(),
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   554
      singular: fields,
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   555
    });
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   556
  },
119357
d15625b7c9c7821974c653d08a00ce0b5c0b7331 Bug 827157 - Part 2: report current session information. r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 119356
diff changeset
   557
d15625b7c9c7821974c653d08a00ce0b5c0b7331 Bug 827157 - Part 2: report current session information. r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 119356
diff changeset
   558
  _serializeJSONSingular: function (data) {
119974
e49e91aefec47ec64691345f07bc098d1ae375c9 Bug 830922 - Include version inside measurement payload. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 119357
diff changeset
   559
    let result = {"_v": this.version};
119357
d15625b7c9c7821974c653d08a00ce0b5c0b7331 Bug 827157 - Part 2: report current session information. r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 119356
diff changeset
   560
d15625b7c9c7821974c653d08a00ce0b5c0b7331 Bug 827157 - Part 2: report current session information. r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 119356
diff changeset
   561
    for (let [field, value] of data) {
d15625b7c9c7821974c653d08a00ce0b5c0b7331 Bug 827157 - Part 2: report current session information. r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 119356
diff changeset
   562
      result[field] = value[1];
d15625b7c9c7821974c653d08a00ce0b5c0b7331 Bug 827157 - Part 2: report current session information. r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 119356
diff changeset
   563
    }
d15625b7c9c7821974c653d08a00ce0b5c0b7331 Bug 827157 - Part 2: report current session information. r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 119356
diff changeset
   564
d15625b7c9c7821974c653d08a00ce0b5c0b7331 Bug 827157 - Part 2: report current session information. r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 119356
diff changeset
   565
    return result;
d15625b7c9c7821974c653d08a00ce0b5c0b7331 Bug 827157 - Part 2: report current session information. r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 119356
diff changeset
   566
  },
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   567
});
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   568
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   569
/**
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   570
 * Records a history of all application sessions.
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   571
 */
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   572
function PreviousSessionsMeasurement() {
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   573
  Metrics.Measurement.call(this);
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   574
}
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   575
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   576
PreviousSessionsMeasurement.prototype = Object.freeze({
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   577
  __proto__: Metrics.Measurement.prototype,
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   578
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   579
  name: "previous",
120938
d5390130b80e142196a70412acef6da4b0149c80 Bug 837238 - Record session time in seconds not milliseconds; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120935
diff changeset
   580
  version: 3,
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   581
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   582
  fields: {
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   583
    // Milliseconds of sessions that were properly shut down.
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   584
    cleanActiveTicks: DAILY_DISCRETE_NUMERIC_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   585
    cleanTotalTime: DAILY_DISCRETE_NUMERIC_FIELD,
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   586
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   587
    // Milliseconds of sessions that were not properly shut down.
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   588
    abortedActiveTicks: DAILY_DISCRETE_NUMERIC_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   589
    abortedTotalTime: DAILY_DISCRETE_NUMERIC_FIELD,
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   590
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   591
    // Startup times in milliseconds.
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   592
    main: DAILY_DISCRETE_NUMERIC_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   593
    firstPaint: DAILY_DISCRETE_NUMERIC_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   594
    sessionRestored: DAILY_DISCRETE_NUMERIC_FIELD,
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   595
  },
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   596
});
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   597
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   598
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   599
/**
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   600
 * Records information about the current browser session.
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   601
 *
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   602
 * A browser session is defined as an application/process lifetime. We
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   603
 * start a new session when the application starts (essentially when
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   604
 * this provider is instantiated) and end the session on shutdown.
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   605
 *
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   606
 * As the application runs, we record basic information about the
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   607
 * "activity" of the session. Activity is defined by the presence of
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   608
 * physical input into the browser (key press, mouse click, touch, etc).
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   609
 *
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   610
 * We differentiate between regular sessions and "aborted" sessions. An
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   611
 * aborted session is one that does not end expectedly. This is often the
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   612
 * result of a crash. We detect aborted sessions by storing the current
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   613
 * session separate from completed sessions. We normally move the
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   614
 * current session to completed sessions on application shutdown. If a
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   615
 * current session is present on application startup, that means that
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   616
 * the previous session was aborted.
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   617
 */
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   618
this.SessionsProvider = function () {
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   619
  Metrics.Provider.call(this);
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   620
};
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   621
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   622
SessionsProvider.prototype = Object.freeze({
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   623
  __proto__: Metrics.Provider.prototype,
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   624
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   625
  name: "org.mozilla.appSessions",
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   626
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   627
  measurementTypes: [CurrentSessionMeasurement, PreviousSessionsMeasurement],
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   628
122255
7da1d0ed25d7b57d9d4b8ea8b15f53e8da566d38 Bug 842377 - Rename "constant only" to "pull only"; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 121709
diff changeset
   629
  pullOnly: true,
120922
3446cda2c8b811dbeae1f0d726face752ce448bf Bug 836186 - Don't load FHR providers until they are used; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120043
diff changeset
   630
119356
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   631
  collectConstantData: function () {
120938
d5390130b80e142196a70412acef6da4b0149c80 Bug 837238 - Record session time in seconds not milliseconds; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120935
diff changeset
   632
    let previous = this.getMeasurement("previous", 3);
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   633
119356
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   634
    return this.storage.enqueueTransaction(this._recordAndPruneSessions.bind(this));
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   635
  },
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   636
119356
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   637
  _recordAndPruneSessions: function () {
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   638
    this._log.info("Moving previous sessions from session recorder to storage.");
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   639
    let recorder = this.healthReporter.sessionRecorder;
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   640
    let sessions = recorder.getPreviousSessions();
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   641
    this._log.debug("Found " + Object.keys(sessions).length + " previous sessions.");
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   642
120938
d5390130b80e142196a70412acef6da4b0149c80 Bug 837238 - Record session time in seconds not milliseconds; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120935
diff changeset
   643
    let daily = this.getMeasurement("previous", 3);
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   644
122697
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   645
    // Please note the coupling here between the session recorder and our state.
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   646
    // If the pruned index or the current index of the session recorder is ever
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   647
    // deleted or reset to 0, our stored state of a later index would mean that
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   648
    // new sessions would never be captured by this provider until the session
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   649
    // recorder index catches up to our last session ID. This should not happen
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   650
    // under normal circumstances, so we don't worry too much about it. We
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   651
    // should, however, consider this as part of implementing bug 841561.
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   652
    let lastRecordedSession = yield this.getState("lastSession");
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   653
    if (lastRecordedSession === null) {
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   654
      lastRecordedSession = -1;
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   655
    }
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   656
    this._log.debug("The last recorded session was #" + lastRecordedSession);
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   657
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   658
    for (let [index, session] in Iterator(sessions)) {
134855
4790e0169cfefeb9ced0ae185921ef7fa5a341d6 Bug 881991 - Properly detect already inserted sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 131243
diff changeset
   659
      if (index <= lastRecordedSession) {
122697
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   660
        this._log.warn("Already recorded session " + index + ". Did the last " +
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   661
                       "session crash or have an issue saving the prefs file?");
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   662
        continue;
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   663
      }
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   664
119356
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   665
      let type = session.clean ? "clean" : "aborted";
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   666
      let date = session.startDate;
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   667
      yield daily.addDailyDiscreteNumeric(type + "ActiveTicks", session.activeTicks, date);
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   668
      yield daily.addDailyDiscreteNumeric(type + "TotalTime", session.totalTime, date);
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   669
119356
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   670
      for (let field of ["main", "firstPaint", "sessionRestored"]) {
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   671
        yield daily.addDailyDiscreteNumeric(field, session[field], date);
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   672
      }
122697
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   673
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   674
      lastRecordedSession = index;
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   675
    }
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   676
122697
1d6df33f26dfa1634ad47625f0a787e8c94d161c Bug 843816 - Prevent duplicate recording of sessions in FHR when preference changes are lost; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122586
diff changeset
   677
    yield this.setState("lastSession", "" + lastRecordedSession);
119356
3e7e06804ae4ad1f50dc401fad1694f28e851966 Bug 827157 - Robust and performance sensitive recording of sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 118523
diff changeset
   678
    recorder.pruneOldSessions(new Date());
117845
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   679
  },
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   680
});
36592fb313ada1629fe3b7b00866e75d52938f0d Bug 826893 - Health Report provider for application sessions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117844
diff changeset
   681
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   682
/**
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   683
 * Stores the set of active addons in storage.
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   684
 *
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   685
 * We do things a little differently than most other measurements. Because
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   686
 * addons are difficult to shoehorn into distinct fields, we simply store a
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   687
 * JSON blob in storage in a text field.
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   688
 */
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   689
function ActiveAddonsMeasurement() {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   690
  Metrics.Measurement.call(this);
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   691
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   692
  this._serializers = {};
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   693
  this._serializers[this.SERIALIZE_JSON] = {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   694
    singular: this._serializeJSONSingular.bind(this),
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   695
    // We don't need a daily serializer because we have none of this data.
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   696
  };
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   697
}
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   698
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   699
ActiveAddonsMeasurement.prototype = Object.freeze({
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   700
  __proto__: Metrics.Measurement.prototype,
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   701
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   702
  name: "addons",
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   703
  version: 2,
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   704
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   705
  fields: {
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   706
    addons: LAST_TEXT_FIELD,
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   707
  },
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   708
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   709
  _serializeJSONSingular: function (data) {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   710
    if (!data.has("addons")) {
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   711
      this._log.warn("Don't have addons info. Weird.");
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   712
      return null;
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   713
    }
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   714
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   715
    // Exceptions are caught in the caller.
119974
e49e91aefec47ec64691345f07bc098d1ae375c9 Bug 830922 - Include version inside measurement payload. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 119357
diff changeset
   716
    let result = JSON.parse(data.get("addons")[1]);
e49e91aefec47ec64691345f07bc098d1ae375c9 Bug 830922 - Include version inside measurement payload. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 119357
diff changeset
   717
    result._v = this.version;
e49e91aefec47ec64691345f07bc098d1ae375c9 Bug 830922 - Include version inside measurement payload. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 119357
diff changeset
   718
    return result;
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   719
  },
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   720
});
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   721
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   722
/**
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   723
 * Stores the set of active plugins in storage.
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   724
 *
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   725
 * This stores the data in a JSON blob in a text field similar to the
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   726
 * ActiveAddonsMeasurement.
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   727
 */
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   728
function ActivePluginsMeasurement() {
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   729
  Metrics.Measurement.call(this);
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   730
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   731
  this._serializers = {};
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   732
  this._serializers[this.SERIALIZE_JSON] = {
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   733
    singular: this._serializeJSONSingular.bind(this),
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   734
    // We don't need a daily serializer because we have none of this data.
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   735
  };
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   736
}
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   737
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   738
ActivePluginsMeasurement.prototype = Object.freeze({
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   739
  __proto__: Metrics.Measurement.prototype,
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   740
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   741
  name: "plugins",
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   742
  version: 1,
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   743
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   744
  fields: {
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   745
    plugins: LAST_TEXT_FIELD,
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   746
  },
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   747
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   748
  _serializeJSONSingular: function (data) {
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   749
    if (!data.has("plugins")) {
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   750
      this._log.warn("Don't have plugins info. Weird.");
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   751
      return null;
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   752
    }
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   753
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   754
    // Exceptions are caught in the caller.
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   755
    let result = JSON.parse(data.get("plugins")[1]);
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   756
    result._v = this.version;
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   757
    return result;
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   758
  },
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   759
});
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   760
203891
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   761
function ActiveGMPluginsMeasurement() {
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   762
  Metrics.Measurement.call(this);
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   763
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   764
  this._serializers = {};
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   765
  this._serializers[this.SERIALIZE_JSON] = {
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   766
    singular: this._serializeJSONSingular.bind(this),
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   767
  };
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   768
}
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   769
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   770
ActiveGMPluginsMeasurement.prototype = Object.freeze({
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   771
  __proto__: Metrics.Measurement.prototype,
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   772
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   773
  name: "gm-plugins",
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   774
  version: 1,
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   775
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   776
  fields: {
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   777
    "gm-plugins": LAST_TEXT_FIELD,
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   778
  },
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   779
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   780
  _serializeJSONSingular: function (data) {
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   781
    if (!data.has("gm-plugins")) {
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   782
      this._log.warn("Don't have GM plugins info. Weird.");
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   783
      return null;
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   784
    }
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   785
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   786
    let result = JSON.parse(data.get("gm-plugins")[1]);
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   787
    result._v = this.version;
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   788
    return result;
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   789
  },
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   790
});
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   791
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   792
function AddonCountsMeasurement() {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   793
  Metrics.Measurement.call(this);
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   794
}
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   795
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   796
AddonCountsMeasurement.prototype = Object.freeze({
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   797
  __proto__: Metrics.Measurement.prototype,
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   798
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   799
  name: "counts",
129109
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   800
  version: 2,
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   801
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   802
  fields: {
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   803
    theme: DAILY_LAST_NUMERIC_FIELD,
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   804
    lwtheme: DAILY_LAST_NUMERIC_FIELD,
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   805
    plugin: DAILY_LAST_NUMERIC_FIELD,
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   806
    extension: DAILY_LAST_NUMERIC_FIELD,
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   807
    service: DAILY_LAST_NUMERIC_FIELD,
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   808
  },
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   809
});
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   810
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   811
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   812
/**
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   813
 * Legacy version of addons counts before services was added.
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   814
 */
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   815
function AddonCountsMeasurement1() {
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   816
  Metrics.Measurement.call(this);
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   817
}
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   818
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   819
AddonCountsMeasurement1.prototype = Object.freeze({
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   820
  __proto__: Metrics.Measurement.prototype,
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   821
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   822
  name: "counts",
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   823
  version: 1,
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   824
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   825
  fields: {
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   826
    theme: DAILY_LAST_NUMERIC_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   827
    lwtheme: DAILY_LAST_NUMERIC_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   828
    plugin: DAILY_LAST_NUMERIC_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
   829
    extension: DAILY_LAST_NUMERIC_FIELD,
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   830
  },
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   831
});
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   832
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   833
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   834
this.AddonsProvider = function () {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   835
  Metrics.Provider.call(this);
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   836
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   837
  this._prefs = new Preferences({defaultBranch: null});
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   838
};
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   839
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   840
AddonsProvider.prototype = Object.freeze({
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   841
  __proto__: Metrics.Provider.prototype,
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   842
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   843
  // Whenever these AddonListener callbacks are called, we repopulate
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   844
  // and store the set of addons. Note that these events will only fire
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   845
  // for restartless add-ons. For actions that require a restart, we
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   846
  // will catch the change after restart. The alternative is a lot of
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   847
  // state tracking here, which isn't desirable.
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   848
  ADDON_LISTENER_CALLBACKS: [
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   849
    "onEnabled",
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   850
    "onDisabled",
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   851
    "onInstalled",
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   852
    "onUninstalled",
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   853
  ],
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   854
118523
3af96ef739db5cf8a098eae4f46eb22f811015ac Bug 827910 - Only include details for "plugin" and "extension" add-ons; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117858
diff changeset
   855
  // Add-on types for which full details are uploaded in the
3af96ef739db5cf8a098eae4f46eb22f811015ac Bug 827910 - Only include details for "plugin" and "extension" add-ons; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117858
diff changeset
   856
  // ActiveAddonsMeasurement. All other types are ignored.
3af96ef739db5cf8a098eae4f46eb22f811015ac Bug 827910 - Only include details for "plugin" and "extension" add-ons; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117858
diff changeset
   857
  FULL_DETAIL_TYPES: [
3af96ef739db5cf8a098eae4f46eb22f811015ac Bug 827910 - Only include details for "plugin" and "extension" add-ons; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117858
diff changeset
   858
    "extension",
129109
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   859
    "service",
118523
3af96ef739db5cf8a098eae4f46eb22f811015ac Bug 827910 - Only include details for "plugin" and "extension" add-ons; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117858
diff changeset
   860
  ],
3af96ef739db5cf8a098eae4f46eb22f811015ac Bug 827910 - Only include details for "plugin" and "extension" add-ons; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117858
diff changeset
   861
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   862
  name: "org.mozilla.addons",
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   863
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   864
  measurementTypes: [
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   865
    ActiveAddonsMeasurement,
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   866
    ActivePluginsMeasurement,
203891
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   867
    ActiveGMPluginsMeasurement,
129109
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   868
    AddonCountsMeasurement1,
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   869
    AddonCountsMeasurement,
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   870
  ],
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   871
128772
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
   872
  postInit: function () {
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   873
    let listener = {};
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   874
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   875
    for (let method of this.ADDON_LISTENER_CALLBACKS) {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   876
      listener[method] = this._collectAndStoreAddons.bind(this);
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   877
    }
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   878
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   879
    this._listener = listener;
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   880
    AddonManager.addAddonListener(this._listener);
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   881
125360
bc6c0983cec5211233785280ed9878c45c9c84ec Bug 845842 - Use promises that resolve on later ticks; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122697
diff changeset
   882
    return CommonUtils.laterTickResolvingPromise();
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   883
  },
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   884
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   885
  onShutdown: function () {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   886
    AddonManager.removeAddonListener(this._listener);
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   887
    this._listener = null;
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   888
125360
bc6c0983cec5211233785280ed9878c45c9c84ec Bug 845842 - Use promises that resolve on later ticks; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122697
diff changeset
   889
    return CommonUtils.laterTickResolvingPromise();
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   890
  },
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   891
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   892
  collectConstantData: function () {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   893
    return this._collectAndStoreAddons();
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   894
  },
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   895
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   896
  _collectAndStoreAddons: function () {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   897
    let deferred = Promise.defer();
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   898
200478
b62a942fd62254ef12497f41ef1d0e7af339934b Bug 1046964 - Fix some JS warnings (r=ttaubert)
Bill McCloskey <wmccloskey@mozilla.com>
parents: 198693
diff changeset
   899
    AddonManager.getAllAddons(function onAllAddons(allAddons) {
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   900
      let data;
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   901
      let addonsField;
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   902
      let pluginsField;
203891
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   903
      let gmPluginsField;
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   904
      try {
200478
b62a942fd62254ef12497f41ef1d0e7af339934b Bug 1046964 - Fix some JS warnings (r=ttaubert)
Bill McCloskey <wmccloskey@mozilla.com>
parents: 198693
diff changeset
   905
        data = this._createDataStructure(allAddons);
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   906
        addonsField = JSON.stringify(data.addons);
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   907
        pluginsField = JSON.stringify(data.plugins);
203891
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   908
        gmPluginsField = JSON.stringify(data.gmPlugins);
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   909
      } catch (ex) {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   910
        this._log.warn("Exception when populating add-ons data structure: " +
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   911
                       CommonUtils.exceptionStr(ex));
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   912
        deferred.reject(ex);
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   913
        return;
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   914
      }
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   915
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   916
      let now = new Date();
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   917
      let addons = this.getMeasurement("addons", 2);
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   918
      let plugins = this.getMeasurement("plugins", 1);
203891
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   919
      let gmPlugins = this.getMeasurement("gm-plugins", 1);
129109
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   920
      let counts = this.getMeasurement(AddonCountsMeasurement.prototype.name,
9ad89524786941d7ff8e3af185dd2f51e17c06e9 bug 851653 add services to addonprovider for fhr, r=gps
Shane Caraveo <scaraveo@mozilla.com>
parents: 128849
diff changeset
   921
                                       AddonCountsMeasurement.prototype.version);
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   922
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   923
      this.enqueueStorageOperation(function storageAddons() {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   924
        for (let type in data.counts) {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   925
          try {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   926
            counts.fieldID(type);
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   927
          } catch (ex) {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   928
            this._log.warn("Add-on type without field: " + type);
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   929
            continue;
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   930
          }
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   931
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   932
          counts.setDailyLastNumeric(type, data.counts[type], now);
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   933
        }
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   934
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   935
        return addons.setLastText("addons", addonsField).then(
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   936
          function onSuccess() {
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   937
            return plugins.setLastText("plugins", pluginsField).then(
203891
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   938
              function onSuccess() {
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   939
                return gmPlugins.setLastText("gm-plugins", gmPluginsField).then(
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   940
                  function onSuccess() {
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   941
                    deferred.resolve();
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   942
                  },
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   943
                  function onError(error) {
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   944
                    deferred.reject(error);
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   945
                  });
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   946
              },
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   947
              function onError(error) { deferred.reject(error); }
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   948
            );
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   949
          },
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   950
          function onError(error) { deferred.reject(error); }
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   951
        );
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   952
      }.bind(this));
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   953
    }.bind(this));
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   954
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   955
    return deferred.promise;
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   956
  },
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   957
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   958
  COPY_ADDON_FIELDS: [
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   959
    "userDisabled",
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   960
    "appDisabled",
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   961
    "name",
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   962
    "version",
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   963
    "type",
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   964
    "scope",
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   965
    "description",
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   966
    "foreignInstall",
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   967
    "hasBinaryComponents",
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   968
  ],
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   969
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   970
  COPY_PLUGIN_FIELDS: [
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   971
    "name",
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   972
    "version",
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   973
    "description",
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   974
    "blocklisted",
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   975
    "disabled",
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   976
    "clicktoplay",
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   977
  ],
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   978
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   979
  _createDataStructure: function (addons) {
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   980
    let data = {
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   981
      addons: {},
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   982
      plugins: {},
203891
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   983
      gmPlugins: {},
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   984
      counts: {}
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   985
    };
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   986
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
   987
    for (let addon of addons) {
118523
3af96ef739db5cf8a098eae4f46eb22f811015ac Bug 827910 - Only include details for "plugin" and "extension" add-ons; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117858
diff changeset
   988
      let type = addon.type;
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   989
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   990
      // We count plugins separately below.
203891
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   991
      if (addon.type == "plugin") {
209357
51d3f2b58ac164a9a0ecb5ee20499373c1d219e2 Bug 1053745 followup - update to correct property rename from review fixes, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 203891
diff changeset
   992
        if (addon.isGMPlugin) {
203891
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   993
          data.gmPlugins[addon.id] = {
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   994
            version: addon.version,
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   995
            userDisabled: addon.userDisabled,
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   996
            applyBackgroundUpdates: addon.applyBackgroundUpdates,
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   997
          };
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
   998
        }
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
   999
        continue;
203891
25c524c5af2f009958003673740a9424ec20a766 Bug 1053745 - Add GMP plugin data to FHR, r=gfritzsche
Benjamin Smedberg <benjamin@smedbergs.us>
parents: 201096
diff changeset
  1000
      }
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1001
118523
3af96ef739db5cf8a098eae4f46eb22f811015ac Bug 827910 - Only include details for "plugin" and "extension" add-ons; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117858
diff changeset
  1002
      data.counts[type] = (data.counts[type] || 0) + 1;
3af96ef739db5cf8a098eae4f46eb22f811015ac Bug 827910 - Only include details for "plugin" and "extension" add-ons; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117858
diff changeset
  1003
3af96ef739db5cf8a098eae4f46eb22f811015ac Bug 827910 - Only include details for "plugin" and "extension" add-ons; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117858
diff changeset
  1004
      if (this.FULL_DETAIL_TYPES.indexOf(addon.type) == -1) {
3af96ef739db5cf8a098eae4f46eb22f811015ac Bug 827910 - Only include details for "plugin" and "extension" add-ons; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117858
diff changeset
  1005
        continue;
3af96ef739db5cf8a098eae4f46eb22f811015ac Bug 827910 - Only include details for "plugin" and "extension" add-ons; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117858
diff changeset
  1006
      }
3af96ef739db5cf8a098eae4f46eb22f811015ac Bug 827910 - Only include details for "plugin" and "extension" add-ons; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117858
diff changeset
  1007
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1008
      let obj = {};
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1009
      for (let field of this.COPY_ADDON_FIELDS) {
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1010
        obj[field] = addon[field];
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1011
      }
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1012
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1013
      if (addon.installDate) {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1014
        obj.installDay = this._dateToDays(addon.installDate);
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1015
      }
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1016
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1017
      if (addon.updateDate) {
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1018
        obj.updateDay = this._dateToDays(addon.updateDate);
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1019
      }
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1020
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1021
      data.addons[addon.id] = obj;
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1022
    }
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1023
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1024
    let pluginTags = Cc["@mozilla.org/plugin/host;1"].
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1025
                       getService(Ci.nsIPluginHost).
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1026
                       getPluginTags({});
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1027
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1028
    for (let tag of pluginTags) {
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1029
      let obj = {
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1030
        mimeTypes: tag.getMimeTypes({}),
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1031
      };
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1032
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1033
      for (let field of this.COPY_PLUGIN_FIELDS) {
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1034
        obj[field] = tag[field];
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1035
      }
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1036
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1037
      // Plugins need to have a filename and a name, so this can't be empty.
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1038
      let id = tag.filename + ":" + tag.name + ":" + tag.version + ":"
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1039
               + tag.description;
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1040
      data.plugins[id] = obj;
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1041
    }
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1042
166128
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1043
    data.counts["plugin"] = pluginTags.length;
c78f9d502f0f4a4c15bc25f10f2b765eeeb5d11e Bug 928575 - Overhaul FHR data collection for extensions and plugins for desktop. r=gps
Georg Fritzsche <georg.fritzsche@googlemail.com>
parents: 165997
diff changeset
  1044
117848
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1045
    return data;
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1046
  },
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1047
});
1bbcfe1c66087835db2a9e4eed9b8e8a5db69b48 Bug 824528 - Health report provider for collecting add-on info; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117845
diff changeset
  1048
173531
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1049
#ifdef MOZ_CRASHREPORTER
117849
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1050
173531
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1051
function DailyCrashesMeasurement1() {
117849
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1052
  Metrics.Measurement.call(this);
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1053
}
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1054
173531
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1055
DailyCrashesMeasurement1.prototype = Object.freeze({
117849
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1056
  __proto__: Metrics.Measurement.prototype,
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1057
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1058
  name: "crashes",
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1059
  version: 1,
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1060
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1061
  fields: {
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1062
    pending: DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1063
    submitted: DAILY_COUNTER_FIELD,
117849
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1064
  },
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1065
});
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1066
173531
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1067
function DailyCrashesMeasurement2() {
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1068
  Metrics.Measurement.call(this);
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1069
}
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1070
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1071
DailyCrashesMeasurement2.prototype = Object.freeze({
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1072
  __proto__: Metrics.Measurement.prototype,
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1073
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1074
  name: "crashes",
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1075
  version: 2,
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1076
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1077
  fields: {
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1078
    mainCrash: DAILY_LAST_NUMERIC_FIELD,
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1079
  },
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1080
});
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1081
182805
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1082
function DailyCrashesMeasurement3() {
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1083
  Metrics.Measurement.call(this);
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1084
}
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1085
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1086
DailyCrashesMeasurement3.prototype = Object.freeze({
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1087
  __proto__: Metrics.Measurement.prototype,
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1088
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1089
  name: "crashes",
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1090
  version: 3,
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1091
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1092
  fields: {
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1093
    "main-crash": DAILY_LAST_NUMERIC_FIELD,
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1094
    "main-hang": DAILY_LAST_NUMERIC_FIELD,
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1095
    "content-crash": DAILY_LAST_NUMERIC_FIELD,
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1096
    "content-hang": DAILY_LAST_NUMERIC_FIELD,
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1097
    "plugin-crash": DAILY_LAST_NUMERIC_FIELD,
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1098
    "plugin-hang": DAILY_LAST_NUMERIC_FIELD,
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1099
  },
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1100
});
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1101
192321
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1102
function DailyCrashesMeasurement4() {
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1103
  Metrics.Measurement.call(this);
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1104
}
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1105
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1106
DailyCrashesMeasurement4.prototype = Object.freeze({
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1107
  __proto__: Metrics.Measurement.prototype,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1108
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1109
  name: "crashes",
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1110
  version: 4,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1111
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1112
  fields: {
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1113
    "main-crash": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1114
    "main-crash-submission-succeeded": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1115
    "main-crash-submission-failed": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1116
    "main-hang": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1117
    "main-hang-submission-succeeded": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1118
    "main-hang-submission-failed": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1119
    "content-crash": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1120
    "content-crash-submission-succeeded": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1121
    "content-crash-submission-failed": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1122
    "content-hang": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1123
    "content-hang-submission-succeeded": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1124
    "content-hang-submission-failed": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1125
    "plugin-crash": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1126
    "plugin-crash-submission-succeeded": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1127
    "plugin-crash-submission-failed": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1128
    "plugin-hang": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1129
    "plugin-hang-submission-succeeded": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1130
    "plugin-hang-submission-failed": DAILY_LAST_NUMERIC_FIELD,
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1131
  },
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1132
});
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1133
198693
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1134
function DailyCrashesMeasurement5() {
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1135
  Metrics.Measurement.call(this);
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1136
}
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1137
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1138
DailyCrashesMeasurement5.prototype = Object.freeze({
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1139
  __proto__: Metrics.Measurement.prototype,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1140
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1141
  name: "crashes",
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1142
  version: 5,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1143
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1144
  fields: {
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1145
    "main-crash": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1146
    "main-crash-submission-succeeded": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1147
    "main-crash-submission-failed": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1148
    "main-hang": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1149
    "main-hang-submission-succeeded": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1150
    "main-hang-submission-failed": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1151
    "content-crash": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1152
    "content-crash-submission-succeeded": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1153
    "content-crash-submission-failed": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1154
    "content-hang": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1155
    "content-hang-submission-succeeded": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1156
    "content-hang-submission-failed": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1157
    "plugin-crash": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1158
    "plugin-crash-submission-succeeded": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1159
    "plugin-crash-submission-failed": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1160
    "plugin-hang": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1161
    "plugin-hang-submission-succeeded": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1162
    "plugin-hang-submission-failed": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1163
    "gmplugin-crash": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1164
    "gmplugin-crash-submission-succeeded": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1165
    "gmplugin-crash-submission-failed": DAILY_LAST_NUMERIC_FIELD,
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1166
  },
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1167
});
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1168
117849
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1169
this.CrashesProvider = function () {
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1170
  Metrics.Provider.call(this);
173531
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1171
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1172
  // So we can unit test.
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1173
  this._manager = Services.crashmanager;
117849
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1174
};
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1175
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1176
CrashesProvider.prototype = Object.freeze({
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1177
  __proto__: Metrics.Provider.prototype,
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1178
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1179
  name: "org.mozilla.crashes",
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1180
173531
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1181
  measurementTypes: [
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1182
    DailyCrashesMeasurement1,
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1183
    DailyCrashesMeasurement2,
182805
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1184
    DailyCrashesMeasurement3,
192321
e5514ddc55f7866905a09e9d51670902aeceefb6 Bug 994707 - Introduce crash submission events and handle them. r=bsmedberg
Steven MacLeod <smacleod@mozilla.com>
parents: 191726
diff changeset
  1185
    DailyCrashesMeasurement4,
198693
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1186
    DailyCrashesMeasurement5,
173531
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1187
  ],
117849
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1188
122255
7da1d0ed25d7b57d9d4b8ea8b15f53e8da566d38 Bug 842377 - Rename "constant only" to "pull only"; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 121709
diff changeset
  1189
  pullOnly: true,
120922
3446cda2c8b811dbeae1f0d726face752ce448bf Bug 836186 - Don't load FHR providers until they are used; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120043
diff changeset
  1190
173531
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1191
  collectDailyData: function () {
126233
9f88a271a336046d092ec58affbf28225bedc6b5 Bug 854606 - Use more SQLite transactions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 126229
diff changeset
  1192
    return this.storage.enqueueTransaction(this._populateCrashCounts.bind(this));
117849
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1193
  },
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1194
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1195
  _populateCrashCounts: function () {
173531
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1196
    this._log.info("Grabbing crash counts from crash manager.");
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1197
    let crashCounts = yield this._manager.getCrashCountsByDay();
131243
dea5219d6b430c089a3a35edc3a6638fdf7ca09c Bug 869266 - Reduce number of SQL statements to record crashes; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 130545
diff changeset
  1198
201096
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1199
    // TODO: CrashManager no longer stores submissions as crashes, but we still
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1200
    // want to send the submission data to FHR. As a temporary workaround, we
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1201
    // populate |crashCounts| with the submission data to match past behaviour.
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1202
    // See bug 1056160.
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1203
    let crashes = yield this._manager.getCrashes();
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1204
    for (let crash of crashes) {
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1205
      for (let [submissionID, submission] of crash.submissions) {
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1206
        if (!submission.responseDate) {
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1207
          continue;
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1208
        }
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1209
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1210
        let day = Metrics.dateToDays(submission.responseDate);
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1211
        if (!crashCounts.has(day)) {
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1212
          crashCounts.set(day, new Map());
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1213
        }
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1214
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1215
        let succeeded =
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1216
          submission.result == this._manager.SUBMISSION_RESULT_OK;
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1217
        let type = crash.type + "-submission-" + (succeeded ? "succeeded" :
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1218
                                                              "failed");
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1219
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1220
        let count = (crashCounts.get(day).get(type) || 0) + 1;
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1221
        crashCounts.get(day).set(type, count);
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1222
      }
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1223
    }
8139468b87b7cadadd31109437af9d2e46ed75cb Bug 1024672 - Part 4: Add workaround to continue providing submission data using DailyCrashesMeasurement. r=gps
Birunthan Mohanathas <birunthan@mohanathas.com>
parents: 200478
diff changeset
  1224
198693
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1225
    let m = this.getMeasurement("crashes", 5);
969aa706b73e12cf3abd1866e75895b14ce6cabd Bug 1009765 - Add GMP plugin crashes to FHR crash reporting (part 2: FHR, toolkit/components/crashes). r=gps
Drew Willcoxon <adw@mozilla.com>
parents: 198491
diff changeset
  1226
    let fields = DailyCrashesMeasurement5.prototype.fields;
173492
56c230aeaa61390b232b6beb8cfbe4c2f016f06b Backed out changeset 21793ea94b09 (bug 875562) for ASAN xpcshell failures
Wes Kocher <wkocher@mozilla.com>
parents: 173489
diff changeset
  1227
173531
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1228
    for (let [day, types] of crashCounts) {
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1229
      let date = Metrics.daysToDate(day);
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1230
      for (let [type, count] of types) {
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1231
        if (!(type in fields)) {
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1232
          this._log.warn("Unknown crash type encountered: " + type);
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1233
          continue;
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1234
        }
173492
56c230aeaa61390b232b6beb8cfbe4c2f016f06b Backed out changeset 21793ea94b09 (bug 875562) for ASAN xpcshell failures
Wes Kocher <wkocher@mozilla.com>
parents: 173489
diff changeset
  1235
182805
576f07f4690b21e4a192777f915c47081d8aa4ff Bug 983313 - Write crash events for plugin crashes and hangs (part 2: FHR). r=bsmedberg,rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 180125
diff changeset
  1236
        yield m.setDailyLastNumeric(type, count, date);
173531
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1237
      }
173492
56c230aeaa61390b232b6beb8cfbe4c2f016f06b Backed out changeset 21793ea94b09 (bug 875562) for ASAN xpcshell failures
Wes Kocher <wkocher@mozilla.com>
parents: 173489
diff changeset
  1238
    }
56c230aeaa61390b232b6beb8cfbe4c2f016f06b Backed out changeset 21793ea94b09 (bug 875562) for ASAN xpcshell failures
Wes Kocher <wkocher@mozilla.com>
parents: 173489
diff changeset
  1239
  },
56c230aeaa61390b232b6beb8cfbe4c2f016f06b Backed out changeset 21793ea94b09 (bug 875562) for ASAN xpcshell failures
Wes Kocher <wkocher@mozilla.com>
parents: 173489
diff changeset
  1240
});
56c230aeaa61390b232b6beb8cfbe4c2f016f06b Backed out changeset 21793ea94b09 (bug 875562) for ASAN xpcshell failures
Wes Kocher <wkocher@mozilla.com>
parents: 173489
diff changeset
  1241
173531
4496b6e98cf63b7ca336d53a5a9ed34d2c7637db Bug 875562 - Part 9: Change Health Report to pull from crashes manager; r=bsmedberg, r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 173492
diff changeset
  1242
#endif
117849
03759402e43327ca3031e522d3917637986b02ac Bug 808126 - Crash report collection for Firefox Health Report; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 117848
diff changeset
  1243
196530
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1244
/**
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1245
 * Records data from update hotfixes.
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1246
 *
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1247
 * This measurement has dynamic fields. Field names are of the form
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1248
 * <version>.<thing> where <version> is the hotfix version that produced
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1249
 * the data. e.g. "v20140527". The sub-version of the hotfix is omitted
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1250
 * because hotfixes can go through multiple minor versions during development
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1251
 * and we don't want to introduce more fields than necessary. Furthermore,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1252
 * the subsequent dots make parsing field names slightly harder. By stripping,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1253
 * we can just split on the first dot.
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1254
 */
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1255
function UpdateHotfixMeasurement1() {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1256
  Metrics.Measurement.call(this);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1257
}
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1258
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1259
UpdateHotfixMeasurement1.prototype = Object.freeze({
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1260
  __proto__: Metrics.Measurement.prototype,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1261
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1262
  name: "update",
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1263
  version: 1,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1264
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1265
  hotfixFieldTypes: {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1266
    "upgradedFrom": Metrics.Storage.FIELD_LAST_TEXT,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1267
    "uninstallReason": Metrics.Storage.FIELD_LAST_TEXT,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1268
    "downloadAttempts": Metrics.Storage.FIELD_LAST_NUMERIC,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1269
    "downloadFailures": Metrics.Storage.FIELD_LAST_NUMERIC,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1270
    "installAttempts": Metrics.Storage.FIELD_LAST_NUMERIC,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1271
    "installFailures": Metrics.Storage.FIELD_LAST_NUMERIC,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1272
    "notificationsShown": Metrics.Storage.FIELD_LAST_NUMERIC,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1273
  },
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1274
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1275
  fields: { },
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1276
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1277
  // Our fields have dynamic names from the hotfix version that supplied them.
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1278
  // We need to override the default behavior to deal with unknown fields.
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1279
  shouldIncludeField: function (name) {
219296
57725f8e7aa143d7229d28b0a821a3e5e5c01a46 Backed out changesets 34a66a625618, 32db3daa20fe, and ac15ba8568c5 (bug 1102219) for Gaia unit test failures.
Ryan VanderMeulen <ryanvm@gmail.com>
parents: 219291
diff changeset
  1280
    return name.contains(".");
196530
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1281
  },
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1282
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1283
  fieldType: function (name) {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1284
    for (let known in this.hotfixFieldTypes) {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1285
      if (name.endsWith(known)) {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1286
        return this.hotfixFieldTypes[known];
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1287
      }
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1288
    }
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1289
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1290
    return Metrics.Measurement.prototype.fieldType.call(this, name);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1291
  },
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1292
});
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1293
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1294
this.HotfixProvider = function () {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1295
  Metrics.Provider.call(this);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1296
};
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1297
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1298
HotfixProvider.prototype = Object.freeze({
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1299
  __proto__: Metrics.Provider.prototype,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1300
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1301
  name: "org.mozilla.hotfix",
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1302
  measurementTypes: [
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1303
    UpdateHotfixMeasurement1,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1304
  ],
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1305
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1306
  pullOnly: true,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1307
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1308
  collectDailyData: function () {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1309
    return this.storage.enqueueTransaction(this._populateHotfixData.bind(this));
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1310
  },
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1311
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1312
  _populateHotfixData: function* () {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1313
    let m = this.getMeasurement("update", 1);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1314
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1315
    // The update hotfix retains its JSON state file after uninstall.
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1316
    // The initial update hotfix had a hard-coded filename. We treat it
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1317
    // specially. Subsequent update hotfixes named their files in a
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1318
    // recognizeable pattern so we don't need to update this probe code to
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1319
    // know about them.
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1320
    let files = [
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1321
        ["v20140527", OS.Path.join(OS.Constants.Path.profileDir,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1322
                                   "hotfix.v20140527.01.json")],
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1323
    ];
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1324
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1325
    let it = new OS.File.DirectoryIterator(OS.Constants.Path.profileDir);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1326
    try {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1327
      yield it.forEach((e, index, it) => {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1328
        let m = e.name.match(/^updateHotfix\.([a-zA-Z0-9]+)\.json$/);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1329
        if (m) {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1330
          files.push([m[1], e.path]);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1331
        }
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1332
      });
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1333
    } finally {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1334
      it.close();
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1335
    }
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1336
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1337
    let decoder = new TextDecoder();
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1338
    for (let e of files) {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1339
      let [version, path] = e;
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1340
      let p;
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1341
      try {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1342
        let data = yield OS.File.read(path);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1343
        p = JSON.parse(decoder.decode(data));
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1344
      } catch (ex if ex instanceof OS.File.Error && ex.becauseNoSuchFile) {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1345
        continue;
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1346
      } catch (ex) {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1347
        this._log.warn("Error loading update hotfix payload: " + ex.message);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1348
      }
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1349
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1350
      // Wrap just in case.
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1351
      try {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1352
        for (let k in m.hotfixFieldTypes) {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1353
          if (!(k in p)) {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1354
            continue;
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1355
          }
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1356
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1357
          let value = p[k];
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1358
          if (value === null && k == "uninstallReason") {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1359
            value = "STILL_INSTALLED";
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1360
          }
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1361
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1362
          let field = version + "." + k;
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1363
          let fieldType;
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1364
          let storageOp;
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1365
          switch (typeof(value)) {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1366
            case "string":
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1367
              fieldType = this.storage.FIELD_LAST_TEXT;
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1368
              storageOp = "setLastTextFromFieldID";
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1369
              break;
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1370
            case "number":
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1371
              fieldType = this.storage.FIELD_LAST_NUMERIC;
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1372
              storageOp = "setLastNumericFromFieldID";
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1373
              break;
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1374
            default:
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1375
              this._log.warn("Unknown value in hotfix state: " + k + "=" + value);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1376
              continue;
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1377
          }
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1378
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1379
          if (this.storage.hasFieldFromMeasurement(m.id, field, fieldType)) {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1380
            let fieldID = this.storage.fieldIDFromMeasurement(m.id, field);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1381
            yield this.storage[storageOp](fieldID, value);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1382
          } else {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1383
            let fieldID = yield this.storage.registerField(m.id, field,
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1384
                                                           fieldType);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1385
            yield this.storage[storageOp](fieldID, value);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1386
          }
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1387
        }
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1388
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1389
      } catch (ex) {
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1390
        this._log.warn("Error processing update hotfix data: " + ex);
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1391
      }
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1392
    }
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1393
  },
94e41f59be31fdd7133bd42fdbfaa5b2ad87354d Bug 1014524 - Report update hotfix results in FHR; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 192321
diff changeset
  1394
});
120935
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1395
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1396
/**
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1397
 * Holds basic statistics about the Places database.
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1398
 */
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1399
function PlacesMeasurement() {
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1400
  Metrics.Measurement.call(this);
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1401
}
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1402
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1403
PlacesMeasurement.prototype = Object.freeze({
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1404
  __proto__: Metrics.Measurement.prototype,
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1405
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1406
  name: "places",
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1407
  version: 1,
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1408
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1409
  fields: {
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1410
    pages: DAILY_LAST_NUMERIC_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1411
    bookmarks: DAILY_LAST_NUMERIC_FIELD,
120935
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1412
  },
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1413
});
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1414
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1415
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1416
/**
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1417
 * Collects information about Places.
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1418
 */
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1419
this.PlacesProvider = function () {
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1420
  Metrics.Provider.call(this);
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1421
};
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1422
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1423
PlacesProvider.prototype = Object.freeze({
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1424
  __proto__: Metrics.Provider.prototype,
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1425
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1426
  name: "org.mozilla.places",
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1427
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1428
  measurementTypes: [PlacesMeasurement],
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1429
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1430
  collectDailyData: function () {
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1431
    return this.storage.enqueueTransaction(this._collectData.bind(this));
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1432
  },
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1433
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1434
  _collectData: function () {
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1435
    let now = new Date();
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1436
    let data = yield this._getDailyValues();
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1437
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1438
    let m = this.getMeasurement("places", 1);
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1439
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1440
    yield m.setDailyLastNumeric("pages", data.PLACES_PAGES_COUNT);
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1441
    yield m.setDailyLastNumeric("bookmarks", data.PLACES_BOOKMARKS_COUNT);
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1442
  },
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1443
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1444
  _getDailyValues: function () {
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1445
    let deferred = Promise.defer();
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1446
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1447
    PlacesDBUtils.telemetry(null, function onResult(data) {
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1448
      deferred.resolve(data);
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1449
    });
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1450
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1451
    return deferred.promise;
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1452
  },
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1453
});
e2e1ea12ddc9a0563647215394ebacd662fb4434 Bug 828546 - Part 2: Health Report probe for Places data; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120927
diff changeset
  1454
126225
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1455
function SearchCountMeasurement1() {
121709
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1456
  Metrics.Measurement.call(this);
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1457
}
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1458
126225
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1459
SearchCountMeasurement1.prototype = Object.freeze({
121709
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1460
  __proto__: Metrics.Measurement.prototype,
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1461
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1462
  name: "counts",
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1463
  version: 1,
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1464
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1465
  // We only record searches for search engines that have partner agreements
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1466
  // with Mozilla.
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1467
  fields: {
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1468
    "amazon.com.abouthome": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1469
    "amazon.com.contextmenu": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1470
    "amazon.com.searchbar": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1471
    "amazon.com.urlbar": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1472
    "bing.abouthome": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1473
    "bing.contextmenu": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1474
    "bing.searchbar": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1475
    "bing.urlbar": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1476
    "google.abouthome": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1477
    "google.contextmenu": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1478
    "google.searchbar": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1479
    "google.urlbar": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1480
    "yahoo.abouthome": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1481
    "yahoo.contextmenu": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1482
    "yahoo.searchbar": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1483
    "yahoo.urlbar": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1484
    "other.abouthome": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1485
    "other.contextmenu": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1486
    "other.searchbar": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1487
    "other.urlbar": DAILY_COUNTER_FIELD,
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1488
  },
126225
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1489
});
122586
5054f997ef77367e94a3cc8f920ba390702a81f2 Bug 841074 - Statically declare fields on FHR measurements; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 122255
diff changeset
  1490
126225
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1491
/**
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1492
 * Records search counts per day per engine and where search initiated.
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1493
 *
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1494
 * We want to record granular details for individual locale-specific search
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1495
 * providers, but only if they're Mozilla partners. In order to do this, we
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1496
 * track the nsISearchEngine identifier, which denotes shipped search engines,
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1497
 * and intersect those with our partner list.
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1498
 *
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1499
 * We don't use the search engine name directly, because it is shared across
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1500
 * locales; e.g., eBay-de and eBay both share the name "eBay".
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1501
 */
152655
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1502
function SearchCountMeasurementBase() {
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1503
  this._fieldSpecs = {};
126225
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1504
  Metrics.Measurement.call(this);
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1505
}
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1506
152655
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1507
SearchCountMeasurementBase.prototype = Object.freeze({
126225
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1508
  __proto__: Metrics.Measurement.prototype,
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1509
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1510
152655
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1511
  // Our fields are dynamic.
126225
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1512
  get fields() {
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1513
    return this._fieldSpecs;
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1514
  },
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1515
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1516
  /**
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1517
   * Override the default behavior: serializers should include every counter
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1518
   * field from the DB, even if we don't currently have it registered.
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1519
   *
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1520
   * Do this so we don't have to register several hundred fields to match
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1521
   * various Firefox locales.
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1522
   *
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1523
   * We use the "provider.type" syntax as a rudimentary check for validity.
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1524
   *
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1525
   * We trust that measurement versioning is sufficient to exclude old provider
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1526
   * data.
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1527
   */
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1528
  shouldIncludeField: function (name) {
219296
57725f8e7aa143d7229d28b0a821a3e5e5c01a46 Backed out changesets 34a66a625618, 32db3daa20fe, and ac15ba8568c5 (bug 1102219) for Gaia unit test failures.
Ryan VanderMeulen <ryanvm@gmail.com>
parents: 219291
diff changeset
  1529
    return name.contains(".");
126225
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1530
  },
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1531
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1532
  /**
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1533
   * The measurement type mechanism doesn't introspect the DB. Override it
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1534
   * so that we can assume all unknown fields are counters.
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1535
   */
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1536
  fieldType: function (name) {
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1537
    if (name in this.fields) {
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1538
      return this.fields[name].type;
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1539
    }
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1540
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1541
    // Default to a counter.
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1542
    return Metrics.Storage.FIELD_DAILY_COUNTER;
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1543
  },
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1544
121709
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1545
  SOURCES: [
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1546
    "abouthome",
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1547
    "contextmenu",
180125
36b040d46b79c229ee7c486185f9f0d8ef0aa269 Bug 975786 - Add FHR search source for about:newtab. r=rnewman
Drew Willcoxon <adw@mozilla.com>
parents: 177028
diff changeset
  1548
    "newtab",
121709
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1549
    "searchbar",
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1550
    "urlbar",
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1551
  ],
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1552
});
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1553
152655
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1554
function SearchCountMeasurement2() {
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1555
  SearchCountMeasurementBase.call(this);
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1556
}
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1557
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1558
SearchCountMeasurement2.prototype = Object.freeze({
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1559
  __proto__: SearchCountMeasurementBase.prototype,
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1560
  name: "counts",
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1561
  version: 2,
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1562
});
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1563
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1564
function SearchCountMeasurement3() {
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1565
  SearchCountMeasurementBase.call(this);
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1566
}
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1567
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1568
SearchCountMeasurement3.prototype = Object.freeze({
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1569
  __proto__: SearchCountMeasurementBase.prototype,
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1570
  name: "counts",
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1571
  version: 3,
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1572
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1573
  getEngines: function () {
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1574
    return Services.search.getEngines();
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1575
  },
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1576
152656
ff2d338d15ad20a5215b1a18d566ebbc083ddcb8 Bug 925521 - Part 2: correctly record identifiers for non-pre-installed engines. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 152655
diff changeset
  1577
  getEngineID: function (engine) {
ff2d338d15ad20a5215b1a18d566ebbc083ddcb8 Bug 925521 - Part 2: correctly record identifiers for non-pre-installed engines. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 152655
diff changeset
  1578
    if (!engine) {
ff2d338d15ad20a5215b1a18d566ebbc083ddcb8 Bug 925521 - Part 2: correctly record identifiers for non-pre-installed engines. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 152655
diff changeset
  1579
      return "other";
152655
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1580
    }
152656
ff2d338d15ad20a5215b1a18d566ebbc083ddcb8 Bug 925521 - Part 2: correctly record identifiers for non-pre-installed engines. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 152655
diff changeset
  1581
    if (engine.identifier) {
ff2d338d15ad20a5215b1a18d566ebbc083ddcb8 Bug 925521 - Part 2: correctly record identifiers for non-pre-installed engines. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 152655
diff changeset
  1582
      return engine.identifier;
152655
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1583
    }
152656
ff2d338d15ad20a5215b1a18d566ebbc083ddcb8 Bug 925521 - Part 2: correctly record identifiers for non-pre-installed engines. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 152655
diff changeset
  1584
    return "other-" + engine.name;
152655
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1585
  },
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1586
});
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1587
190918
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1588
function SearchEnginesMeasurement1() {
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1589
  Metrics.Measurement.call(this);
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1590
}
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1591
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1592
SearchEnginesMeasurement1.prototype = Object.freeze({
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1593
  __proto__: Metrics.Measurement.prototype,
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1594
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1595
  name: "engines",
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1596
  version: 1,
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1597
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1598
  fields: {
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1599
    default: DAILY_LAST_TEXT_FIELD,
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1600
  },
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1601
});
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1602
121709
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1603
this.SearchesProvider = function () {
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1604
  Metrics.Provider.call(this);
190918
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1605
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1606
  this._prefs = new Preferences({defaultBranch: null});
121709
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1607
};
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1608
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1609
this.SearchesProvider.prototype = Object.freeze({
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1610
  __proto__: Metrics.Provider.prototype,
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1611
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1612
  name: "org.mozilla.searches",
126225
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1613
  measurementTypes: [
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1614
    SearchCountMeasurement1,
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1615
    SearchCountMeasurement2,
152655
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1616
    SearchCountMeasurement3,
190918
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1617
    SearchEnginesMeasurement1,
126225
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1618
  ],
121709
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1619
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1620
  /**
128772
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
  1621
   * Initialize the search service before our measurements are touched.
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
  1622
   */
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
  1623
  preInit: function (storage) {
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
  1624
    // Initialize search service.
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
  1625
    let deferred = Promise.defer();
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
  1626
    Services.search.init(function onInitComplete () {
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
  1627
      deferred.resolve();
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
  1628
    });
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
  1629
    return deferred.promise;
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
  1630
  },
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
  1631
190918
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1632
  collectDailyData: function () {
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1633
    return this.storage.enqueueTransaction(function getDaily() {
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1634
      // We currently only record this if Telemetry is enabled.
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1635
      if (!isTelemetryEnabled(this._prefs)) {
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1636
        return;
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1637
      }
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1638
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1639
      let m = this.getMeasurement(SearchEnginesMeasurement1.prototype.name,
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1640
                                  SearchEnginesMeasurement1.prototype.version);
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1641
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1642
      let engine;
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1643
      try {
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1644
        engine = Services.search.defaultEngine;
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1645
      } catch (e) {}
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1646
      let name;
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1647
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1648
      if (!engine) {
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1649
        name = "NONE";
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1650
      } else if (engine.identifier) {
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1651
        name = engine.identifier;
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1652
      } else if (engine.name) {
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1653
        name = "other-" + engine.name;
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1654
      } else {
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1655
        name = "UNDEFINED";
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1656
      }
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1657
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1658
      yield m.setDailyLastText("default", name);
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1659
    }.bind(this));
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1660
  },
b77106f50779da25eef565f734dab3714a79c171 Bug 1029031 - Record default search provider in FHR; r=bsmedberg, MattN
Gregory Szorc <gps@mozilla.com>
parents: 183949
diff changeset
  1661
128772
b742e556917ba2c5551a376b54016d05e02c6efc Bug 855604 - SearchCountMeasurement2 should wait for nsSearchService to initialize asynchronously. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 126233
diff changeset
  1662
  /**
121709
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1663
   * Record that a search occurred.
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1664
   *
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1665
   * @param engine
152656
ff2d338d15ad20a5215b1a18d566ebbc083ddcb8 Bug 925521 - Part 2: correctly record identifiers for non-pre-installed engines. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 152655
diff changeset
  1666
   *        (nsISearchEngine) The search engine used.
121709
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1667
   * @param source
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1668
   *        (string) Where the search was initiated from. Must be one of the
126225
73dd524468a1e2948ac52b13a933553c2648ed0c Bug 841554 - Part 2: alter search counts provider to record all of Mozilla's partner engines in each locale. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 125442
diff changeset
  1669
   *        SearchCountMeasurement2.SOURCES values.
121709
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1670
   *
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1671
   * @return Promise<>
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1672
   *         The promise is resolved when the storage operation completes.
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1673
   */
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1674
  recordSearch: function (engine, source) {
152655
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1675
    let m = this.getMeasurement("counts", 3);
121709
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1676
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1677
    if (m.SOURCES.indexOf(source) == -1) {
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1678
      throw new Error("Unknown source for search: " + source);
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1679
    }
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1680
152655
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1681
    let field = m.getEngineID(engine) + "." + source;
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1682
    if (this.storage.hasFieldFromMeasurement(m.id, field,
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1683
                                             this.storage.FIELD_DAILY_COUNTER)) {
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1684
      let fieldID = this.storage.fieldIDFromMeasurement(m.id, field);
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1685
      return this.enqueueStorageOperation(function recordSearchKnownField() {
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1686
        return this.storage.incrementDailyCounterFromFieldID(fieldID);
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1687
      }.bind(this));
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1688
    }
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1689
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1690
    // Otherwise, we first need to create the field.
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1691
    return this.enqueueStorageOperation(function recordFieldAndSearch() {
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1692
      // This function has to return a promise.
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1693
      return Task.spawn(function () {
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1694
        let fieldID = yield this.storage.registerField(m.id, field,
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1695
                                                       this.storage.FIELD_DAILY_COUNTER);
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1696
        yield this.storage.incrementDailyCounterFromFieldID(fieldID);
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1697
      }.bind(this));
c0ac5c3fd460f5551b82fbe8c6306140166e00d4 Bug 925521 - Part 1: remove filter on recorded search engine identifiers. r=gps
Richard Newman <rnewman@mozilla.com>
parents: 149651
diff changeset
  1698
    }.bind(this));
121709
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1699
  },
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1700
});
168ec5716059dcacf7ce77114c02d806c2a684e7 Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 120938
diff changeset
  1701
130545
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1702
function HealthReportSubmissionMeasurement1() {
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1703
  Metrics.Measurement.call(this);
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1704
}
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1705
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1706
HealthReportSubmissionMeasurement1.prototype = Object.freeze({
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1707
  __proto__: Metrics.Measurement.prototype,
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1708
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1709
  name: "submissions",
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1710
  version: 1,
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1711
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1712
  fields: {
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1713
    firstDocumentUploadAttempt: DAILY_COUNTER_FIELD,
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1714
    continuationUploadAttempt: DAILY_COUNTER_FIELD,
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1715
    uploadSuccess: DAILY_COUNTER_FIELD,
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1716
    uploadTransportFailure: DAILY_COUNTER_FIELD,
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1717
    uploadServerFailure: DAILY_COUNTER_FIELD,
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1718
    uploadClientFailure: DAILY_COUNTER_FIELD,
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1719
  },
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1720
});
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1721
165997
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1722
function HealthReportSubmissionMeasurement2() {
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1723
  Metrics.Measurement.call(this);
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1724
}
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1725
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1726
HealthReportSubmissionMeasurement2.prototype = Object.freeze({
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1727
  __proto__: Metrics.Measurement.prototype,
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1728
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1729
  name: "submissions",
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1730
  version: 2,
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1731
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1732
  fields: {
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1733
    firstDocumentUploadAttempt: DAILY_COUNTER_FIELD,
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1734
    continuationUploadAttempt: DAILY_COUNTER_FIELD,
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1735
    uploadSuccess: DAILY_COUNTER_FIELD,
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1736
    uploadTransportFailure: DAILY_COUNTER_FIELD,
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1737
    uploadServerFailure: DAILY_COUNTER_FIELD,
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1738
    uploadClientFailure: DAILY_COUNTER_FIELD,
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1739
    uploadAlreadyInProgress: DAILY_COUNTER_FIELD,
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1740
  },
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1741
});
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1742
130545
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1743
this.HealthReportProvider = function () {
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1744
  Metrics.Provider.call(this);
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1745
}
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1746
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1747
HealthReportProvider.prototype = Object.freeze({
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1748
  __proto__: Metrics.Provider.prototype,
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1749
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1750
  name: "org.mozilla.healthreport",
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1751
165997
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1752
  measurementTypes: [
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1753
    HealthReportSubmissionMeasurement1,
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1754
    HealthReportSubmissionMeasurement2,
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1755
  ],
130545
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1756
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1757
  recordEvent: function (event, date=new Date()) {
165997
bb793d3d2bad5c498de6df80e1a6d9e4320834e9 Bug 965587 - Add lock to Firefox Health Report uploading; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 164777
diff changeset
  1758
    let m = this.getMeasurement("submissions", 2);
130545
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1759
    return this.enqueueStorageOperation(function recordCounter() {
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1760
      return m.incrementDailyCounter(event, date);
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1761
    });
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1762
  },
eb460fae0ece75f8f284be8f9618cc085466987f Bug 854018 - Record counts for FHR upload actions; r=rnewman
Gregory Szorc <gps@mozilla.com>
parents: 129109
diff changeset
  1763
});