Bug 1317312 - Tabpaint test should not measure content process startup. r=mconley, a=jcristau
authorGabor Krizsanits <gkrizsanits@mozilla.com>
Tue, 03 Jan 2017 14:00:25 +0100
changeset 353703 d37e0d774b83e7b0f5355bed6e217c3c6ac03151
parent 353702 773f4844d11b299cce30a516fb73da281cc00c7e
child 353704 2eab2dda495abb9ee50f81c3d1b249eb770b9d7a
push id6795
push userjlund@mozilla.com
push dateMon, 23 Jan 2017 14:19:46 +0000
treeherdermozilla-esr52@76101b503191 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmconley, jcristau
bugs1317312
milestone52.0a2
Bug 1317312 - Tabpaint test should not measure content process startup. r=mconley, a=jcristau
testing/talos/talos/tests/tabpaint/bootstrap.js
testing/talos/talos/tests/tabpaint/install.rdf
testing/talos/talos/tests/tabpaint/tabpaint-signed.xpi
--- a/testing/talos/talos/tests/tabpaint/bootstrap.js
+++ b/testing/talos/talos/tests/tabpaint/bootstrap.js
@@ -23,16 +23,18 @@
 var { classes: Cc, interfaces: Ci, utils: Cu } = Components;
 
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/Task.jsm");
 Cu.import("resource:///modules/RecentWindow.jsm");
 
 const TAB_ANIMATION_PREF = "browser.tabs.animate";
 
+const PROCESS_COUNT_PREF = "dom.ipc.processCount";
+
 const TARGET_URI = "chrome://tabpaint/content/target.html";
 
 var TabPaint = {
   MESSAGES: [
     "TabPaint:Go",
     "TabPaint:Painted",
   ],
 
@@ -65,24 +67,27 @@ var TabPaint = {
     // is wait for the tabpaint.html content to send us a message to
     // get us moving.
     for (let msgName of this.MESSAGES) {
       Services.mm.addMessageListener(msgName, this);
     }
 
     this.originalTabsAnimate = Services.prefs.getBoolPref(TAB_ANIMATION_PREF);
     Services.prefs.setBoolPref(TAB_ANIMATION_PREF, false);
+    this.originalProcessCount = Services.prefs.getIntPref(PROCESS_COUNT_PREF);
+    Services.prefs.setIntPref(PROCESS_COUNT_PREF, 1);
   },
 
   uninit() {
     for (let msgName of this.MESSAGES) {
       Services.mm.removeMessageListener(msgName, this);
     }
 
     Services.prefs.setBoolPref(TAB_ANIMATION_PREF, this.originalTabsAnimate);
+    Services.prefs.setIntPref(PROCESS_COUNT_PREF, this.originalProcessCount);
   },
 
   receiveMessage(msg) {
     let browser = msg.target;
 
     let gBrowser = browser.ownerGlobal.gBrowser;
 
     switch(msg.name) {
--- a/testing/talos/talos/tests/tabpaint/install.rdf
+++ b/testing/talos/talos/tests/tabpaint/install.rdf
@@ -1,15 +1,15 @@
 <?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>tabpaint-test@mozilla.org</em:id>
     <em:type>2</em:type>
     <em:name>tabpaint test</em:name>
-    <em:version>1.0.0</em:version>
+    <em:version>1.0.1</em:version>
     <em:bootstrap>true</em:bootstrap>
     <em:description>Measures the performance of opening tabs</em:description>
     <em:creator>Mike Conley</em:creator>
     <em:multiprocessCompatible>true</em:multiprocessCompatible>
 
     <!-- Desktop -->
     <em:targetApplication>
       <Description>
index 4956d03b09855cb8b48874c73cca51616487321e..ad990811fcae9864a66566c52e04a68b7782f570
GIT binary patch
literal 9609
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
Ufr9?^1%#i6>(8(+B)?|=2U73zRsaA1