Bug 1276027 - Add a Telemetry probe to track how often Firefox is used as the default handler. r=bsmedberg r?rstrong draft
authorJared Wein <jwein@mozilla.com>
Mon, 06 Jun 2016 12:50:50 -0400
changeset 375749 e2c1c6995ee7bc370db253d780893eaaf313c4f8
parent 374514 91879ebba4d61fde72af13223708faa01109a4d9
child 522959 d700256852c3dee0856fd118eb3a1acde1804a13
push id20371
push userjwein@mozilla.com
push dateMon, 06 Jun 2016 16:51:06 +0000
reviewersbsmedberg, rstrong
bugs1276027
milestone49.0a1
Bug 1276027 - Add a Telemetry probe to track how often Firefox is used as the default handler. r=bsmedberg r?rstrong MozReview-Commit-ID: Ar3MaKeUIdz
browser/components/nsBrowserContentHandler.js
toolkit/components/telemetry/Histograms.json
--- a/browser/components/nsBrowserContentHandler.js
+++ b/browser/components/nsBrowserContentHandler.js
@@ -705,16 +705,26 @@ nsDefaultCommandLineHandler.prototype = 
 
     return this;
   },
 
   _haveProfile: false,
 
   /* nsICommandLineHandler */
   handle : function dch_handle(cmdLine) {
+    // The -url flag is inserted by the operating system when the default
+    // application handler is used. We check for default browser to remove
+    // instances where users explicitly decide to "open with" the browser.
+    if (cmdLine.findFlag("url", false) &&
+        ShellService.isDefaultBrowser(false, false)) {
+      try {
+        Services.telemetry.getHistogramById("FX_STARTUP_EXTERNAL_CONTENT_HANDLER").add();
+      } catch (e) {}
+    }
+
     var urilist = [];
 
     if (AppConstants.platform == "win") {
       // If we don't have a profile selected yet (e.g. the Profile Manager is
       // displayed) we will crash if we open an url and then select a profile. To
       // prevent this handle all url command line flags and set the command line's
       // preventDefault to true to prevent the display of the ui. The initial
       // command line will be retained when nsAppRunner calls LaunchChild though
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -4439,16 +4439,23 @@
     "bug_numbers": [1275114],
     "alert_emails": ["gijs@mozilla.com"],
     "expires_in_version": "53",
     "kind": "enumerated",
     "n_values": 15,
     "releaseChannelCollection": "opt-out",
     "description": "The browser that was the default on the initial profile migration. The values correspond to the internal browser ID (see MigrationUtils.jsm)"
   },
+  "FX_STARTUP_EXTERNAL_CONTENT_HANDLER": {
+    "bug_numbers": [1276027],
+    "alert_emails": ["jaws@mozilla.com"],
+    "expires_in_version": "53",
+    "kind": "count",
+    "description": "Count how often the browser is opened as an external app handler. This is generally used when the browser is set as the default browser."
+  },
   "INPUT_EVENT_RESPONSE_MS": {
     "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
     "bug_numbers": [1235908],
     "expires_in_version": "never",
     "kind": "exponential",
     "high": 10000,
     "n_buckets": 50,
     "description": "Time (ms) from the Input event being created to the end of it being handled"