Bug 1338812 - Call TelemetryStopwatch only once per item (history / bookmarks / logins) rather than for each resource. r?gijs draft
authorDão Gottwald <dao@mozilla.com>
Sat, 11 Feb 2017 21:14:52 +0100
changeset 482236 d570a53c7d81ea9a65b133ac6fac82e87eee9faa
parent 481595 25a94c1047e793ef096d8556fa3c26dd72bd37d7
child 545398 900a5f6d6e9478c3c1e70f5fc9a9980d6fd0dd27
push id45042
push userdgottwald@mozilla.com
push dateSat, 11 Feb 2017 20:15:57 +0000
reviewersgijs
bugs1338812
milestone54.0a1
Bug 1338812 - Call TelemetryStopwatch only once per item (history / bookmarks / logins) rather than for each resource. r?gijs MozReview-Commit-ID: 7c5DgKDIFTv
browser/components/migration/MigrationUtils.jsm
--- a/browser/components/migration/MigrationUtils.jsm
+++ b/browser/components/migration/MigrationUtils.jsm
@@ -244,26 +244,26 @@ this.MigratorPrototype = {
       if (resourceType == MigrationUtils.resourceTypes.BOOKMARKS) {
         return "FX_MIGRATION_BOOKMARKS_IMPORT_MS";
       }
       if (resourceType == MigrationUtils.resourceTypes.PASSWORDS) {
         return "FX_MIGRATION_LOGINS_IMPORT_MS";
       }
       return null;
     };
-    let maybeStartTelemetryStopwatch = (resourceType, resource) => {
+    let maybeStartTelemetryStopwatch = (resourceType) => {
       let histogram = getHistogramForResourceType(resourceType);
       if (histogram) {
-        TelemetryStopwatch.startKeyed(histogram, this.getKey(), resource);
+        TelemetryStopwatch.startKeyed(histogram, this.getKey());
       }
     };
-    let maybeStopTelemetryStopwatch = (resourceType, resource) => {
+    let maybeStopTelemetryStopwatch = (resourceType) => {
       let histogram = getHistogramForResourceType(resourceType);
       if (histogram) {
-        TelemetryStopwatch.finishKeyed(histogram, this.getKey(), resource);
+        TelemetryStopwatch.finishKeyed(histogram, this.getKey());
       }
     };
 
     let collectQuantityTelemetry = () => {
       try {
         for (let resourceType of Object.keys(MigrationUtils._importQuantities)) {
           let histogramId =
             "FX_MIGRATION_" + resourceType.toUpperCase() + "_QUANTITY";
@@ -292,29 +292,32 @@ this.MigratorPrototype = {
 
       for (let resourceType of Object.keys(MigrationUtils._importQuantities)) {
         MigrationUtils._importQuantities[resourceType] = 0;
       }
       notify("Migration:Started");
       for (let [migrationType, itemResources] of resourcesGroupedByItems) {
         notify("Migration:ItemBeforeMigrate", migrationType);
 
+        maybeStartTelemetryStopwatch(migrationType);
+
         let itemSuccess = false;
         for (let res of itemResources) {
-          maybeStartTelemetryStopwatch(migrationType, res);
           let completeDeferred = PromiseUtils.defer();
           let resourceDone = function(aSuccess) {
-            maybeStopTelemetryStopwatch(migrationType, res);
             itemResources.delete(res);
             itemSuccess |= aSuccess;
             if (itemResources.size == 0) {
               notify(itemSuccess ?
                      "Migration:ItemAfterMigrate" : "Migration:ItemError",
                      migrationType);
               resourcesGroupedByItems.delete(migrationType);
+
+              maybeStopTelemetryStopwatch(migrationType);
+
               if (resourcesGroupedByItems.size == 0) {
                 collectQuantityTelemetry();
                 notify("Migration:Ended");
               }
             }
             completeDeferred.resolve();
           };