summaryrefslogtreecommitdiffstats
path: root/browser/experiments/test/addons/experiment-racybranch
diff options
context:
space:
mode:
Diffstat (limited to 'browser/experiments/test/addons/experiment-racybranch')
-rw-r--r--browser/experiments/test/addons/experiment-racybranch/bootstrap.js35
-rw-r--r--browser/experiments/test/addons/experiment-racybranch/install.rdf16
2 files changed, 51 insertions, 0 deletions
diff --git a/browser/experiments/test/addons/experiment-racybranch/bootstrap.js b/browser/experiments/test/addons/experiment-racybranch/bootstrap.js
new file mode 100644
index 000000000..e8278f50f
--- /dev/null
+++ b/browser/experiments/test/addons/experiment-racybranch/bootstrap.js
@@ -0,0 +1,35 @@
+/* exported startup, shutdown, install, uninstall */
+
+var {classes: Cc, interfaces: Ci, utils: Cu} = Components;
+
+Cu.import("resource:///modules/experiments/Experiments.jsm");
+
+var gStarted = false;
+
+function startup(data, reasonCode) {
+ if (gStarted) {
+ return;
+ }
+ gStarted = true;
+
+ // delay realstartup to trigger the race condition
+ Cc['@mozilla.org/thread-manager;1'].getService(Ci.nsIThreadManager)
+ .mainThread.dispatch(realstartup, 0);
+}
+
+function realstartup() {
+ let experiments = Experiments.instance();
+ let experiment = experiments._getActiveExperiment();
+ if (experiment.branch) {
+ Cu.reportError("Found pre-existing branch: " + experiment.branch);
+ return;
+ }
+
+ let branch = "racy-set";
+ experiments.setExperimentBranch(experiment.id, branch)
+ .then(null, Cu.reportError);
+}
+
+function shutdown() { }
+function install() { }
+function uninstall() { }
diff --git a/browser/experiments/test/addons/experiment-racybranch/install.rdf b/browser/experiments/test/addons/experiment-racybranch/install.rdf
new file mode 100644
index 000000000..cebaede56
--- /dev/null
+++ b/browser/experiments/test/addons/experiment-racybranch/install.rdf
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+
+<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>test-experiment-racybranch@tests.mozilla.org</em:id>
+ <em:version>1</em:version>
+ <em:type>128</em:type>
+
+ <!-- Front End MetaData -->
+ <em:name>Test experiment racybranch</em:name>
+ <em:description>An experiment that sets the experiment branch in a potentially racy way.</em:description>
+
+ </Description>
+</RDF>