summaryrefslogtreecommitdiffstats
path: root/application/basilisk/experiments/test/addons/experiment-racybranch/bootstrap.js
blob: d77fd43452ed83b45460fc374382d4dd693d608b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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() { }