Bug 1251469 - Add telemetry probes for the time needed to sanitize a loaded or unloaded Flash. r=yoric
authorMarco Bonardo <mbonardo@mozilla.com>
Fri, 26 Feb 2016 14:50:41 +0100
changeset 324018 aba2c94b1bf8d1b0423205a8b45e442c4b35252d
parent 324017 20fb4a337443f9a153702ead556abcded1f59f23
child 324019 059d7b0fa76445a5cd675f493783081bb00872ef
push id1128
push userjlund@mozilla.com
push dateWed, 01 Jun 2016 01:31:59 +0000
treeherdermozilla-release@fe0d30de989d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersyoric
bugs1251469
milestone47.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1251469 - Add telemetry probes for the time needed to sanitize a loaded or unloaded Flash. r=yoric MozReview-Commit-ID: 8j9teGzMSV2
browser/base/content/sanitize.js
toolkit/components/telemetry/Histograms.json
--- a/browser/base/content/sanitize.js
+++ b/browser/base/content/sanitize.js
@@ -283,39 +283,51 @@ Sanitizer.prototype = {
 
         TelemetryStopwatch.finish("FX_SANITIZE_COOKIES", refObj);
         if (seenException) {
           throw seenException;
         }
       }),
 
       promiseClearPluginCookies: Task.async(function* (range) {
-        const phInterface = Ci.nsIPluginHost;
-        const FLAG_CLEAR_ALL = phInterface.FLAG_CLEAR_ALL;
-        let ph = Cc["@mozilla.org/plugin/host;1"].getService(phInterface);
+        const FLAG_CLEAR_ALL = Ci.nsIPluginHost.FLAG_CLEAR_ALL;
+        let ph = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
 
         // Determine age range in seconds. (-1 means clear all.) We don't know
         // that range[1] is actually now, so we compute age range based
         // on the lower bound. If range results in a negative age, do nothing.
         let age = range ? (Date.now() / 1000 - range[0] / 1000000) : -1;
         if (!range || age >= 0) {
           let tags = ph.getPluginTags();
           for (let tag of tags) {
+            let refObj = {};
+            let probe = "";
+            if (/\bFlash\b/.test(tag.name)) {
+              probe = tag.loaded ? "FX_SANITIZE_LOADED_FLASH"
+                                 : "FX_SANITIZE_UNLOADED_FLASH";
+              TelemetryStopwatch.start(probe, refObj);
+            }
             try {
               let rv = yield new Promise(resolve =>
                 ph.clearSiteData(tag, null, FLAG_CLEAR_ALL, age, resolve)
               );
               // If the plugin doesn't support clearing by age, clear everything.
               if (rv == Components.results.NS_ERROR_PLUGIN_TIME_RANGE_NOT_SUPPORTED) {
                 yield new Promise(resolve =>
                   ph.clearSiteData(tag, null, FLAG_CLEAR_ALL, -1, resolve)
                 );
               }
+              if (probe) {
+                TelemetryStopwatch.finish(probe, refObj);
+              }
             } catch (ex) {
               // Ignore errors from plug-ins
+              if (probe) {
+                TelemetryStopwatch.cancel(probe, refObj);
+              }
             }
           }
         }
       })
     },
 
     offlineApps: {
       clear: Task.async(function* (range) {
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -8766,33 +8766,33 @@
   "MEDIA_CODEC_USED": {
     "alert_emails": ["cpearce@mozilla.com"],
     "expires_in_version": "never",
     "keyed": true,
     "kind": "count",
     "description": "Count of use of audio/video codecs in HTMLMediaElements and WebAudio. Those with 'resource' prefix are approximate; report based on HTTP ContentType or sniffing. Those with 'webaudio' prefix are for WebAudio."
   },
   "FX_SANITIZE_TOTAL": {
-    "alert_emails": ["firefox-dev@mozilla.org", "gavin@mozilla.com"],
-    "expires_in_version": "50",
+    "alert_emails": ["firefox-dev@mozilla.org"],
+    "expires_in_version": "never",
     "kind": "exponential",
     "high": 30000,
     "n_buckets": 20,
     "description": "Sanitize: Total time it takes to sanitize (ms)"
   },
   "FX_SANITIZE_CACHE": {
-    "alert_emails": ["firefox-dev@mozilla.org", "gavin@mozilla.com"],
+    "alert_emails": ["firefox-dev@mozilla.org"],
     "expires_in_version": "50",
     "kind": "exponential",
     "high": 30000,
     "n_buckets": 20,
     "description": "Sanitize: Time it takes to sanitize the cache (ms)"
   },
   "FX_SANITIZE_COOKIES": {
-    "alert_emails": ["firefox-dev@mozilla.org", "gavin@mozilla.com"],
+    "alert_emails": ["firefox-dev@mozilla.org"],
     "expires_in_version": "50",
     "kind": "exponential",
     "high": 30000,
     "n_buckets": 20,
     "description": "Sanitize: Time it takes to sanitize cookies (ms)"
   },
   "FX_SANITIZE_COOKIES_2": {
     "alert_emails": ["firefox-dev@mozilla.org"],
@@ -8805,66 +8805,84 @@
   "FX_SANITIZE_PLUGINS": {
     "alert_emails": ["firefox-dev@mozilla.org"],
     "expires_in_version": "50",
     "kind": "exponential",
     "high": 30000,
     "n_buckets": 20,
     "description": "Sanitize: Time it takes to sanitize plugin cookies (ms). A subset of FX_SANITIZE_COOKIES."
   },
+  "FX_SANITIZE_LOADED_FLASH": {
+    "alert_emails": ["firefox-dev@mozilla.org"],
+    "bug_numbers": [1251469],
+    "expires_in_version": "50",
+    "kind": "exponential",
+    "high": 30000,
+    "n_buckets": 20,
+    "description": "Sanitize: Time it takes to sanitize Flash when it's already loaded (ms). A subset of FX_SANITIZE_PLUGINS."
+  },
+  "FX_SANITIZE_UNLOADED_FLASH": {
+    "alert_emails": ["firefox-dev@mozilla.org"],
+    "bug_numbers": [1251469],
+    "expires_in_version": "50",
+    "kind": "exponential",
+    "high": 30000,
+    "n_buckets": 20,
+    "description": "Sanitize: Time it takes to sanitize Flash when it's not yet loaded (ms). A subset of FX_SANITIZE_PLUGINS."
+  },
   "FX_SANITIZE_OFFLINEAPPS": {
-    "alert_emails": ["firefox-dev@mozilla.org", "gavin@mozilla.com"],
+    "alert_emails": ["firefox-dev@mozilla.org"],
     "expires_in_version": "50",
     "kind": "exponential",
     "high": 30000,
     "n_buckets": 20,
     "description": "Sanitize: Time it takes to sanitize stored offline app data (ms)"
   },
   "FX_SANITIZE_HISTORY": {
-    "alert_emails": ["firefox-dev@mozilla.org", "gavin@mozilla.com"],
+    "alert_emails": ["firefox-dev@mozilla.org"],
     "expires_in_version": "50",
     "kind": "exponential",
     "high": 30000,
     "n_buckets": 20,
     "description": "Sanitize: Time it takes to sanitize history (ms)"
   },
   "FX_SANITIZE_FORMDATA": {
-    "alert_emails": ["firefox-dev@mozilla.org", "gavin@mozilla.com"],
+    "alert_emails": ["firefox-dev@mozilla.org"],
     "expires_in_version": "50",
     "kind": "exponential",
     "high": 30000,
     "n_buckets": 20,
     "description": "Sanitize: Time it takes to sanitize stored form data (ms)"
   },
   "FX_SANITIZE_DOWNLOADS": {
-    "alert_emails": ["firefox-dev@mozilla.org", "gavin@mozilla.com"],
+    "alert_emails": ["firefox-dev@mozilla.org"],
     "expires_in_version": "50",
     "kind": "exponential",
     "high": 30000,
     "n_buckets": 20,
     "description": "Sanitize: Time it takes to sanitize recent downloads (ms)"
   },
   "FX_SANITIZE_SESSIONS": {
-    "alert_emails": ["firefox-dev@mozilla.org", "gavin@mozilla.com"],
+    "alert_emails": ["firefox-dev@mozilla.org"],
     "expires_in_version": "50",
     "kind": "exponential",
     "high": 30000,
     "n_buckets": 20,
     "description": "Sanitize: Time it takes to sanitize saved sessions (ms)"
   },
   "FX_SANITIZE_SITESETTINGS": {
-    "alert_emails": ["firefox-dev@mozilla.org", "gavin@mozilla.com"],
+    "alert_emails": ["firefox-dev@mozilla.org"],
     "expires_in_version": "50",
     "kind": "exponential",
     "high": 30000,
     "n_buckets": 20,
     "description": "Sanitize: Time it takes to sanitize site-specific settings (ms)"
   },
   "FX_SANITIZE_OPENWINDOWS": {
-    "alert_emails": ["firefox-dev@mozilla.org", "gavin@mozilla.com"],
+    "alert_emails": ["firefox-dev@mozilla.org"],
     "expires_in_version": "50",
     "kind": "exponential",
     "high": 30000,
     "n_buckets": 20,
     "description": "Sanitize: Time it takes to sanitize the open windows list (ms)"
   },
   "PWMGR_BLOCKLIST_NUM_SITES": {
     "expires_in_version": "never",