Bug 1229104: Run an e10s A/B experiment on Beta 44. r=rvitillo+felipe
authorVladan Djeric <vdjeric@mozilla.com>
Mon, 14 Dec 2015 20:21:50 -0500
changeset 61 a3da9f5eca7d839857bed2c3d5d53cc516dfbab5
parent 60 f8c39c544bf3ae3f5ea0d99c09d0ea80c1e159df
child 62 64b8867343ca8b6ca331125b66f76f7b9bc1aed5
push id47
push uservdjeric@mozilla.com
push dateTue, 15 Dec 2015 02:03:16 +0000
reviewersrvitillo
bugs1229104
Bug 1229104: Run an e10s A/B experiment on Beta 44. r=rvitillo+felipe
experiments/e10s-enabled-beta/code/bootstrap.js
experiments/e10s-enabled-beta/code/install.rdf
experiments/e10s-enabled-beta/experiment.xpi
experiments/e10s-enabled-beta/filter.js
experiments/e10s-enabled-beta/manifest.json
new file mode 100644
--- /dev/null
+++ b/experiments/e10s-enabled-beta/code/bootstrap.js
@@ -0,0 +1,114 @@
+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");
+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-enabled-beta-20151214@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 A11Y_WAS_USED_PREF = BRANCH + "disabled-for-a11y";
+
+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;
+
+    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)) {
+          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;
+        }
+
+        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);
+        }
+        return;
+
+      case "first-session-control":
+        TelemetryLog.log(SELF_ID, ["Second session, setting branch to 'control'."]);
+        yield Experiments.instance().setExperimentBranch(SELF_ID, "control");
+        expected = false;
+        break;
+
+      case "first-session-experiment":
+        TelemetryLog.log(SELF_ID, ["Second session, setting branch to 'experiment'."]);
+        yield Experiments.instance().setExperimentBranch(SELF_ID, "experiment");
+        expected = true;
+        break;
+
+      case "control":
+        expected = false;
+        break;
+
+      case "experiment":
+        expected = true;
+        break;
+
+      case "user-disabled":
+      case "force-disabled":
+      case "a11y-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) {
+      TelemetryLog.log(SELF_ID, ["Setting branch to 'force-disabled' because browserTabsRemoteAutostart != expected."]);
+      yield Experiments.instance().setExperimentBranch(SELF_ID, "force-disabled");
+      restoreConfig();
+    } else if(Preferences.get(A11Y_WAS_USED_PREF)) {
+      TelemetryLog.log(SELF_ID, ["Setting branch to 'a11y-disabled' because accesibility had been used in this profile."]);
+      yield Experiments.instance().setExperimentBranch(SELF_ID, "a11y-disabled");
+      restoreConfig();
+    }
+  }).then(
+    () => Services.prefs.savePrefFile(null),
+    e => Cu.reportError("Got error during bootstrap startup: " + e)
+  );
+}
+
+function restoreConfig() {
+  Preferences.reset(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-") {
+      restoreConfig();
+    }
+  });
+}
new file mode 100644
--- /dev/null
+++ b/experiments/e10s-enabled-beta/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>e10s-enabled-beta-20151214@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>44.0</em:minVersion>
+        <em:maxVersion>44.0</em:maxVersion>
+      </Description>
+    </em:targetApplication>
+
+    <!-- Front End MetaData -->
+    <em:name>Multi-process Firefox A/B Test</em:name>
+    <em:description>Measure the effect of multi-process Firefox</em:description>
+    <em:aboutURL>https://bugzilla.mozilla.org/show_bug.cgi?id=1229104</em:aboutURL>
+  </Description>
+</RDF>
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..028adccf714ba150a9557e576534cb2c6c73318c
GIT binary patch
literal 5869
zc${@u1yCHyvRyn_a1Fr|9D?iOE{nSdw?&r??(Xhxfh0J=3BhG?NN@-q+-;Gc`>X!H
z@7;QDre><TYr3bWx~oplQBy)fCIkQgF9671QF1A{??IT@0DucF0PvSqMMg`4O#vj!
z;pFUX=jdq8?&fa3lHnzi>a;XCrWosIGh`C`i`*eS(fC@rjqH6aoAse3ONk|uAxk|+
zoZo~A7VU8Qn`lRwRMs?Uk*(H~<6Zyf56|9WC%YF9(8p?v*7%E#@e3c{mw|m-2x7E&
zWmHWHIK`+oNtv~PsNW)_$UTz?a_jF1k&t0XC5U_e!a?=&kqUvxIRJTFMPg(u#E@Uq
z7kiKi>A)ur4%`)gHR;_NdR!&OTp~xiAPGbfwBYo#xlGc-onODG3uP|PXzvAXTk+6I
z?ErpeWfny68SjyKt!`Mv-d2LJ3vR88J539o5i;wkC<0hO1Qki13Rzq)!RK*1^cv_P
zxk*t<k((QdY|1pz>!=}3MG{LveW4pACr(k^6;bIsCCy<vTl8$+F;Ji`P|VOhp^%U?
zI0R7S;yUMYiw-zc3iI>YSi_HO2{A{>#EGeRG(HVr&qp#7#-06qIUpSnToCd~qI(3J
zD$;y;t;sY8QS9mf9w0ka8{7mk*8-H8I#{NBw*Z*(<gc&q1wkc+Hy$Y_xw<8^Nd>We
z6G>JF#|TtU;R$ny^tF>~0q8GeQD}n5DzDdOf)&hgwKqv(xU``{a%d}yo_kV?5;8iB
z%X`&!-?He9grt!Q!;Lpn*P-~-(GKku<b5)!8r9S7R1TRY!lP{&kVc;ydjZ}qq)f;X
z^W2*}#Z*!pUS0zdFEBiDn0diwimXL|OaB+U3UMx}T|dc?(H5`*b~u027Odn?XT8$9
z*sPxt4YZa>FS5O4an=BvDX+)799Z^@PN!TENQ|*dGN)kq;rrty`BX4fGds<)rb2x#
zNC;r=_yu7f=84KC_$JFj8S7x%HU&2tomwdtA{GbEW12b127=!(+aG*80>$$t{3|*v
zb;4KAW4@Y;>}>1QLNa$Su9MX3tPH%~Kn5}U?>a$^zIR5odwh})2C~#uY+tn*=-&B}
z-L!<#amhUNUSc9-;~BIAv+s5=N=Wl$tLlF>^V^UNVC%APCCaXYg;}z%&V!B34Ydu5
z_KjBW70E6fe3pME+-rdwXSDlh7`J|?Bwcx-LQcMBXf6)xjX4WX&aU5#9zt*T7Oz43
zy}yYq5q0?7VRd4U3QLiwyT)OgZ<LSRDm=odB4*oKeq8O($ChW+M~wANEpIfbyd?BZ
z;GkSkEPDYdd*c<tb6wuB>N~2{RQ{~&37UH^N4DBbca+*Y-Xgnt5E$4jO!@jbb0p>)
zd^70<FsFkPc{$aL+d`^VKj&578L7SVVsi)$HS?qxJKNT}88T2~yVKI&WP2sz1eHv-
zx@Ll$Ts+N?yq`|-YRV6*3;U5pFS>$Y?v-5I`@FIk-<t@JHk}kpYu(Kxl%67a;IaLA
z{9RdC(ZLk?$h;DgAghR9Z~9TYVtY3Jqa^={+01*#-k;=j%h(_a9C+{3xb0n`UfNKm
zdHVY$mwfw&dnF^v+h3T-Eznr*lhW<8RZ0IYpQC&PMPBq+VqxXfv?9ZTZCWIK4q$td
zrEs{m%v9R0_4zzegzN7r@~zBWab{8dYOTra>kp2@Sgwg-*e{lSn!O6-n2Za&StOjs
z3+s)lWq}>I$wxlV{SQOdOjoxHqYbkuTH0k)BCJn)9|_Y>(2pl=dGsdLU-%yPq_mBE
z8~0Fg3KHR^w=uC8yd`ELjj?cPd53j>2XgjqZ95@25U<<ZJFHFB-O2ng-s(x8@Gee4
zq`^=P1M<OncP4)Lx*W}|Qq1c|d-@#aPJbujxDh5l7aw>|DXS4+wy@-)91?eEGd`N$
zB-S2k>%3Hx?r&numCZ^Zb@d^Z#3DIb+whafCdrW^Y~LcRBW1?S!1xLMi|>LLi_{gr
z?%F3{gV>a*xIb~d<_VlH*VsnenC8Lj`vIyIN$}$4v95}hn1~W=U-rTr#i^7A|At{#
zkd60~*g1FM%@4G$^Ucy}5L)(qo)r@3O@O3T-a)#908_i_%UeG2;PKbfuY06Xp5ROp
zhb6$n=hQ<vgf6Li_gma3e>kh$bKL36{5~mKq<T^rvIRfn(L)0L9r2Mz!>6Af`Ok6d
zsU{0&a`Ne92EWp^z(!BS{SeBvr40wD*w^;bgOku3K6j61dLic#qVu>;r;kjo{OoOJ
z)A%ik)<z(SPEw+1sSeO>c~)KRW@42$jxtFZqi42;Oj#Q?X1CTxzk2%?d+{mXCH4V}
zw8QZNwuHZ&tmCom`q=Gfvq#>piskV1-@e9n378!CqhcR1kRgLLgCgSyX<<s~90sJV
z%e3pCdyGCc84?>)yJbD~at%+%Io?PfUbX@~#c(IKoFmcu6r$wZiK$*aoI8Q{7p(_h
zAw5`rYLOj1PJ9aWYAMydi5Ai3*q2Ujs1AG~9S5^TQSiJoqM<NC5>oZ!y{)K(1g>|d
zLGh*uLau;JKR8bD;=lwo{^zFU)N-w`Vtuv*lNEcByJ=?{i^>HPSE9T=V#$zX9O8<n
zjb7$l(<-$Kw#D5!`P83)rysw0Y<z~dYw5#ri=Ha`@jKJnBj=g6sUFRtwA#5bqZ7Jw
z{!UZhSRQ*PVM}V9wZ_|$dxY^7N=M<{eoPxg&aZr0BdSbvyuZpgdGNF`m6Ti}W^<~>
z(WF)MgXgSPUfh~Z2_AFo58k?U!Rz;xjSjQg+RoB@?&HB$0XhbW3YOCoMp}V2kQm!v
zxSN`mCu)0-f<6dQ)9n~_B`Cu5hxY_|j&B#%<5YdzEYyxvg3xKmm8aG7wn4@`q=?O0
zus1=e0DO5$@k1&_Q5{CCz(8>yKyT3d<$z$xn;K4vb%DuZG;)N=9y>J`Tr64apocbl
zUo5qkj5($sfrd|x{^v$b47t8>suDRDwmi5JqP3V(boGIemn@ERV@f~#`?*7@qpCL0
zdLAruw>sMnBO^OTpC{z0gTw<_ABMsh{nTcmD!7Eq12h}^ySrtqY>#5jB|PI2<hz?R
z+hI2kX!HI}-=^yr%xg>ndWKNKpbR_(d0p^<)0QjCh{EkOjF$s_K<M&KPzec9*aR$I
z(qr!RG>BFVm7(J&bxq)nfX`fwy*AFU$kvMZ2+J#EiN?_p5MhCrzF_!quJupqXj@G0
zstHyYSDu;L?(x*;4M)>tSdbf#xNZEwqC<`-?Y(#9*J?uVh7NvLp#30SqfBr@z-Uh>
zez(v2Oms;seD2|Qn?3@3HuavOnv0!`W^L!6R6^Vw?-|4L%)(#hs&b5m?H0R~mv&Sb
z5tJ$=HF{H)FR6EUp~L7mDK|z^L>Df9_RXCs*Ih4ZYu@3=Y(l@{DW5a%2=U%un+o+5
z6t4DaTGL2IsV^iH3qfA7Y*V>N2J|ib%8OxO?aLrh#5*mxR8DX%_j8>~&z0AkmXxjz
zj^00zAgaV31c5GSNvsV;FMLPDenuU|RTlY-ce8u5$b2`PnF?>XQGS!=;2X)qE%>5t
zpo2HgWQ1mIc;aK1zj~^5h-M*r*7;Z!wU}x$za{nS^@3@(ER6~F_N2WQbD<T8K}iLH
zae?Lsp1YyDMV;-{W-E*wxq614;zll-7{#?_n-X(BW`qpxP^Kq)*nUlcAJuc_FfG|N
z1kY)BZ8qv?e(xB|ZS!sJ<0{qNKmordZe+H-T8LO^{V-10oR|bhg<l;Su!==3>YI~>
z`ETriFdB*RBOHEWxF#+x=jqzC@>BM-e*#2bFYo|L`(o!rlQQtZDaf4knG+GA=i3)G
zn5ghEL*=pdjf>w!rk}XFIPn{cFQCJx5{QI?8FQOPZza}f*rp6J*n1_%)6(}bo-fL6
zJBvdlznioBliIma8~jGi^#kkpgb2*>tu{ge$*BE+Xi~h;=s`Y#+}c3JGkeZtjcdQ8
zq4i`jE)VYS;l1$0j~B9;gC-xn@GP~fy<@kBE6d-#+#yThDL6a-ew~=>oV0c^lZ#tZ
zwkh3Oq82hXf+<Qu>FZlUeC~1U&e^%yH+0W!aEwo|6ladET>oSs9U#>shxeLbp%^+D
z*u9CG6biB1B1-rm(;mp~j-juM__|2Pumv%N5hT2(*^>3SD64W%!dZ&BKC8i6S;}Qr
zztolbM^$HWX8lR~l)S!krZiabt<%!-X10(9*Qir(#>b^A^W!(TF6=8(9g!B)A5(|6
z?xHnFLvP$i&Z_+JKBZ9jqjp}RlatxT?6=CX8G5{-b#Z4BZ7W_}ZwzA5cg8#iZ4Rtc
z%gALqtZq06pCy+)(MqML-{>W<y+HqFfHkfdrT`(4k0Qc0gUc%B9J=chao@LOACGJ5
zvTs8;9rHnQd}i=H-F#t)Lt}A)QZ(}Hl@N7~GGeqJIL}~-3|-sSMRv(-ds~!Y5tLY&
zRs+9YVQg3TA#-;5zD$T{zAZy=agbkc#M0D-M?hu#bJ=M`ga7q6Zw;xCZxCmlE4v&7
z%;+%(Z+)Ba@BFA|_5&fFNMCI}$}PCulc@dw=gHC_O76Ax2h~Xg0H78L0KojCwFA3*
zm^(VMyIER0X?}Ohc}LiBLBuRL`a=2D=J%H0ErN3y$~g|Q-AE1?_;f(~io7Quq9F8G
zAIr7l8T+PExYAOhX<?k2+inEQ4nblVbJ%C7e*)3UEgYs)@G_x~t8C$pp%45DdH2E#
zVp5Y@9r8{gIZ#G|P~BK(wnK4?gn2Aa%=YUfyXBXAw(M|Wr#?LjaroPg3+{x(OF;Q#
zv6MsPsnM0KpKa@F8ABTE^YS9LjAFzPkfqfmSSCwi2n%KS0#z{^$&I}3)PgkZ%%;Vo
zPzDo!Y*~UFYs7ApRMxsdkCVTXmH@?6c&NvAv;5eCd|R<dVyqntf)juGQsuLWXUA=p
zb_XYt4RS}&S&+s#Baha;Bx7FQC<Oa<5)#KK07_3UGOlAv5mR%V&(^+aj3li%t7s`!
z7!M40=-NT2zd2BOfF|{7uVCDXn25#?@>tI&k8(6GLl5_PTIz&KKln816B{Vdn_4Nv
zUn}5H+|d#b8xF<$g#>#V5ShVJSEWwFe4E)^Z3I?JnQcVlyH#p}*3n;R5fRF3$t*s9
z@yHp;5!RbbyBeHnKK!yj;0ZiAD6+oj$w?9VHa}eTvEL-M{ati&Vn6t(@q0TuGxi}z
zrq?sz@5Dn*qvQ~AeAMfa0RRvl0D$#J``+2v!`;Kp+=boVy;Ijom5v|xDc_WHg~PFW
zIJ~f(qc9f(VKL<x1rPU26^3BWLSKI!-I9|0$?eH&A812+Xz4HZH~2#i6CbQ8#keUk
z8&7$OVWd0}lL?01WiolS^8pvcrRkXb%2Y*Ye!O{1QPbHavLywwxuQ+jNO7`dLIb^^
z3U2KZt-{~yy;!^jLchlK1>>LiW(vI;Wqm%owtgq#hAt_Y+A6D+&<{52k{5REa!j{K
z25B~WpQ*<+|Ga-Je%_vGlB%Dy>r*7h3~5N%ZKeXDF9O=(<#EZ_DDjI@ji3E$*Zh70
z_qra-5UqH$pIvD5N-qTjMxcVNB2UZDV@_PN_Fy%+bZnJU*D6+7`X9f$nclJz5$BS%
z*wFS9*9xNs&E=wJ;`vG->k@z;NMX`t?~yf<Mvxfj6noIU(sDXlM1&baTDJ>m%qq19
zxSUEtVC!SZN65UBV)DZb;(W4f#D&(xa`84J!YR(T+Z+46yGvI~>><Eo&*zp-LCR$l
zoN<sYk?gW1?pwuX{pNP+{sG|3JIWTPAvYZSw^-92$s_Y_7%)S58*_p#KETi&!p5vt
zc}6mFg4rc!QQTo}3leKlXpxJ&UL-NhRn_9F0<%gL-cAY%sf;WHnO|N2AJzRWn+s-W
z5a`WVKWP%aDmCi^%okzOR+BBk_CY=%jqx+c7#AR_4vQVL(!0HT%Q}l<b*sjGo~cDl
z@mu-R!rtTC19NWj5;k2>hhpYMgIDA7s4M3<MPeoHDguCeH=Q*!tE`7l9ERoH+Uwhc
z<X)uRgCg{<Rr>p&?_L+a_%Txn{sg)31nCC4U2daRJ#ZwlV|l_{N5vnEYTKI(Qn|gx
z)<JpD`27(+=VtiP70(az2}{1;O_05?)P2dl6ini=6hbo)TV6$}IuF$G8$TbH{%$H*
zxZu25nR!()9bC90rMA?xrE=}#I7<!hJESi@lC@Vf@>&ad+*`r<p5)@>m~)IL_28gc
zZSbX!GPD&+#*R<Ly2Um2dgJu-nGmHmMrJPH%V$EZElLEt_fUb<vYf)9D!2o!diEMB
zmacl09;+NmMwNai>IK&n|EBDD3GEXxwvG!csn*~QTB29@pUx?L4ZVLvjjnx()CFZR
zuiwagbiBtuA2DsH!N*c_{gVxxYdt?~Uxsq_VA=dpkC4~sfY=zVw(V=rUWa(bfv031
z;hWzS<Bd8(Sk>FpzqoQA4qws~{-FB?uNObJKVUx6IH@pUI~n-YJP8I<uMs5G^|+)d
zws$$4dk?3KK~JltK6}K}5PmF)ty8ox9S%+CO}qUx*x{>NyAV4nE#qbCFXMDqb~2I>
z({<gRR5{ZXYTa4+j8MhU+RUb-I%C#U@$5e^%heSc)^8b$)4J{{5w{RYtkxD0<rA&e
z28Sj%D?yP}I?o@_xT@QoWoIu(CRNpxe)yP94>hMG6?sn6KtZ7J>Pqm}j(0-(-l6s$
z36mWrkNcEh@QV^HpUBku0ee1{d|v&zp0`I5U=f{sDOKM~26Z5p0f)V=F=yJHFr%(_
zQ%2OMhJKUI^B%V^0ak5pIB6_N3K5}7Eo;HYOXV4#OfMxA`mrN+18@HY)c#@w-^Spi
zb^nnF5&p>tnuG1Et=v7>ovh==R4{|z0S3<CqW#CoD!xp}ICMy(sjE1vZ$WvL4Nm5_
zzcq_r=CuJ&AAXS}rEhChEu>)#e>jkok^}UW7X1Mzt<q{p(ss8^f9kKc_2A0-B=%U}
zSNVvJfv&LCZ<s7>r6B!PnfFdmxTs9o0<3N~sPaLl(@O+j%+&KhX($%<Bew-3!mJ`U
z<Yr29JWVUu!~4zi4jw-^<^lsJn=nJTUdSFt{cKcI+BU;+ntI`;|H4sMim;jGnI@6<
zoa5hL+{%j4WdBF<`m+fB69?*UjXAD7p~T9>rZ|VK#Kt@hn`qE@H_N?#4&j`G3@fX$
zu}@v8z($pkxIPm;xC0fjSqV~Tv5e@rH87-%FkuuSGfqye!9WUZ&NR5-eO4-*ls+so
z!X}j13k?lrtAZgtyZqID&b*r|!XKbPKqN%^?*#4tjX(szf1zvt*8||ccPW1j1OWA)
z9f<vJJ<Gou{wI|C+mH|E-!bo>LI1Oc{tg<S@IP17KRx_2Cx3fDCi;&VQd2@f{p$eA
OpDFO?+5)1#r2hdG1J&37
new file mode 100644
--- /dev/null
+++ b/experiments/e10s-enabled-beta/filter.js
@@ -0,0 +1,3 @@
+function filter(c) {
+  return c.telemetryEnvironment.settings.telemetryEnabled;
+}
new file mode 100644
--- /dev/null
+++ b/experiments/e10s-enabled-beta/manifest.json
@@ -0,0 +1,18 @@
+{
+  "publish"     : true,
+  "priority"    : 2,
+  "name"        : "Multi-process Firefox A/B test",
+  "description" : "Measure the effect of multi-process Firefox",
+  "info"        : "<p><a href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=1229104\">Related bug</a></p>",
+  "manifest"    : {
+    "id"               : "e10s-enabled-beta-20151214@experiments.mozilla.org",
+    "startTime"        : 1450051200,
+    "endTime"          : 1450915199,
+    "maxActiveSeconds" : 864000,
+    "appName"          : ["Firefox"],
+    "channel"          : ["beta"],
+    "minVersion"       : "44.0",
+    "maxVersion"       : "44.0",
+    "sample"           : 0.15
+  }
+}