Bug 1350092 - Run a Telemetry experiment to vet GPU Process on Windows prior to release in Firefox 53. r=dvander
authorAnthony Hughes <anthony.s.hughes@gmail.com>
Fri, 24 Mar 2017 13:56:58 -0300
changeset 117 8caa6ce7abe6
parent 116 fa736656ecaf
child 118 49e9597ed80c
push id91
push userfelipc@gmail.com
push date2017-03-24 16:57 +0000
reviewersdvander
bugs1350092
Bug 1350092 - Run a Telemetry experiment to vet GPU Process on Windows prior to release in Firefox 53. r=dvander
experiments/gpu-process-beta53/code/bootstrap.js
experiments/gpu-process-beta53/code/install.rdf
experiments/gpu-process-beta53/experiment.xpi
experiments/gpu-process-beta53/manifest.json
new file mode 100644
--- /dev/null
+++ b/experiments/gpu-process-beta53/code/bootstrap.js
@@ -0,0 +1,66 @@
+let {classes: Cc, interfaces: Ci, utils: Cu} = Components;
+
+Cu.import("resource:///modules/experiments/Experiments.jsm");
+Cu.import("resource://gre/modules/Task.jsm");
+Cu.import("resource://gre/modules/Preferences.jsm");
+
+var gStarted = false;
+
+const kSELF_ID = "gpu-process-beta53@experiments.mozilla.org";
+const prefs = new Preferences();
+
+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(kSELF_ID);
+    if (branch == null) {
+      let r = Math.random() * 2;
+      if (r < 1) {
+        branch = "control";
+      } else {
+        branch = "disabled";
+        prefs.set("layers.gpu-process.enabled", false);
+      }
+      yield Experiments.instance().setExperimentBranch(kSELF_ID, branch);
+    } else {
+      // Exclude the user if they've manually changed the pref
+      let pref = prefs.get("layers.gpu-process.enabled");
+      let isBranchValid = true;
+      if (branch == "disabled") {
+        isBranchValid = (pref == false);
+      } else if (branch == "control") {
+        isBranchValid = (pref == true);
+      }
+      if (!isBranchValid) {
+        branch = "usermod";
+        yield Experiments.instance().setExperimentBranch(kSELF_ID, branch);
+      }
+    }
+  }).then(
+    function() {
+    },
+    function(e) {
+      Cu.reportError("Got error during bootstrap startup: " + e);
+    });
+}
+
+function shutdown(reason) {
+  if (reason == ADDON_DISABLE || reason == ADDON_UNINSTALL) {
+    // when the add-on is being disabled/uninstalled
+    prefs.reset("layers.gpu-process.enabled");
+  }
+}
+
+function install() {
+  // no-op
+}
+
+function uninstall() {
+  prefs.reset("layers.gpu-process.enabled");
+}
new file mode 100644
--- /dev/null
+++ b/experiments/gpu-process-beta53/code/install.rdf
@@ -0,0 +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>gpu-process-beta53@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>53.0</em:minVersion>
+        <em:maxVersion>53.0</em:maxVersion>
+      </Description>
+    </em:targetApplication>
+
+    <!-- Front End MetaData -->
+    <em:name>GPU Process on Windows (Beta 53)</em:name>
+    <em:description>Measures the impact of enabling GPU Process in Firefox Beta 53 on Windows</em:description>
+    <em:aboutURL>https://bugzilla.mozilla.org/show_bug.cgi?id=1350092</em:aboutURL>
+  </Description>
+</RDF>
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e7be021dd26d6637514a0293335d0208b6b7e883
GIT binary patch
literal 5480
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
K;aJrFocn($pZxm(
new file mode 100644
--- /dev/null
+++ b/experiments/gpu-process-beta53/manifest.json
@@ -0,0 +1,18 @@
+{
+  "publish"     : true,
+  "priority"    : 2,
+  "name"        : "GPU Process on Windows (Beta 53)",
+  "description" : "Measures the impact of enabling GPU Process in Firefox Beta 53 on Windows",
+  "info"        : "<p><a href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=1350092\">Related bug</a></p>",
+  "manifest"    : {
+    "id"               : "gpu-process-beta53@experiments.mozilla.org",
+    "startTime"        : 1490572800,
+    "endTime"          : 1491782400,
+    "maxActiveSeconds" : 1209600,
+    "appName"          : ["Firefox"],
+    "channel"          : ["beta"],
+    "minVersion"       : "53.0",
+    "maxVersion"       : "53.0",
+    "os"               : ["WINNT"]
+  }
+}