build/pgo/index.html
author Shawn Wilsher <sdwilsh@shawnwilsher.com>
Wed, 24 Feb 2010 08:37:03 -0800
changeset 38490 79462e4e234d85845cd15942b1df62b7a2aaac93
parent 23597 167b82ee716224a2d5e06fdb4083d44e0cf54461
child 95245 7c3cd4824f94609d4ad714bea9c687227c641e63
permissions -rw-r--r--
Bug 461199 (Part 29) - Fix dom tests. r=sicking

<script>
 /* ***** BEGIN LICENSE BLOCK *****
  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
  * the License. You may obtain a copy of the License at
  * http://www.mozilla.org/MPL/
  *
  * Software distributed under the License is distributed on an "AS IS" basis,
  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  * for the specific language governing rights and limitations under the
  * License.
  *
  * The Original Code is Mozilla Automated Testing Code.
  *
  * The Initial Developer of the Original Code is
  * Mozilla Corporation.
  * Portions created by the Initial Developer are Copyright (C) 2005
  * the Initial Developer. All Rights Reserved.
  *
  * Contributor(s):
  *   Bob Clary <bob@bclary.com>
  *   Jeff Walden <jwalden+code@mit.edu>
  *
  * Alternatively, the contents of this file may be used under the terms of
  * either the GNU General Public License Version 2 or later (the "GPL"), or
  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  * in which case the provisions of the GPL or the LGPL are applicable instead
  * of those above. If you wish to allow use of your version of this file only
  * under the terms of either the GPL or the LGPL, and not to allow others to
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
  
 function quitHook()
 {
   var xhr = new XMLHttpRequest();
   xhr.open("GET", "http://" + location.host + "/server/shutdown", true);
   xhr.onreadystatechange = function (event)
     {
       if (xhr.readyState == 4)
         goQuitApplication();
     };
   xhr.send(null);
 }
  
 function canQuitApplication()
 {
   var os = Components.classes["@mozilla.org/observer-service;1"]
     .getService(Components.interfaces.nsIObserverService);
   if (!os) 
   {
     return true;
   }
   
   try 
   {
     var cancelQuit = Components.classes["@mozilla.org/supports-PRBool;1"]
       .createInstance(Components.interfaces.nsISupportsPRBool);
     os.notifyObservers(cancelQuit, "quit-application-requested", null);
     
     // Something aborted the quit process. 
     if (cancelQuit.data)
     {
       return false;
     }
   }
   catch (ex) 
   {
   }
   os.notifyObservers(null, "quit-application-granted", null);
   return true;
 }
 
 function goQuitApplication()
 {
   const privs = 'UniversalXPConnect';
 
   try
   {
     netscape.security.PrivilegeManager.enablePrivilege(privs);
   }
   catch(ex)
   {
     throw('goQuitApplication: privilege failure ' + ex);
   }
 
   if (!canQuitApplication())
   {
     return false;
   }
 
   const kAppStartup = '@mozilla.org/toolkit/app-startup;1';
   const kAppShell   = '@mozilla.org/appshell/appShellService;1';
   var   appService;
   var   forceQuit;
 
   if (kAppStartup in Components.classes)
   {
     appService = Components.classes[kAppStartup].
       getService(Components.interfaces.nsIAppStartup);
     forceQuit  = Components.interfaces.nsIAppStartup.eForceQuit;
 
   }
   else if (kAppShell in Components.classes)
   {
     appService = Components.classes[kAppShell].
       getService(Components.interfaces.nsIAppShellService);
     forceQuit = Components.interfaces.nsIAppShellService.eForceQuit;
   }
   else
   {
     throw 'goQuitApplication: no AppStartup/appShell';
   }
 
   var windowManager = Components.
     classes['@mozilla.org/appshell/window-mediator;1'].getService();
 
   var windowManagerInterface = windowManager.
     QueryInterface(Components.interfaces.nsIWindowMediator);
 
   var enumerator = windowManagerInterface.getEnumerator(null);
 
   while (enumerator.hasMoreElements())
   {
     var domWindow = enumerator.getNext();
     if (("tryToClose" in domWindow) && !domWindow.tryToClose())
     {
       return false;
     }
     domWindow.close();
   }
 
   try
   {
     appService.quit(forceQuit);
   }
   catch(ex)
   {
     throw('goQuitApplication: ' + ex);
   }
 
   return true;
 }
 
 var list = 
     [
  "blueprint/sample.html",
  "blueprint/forms.html",
  "blueprint/grid.html",
  "blueprint/elements.html",
  "js-input/3d-cube.html",
  "js-input/3d-morph.html",
  "js-input/3d-raytrace.html",
  "js-input/3d-thingy.html",
  "js-input/access-binary-trees.html",
  "js-input/access-fannkuch.html",
  "js-input/access-nbody.html",
  "js-input/access-nsieve.html",
  "js-input/bitops-3bit-bits-in-byte.html",
  "js-input/bitops-bits-in-byte.html",
  "js-input/bitops-bitwise-and.html",
  "js-input/bitops-nsieve-bits.html",
  "js-input/controlflow-recursive.html",
  "js-input/crypto-aes.html",
  "js-input/crypto-md5.html",
  "js-input/crypto-sha1.html",
  "js-input/crypto-otp.html",
  "js-input/date-format-tofte.html",
  "js-input/date-format-xparb.html",
  "js-input/math-cordic.html",
  "js-input/math-partial-sums.html",
  "js-input/math-spectral-norm.html",
  "js-input/regexp-dna.html",
  "js-input/string-base64.html",
  "js-input/string-fasta.html",
  "js-input/string-tagcloud.html",
  "js-input/string-unpack-code.html",
  "js-input/string-validate-input.html"
     ];
 var interval = 3000; // 15000
 var idx = 0;
 var w;
 
 window.onload = function () {
     w = window.open("about:blank");
     window.setTimeout(loadURL, interval); 
 };
 function loadURL () {
     w.location.href = list[idx++];
     if (idx < list.length) {
 	window.setTimeout(loadURL, interval);
     } else {
         window.setTimeout(goQuitApplication, interval);
     }
 }
 var i;
 
 for(i=0; i < list.length;i++) {
     document.write(list[i]);
     document.write("<br>");
 }
  </script>