Bug 1244187 - Second e10s beta45 experiment - Run an A/B experiment for users with no add-ons. r=Mossop
authorFelipe Gomes <felipc@gmail.com>
Thu, 11 Feb 2016 21:11:25 -0200
changeset 77 80c7c3ba66d5c0cbd655c5fc9c576c790a54202f
parent 76 3ac53e8441223f530fd05b002bf393c43561e3af
child 78 4b322837bf47429e0d323ec923810266f584aa15
push id57
push userfelipc@gmail.com
push dateThu, 11 Feb 2016 23:14:52 +0000
reviewersMossop
bugs1244187
Bug 1244187 - Second e10s beta45 experiment - Run an A/B experiment for users with no add-ons. r=Mossop
experiments/e10s-beta45-withoutaddons/code/bootstrap.js
experiments/e10s-beta45-withoutaddons/code/install.rdf
experiments/e10s-beta45-withoutaddons/experiment.xpi
experiments/e10s-beta45-withoutaddons/filter.js
experiments/e10s-beta45-withoutaddons/manifest.json
copy from experiments/e10s-beta45-withaddons/code/bootstrap.js
copy to experiments/e10s-beta45-withoutaddons/code/bootstrap.js
--- a/experiments/e10s-beta45-withaddons/code/bootstrap.js
+++ b/experiments/e10s-beta45-withoutaddons/code/bootstrap.js
@@ -2,107 +2,127 @@ let {classes: Cc, interfaces: Ci, utils:
 
 Cu.import("resource:///modules/experiments/Experiments.jsm");
 Cu.import("resource://gre/modules/Task.jsm");
 Cu.import("resource://gre/modules/Preferences.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/TelemetryLog.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
-const SELF_ID = "e10s-beta45-withaddons@experiments.mozilla.org";
+const SELF_ID = "e10s-beta45-withoutaddons@experiments.mozilla.org";
 const BRANCH = "browser.tabs.remote.";
 // Default e10s value, aka "trial pref". This pref should not exist on Beta
 const PREF = BRANCH + "autostart.2";
 // Whether the user eagerly opted into e10s
 const OPTIN_PREF = BRANCH + "autostart";
+const FORCE_PREF = BRANCH + "force-enable";
+
+const BLOCK_ADDONS_PREF = "extensions.e10sBlocksEnabling";
+const ADDONS_BLOCKING_E10S = "extensions.e10sBlockedByAddons";
 
 var gStarted = false;
 
 function startup() {
   // Seems startup() function is launched twice after install, we're
   // unsure why so far. We only want it to run once.
   if (gStarted) {
     return;
   }
   gStarted = true;
 
   Task.spawn(function*() {
     let branch = yield Experiments.instance().getExperimentBranch(SELF_ID);
-    let expected = null;
+
+    let hasAddons = Preferences.get(ADDONS_BLOCKING_E10S, false);
 
     switch (branch) {
       case null:
         // Profile is ineligible if either of the two e10s prefs is non-default
-        if (Preferences.isSet(OPTIN_PREF) || Preferences.isSet(PREF)) {
+        if (Preferences.isSet(OPTIN_PREF)||
+            Preferences.isSet(PREF) ||
+            Preferences.isSet(FORCE_PREF)) {
           TelemetryLog.log(SELF_ID, ["Setting branch to 'user-disabled' because e10s prefs have non-default values."]);
           yield Experiments.instance().setExperimentBranch(SELF_ID, "user-disabled");
           return;
         }
 
+        // First run, let's assign either an experiment or control group, 50%,50%
         if (Math.random() >= 0.5) {
           TelemetryLog.log(SELF_ID, ["Setting branch to 'first-session-control' (disable e10s next session)."]);
           yield Experiments.instance().setExperimentBranch(SELF_ID, "first-session-control");
           Preferences.set(PREF, false);
         } else {
           TelemetryLog.log(SELF_ID, ["Setting branch to 'first-session-experiment' (enable e10s next session)."]);
           yield Experiments.instance().setExperimentBranch(SELF_ID, "first-session-experiment");
           Preferences.set(PREF, true);
+          Preferences.set(BLOCK_ADDONS_PREF, true);
         }
         return;
 
       case "first-session-control":
-        TelemetryLog.log(SELF_ID, ["Second session, setting branch to 'control'."]);
-        yield Experiments.instance().setExperimentBranch(SELF_ID, "control");
-        expected = false;
+        branch = hasAddons ? "control-addon-user" : "control-no-addons";
+        TelemetryLog.log(SELF_ID, ["Second session, setting branch to " + branch]);
+        yield Experiments.instance().setExperimentBranch(SELF_ID, branch);
         break;
 
       case "first-session-experiment":
-        TelemetryLog.log(SELF_ID, ["Second session, setting branch to 'experiment'."]);
-        yield Experiments.instance().setExperimentBranch(SELF_ID, "experiment");
-        expected = true;
+        branch = hasAddons ? "experiment-addon-user" : "experiment-no-addons";
+        TelemetryLog.log(SELF_ID, ["Second session, setting branch to " + branch]);
+        yield Experiments.instance().setExperimentBranch(SELF_ID, branch);
         break;
 
-      case "control":
-        expected = false;
+      case "control-addon-user":
+      case "experiment-addon-user":
+        if (!hasAddons) {
+          branch = branch.replace("-addon-user", "-no-addons");
+          TelemetryLog.log(SELF_ID, ["Setting branch to '" + branch + "' because the user uninstalled all add-ons."]);
+          yield Experiments.instance().setExperimentBranch(SELF_ID, branch);
+        }
         break;
 
-      case "experiment":
-        expected = true;
+      case "control-no-addons":
+      case "experiment-no-addons":
+        if (hasAddons) {
+          // in case a user with no add-ons installs an add-on, let's move them to the other group
+          branch = branch.replace("-no-addons", "-addon-user");
+          TelemetryLog.log(SELF_ID, ["Setting branch to '" + branch + "' because the user installed add-ons."]);
+          yield Experiments.instance().setExperimentBranch(SELF_ID, branch);
+        }
         break;
 
       case "user-disabled":
       case "force-disabled":
         return;
 
       default:
         throw new Error("Unexpected experiment branch: " + branch);
     }
 
-    if (expected != Preferences.get(PREF)) {
-      TelemetryLog.log(SELF_ID, ["Setting branch to 'user-disabled' because PREF != expected."]);
-      yield Experiments.instance().setExperimentBranch(SELF_ID, "user-disabled");
-    } else if(Preferences.isSet(OPTIN_PREF)) {
-      TelemetryLog.log(SELF_ID, ["Setting branch to 'user-disabled' because OPTIN_PREF != expected."]);
-      yield Experiments.instance().setExperimentBranch(SELF_ID, "user-disabled");
-      restoreConfig();
-    } else if(expected != Services.appinfo.browserTabsRemoteAutostart) {
+    let expected = (branch == "experiment-no-addons");
+
+    if (expected != Services.appinfo.browserTabsRemoteAutostart) {
       TelemetryLog.log(SELF_ID, ["Setting branch to 'force-disabled' because browserTabsRemoteAutostart != expected."]);
       yield Experiments.instance().setExperimentBranch(SELF_ID, "force-disabled");
       restoreConfig();
     }
   }).then(
     () => Services.prefs.savePrefFile(null),
     e => Cu.reportError("Got error during bootstrap startup: " + e)
   );
 }
 
 function restoreConfig() {
   Preferences.reset(PREF);
+  Preferences.reset(BLOCK_ADDONS_PREF);
 }
 
 function uninstall() {
   Task.spawn(function*() {
     let branch = yield Experiments.instance().getExperimentBranch(SELF_ID);
-    if (branch == "control" || branch == "experiment" || branch.substr(0, 14) == "first-session-") {
+    if (branch != "user-disabled") {
+      // we don't restore for the user-disabled branch because
+      // they might mean that the user switched prefs by their own,
+      // so we respect their choice.
       restoreConfig();
+      Services.prefs.savePrefFile(null);
     }
   });
 }
copy from experiments/e10s-beta45-withaddons/code/install.rdf
copy to experiments/e10s-beta45-withoutaddons/code/install.rdf
--- a/experiments/e10s-beta45-withaddons/code/install.rdf
+++ b/experiments/e10s-beta45-withoutaddons/code/install.rdf
@@ -1,24 +1,24 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
   <Description about="urn:mozilla:install-manifest">
-    <em:id>e10s-beta45-withaddons@experiments.mozilla.org</em:id>
+    <em:id>e10s-beta45-withoutaddons@experiments.mozilla.org</em:id>
     <em:version>1.0.0</em:version>
     <em:type>128</em:type>
     <em:bootstrap>true</em:bootstrap>
     <em:unpack>false</em:unpack>
 
     <!-- Firefox -->
     <em:targetApplication>
       <Description>
         <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
         <em:minVersion>45.0</em:minVersion>
         <em:maxVersion>45.0</em:maxVersion>
       </Description>
     </em:targetApplication>
 
     <!-- Front End MetaData -->
-    <em:name>Multi-process Firefox A/B Test 45.1</em:name>
+    <em:name>Multi-process Firefox A/B Test 45.2</em:name>
     <em:description>Measure the effect of multi-process Firefox</em:description>
-    <em:aboutURL>https://bugzilla.mozilla.org/show_bug.cgi?id=1241336</em:aboutURL>
+    <em:aboutURL>https://bugzilla.mozilla.org/show_bug.cgi?id=1244187</em:aboutURL>
   </Description>
 </RDF>
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..8405aa1d6de9f29e3a1f07db093fb48365506bc6
GIT binary patch
literal 6112
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
copy from experiments/e10s-enabled-beta/filter.js
copy to experiments/e10s-beta45-withoutaddons/filter.js
copy from experiments/e10s-beta45-withaddons/manifest.json
copy to experiments/e10s-beta45-withoutaddons/manifest.json
--- a/experiments/e10s-beta45-withaddons/manifest.json
+++ b/experiments/e10s-beta45-withoutaddons/manifest.json
@@ -1,18 +1,18 @@
 {
   "publish"     : true,
   "priority"    : 1,
-  "name"        : "Multi-process Firefox A/B test",
+  "name"        : "Multi-process Firefox A/B test 2",
   "description" : "Measure the effect of multi-process Firefox",
-  "info"        : "<p><a href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=1241336\">Related bug</a></p>",
+  "info"        : "<p><a href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=1244187\">Related bug</a></p>",
   "manifest"    : {
-    "id"               : "e10s-beta45-withaddons@experiments.mozilla.org",
-    "startTime"        : 1453680001,
-    "endTime"          : 1455148801,
+    "id"               : "e10s-beta45-withoutaddons@experiments.mozilla.org",
+    "startTime"        : 1455242400,
+    "endTime"          : 1456441200,
     "maxActiveSeconds" : 1296000,
     "appName"          : ["Firefox"],
     "channel"          : ["beta"],
     "minVersion"       : "45.0",
     "maxVersion"       : "45.0",
     "sample"           : 0.5
   }
 }