Merge the last green changeset on mozilla-inbound to mozilla-central
authorMarco Bonardo <mbonardo@mozilla.com>
Fri, 29 Jul 2011 11:48:24 +0200
changeset 74298 f5f1e38225404126875f536c2875ca6a70150bca
parent 74277 cef1817c3b13bcb5065b721a35dee94a2940e339 (current diff)
parent 74297 74a4b995cfe95fde5d2a842dbca5168ad265ec90 (diff)
child 74309 6e4e476f00772e57fbdb453ef61e6e753fe982fe
push id235
push userbzbarsky@mozilla.com
push dateTue, 27 Sep 2011 17:13:04 +0000
treeherdermozilla-beta@2d1e082d176a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone8.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge the last green changeset on mozilla-inbound to mozilla-central
content/base/test/file_bug391728.html
content/base/test/file_bug391728_2.html
content/base/test/test_bug391728.html
testing/sisyphus/bin/appinfo.js
testing/sisyphus/bin/build.sh
testing/sisyphus/bin/builder.sh
testing/sisyphus/bin/buildinfo.html
testing/sisyphus/bin/check-spider.sh
testing/sisyphus/bin/checkout.sh
testing/sisyphus/bin/clean.sh
testing/sisyphus/bin/clobber.sh
testing/sisyphus/bin/combo.sh
testing/sisyphus/bin/create-directory.sh
testing/sisyphus/bin/create-profile.sh
testing/sisyphus/bin/dateparse.pl
testing/sisyphus/bin/download.sh
testing/sisyphus/bin/each-to-html.pl
testing/sisyphus/bin/edit-talkback.pl
testing/sisyphus/bin/edit-talkback.sh
testing/sisyphus/bin/firefox.diff
testing/sisyphus/bin/get-build-info.html
testing/sisyphus/bin/get-extension-uuid.pl
testing/sisyphus/bin/include.mk
testing/sisyphus/bin/install-build.sh
testing/sisyphus/bin/install-extensions-1.html
testing/sisyphus/bin/install-extensions.sh
testing/sisyphus/bin/install-plugins.sh
testing/sisyphus/bin/library.sh
testing/sisyphus/bin/master.sed
testing/sisyphus/bin/memory.pl
testing/sisyphus/bin/mips.pl
testing/sisyphus/bin/quit.js
testing/sisyphus/bin/run-mozilla.diff
testing/sisyphus/bin/sayvars.sh
testing/sisyphus/bin/set-build-env.sh
testing/sisyphus/bin/start-spider.html
testing/sisyphus/bin/test-setup.sh
testing/sisyphus/bin/tester.sh
testing/sisyphus/bin/timed_run.py
testing/sisyphus/bin/uninstall-build.sh
testing/sisyphus/bin/userhook-checkspider.js
testing/sisyphus/data/firefox,1.8.0,debug.data
testing/sisyphus/data/firefox,1.8.0,opt.data
testing/sisyphus/data/firefox,1.8.0-test,debug.data
testing/sisyphus/data/firefox,1.8.0-test,opt.data
testing/sisyphus/data/firefox,1.8.0-too-much-gc,debug.data
testing/sisyphus/data/firefox,1.8.1,debug.data
testing/sisyphus/data/firefox,1.8.1,opt.data
testing/sisyphus/data/firefox,1.8.1-test,debug.data
testing/sisyphus/data/firefox,1.8.1-test,opt.data
testing/sisyphus/data/firefox,1.8.1-too-much-gc,debug.data
testing/sisyphus/data/firefox,1.9.0,debug.data
testing/sisyphus/data/firefox,1.9.0,nightly-darwin.data
testing/sisyphus/data/firefox,1.9.0,nightly-linux.data
testing/sisyphus/data/firefox,1.9.0,nightly-nt.data
testing/sisyphus/data/firefox,1.9.0,opt.data
testing/sisyphus/data/firefox,1.9.0-gcov,debug.data
testing/sisyphus/data/firefox,1.9.0-gcov,opt.data
testing/sisyphus/data/firefox,1.9.0-jprof,debug.data
testing/sisyphus/data/firefox,1.9.0-jprof,opt.data
testing/sisyphus/data/firefox,1.9.0-test,debug.data
testing/sisyphus/data/firefox,1.9.0-test,opt.data
testing/sisyphus/data/firefox,1.9.0-too-much-gc,debug.data
testing/sisyphus/data/firefox,1.9.1,debug.data
testing/sisyphus/data/firefox,1.9.1,nightly-darwin.data
testing/sisyphus/data/firefox,1.9.1,nightly-linux.data
testing/sisyphus/data/firefox,1.9.1,nightly-nt.data
testing/sisyphus/data/firefox,1.9.1,opt.data
testing/sisyphus/data/firefox,1.9.1-jprof,debug.data
testing/sisyphus/data/firefox,1.9.1-jprof,opt.data
testing/sisyphus/data/firefox,1.9.1-test,debug.data
testing/sisyphus/data/firefox,1.9.1-test,opt.data
testing/sisyphus/data/firefox,1.9.1-too-much-gc,debug.data
testing/sisyphus/data/firefox,1.9.2,debug.data
testing/sisyphus/data/firefox,1.9.2,nightly-darwin.data
testing/sisyphus/data/firefox,1.9.2,nightly-linux.data
testing/sisyphus/data/firefox,1.9.2,nightly-nt.data
testing/sisyphus/data/firefox,1.9.2,opt.data
testing/sisyphus/data/firefox,1.9.2-test,debug.data
testing/sisyphus/data/firefox,1.9.2-test,opt.data
testing/sisyphus/data/firefox,1.9.3,nightly-darwin.data
testing/sisyphus/data/firefox,1.9.3,nightly-linux.data
testing/sisyphus/data/firefox,1.9.3,nightly-nt.data
testing/sisyphus/data/firefox,1.9.3-tracemonkey,debug.data
testing/sisyphus/data/firefox,1.9.3-tracemonkey,opt.data
testing/sisyphus/data/firefox,1.9.3-tracemonkey-test,debug.data
testing/sisyphus/data/firefox,1.9.3-tracemonkey-test,opt.data
testing/sisyphus/data/js,1.8.0,debug.data
testing/sisyphus/data/js,1.8.0,opt.data
testing/sisyphus/data/js,1.8.0-test,debug.data
testing/sisyphus/data/js,1.8.0-test,opt.data
testing/sisyphus/data/js,1.8.1,debug.data
testing/sisyphus/data/js,1.8.1,opt.data
testing/sisyphus/data/js,1.8.1-test,debug.data
testing/sisyphus/data/js,1.8.1-test,opt.data
testing/sisyphus/data/js,1.8.1-too-much-gc,debug.data
testing/sisyphus/data/js,1.9.0,debug.data
testing/sisyphus/data/js,1.9.0,opt.data
testing/sisyphus/data/js,1.9.0-gcov,debug.data
testing/sisyphus/data/js,1.9.0-gcov,opt.data
testing/sisyphus/data/js,1.9.0-test,debug.data
testing/sisyphus/data/js,1.9.0-test,opt.data
testing/sisyphus/data/js,1.9.0-too-much-gc,debug.data
testing/sisyphus/data/js,1.9.1,debug.data
testing/sisyphus/data/js,1.9.1,opt.data
testing/sisyphus/data/js,1.9.1-test,debug.data
testing/sisyphus/data/js,1.9.1-test,opt.data
testing/sisyphus/data/js,1.9.1-too-much-gc,debug.data
testing/sisyphus/data/js,1.9.2,debug.data
testing/sisyphus/data/js,1.9.2,opt.data
testing/sisyphus/data/js,1.9.2-narcissus,debug.data
testing/sisyphus/data/js,1.9.2-narcissus,opt.data
testing/sisyphus/data/js,1.9.2-test,debug.data
testing/sisyphus/data/js,1.9.2-test,opt.data
testing/sisyphus/data/js,1.9.3,debug.data
testing/sisyphus/data/js,1.9.3,opt.data
testing/sisyphus/data/js,1.9.3-narcissus,debug.data
testing/sisyphus/data/js,1.9.3-narcissus,opt.data
testing/sisyphus/data/js,1.9.3-test,debug.data
testing/sisyphus/data/js,1.9.3-test,opt.data
testing/sisyphus/data/js,1.9.3-tracemonkey,debug.data
testing/sisyphus/data/js,1.9.3-tracemonkey,opt.data
testing/sisyphus/data/js,1.9.3-tracemonkey-test,debug.data
testing/sisyphus/data/js,1.9.3-tracemonkey-test,opt.data
testing/sisyphus/prefs/mail-user.js
testing/sisyphus/prefs/public-user.js
testing/sisyphus/prefs/test-user.js
testing/sisyphus/talkback/linux/Talkback.ini
testing/sisyphus/talkback/mac/Talkback.ini
testing/sisyphus/talkback/win32/Talkback.ini
testing/sisyphus/tests/mozilla.org/download-page/collect-urls-userhook.js
testing/sisyphus/tests/mozilla.org/download-page/test.sh
testing/sisyphus/tests/mozilla.org/download-page/userhook-ftp.js
testing/sisyphus/tests/mozilla.org/download-page/userhook.js
--- a/content/base/public/nsISelectionPrivate.idl
+++ b/content/base/public/nsISelectionPrivate.idl
@@ -44,23 +44,25 @@ interface nsISelectionListener;
 interface nsIContent;
 
 %{C++
 class nsFrameSelection;
 class nsIFrame;
 class nsIPresShell;
 struct nsTextRangeStyle;
 struct nsPoint;
+#include "nsIFrame.h"
 %}
 
 [ptr] native nsFrameSelection(nsFrameSelection);
 [ptr] native nsIFrame(nsIFrame);
 [ptr] native nsIPresShell(nsIPresShell);
 [ref] native constTextRangeStyleRef(const nsTextRangeStyle);
 [ref] native nsPointRef(nsPoint);
+native nsDirection(nsDirection);
 
 [scriptable, uuid(98552206-ad7a-4d2d-8ce3-b6fa2389298b)]
 interface nsISelectionPrivate : nsISupports
  {
     const short ENDOFPRECEDINGLINE=0;
     const short STARTOFNEXTLINE=1;
     
     attribute boolean interlinePosition;
@@ -123,10 +125,16 @@ interface nsISelectionPrivate : nsISuppo
 
     /**
      * Set the painting style for the range. The range must be a range in
      * the selection. The textRangeStyle will be used by text frame
      * when it is painting the selection.
      */
     [noscript] void setTextRangeStyle(in nsIDOMRange range,
                       in constTextRangeStyleRef textRangeStyle);
+
+    /**
+     * Get the direction of the selection.
+     */
+    [noscript, notxpcom] nsDirection getSelectionDirection();
+    [noscript, notxpcom] void setSelectionDirection(in nsDirection aDirection);
 };
 
--- a/content/base/test/Makefile.in
+++ b/content/base/test/Makefile.in
@@ -240,20 +240,17 @@ include $(topsrcdir)/config/rules.mk
 		test_bug28293.html \
 		test_bug28293.xhtml \
 		file_bug28293.sjs \
 		test_bug445225.html \
 		file_bug445225_multipart.txt \
 		file_bug445225_multipart.txt^headers^ \
 		test_title.html \
 		test_bug453521.html \
-		test_bug391728.html \
-		file_bug391728.html \
 		test_bug454325.html \
-		file_bug391728_2.html \
 		test_bug456262.html \
 		test_bug482935.html \
 		     bug482935.sjs \
 		test_bug590870.html \
 		file_bug590870.html \
 		test_bug590812.html \
 		file_bug590812.xml \
 		file_bug590812-ref.xhtml \
--- a/content/base/test/chrome/Makefile.in
+++ b/content/base/test/chrome/Makefile.in
@@ -44,16 +44,19 @@ include $(DEPTH)/config/autoconf.mk
 include $(topsrcdir)/config/rules.mk
 
 _TEST_FILES = \
     bug421622-referer.sjs \
     $(NULL)
 
 _CHROME_FILES = \
     test_bug206691.xul \
+    test_bug391728.html \
+    file_bug391728.html \
+    file_bug391728_2.html \
     test_bug421622.xul \
     test_bug429785.xul \
     test_bug430050.xul \
     test_bug467123.xul \
     test_title.xul \
     title_window.xul \
     test_bug549682.xul \
     file_bug549682.xul \
rename from content/base/test/file_bug391728.html
rename to content/base/test/chrome/file_bug391728.html
rename from content/base/test/file_bug391728_2.html
rename to content/base/test/chrome/file_bug391728_2.html
rename from content/base/test/test_bug391728.html
rename to content/base/test/chrome/test_bug391728.html
--- a/content/base/test/test_bug391728.html
+++ b/content/base/test/chrome/test_bug391728.html
@@ -1,19 +1,19 @@
 <!DOCTYPE HTML>
 <html>
 <!--
 https://bugzilla.mozilla.org/show_bug.cgi?id=391728
 -->
 <head>
   <title>Test for Bug 391728</title>
-  <script type="text/javascript" src="/MochiKit/packed.js"></script>
-  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <script type="text/javascript" src="/tests/SimpleTest/PluginUtils.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+  <script type="text/javascript" src="chrome://mochikit/content/MochiKit/packed.js"></script>
+  <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+  <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/PluginUtils.js"></script>
+  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
 </head>
 <body>
 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=391728">Mozilla Bug 391728</a>
 <p id="display"></p>
 <div id="content">
   <iframe id="testframe" width="150" height="250" src="about:blank"></iframe>
 </div>
 <pre id="test">
@@ -37,17 +37,16 @@ function blocked_plugin_detected(event) 
   gBlocked.push(event.target.id);
 }
 
 function unknown_plugin_detected(event) {
   gUnknown.push(event.target.id);
 }
 
 function init_test() {
-  netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
   // Make sure the blocklist is off for the duration of this test
   var prefs = Components.classes["@mozilla.org/preferences-service;1"]
                         .getService(Components.interfaces.nsIPrefBranch);
   prefs.setBoolPref("extensions.blocklist.enabled", false);
 
   if (!PluginUtils.withTestPlugin(start_test))
     SimpleTest.finish();
 }
@@ -115,51 +114,47 @@ function test_list(list) {
     ok(list.indexOf("plugin" + i) >= 0, "Plugin " + i + " did not send the event");
   }
   for (i = 1; i <= FALLBACK_COUNT; i++) {
     ok(list.indexOf("fallback" + i) < 0, "Fallback plugin " + i + " should not have sent the event");
   }
 }
 
 function test_normal(plugin) {
-  netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
   is(gUnknown.length, 0, "Should not have been any unknown plugins");
   is(gDisabled.length, 0, "Should not have been any disabled plugins");
   is(gBlocked.length, 0, "Should not have been any blocked plugins");
   test_style("solid");
   plugin.disabled = true;
   load_frame(test_disabled, "file_bug391728");
 }
 
 function test_disabled(plugin) {
-  netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
   is(gUnknown.length, 0, "Should not have been any unknown plugins");
   is(gDisabled.length, PLUGIN_COUNT, "Should have been disabled plugins");
   test_list(gDisabled);
   is(gBlocked.length, 0, "Should not have been any blocked plugins");
   test_style("dotted");
   ok(plugin.disabled, "Plugin lost its disabled status");
   plugin.disabled = false;
   plugin.blocklisted = true;
   load_frame(test_blocked, "file_bug391728");
 }
 
 function test_blocked(plugin) {
-  netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
   is(gUnknown.length, 0, "Should not have been any unknown plugins");
   is(gDisabled.length, 0, "Should not have been any disabled plugins");
   is(gBlocked.length, PLUGIN_COUNT, "Should have been blocked plugins");
   test_list(gBlocked);
   test_style("dashed");
   ok(plugin.blocklisted, "Plugin lost its blocklist status");
   load_frame(test_unknown, "file_bug391728_2");
 }
 
 function test_unknown(plugin) {
-  netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
   is(gUnknown.length, PLUGIN_COUNT, "Should have been unknown plugins");
   test_list(gUnknown);
   is(gDisabled.length, 0, "Should not have been any disabled plugins");
   is(gBlocked.length, 0, "Should not have been any blocked plugins");
   test_style("none");
   finish_test(plugin);
 }
 
--- a/content/html/content/src/nsHTMLInputElement.cpp
+++ b/content/html/content/src/nsHTMLInputElement.cpp
@@ -2718,25 +2718,34 @@ nsHTMLInputElement::GetTextLength(PRInt3
 
   *aTextLength = val.Length();
 
   return rv;
 }
 
 NS_IMETHODIMP
 nsHTMLInputElement::SetSelectionRange(PRInt32 aSelectionStart,
-                                      PRInt32 aSelectionEnd)
+                                      PRInt32 aSelectionEnd,
+                                      const nsAString& aDirection)
 {
   nsresult rv = NS_ERROR_FAILURE;
   nsIFormControlFrame* formControlFrame = GetFormControlFrame(PR_TRUE);
 
   if (formControlFrame) {
     nsITextControlFrame* textControlFrame = do_QueryFrame(formControlFrame);
     if (textControlFrame) {
-      rv = textControlFrame->SetSelectionRange(aSelectionStart, aSelectionEnd);
+      // Default to forward, even if not specified.
+      // Note that we don't currently support directionless selections, so
+      // "none" is treated like "forward".
+      nsITextControlFrame::SelectionDirection dir = nsITextControlFrame::eForward;
+      if (aDirection.EqualsLiteral("backward")) {
+        dir = nsITextControlFrame::eBackward;
+      }
+
+      rv = textControlFrame->SetSelectionRange(aSelectionStart, aSelectionEnd, dir);
       if (NS_SUCCEEDED(rv)) {
         rv = textControlFrame->ScrollSelectionIntoView();
       }
     }
   }
 
   return rv;
 }
@@ -2748,59 +2757,53 @@ nsHTMLInputElement::GetSelectionStart(PR
   
   PRInt32 selEnd;
   return GetSelectionRange(aSelectionStart, &selEnd);
 }
 
 NS_IMETHODIMP
 nsHTMLInputElement::SetSelectionStart(PRInt32 aSelectionStart)
 {
-  nsresult rv = NS_ERROR_FAILURE;
-  nsIFormControlFrame* formControlFrame = GetFormControlFrame(PR_TRUE);
-
-  if (formControlFrame) {
-    nsITextControlFrame* textControlFrame = do_QueryFrame(formControlFrame);
-    if (textControlFrame) {
-      rv = textControlFrame->SetSelectionStart(aSelectionStart);
-      if (NS_SUCCEEDED(rv)) {
-        rv = textControlFrame->ScrollSelectionIntoView();
-      }
-    }
+  nsAutoString direction;
+  nsresult rv = GetSelectionDirection(direction);
+  NS_ENSURE_SUCCESS(rv, rv);
+  PRInt32 start, end;
+  rv = GetSelectionRange(&start, &end);
+  NS_ENSURE_SUCCESS(rv, rv);
+  start = aSelectionStart;
+  if (end < start) {
+    end = start;
   }
-
-  return rv;
+  return SetSelectionRange(start, end, direction);
 }
 
 NS_IMETHODIMP
 nsHTMLInputElement::GetSelectionEnd(PRInt32* aSelectionEnd)
 {
   NS_ENSURE_ARG_POINTER(aSelectionEnd);
   
   PRInt32 selStart;
   return GetSelectionRange(&selStart, aSelectionEnd);
 }
 
 
 NS_IMETHODIMP
 nsHTMLInputElement::SetSelectionEnd(PRInt32 aSelectionEnd)
 {
-  nsresult rv = NS_ERROR_FAILURE;
-  nsIFormControlFrame* formControlFrame = GetFormControlFrame(PR_TRUE);
-
-  if (formControlFrame) {
-    nsITextControlFrame* textControlFrame = do_QueryFrame(formControlFrame);
-    if (textControlFrame) {
-      rv = textControlFrame->SetSelectionEnd(aSelectionEnd);
-      if (NS_SUCCEEDED(rv)) {
-        rv = textControlFrame->ScrollSelectionIntoView();
-      }
-    }
+  nsAutoString direction;
+  nsresult rv = GetSelectionDirection(direction);
+  NS_ENSURE_SUCCESS(rv, rv);
+  PRInt32 start, end;
+  rv = GetSelectionRange(&start, &end);
+  NS_ENSURE_SUCCESS(rv, rv);
+  end = aSelectionEnd;
+  if (start > end) {
+    start = end;
   }
-
-  return rv;
+  return SetSelectionRange(start, end, direction);
 }
 
 NS_IMETHODIMP
 nsHTMLInputElement::GetFiles(nsIDOMFileList** aFileList)
 {
   *aFileList = nsnull;
 
   if (mType != NS_FORM_INPUT_FILE) {
@@ -2831,16 +2834,55 @@ nsHTMLInputElement::GetSelectionRange(PR
     if (textControlFrame)
       rv = textControlFrame->GetSelectionRange(aSelectionStart, aSelectionEnd);
   }
 
   return rv;
 }
 
 NS_IMETHODIMP
+nsHTMLInputElement::GetSelectionDirection(nsAString& aDirection)
+{
+  nsresult rv = NS_ERROR_FAILURE;
+  nsIFormControlFrame* formControlFrame = GetFormControlFrame(PR_TRUE);
+
+  if (formControlFrame) {
+    nsITextControlFrame* textControlFrame = do_QueryFrame(formControlFrame);
+    if (textControlFrame) {
+      nsITextControlFrame::SelectionDirection dir;
+      rv = textControlFrame->GetSelectionRange(nsnull, nsnull, &dir);
+      if (NS_SUCCEEDED(rv)) {
+        if (dir == nsITextControlFrame::eNone) {
+          aDirection.AssignLiteral("none");
+        } else if (dir == nsITextControlFrame::eForward) {
+          aDirection.AssignLiteral("forward");
+        } else if (dir == nsITextControlFrame::eBackward) {
+          aDirection.AssignLiteral("backward");
+        } else {
+          NS_NOTREACHED("Invalid SelectionDirection value");
+        }
+      }
+    }
+  }
+
+  return rv;
+}
+
+NS_IMETHODIMP
+nsHTMLInputElement::SetSelectionDirection(const nsAString& aDirection) {
+  PRInt32 start, end;
+  nsresult rv = GetSelectionRange(&start, &end);
+  if (NS_SUCCEEDED(rv)) {
+    rv = SetSelectionRange(start, end, aDirection);
+  }
+
+  return rv;
+}
+
+NS_IMETHODIMP
 nsHTMLInputElement::GetPhonetic(nsAString& aPhonetic)
 {
   aPhonetic.Truncate(0);
   nsIFormControlFrame* formControlFrame = GetFormControlFrame(PR_TRUE);
 
   if (formControlFrame) {
     nsITextControlFrame* textControlFrame = do_QueryFrame(formControlFrame);
     if (textControlFrame)
--- a/content/html/content/src/nsHTMLTextAreaElement.cpp
+++ b/content/html/content/src/nsHTMLTextAreaElement.cpp
@@ -824,58 +824,52 @@ nsHTMLTextAreaElement::GetSelectionStart
   
   PRInt32 selEnd;
   return GetSelectionRange(aSelectionStart, &selEnd);
 }
 
 NS_IMETHODIMP
 nsHTMLTextAreaElement::SetSelectionStart(PRInt32 aSelectionStart)
 {
-  nsresult rv = NS_ERROR_FAILURE;
-  nsIFormControlFrame* formControlFrame = GetFormControlFrame(PR_TRUE);
-
-  if (formControlFrame){
-    nsITextControlFrame* textControlFrame = do_QueryFrame(formControlFrame);
-    if (textControlFrame) {
-      rv = textControlFrame->SetSelectionStart(aSelectionStart);
-      if (NS_SUCCEEDED(rv)) {
-        rv = textControlFrame->ScrollSelectionIntoView();
-      }
-    }
+  nsAutoString direction;
+  nsresult rv = GetSelectionDirection(direction);
+  NS_ENSURE_SUCCESS(rv, rv);
+  PRInt32 start, end;
+  rv = GetSelectionRange(&start, &end);
+  NS_ENSURE_SUCCESS(rv, rv);
+  start = aSelectionStart;
+  if (end < start) {
+    end = start;
   }
-
-  return rv;
+  return SetSelectionRange(start, end, direction);
 }
 
 NS_IMETHODIMP
 nsHTMLTextAreaElement::GetSelectionEnd(PRInt32 *aSelectionEnd)
 {
   NS_ENSURE_ARG_POINTER(aSelectionEnd);
   
   PRInt32 selStart;
   return GetSelectionRange(&selStart, aSelectionEnd);
 }
 
 NS_IMETHODIMP
 nsHTMLTextAreaElement::SetSelectionEnd(PRInt32 aSelectionEnd)
 {
-  nsresult rv = NS_ERROR_FAILURE;
-  nsIFormControlFrame* formControlFrame = GetFormControlFrame(PR_TRUE);
-
-  if (formControlFrame) {
-    nsITextControlFrame* textControlFrame = do_QueryFrame(formControlFrame);
-    if (textControlFrame) {
-      rv = textControlFrame->SetSelectionEnd(aSelectionEnd);
-      if (NS_SUCCEEDED(rv)) {
-        rv = textControlFrame->ScrollSelectionIntoView();
-      }
-    }
+  nsAutoString direction;
+  nsresult rv = GetSelectionDirection(direction);
+  NS_ENSURE_SUCCESS(rv, rv);
+  PRInt32 start, end;
+  rv = GetSelectionRange(&start, &end);
+  NS_ENSURE_SUCCESS(rv, rv);
+  end = aSelectionEnd;
+  if (start > end) {
+    start = end;
   }
-
-  return rv;
+  return SetSelectionRange(start, end, direction);
 }
 
 nsresult
 nsHTMLTextAreaElement::GetSelectionRange(PRInt32* aSelectionStart,
                                       PRInt32* aSelectionEnd)
 {
   nsresult rv = NS_ERROR_FAILURE;
   nsIFormControlFrame* formControlFrame = GetFormControlFrame(PR_TRUE);
@@ -884,26 +878,75 @@ nsHTMLTextAreaElement::GetSelectionRange
     nsITextControlFrame* textControlFrame = do_QueryFrame(formControlFrame);
     if (textControlFrame)
       rv = textControlFrame->GetSelectionRange(aSelectionStart, aSelectionEnd);
   }
 
   return rv;
 }
 
+nsresult
+nsHTMLTextAreaElement::GetSelectionDirection(nsAString& aDirection)
+{
+  nsresult rv = NS_ERROR_FAILURE;
+  nsIFormControlFrame* formControlFrame = GetFormControlFrame(PR_TRUE);
+
+  if (formControlFrame) {
+    nsITextControlFrame* textControlFrame = do_QueryFrame(formControlFrame);
+    if (textControlFrame) {
+      nsITextControlFrame::SelectionDirection dir;
+      rv = textControlFrame->GetSelectionRange(nsnull, nsnull, &dir);
+      if (NS_SUCCEEDED(rv)) {
+        if (dir == nsITextControlFrame::eNone) {
+          aDirection.AssignLiteral("none");
+        } else if (dir == nsITextControlFrame::eForward) {
+          aDirection.AssignLiteral("forward");
+        } else if (dir == nsITextControlFrame::eBackward) {
+          aDirection.AssignLiteral("backward");
+        } else {
+          NS_NOTREACHED("Invalid SelectionDirection value");
+        }
+      }
+    }
+  }
+
+  return rv;
+}
+
 NS_IMETHODIMP
-nsHTMLTextAreaElement::SetSelectionRange(PRInt32 aSelectionStart, PRInt32 aSelectionEnd)
+nsHTMLTextAreaElement::SetSelectionDirection(const nsAString& aDirection) {
+  PRInt32 start, end;
+  nsresult rv = GetSelectionRange(&start, &end);
+  if (NS_SUCCEEDED(rv)) {
+    rv = SetSelectionRange(start, end, aDirection);
+  }
+
+  return rv;
+}
+
+NS_IMETHODIMP
+nsHTMLTextAreaElement::SetSelectionRange(PRInt32 aSelectionStart,
+                                         PRInt32 aSelectionEnd,
+                                         const nsAString& aDirection)
 { 
   nsresult rv = NS_ERROR_FAILURE;
   nsIFormControlFrame* formControlFrame = GetFormControlFrame(PR_TRUE);
 
   if (formControlFrame) {
     nsITextControlFrame* textControlFrame = do_QueryFrame(formControlFrame);
     if (textControlFrame) {
-      rv = textControlFrame->SetSelectionRange(aSelectionStart, aSelectionEnd);
+      // Default to forward, even if not specified.
+      // Note that we don't currently support directionless selections, so
+      // "none" is treated like "forward".
+      nsITextControlFrame::SelectionDirection dir = nsITextControlFrame::eForward;
+      if (aDirection.EqualsLiteral("backward")) {
+        dir = nsITextControlFrame::eBackward;
+      }
+
+      rv = textControlFrame->SetSelectionRange(aSelectionStart, aSelectionEnd, dir);
       if (NS_SUCCEEDED(rv)) {
         rv = textControlFrame->ScrollSelectionIntoView();
       }
     }
   }
 
   return rv;
 } 
--- a/content/html/content/test/Makefile.in
+++ b/content/html/content/test/Makefile.in
@@ -272,13 +272,14 @@ include $(topsrcdir)/config/rules.mk
 		test_bug649134.html \
 		test_bug658746.html \
 		test_bug659596.html \
 		test_bug659743.xml \
 		test_bug660663.html \
 		test_bug664299.html \
 		test_bug666200.html \
 		test_bug666666.html \
+		test_bug674558.html \
 		test_restore_from_parser_fragment.html \
 		$(NULL)
 
 libs:: $(_TEST_FILES)
 	$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)
new file mode 100644
--- /dev/null
+++ b/content/html/content/test/test_bug674558.html
@@ -0,0 +1,151 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=674558
+-->
+<head>
+  <title>Test for Bug 674558</title>
+  <script type="application/javascript" src="/MochiKit/packed.js"></script>
+  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=674558">Mozilla Bug 674558</a>
+<p id="display"></p>
+<div id="content">
+</div>
+<pre id="test">
+<script type="application/javascript">
+
+/** Test for Bug 674558 **/
+SimpleTest.waitForExplicitFinish();
+SimpleTest.waitForFocus(function() {
+  function textAreaCtor() {
+    return document.createElement("textarea");
+  }
+  var ctors = [textAreaCtor];
+  ["text", "password", "search"].forEach(function(type) {
+    ctors.push(function inputCtor() {
+      var input = document.createElement("input");
+      input.type = type;
+      return input;
+    });
+  });
+
+  for (var ctor in ctors) {
+    test(ctors[ctor]);
+  }
+
+  SimpleTest.finish();
+});
+
+function test(ctor) {
+  var elem = ctor();
+  ok(true, "Testing " + name(elem));
+
+  ok("selectionDirection" in elem, "elem should have the selectionDirection property");
+
+  var content = document.getElementById("content");
+  content.appendChild(elem);
+
+  elem.value = "foobar";
+
+  is(elem.selectionStart, 0, "Default value");
+  is(elem.selectionEnd, 0, "Default value");
+  is(elem.selectionDirection, "forward", "Default value");
+
+  elem.setSelectionRange(1, 3);
+  is(elem.selectionStart, 1, "Correct value");
+  is(elem.selectionEnd, 3, "Correct value");
+  is(elem.selectionDirection, "forward", "If not set, should default to forward");
+
+  // extend to right
+  elem.focus();
+  synthesizeKey("VK_RIGHT", {shiftKey: true});
+
+  is(elem.selectionStart, 1, "Value unchanged");
+  is(elem.selectionEnd, 4, "Correct value");
+  is(elem.selectionDirection, "forward", "Still forward");
+
+  // change the direction
+  elem.selectionDirection = "backward";
+
+  is(elem.selectionStart, 1, "Value unchanged");
+  is(elem.selectionEnd, 4, "Value unchanged");
+  is(elem.selectionDirection, "backward", "Correct value");
+
+  // extend to right again
+  synthesizeKey("VK_RIGHT", {shiftKey: true});
+
+  is(elem.selectionStart, 2, "Correct value");
+  is(elem.selectionEnd, 4, "Value unchanged");
+  is(elem.selectionDirection, "backward", "Still backward");
+
+  elem.selectionEnd = 5;
+
+  is(elem.selectionStart, 2, "Value unchanged");
+  is(elem.selectionEnd, 5, "Correct value");
+  is(elem.selectionDirection, "backward", "Still backward");
+
+  elem.selectionDirection = "none";
+
+  is(elem.selectionStart, 2, "Value unchanged");
+  is(elem.selectionEnd, 5, "Value unchanged");
+  is(elem.selectionDirection, "forward", "none not supported");
+
+  elem.selectionDirection = "backward";
+
+  is(elem.selectionStart, 2, "Value unchanged");
+  is(elem.selectionEnd, 5, "Value unchanged");
+  is(elem.selectionDirection, "backward", "Correct Value");
+
+  elem.selectionDirection = "invalid";
+
+  is(elem.selectionStart, 2, "Value unchanged");
+  is(elem.selectionEnd, 5, "Value unchanged");
+  is(elem.selectionDirection, "forward", "Treated as none");
+
+  elem.selectionDirection = "backward";
+
+  is(elem.selectionStart, 2, "Value unchanged");
+  is(elem.selectionEnd, 5, "Value unchanged");
+  is(elem.selectionDirection, "backward", "Correct Value");
+
+  elem.setSelectionRange(1, 4);
+
+  is(elem.selectionStart, 1, "Correct value");
+  is(elem.selectionEnd, 4, "Correct value");
+  is(elem.selectionDirection, "forward", "Correct value");
+
+  elem.setSelectionRange(1, 1);
+  synthesizeKey("VK_RIGHT", {shiftKey: true});
+  synthesizeKey("VK_RIGHT", {shiftKey: true});
+  synthesizeKey("VK_RIGHT", {shiftKey: true});
+
+  is(elem.selectionStart, 1, "Correct value");
+  is(elem.selectionEnd, 4, "Correct value");
+  is(elem.selectionDirection, "forward", "Correct value");
+
+  elem.setSelectionRange(5, 5);
+  synthesizeKey("VK_LEFT", {shiftKey: true});
+  synthesizeKey("VK_LEFT", {shiftKey: true});
+  synthesizeKey("VK_LEFT", {shiftKey: true});
+
+  is(elem.selectionStart, 2, "Correct value");
+  is(elem.selectionEnd, 5, "Correct value");
+  is(elem.selectionDirection, "backward", "Correct value");
+}
+
+function name(elem) {
+  var tag = elem.localName;
+  if (tag == "input") {
+    tag += "[type=" + elem.type + "]";
+  }
+  return tag;
+}
+
+</script>
+</pre>
+</body>
+</html>
--- a/docshell/test/chrome/docshell_helpers.js
+++ b/docshell/test/chrome/docshell_helpers.js
@@ -312,20 +312,17 @@ function pageEventListener(event) {
 function finish() {
   // Work around bug 467960.
   var history = TestWindow.getBrowser().webNavigation.sessionHistory;
   history.PurgeHistory(history.count);
   
   // If the test changed the value of max_total_viewers via a call to
   // enableBFCache(), then restore it now.
   if (typeof(gOrigMaxTotalViewers) != "undefined") {
-    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
-    var prefs = Components.classes["@mozilla.org/preferences-service;1"]
-                .getService(Components.interfaces.nsIPrefBranch);
-    prefs.setIntPref("browser.sessionhistory.max_total_viewers",
+    SpecialPowers.setIntPref("browser.sessionhistory.max_total_viewers",
       gOrigMaxTotalViewers);
   }
 
   // Close the test window and signal the framework that the test is done.
   let opener = window.opener;
   window.close();
   opener.wrappedJSObject.SimpleTest.finish();
 }
@@ -382,36 +379,31 @@ function waitForTrue(fn, onWaitComplete,
  * Enable or disable the bfcache.
  *
  * Parameters:
  *
  *   enable: if true, set max_total_viewers to -1 (the default); if false, set 
  *           to 0 (disabled), if a number, set it to that specific number
  */
 function enableBFCache(enable) {
-  netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
-  var prefs = Components.classes["@mozilla.org/preferences-service;1"]
-              .getService(Components.interfaces.nsIPrefBranch);
-  
   // If this is the first time the test called enableBFCache(),
   // store the original value of max_total_viewers, so it can
   // be restored at the end of the test.
   if (typeof(gOrigMaxTotalViewers) == "undefined") {
-    gOrigMaxTotalViewers =
-      prefs.getIntPref("browser.sessionhistory.max_total_viewers");
+    gOrigMaxTotalViewers = SpecialPowers.getIntPref("browser.sessionhistory.max_total_viewers");
   }
   
   if (typeof(enable) == "boolean") {
     if (enable)
-      prefs.setIntPref("browser.sessionhistory.max_total_viewers", -1);
+      SpecialPowers.setIntPref("browser.sessionhistory.max_total_viewers", -1);
     else
-      prefs.setIntPref("browser.sessionhistory.max_total_viewers", 0);    
+      SpecialPowers.setIntPref("browser.sessionhistory.max_total_viewers", 0);    
   }
   else if (typeof(enable) == "number") {
-    prefs.setIntPref("browser.sessionhistory.max_total_viewers", enable);    
+    SpecialPowers.setIntPref("browser.sessionhistory.max_total_viewers", enable);    
   }
 }
 
 /*
  * get http root for local tests.  Use a single extractJarToTmp instead of 
  * extracting for each test.  
  * Returns a file://path if we have a .jar file
  */
--- a/dom/base/nsGlobalWindow.cpp
+++ b/dom/base/nsGlobalWindow.cpp
@@ -5981,17 +5981,17 @@ PostMessageEvent::Run()
     }
   }
 
   // If we bailed before this point we're going to leak mMessage, but
   // that's probably better than crashing.
 
   // Ensure that the buffer is freed even if we fail to post the message
   JSAutoStructuredCloneBuffer buffer;
-  buffer.adopt(cx, mMessage, mMessageLen);
+  buffer.adopt(mMessage, mMessageLen);
   mMessage = nsnull;
   mMessageLen = 0;
 
   nsRefPtr<nsGlobalWindow> targetWindow;
   if (mTargetWindow->IsClosedOrClosing() ||
       !(targetWindow = mTargetWindow->GetCurrentInnerWindowInternal()) ||
       targetWindow->IsClosedOrClosing())
     return NS_OK;
@@ -6035,17 +6035,17 @@ PostMessageEvent::Run()
       return NS_OK;
   }
 
   // Deserialize the structured clone data
   jsval messageData;
   {
     JSAutoRequest ar(cx);
 
-    if (!buffer.read(&messageData, cx, nsnull))
+    if (!buffer.read(cx, &messageData, nsnull))
       return NS_ERROR_DOM_DATA_CLONE_ERR;
   }
 
   // Create the event
   nsCOMPtr<nsIDOMDocument> domDoc = do_QueryInterface(targetWindow->mDocument);
   if (!domDoc)
     return NS_OK;
   nsCOMPtr<nsIDOMEvent> event;
--- a/dom/indexedDB/AsyncConnectionHelper.cpp
+++ b/dom/indexedDB/AsyncConnectionHelper.cpp
@@ -501,17 +501,17 @@ AsyncConnectionHelper::ConvertCloneBuffe
   NS_ASSERTION(aCx, "Null context!");
   NS_ASSERTION(aResult, "Null pointer!");
 
   JSAutoRequest ar(aCx);
 
   nsresult rv = ConvertCloneBuffersToArrayInternal(aCx, aBuffers, aResult);
 
   for (PRUint32 index = 0; index < aBuffers.Length(); index++) {
-    aBuffers[index].clear(aCx);
+    aBuffers[index].clear();
   }
   aBuffers.Clear();
 
   return rv;
 }
 
 NS_IMETHODIMP_(nsrefcnt)
 TransactionPoolEventTarget::AddRef()
--- a/dom/indexedDB/IDBCursor.cpp
+++ b/dom/indexedDB/IDBCursor.cpp
@@ -470,17 +470,17 @@ IDBCursor::GetValue(JSContext* aCx,
       mRooted = true;
     }
 
     if (!IDBObjectStore::DeserializeValue(aCx, mCloneBuffer, &mCachedValue)) {
       mCachedValue = JSVAL_VOID;
       return NS_ERROR_DOM_DATA_CLONE_ERR;
     }
 
-    mCloneBuffer.clear(aCx);
+    mCloneBuffer.clear();
     mHaveCachedValue = true;
   }
 
   *aValue = mCachedValue;
   return NS_OK;
 }
 
 NS_IMETHODIMP
@@ -715,17 +715,17 @@ ContinueHelper::GetSuccessResult(JSConte
                  !mObjectKey.IsUnset(), "Bad key!");
 
     // Set new values.
     mCursor->mKey = mKey;
     mCursor->mObjectKey = mObjectKey;
     mCursor->mContinueToKey = Key::UNSETKEY;
 
     mCursor->mCloneBuffer.swap(mCloneBuffer);
-    mCloneBuffer.clear(aCx);
+    mCloneBuffer.clear();
 
     nsresult rv = WrapNative(aCx, mCursor, aVal);
     NS_ENSURE_SUCCESS(rv, rv);
   }
 
   return NS_OK;
 }
 
--- a/dom/indexedDB/IDBIndex.cpp
+++ b/dom/indexedDB/IDBIndex.cpp
@@ -777,17 +777,17 @@ GetHelper::DoDatabaseWork(mozIStorageCon
 }
 
 nsresult
 GetHelper::GetSuccessResult(JSContext* aCx,
                             jsval* aVal)
 {
   bool result = IDBObjectStore::DeserializeValue(aCx, mCloneBuffer, aVal);
 
-  mCloneBuffer.clear(aCx);
+  mCloneBuffer.clear();
 
   NS_ENSURE_TRUE(result, NS_ERROR_FAILURE);
   return NS_OK;
 }
 
 nsresult
 GetAllKeysHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
 {
@@ -1051,17 +1051,17 @@ nsresult
 GetAllHelper::GetSuccessResult(JSContext* aCx,
                                jsval* aVal)
 {
   NS_ASSERTION(mCloneBuffers.Length() <= mLimit, "Too many results!");
 
   nsresult rv = ConvertCloneBuffersToArray(aCx, mCloneBuffers, aVal);
 
   for (PRUint32 index = 0; index < mCloneBuffers.Length(); index++) {
-    mCloneBuffers[index].clear(aCx);
+    mCloneBuffers[index].clear();
   }
 
   NS_ENSURE_SUCCESS(rv, rv);
   return NS_OK;
 }
 
 nsresult
 OpenKeyCursorHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
--- a/dom/indexedDB/IDBObjectStore.cpp
+++ b/dom/indexedDB/IDBObjectStore.cpp
@@ -834,48 +834,27 @@ IDBObjectStore::GetStructuredCloneDataFr
   }
 #endif
 
   const PRUint8* data;
   PRUint32 dataLength;
   nsresult rv = aStatement->GetSharedBlob(aIndex, &dataLength, &data);
   NS_ENSURE_SUCCESS(rv, NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR);
 
-  JSContext* cx;
-  rv = nsContentUtils::ThreadJSContextStack()->GetSafeJSContext(&cx);
-  NS_ENSURE_SUCCESS(rv, NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR);
-
-  JSAutoRequest ar(cx);
-
-  uint64* newData = static_cast<uint64*>(JS_malloc(cx, dataLength));
-  NS_ENSURE_TRUE(newData, NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR);
-
-  memcpy(newData, data, dataLength);
-  aBuffer.adopt(cx, newData, dataLength);
-
-  return NS_OK;
+  return aBuffer.copy(reinterpret_cast<const uint64 *>(data), dataLength) ?
+         NS_OK :
+         NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR;
 }
 
 // static
 void
 IDBObjectStore::ClearStructuredCloneBuffer(JSAutoStructuredCloneBuffer& aBuffer)
 {
   if (aBuffer.data()) {
-    JSContext* cx;
-    if (NS_SUCCEEDED(nsContentUtils::ThreadJSContextStack()->
-                     GetSafeJSContext(&cx))) {
-      JSAutoRequest ar(cx);
-      aBuffer.clear(cx);
-    }
-    else {
-      NS_WARNING("Couldn't get safe JSContext! Leaking data!");
-      uint64* data;
-      size_t length;
-      aBuffer.steal(&data, &length);
-    }
+    aBuffer.clear();
   }
 }
 
 // static
 bool
 IDBObjectStore::DeserializeValue(JSContext* aCx,
                                  JSAutoStructuredCloneBuffer& aBuffer,
                                  jsval* aValue,
@@ -888,17 +867,17 @@ IDBObjectStore::DeserializeValue(JSConte
 
   if (!aBuffer.data()) {
     *aValue = JSVAL_VOID;
     return true;
   }
 
   JSAutoRequest ar(aCx);
 
-  return aBuffer.read(aValue, aCx, aCallbacks, aClosure);
+  return aBuffer.read(aCx, aValue, aCallbacks, aClosure);
 }
 
 // static
 bool
 IDBObjectStore::SerializeValue(JSContext* aCx,
                                JSAutoStructuredCloneBuffer& aBuffer,
                                jsval aValue,
                                JSStructuredCloneCallbacks* aCallbacks,
@@ -1895,17 +1874,17 @@ AddHelper::DoDatabaseWork(mozIStorageCon
 }
 
 nsresult
 AddHelper::GetSuccessResult(JSContext* aCx,
                             jsval* aVal)
 {
   NS_ASSERTION(!mKey.IsUnset(), "Badness!");
 
-  mCloneBuffer.clear(aCx);
+  mCloneBuffer.clear();
 
   return IDBObjectStore::GetJSValFromKey(mKey, aCx, aVal);
 }
 
 nsresult
 GetHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
 {
   NS_PRECONDITION(aConnection, "Passed a null connection!");
@@ -1950,17 +1929,17 @@ GetHelper::DoDatabaseWork(mozIStorageCon
 }
 
 nsresult
 GetHelper::GetSuccessResult(JSContext* aCx,
                             jsval* aVal)
 {
   bool result = IDBObjectStore::DeserializeValue(aCx, mCloneBuffer, aVal);
 
-  mCloneBuffer.clear(aCx);
+  mCloneBuffer.clear();
 
   NS_ENSURE_TRUE(result, NS_ERROR_FAILURE);
   return NS_OK;
 }
 
 nsresult
 DeleteHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
 {
@@ -2525,14 +2504,14 @@ nsresult
 GetAllHelper::GetSuccessResult(JSContext* aCx,
                                jsval* aVal)
 {
   NS_ASSERTION(mCloneBuffers.Length() <= mLimit, "Too many results!");
 
   nsresult rv = ConvertCloneBuffersToArray(aCx, mCloneBuffers, aVal);
 
   for (PRUint32 index = 0; index < mCloneBuffers.Length(); index++) {
-    mCloneBuffers[index].clear(aCx);
+    mCloneBuffers[index].clear();
   }
 
   NS_ENSURE_SUCCESS(rv, rv);
   return NS_OK;
 }
--- a/dom/interfaces/html/nsIDOMHTMLInputElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLInputElement.idl
@@ -49,17 +49,17 @@ interface nsIDOMValidityState;
   *
   * This interface is trying to follow the DOM Level 2 HTML specification:
   * http://www.w3.org/TR/DOM-Level-2-HTML/
   *
   * with changes from the work-in-progress WHATWG HTML specification:
   * http://www.whatwg.org/specs/web-apps/current-work/
   */
 
-[scriptable, uuid(a59ba6b8-6f8b-4003-a8a4-184a51a05050)]
+[scriptable, uuid(66819eba-89b5-4db4-8d27-6368c70761e8)]
 interface nsIDOMHTMLInputElement : nsIDOMHTMLElement
 {
            attribute DOMString             accept;
            attribute DOMString             alt;
 
            attribute DOMString             autocomplete;
            attribute boolean               autofocus;
            attribute boolean               defaultChecked;
@@ -102,18 +102,19 @@ interface nsIDOMHTMLInputElement : nsIDO
   readonly attribute nsIDOMValidityState validity;
   readonly attribute DOMString           validationMessage;
   boolean checkValidity();
   void setCustomValidity(in DOMString error);
 
   void select();
            attribute long                  selectionStart;
            attribute long                  selectionEnd;
-  void setSelectionRange(in long selectionStart, in long selectionEnd);
-          
+  void setSelectionRange(in long selectionStart, in long selectionEnd, [optional] in DOMString direction);
+           attribute DOMString             selectionDirection;
+
 
            attribute long                  tabIndex;
            attribute DOMString             useMap;
   readonly attribute nsIControllers        controllers;	
 	readonly attribute long                  textLength;
 
   void mozGetFileNameArray([optional] out unsigned long aLength,
                            [array,size_is(aLength), retval] out wstring aFileNames);
--- a/dom/interfaces/html/nsIDOMHTMLTextAreaElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLTextAreaElement.idl
@@ -48,17 +48,17 @@ interface nsIDOMValidityState;
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(905edd3e-c0b3-4d54-8a2c-0eaab6ccb3cf)]
+[scriptable, uuid(43e99aee-e41f-4935-a87d-f2dbafdbfddb)]
 interface nsIDOMHTMLTextAreaElement : nsIDOMHTMLElement
 {
            attribute boolean               autofocus;
            attribute unsigned long         cols;
            attribute boolean               disabled;
   readonly attribute nsIDOMHTMLFormElement form;
            attribute long                  maxLength;
            attribute DOMString             name;
@@ -84,17 +84,18 @@ interface nsIDOMHTMLTextAreaElement : ns
   readonly attribute nsIDOMValidityState   validity;
   readonly attribute DOMString             validationMessage;
   boolean checkValidity();
   void setCustomValidity(in DOMString error);
 
   void select();
            attribute long                  selectionStart;
            attribute long                  selectionEnd;
-  void setSelectionRange(in long selectionStart, in long selectionEnd);
+  void setSelectionRange(in long selectionStart, in long selectionEnd, [optional] in DOMString direction);
+           attribute DOMString             selectionDirection;
 
   // Defined on HTMLElement in the specification.
            attribute long                  tabIndex;
 
 
   // Mozilla extensions
   readonly attribute nsIControllers   controllers;
 };
--- a/dom/plugins/test/mochitest/Makefile.in
+++ b/dom/plugins/test/mochitest/Makefile.in
@@ -94,17 +94,16 @@ include $(topsrcdir)/config/rules.mk
   test_GCrace.html \
   test_propertyAndMethod.html \
   test_bug539565-1.html \
   test_bug539565-2.html \
   test_enumerate.html \
   test_npruntime_construct.html \
   307-xo-redirect.sjs \
   test_redirect_handling.html \
-  test_clear_site_data.html \
   test_zero_opacity.html \
   test_NPPVpluginWantsAllNetworkStreams.html \
   test_npruntime_npnsetexception.html \
   $(NULL)
 
 #  test_plugin_scroll_painting.html \ bug 596491
 
 ifeq ($(OS_ARCH),WINNT)
@@ -113,16 +112,17 @@ ifeq ($(OS_ARCH),WINNT)
   $(NULL)
 
 # test_positioning.html \ disabled due to oddness, perhaps scrolling of the
 # mochitest window?
 endif
 
 _MOCHICHROME_FILES = \
   utils.js \
+  test_clear_site_data.html \
   test_npruntime.xul   \
   test_privatemode.xul \
   test_wmode.xul \
   test_bug479979.xul \
   $(NULL)
 
 ifneq ($(MOZ_WIDGET_TOOLKIT),cocoa)
 _MOCHITEST_FILES += \
--- a/dom/plugins/test/mochitest/test_clear_site_data.html
+++ b/dom/plugins/test/mochitest/test_clear_site_data.html
@@ -1,20 +1,19 @@
 <html>
 <head>
   <title>NPAPI ClearSiteData/GetSitesWithData Functionality</title>
-  <script type="application/javascript" src="/MochiKit/packed.js"></script>
-  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <script type="application/javascript" src="/tests/SimpleTest/PluginUtils.js"></script>
+  <script type="application/javascript" src="chrome://mochikit/content/MochiKit/packed.js"></script>
+  <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+  <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/PluginUtils.js"></script>
 </head>
 <body>
   <embed id="plugin1" type="application/x-test" width="200" height="200"></embed>
 
   <script class="testbody" type="application/javascript">
-    netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
     SimpleTest.waitForExplicitFinish();
 
     const pluginHostIface = Components.interfaces.nsIPluginHost;
     var pluginHost = Components.classes["@mozilla.org/plugin/host;1"].
                      getService(pluginHostIface);
     const FLAG_CLEAR_ALL = pluginHostIface.FLAG_CLEAR_ALL;
     const FLAG_CLEAR_CACHE = pluginHostIface.FLAG_CLEAR_CACHE;
 
@@ -44,18 +43,16 @@
         fn();
         throw new Error("bad exception");
       } catch (e) {
         is(e.result, result, "Correct exception thrown");
       }
     }
 
     function runTest(pluginTag) {
-      netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
-
       this.pluginTag = pluginTag;
 
       p.setSitesWithData(
         "foo.com:0:5," +
         "foo.com:0:7," +
         "bar.com:0:10," +
         "baz.com:0:10," +
         "foo.com:1:7," +
--- a/dom/src/Makefile.in
+++ b/dom/src/Makefile.in
@@ -37,11 +37,15 @@
 
 DEPTH		= ../..
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-DIRS		= jsurl events storage offline json geolocation notification foo
+DIRS		= jsurl events storage offline json geolocation notification
+
+ifdef ENABLE_TESTS
+DIRS		+= foo
+endif
 
 include $(topsrcdir)/config/rules.mk
--- a/dom/workers/Events.cpp
+++ b/dom/workers/Events.cpp
@@ -560,23 +560,23 @@ private:
     MessageEvent* event = GetInstancePrivate(aCx, aObj, name);
     if (!event) {
       return false;
     }
 
     // Deserialize and save the data value if we can.
     if (slot == SLOT_data && event->mData) {
       JSAutoStructuredCloneBuffer buffer;
-      buffer.adopt(aCx, event->mData, event->mDataByteCount);
+      buffer.adopt(event->mData, event->mDataByteCount);
 
       event->mData = NULL;
       event->mDataByteCount = 0;
 
       jsval data;
-      if (!buffer.read(&data) ||
+      if (!buffer.read(aCx, &data) ||
           !JS_SetReservedSlot(aCx, aObj, slot, data)) {
         return false;
       }
 
       *aVp = data;
       return true;
     }
 
--- a/dom/workers/WorkerPrivate.cpp
+++ b/dom/workers/WorkerPrivate.cpp
@@ -527,17 +527,17 @@ public:
   {
     aData.steal(&mData, &mDataByteCount);
   }
 
   bool
   WorkerRun(JSContext* aCx, WorkerPrivate* aWorkerPrivate)
   {
     JSAutoStructuredCloneBuffer buffer;
-    buffer.adopt(aCx, mData, mDataByteCount);
+    buffer.adopt(mData, mDataByteCount);
 
     mData = nsnull;
     mDataByteCount = 0;
 
     bool mainRuntime;
     JSObject* target;
     if (mTarget == ParentThread) {
       mainRuntime = !aWorkerPrivate->GetParent();
--- a/dom/workers/XMLHttpRequestPrivate.cpp
+++ b/dom/workers/XMLHttpRequestPrivate.cpp
@@ -950,27 +950,27 @@ public:
       nsIXPConnect* xpc = nsContentUtils::XPConnect();
       NS_ASSERTION(xpc, "This should never be null!");
 
       RuntimeService::AutoSafeJSContext cx;
 
       intN error = 0;
 
       jsval body;
-      if (mBody.read(&body, cx)) {
+      if (mBody.read(cx, &body)) {
         if (NS_FAILED(xpc->JSValToVariant(cx, &body,
                                           getter_AddRefs(variant)))) {
           error = INVALID_STATE_ERR;
         }
       }
       else {
         error = DATA_CLONE_ERR;
       }
 
-      mBody.clear(cx);
+      mBody.clear();
 
       if (error) {
         return error;
       }
     }
 
     if (mHasUploadListeners) {
       NS_ASSERTION(!mProxy->mUploadEventListenersAttached, "Huh?!");
--- a/gfx/2d/ShadersD2D.fx
+++ b/gfx/2d/ShadersD2D.fx
@@ -175,17 +175,17 @@ float4 SampleRadialGradientPS( VS_RADIAL
     if (max(isValid.x, isValid.y) <= 0) {
       return float4(0, 0, 0, 0);
     }
 
     float upper_t = lerp(t.y, t.x, isValid.x);
 
     float4 output = tex.Sample(sSampler, float2(upper_t, 0.5));
     // Premultiply
-    output *= output.a;
+    output.rgb *= output.a;
     // Multiply the output color by the input mask for the operation.
     output *= mask.Sample(sMaskSampler, In.MaskTexCoord).a;
     return output;
 };
 
 float4 SampleRadialGradientA0PS( VS_RADIAL_OUTPUT In) : SV_Target
 {
     // This simpler shader is used for the degenerate case where A is 0,
@@ -202,17 +202,17 @@ float4 SampleRadialGradientA0PS( VS_RADI
     float t = 0.5 * C / B;
 
     if (-radius1 >= t * diff.z) {
       return float4(0, 0, 0, 0);
     }
 
     float4 output = tex.Sample(sSampler, float2(t, 0.5));
     // Premultiply
-    output *= output.a;
+    output.rgb *= output.a;
     // Multiply the output color by the input mask for the operation.
     output *= mask.Sample(sMaskSampler, In.MaskTexCoord).a;
     return output;
 };
 
 float4 SampleShadowHPS( VS_OUTPUT In) : SV_Target
 {
     float outputStrength = 0;
--- a/gfx/2d/ShadersD2D.h
+++ b/gfx/2d/ShadersD2D.h
@@ -438,17 +438,17 @@ technique10 SampleRadialGradient
                 mul r0.xzw, r0, r1.x
                 mov r1.w, c1.w
                 mad r1.xyz, r0.xzww, c0.z, r1.w
                 cmp r2.x, r1.x, r0.x, r0.w
                 cmp r0.xzw, r1.xyyz, c4.xyxy, c4.zyzw
                 mov r2.y, c3.x
                 texld r1, t0, s1
                 texld r2, r2, s0
-                mul r2, r2.w, r2
+                mul r2.xyz, r2.w, r2
                 mul r1, r1.w, r2
                 add r0.w, r0.w, r0.x
                 cmp r0.x, r0.w, r0.x, r0.z
                 cmp r1, -r0.x, c4.z, r1
                 cmp r0, r0.y, r1, c4.z
                 mov oC0, r0
             
             // approximately 28 instruction slots used (2 texture, 26 arithmetic)
@@ -486,19 +486,19 @@ technique10 SampleRadialGradient
               ret 
             endif 
             max r0.x, r1.y, r1.x
             ge r0.x, l(0.000000), r0.x
             if_nz r0.x
               mov o0.xyzw, l(0,0,0,0)
               ret 
             endif 
-            mul r0.xyzw, r2.wwww, r2.xyzw
-            sample r1.xyzw, v1.xyxx, t1.xyzw, s1
-            mul o0.xyzw, r0.xyzw, r1.wwww
+            mul r2.xyz, r2.wwww, r2.xyzx
+            sample r0.xyzw, v1.xyxx, t1.xyzw, s1
+            mul o0.xyzw, r0.wwww, r2.xyzw
             ret 
             // Approximately 33 instruction slots used
                     
         };
     }
 
     pass P1
     {
@@ -698,17 +698,17 @@ technique10 SampleRadialGradient
                 dp3 r0.x, r0, c0
                 rcp r0.x, r0.x
                 mul r0.x, r0.x, r0.w
                 mov r0.y, c2.x
                 texld r1, t0, s1
                 texld r2, r0, s0
                 mov r0.w, c1.w
                 mad r0.x, r0.x, -c0.z, -r0.w
-                mul r2, r2.w, r2
+                mul r2.xyz, r2.w, r2
                 mul r1, r1.w, r2
                 cmp r0, r0.x, c2.y, r1
                 mov oC0, r0
             
             // approximately 18 instruction slots used (2 texture, 16 arithmetic)
             ps_4_0
             dcl_constantbuffer cb0[6], immediateIndexed
             dcl_sampler s0, mode_default
@@ -729,19 +729,19 @@ technique10 SampleRadialGradient
             mul r0.z, r0.x, cb0[4].z
             ge r0.z, -cb0[5].w, r0.z
             mov r0.y, l(0.500000)
             sample r1.xyzw, r0.xyxx, t0.xyzw, s0
             if_nz r0.z
               mov o0.xyzw, l(0,0,0,0)
               ret 
             endif 
-            mul r0.xyzw, r1.wwww, r1.xyzw
-            sample r1.xyzw, v1.xyxx, t1.xyzw, s1
-            mul o0.xyzw, r0.xyzw, r1.wwww
+            mul r1.xyz, r1.wwww, r1.xyzx
+            sample r0.xyzw, v1.xyxx, t1.xyzw, s1
+            mul o0.xyzw, r0.wwww, r1.xyzw
             ret 
             // Approximately 19 instruction slots used
                     
         };
     }
 
 }
 
@@ -1616,20 +1616,20 @@ technique10 SampleTextureWithShadow
     }
 
 }
 
 #endif
 
 const BYTE d2deffect[] =
 {
-     68,  88,  66,  67, 178,   2, 
-     69, 191, 250,  33,  81, 124, 
-    224,  53, 204,  57,  73,  36, 
-    191, 116,   1,   0,   0,   0, 
+     68,  88,  66,  67, 109, 248, 
+     87, 153, 208, 172, 175,  58, 
+    169, 190, 216,  26, 197,   8, 
+    157,  19,   1,   0,   0,   0, 
       1, 102,   0,   0,   1,   0, 
       0,   0,  36,   0,   0,   0, 
      70,  88,  49,  48, 213, 101, 
       0,   0,   1,  16, 255, 254, 
       3,   0,   0,   0,  14,   0, 
       0,   0,   8,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2401,19 +2401,19 @@ const BYTE d2deffect[] =
      80, 111, 115, 105, 116, 105, 
     111, 110,   0,  84,  69,  88, 
      67,  79,  79,  82,  68,   0, 
     171, 171, 171, 203,  10,   0, 
       0,   0,   0,   0,   0,   1, 
       0,   0,   0,   2,   0,   0, 
       0,   0,   0,   0,   0, 220, 
       9,   0,   0,  68,  88,  66, 
-     67, 246,  85,  96,  22,  53, 
-     16, 231, 164, 220,  13,  79, 
-    114,  29,  26, 138, 193,   1, 
+     67,  75, 110, 115, 165, 159, 
+    108, 132, 208, 154,  90, 141, 
+     18, 236, 102,  72, 112,   1, 
       0,   0,   0, 220,   9,   0, 
       0,   6,   0,   0,   0,  56, 
       0,   0,   0, 128,   2,   0, 
       0,  88,   6,   0,   0, 212, 
       6,   0,   0,  56,   9,   0, 
       0, 168,   9,   0,   0,  65, 
     111, 110,  57,  64,   2,   0, 
       0,  64,   2,   0,   0,   0, 
@@ -2487,17 +2487,17 @@ const BYTE d2deffect[] =
     160,   1,   0,   0,   2,   2, 
       0,   2, 128,   3,   0,   0, 
     160,  66,   0,   0,   3,   1, 
       0,  15, 128,   0,   0, 228, 
     176,   1,   8, 228, 160,  66, 
       0,   0,   3,   2,   0,  15, 
     128,   2,   0, 228, 128,   0, 
       8, 228, 160,   5,   0,   0, 
-      3,   2,   0,  15, 128,   2, 
+      3,   2,   0,   7, 128,   2, 
       0, 255, 128,   2,   0, 228, 
     128,   5,   0,   0,   3,   1, 
       0,  15, 128,   1,   0, 255, 
     128,   2,   0, 228, 128,   2, 
       0,   0,   3,   0,   0,   8, 
     128,   0,   0, 255, 128,   0, 
       0,   0, 128,  88,   0,   0, 
       4,   0,   0,   1, 128,   0, 
@@ -2655,47 +2655,47 @@ const BYTE d2deffect[] =
       3,  10,   0,  16,   0,   0, 
       0,   0,   0,  54,   0,   0, 
       8, 242,  32,  16,   0,   0, 
       0,   0,   0,   2,  64,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,  62, 
       0,   0,   1,  21,   0,   0, 
-      1,  56,   0,   0,   7, 242, 
-      0,  16,   0,   0,   0,   0, 
+      1,  56,   0,   0,   7, 114, 
+      0,  16,   0,   2,   0,   0, 
       0, 246,  15,  16,   0,   2, 
-      0,   0,   0,  70,  14,  16, 
+      0,   0,   0,  70,   2,  16, 
       0,   2,   0,   0,   0,  69, 
       0,   0,   9, 242,   0,  16, 
-      0,   1,   0,   0,   0,  70, 
+      0,   0,   0,   0,   0,  70, 
      16,  16,   0,   1,   0,   0, 
       0,  70, 126,  16,   0,   1, 
       0,   0,   0,   0,  96,  16, 
       0,   1,   0,   0,   0,  56, 
       0,   0,   7, 242,  32,  16, 
-      0,   0,   0,   0,   0,  70, 
-     14,  16,   0,   0,   0,   0, 
-      0, 246,  15,  16,   0,   1, 
+      0,   0,   0,   0,   0, 246, 
+     15,  16,   0,   0,   0,   0, 
+      0,  70,  14,  16,   0,   2, 
       0,   0,   0,  62,   0,   0, 
       1,  83,  84,  65,  84, 116, 
       0,   0,   0,  33,   0,   0, 
       0,   3,   0,   0,   0,   0, 
       0,   0,   0,   3,   0,   0, 
       0,  17,   0,   0,   0,   0, 
       0,   0,   0,   1,   0,   0, 
       0,   3,   0,   0,   0,   2, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   2, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   4,   0,   0,   0,   0, 
+      0,   5,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,  82, 
      68,  69,  70,  92,   2,   0, 
       0,   1,   0,   0,   0, 224, 
@@ -3127,20 +3127,20 @@ const BYTE d2deffect[] =
      83,  86,  95,  80, 111, 115, 
     105, 116, 105, 111, 110,   0, 
      84,  69,  88,  67,  79,  79, 
      82,  68,   0, 171, 171, 171, 
     210,  27,   0,   0,   0,   0, 
       0,   0,   1,   0,   0,   0, 
       2,   0,   0,   0,   0,   0, 
       0,   0, 188,   7,   0,   0, 
-     68,  88,  66,  67, 233,  12, 
-    254, 166,  83, 201,  49,   7, 
-    133, 181, 124, 223, 180,   7, 
-    158, 182,   1,   0,   0,   0, 
+     68,  88,  66,  67, 158, 207, 
+    216, 153, 107, 204, 140, 217, 
+    118, 241, 126, 175, 204, 121, 
+     49,  49,   1,   0,   0,   0, 
     188,   7,   0,   0,   6,   0, 
       0,   0,  56,   0,   0,   0, 
     196,   1,   0,   0,  56,   4, 
       0,   0, 180,   4,   0,   0, 
      24,   7,   0,   0, 136,   7, 
       0,   0,  65, 111, 110,  57, 
     132,   1,   0,   0, 132,   1, 
       0,   0,   0,   2, 255, 255, 
@@ -3192,17 +3192,17 @@ const BYTE d2deffect[] =
      15, 128,   0,   0, 228, 128, 
       0,   8, 228, 160,   1,   0, 
       0,   2,   0,   0,   8, 128, 
       1,   0, 255, 160,   4,   0, 
       0,   4,   0,   0,   1, 128, 
       0,   0,   0, 128,   0,   0, 
     170, 161,   0,   0, 255, 129, 
       5,   0,   0,   3,   2,   0, 
-     15, 128,   2,   0, 255, 128, 
+      7, 128,   2,   0, 255, 128, 
       2,   0, 228, 128,   5,   0, 
       0,   3,   1,   0,  15, 128, 
       1,   0, 255, 128,   2,   0, 
     228, 128,  88,   0,   0,   4, 
       0,   0,  15, 128,   0,   0, 
       0, 128,   2,   0,  85, 160, 
       1,   0, 228, 128,   1,   0, 
       0,   2,   0,   8,  15, 128, 
@@ -3291,47 +3291,47 @@ const BYTE d2deffect[] =
      42,   0,  16,   0,   0,   0, 
       0,   0,  54,   0,   0,   8, 
     242,  32,  16,   0,   0,   0, 
       0,   0,   2,  64,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,  62,   0, 
       0,   1,  21,   0,   0,   1, 
-     56,   0,   0,   7, 242,   0, 
-     16,   0,   0,   0,   0,   0, 
+     56,   0,   0,   7, 114,   0, 
+     16,   0,   1,   0,   0,   0, 
     246,  15,  16,   0,   1,   0, 
-      0,   0,  70,  14,  16,   0, 
+      0,   0,  70,   2,  16,   0, 
       1,   0,   0,   0,  69,   0, 
       0,   9, 242,   0,  16,   0, 
-      1,   0,   0,   0,  70,  16, 
+      0,   0,   0,   0,  70,  16, 
      16,   0,   1,   0,   0,   0, 
      70, 126,  16,   0,   1,   0, 
       0,   0,   0,  96,  16,   0, 
       1,   0,   0,   0,  56,   0, 
       0,   7, 242,  32,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
+      0,   0,   0,   0, 246,  15, 
      16,   0,   0,   0,   0,   0, 
-    246,  15,  16,   0,   1,   0, 
+     70,  14,  16,   0,   1,   0, 
       0,   0,  62,   0,   0,   1, 
      83,  84,  65,  84, 116,   0, 
       0,   0,  19,   0,   0,   0, 
       2,   0,   0,   0,   0,   0, 
       0,   0,   3,   0,   0,   0, 
       9,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       2,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   2,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,  82,  68, 
      69,  70,  92,   2,   0,   0, 
       1,   0,   0,   0, 224,   0, 
--- a/ipc/testshell/XPCShellEnvironment.cpp
+++ b/ipc/testshell/XPCShellEnvironment.cpp
@@ -409,24 +409,16 @@ GC(JSContext *cx,
 {
     JSRuntime *rt;
     uint32 preBytes, postBytes;
 
     rt = JS_GetRuntime(cx);
     preBytes = JS_GetGCParameter(rt, JSGC_BYTES);
     JS_GC(cx);
     postBytes = JS_GetGCParameter(rt, JSGC_BYTES);
-    fprintf(stdout, "before %lu, after %lu, break %08lx\n",
-           (unsigned long)preBytes, (unsigned long)postBytes,
-#ifdef XP_UNIX
-           (unsigned long)sbrk(0)
-#else
-           0
-#endif
-           );
 #ifdef JS_GCMETER
     js_DumpGCStats(rt, stdout);
 #endif
     JS_SET_RVAL(cx, vp, JSVAL_VOID);
     return JS_TRUE;
 }
 
 #ifdef JS_GC_ZEAL
--- a/js/src/Makefile.in
+++ b/js/src/Makefile.in
@@ -670,17 +670,17 @@ check-malloc-function-usage: $(filter-ou
 		"in Makefile.in" "cx->calloc_ or rt->calloc_" $^
 	$(srcdir)/config/check_source_count.py "\bjs_realloc\b" 0 \
 		"in Makefile.in" "cx->realloc_ or rt->realloc_" $^
 	$(srcdir)/config/check_source_count.py "\bjs_free\b" 0 \
 		"in Makefile.in" "cx->free_" $^
 
 	# We desire these numbers to go down, not up. See "User guide to memory
 	# management within SpiderMonkey" in jsutil.h.
-	$(srcdir)/config/check_source_count.py OffTheBooks:: 58 \
+	$(srcdir)/config/check_source_count.py OffTheBooks:: 59 \
 		"in Makefile.in" "{cx,rt}->{new_,new_array,malloc_,calloc_,realloc_}" $^
 	# This should go to zero, if possible.
 	$(srcdir)/config/check_source_count.py UnwantedForeground:: 31 \
 		"in Makefile.in" "{cx,rt}->{free_,delete_,array_delete}" $^
 
 ifneq ($(OS_ARCH),WINNT) # FIXME: this should be made work on Windows too.
 check:: check-malloc-function-usage
 endif
@@ -752,22 +752,16 @@ export::
 
 DEFINES		+= -DEXPORT_JS_API
 
 # mfbt is always packed with us, so if we're building a shared object,
 # we need to declare "exported" mfbt symbols on its behalf when we use
 # its headers.
 DEFINES		+= -DIMPL_MFBT
 
-# Some platforms that have stdint.h include it in system headers.  So
-# to reliably get limit macros defined, we'd always have to define the
-# one below before including any header, but that's obscure and
-# fragile, so we do it here.
-DEFINES		+= -D__STDC_LIMIT_MACROS
-
 INCLUDES	+= -I$(srcdir)
 
 GARBAGE		+= jscpucfg.o jsautocfg.h jsautocfg.tmp jscpucfg
 
 ifneq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
 TARGETS		+= jscpucfg$(HOST_BIN_SUFFIX)
 endif
 
--- a/js/src/jsapi-tests/Makefile.in
+++ b/js/src/jsapi-tests/Makefile.in
@@ -95,22 +95,16 @@ CPPSRCS = \
 # conservative stack scanning, the fix isn't obvious: more investigation
 # needed.
 #CPPSRCS += \
 #  testRegExpInstanceProperties.cpp \
 #  $(NULL)
 
 DEFINES         += -DEXPORT_JS_API
 
-# Some platforms that have stdint.h include it in system headers.  So
-# to reliably get limit macros defined, we'd always have to define the
-# one below before including any header, but that's obscure and
-# fragile, so we do it here.
-DEFINES         += -D__STDC_LIMIT_MACROS
-
 LIBS      = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS)
 
 LOCAL_INCLUDES += -I$(topsrcdir) -I..
 
 include $(topsrcdir)/config/rules.mk
 
 check::
 	$(wildcard $(RUN_TEST_PROGRAM)) $(DIST)/bin/jsapi-tests$(BIN_SUFFIX)
--- a/js/src/jsapi.cpp
+++ b/js/src/jsapi.cpp
@@ -5593,17 +5593,108 @@ JS_StructuredClone(JSContext *cx, jsval 
                    void *closure)
 {
     const JSStructuredCloneCallbacks *callbacks =
         optionalCallbacks ?
         optionalCallbacks :
         cx->runtime->structuredCloneCallbacks;
     JSAutoStructuredCloneBuffer buf;
     return buf.write(cx, v, callbacks, closure) &&
-           buf.read(vp, cx, callbacks, closure);
+           buf.read(cx, vp, callbacks, closure);
+}
+
+void
+JSAutoStructuredCloneBuffer::clear()
+{
+    if (data_) {
+        Foreground::free_(data_);
+        data_ = NULL;
+        nbytes_ = 0;
+        version_ = 0;
+    }
+}
+
+void
+JSAutoStructuredCloneBuffer::adopt(JSUint64 *data, size_t nbytes, JSUint32 version)
+{
+    clear();
+    data_ = data;
+    nbytes_ = nbytes;
+    version_ = version;
+}
+
+bool
+JSAutoStructuredCloneBuffer::copy(const JSUint64 *srcData, size_t nbytes, JSUint32 version)
+{
+    JSUint64 *newData = static_cast<JSUint64 *>(OffTheBooks::malloc_(nbytes));
+    if (!newData)
+        return false;
+
+    memcpy(newData, srcData, nbytes);
+
+    clear();
+    data_ = newData;
+    nbytes_ = nbytes;
+    version_ = version;
+    return true;
+}
+void
+JSAutoStructuredCloneBuffer::steal(JSUint64 **datap, size_t *nbytesp, JSUint32 *versionp)
+{
+    *datap = data_;
+    *nbytesp = nbytes_;
+    if (versionp)
+        *versionp = version_;
+
+    data_ = NULL;
+    nbytes_ = 0;
+    version_ = 0;
+}
+
+bool
+JSAutoStructuredCloneBuffer::read(JSContext *cx, jsval *vp,
+                                  const JSStructuredCloneCallbacks *optionalCallbacks,
+                                  void *closure) const
+{
+    JS_ASSERT(cx);
+    JS_ASSERT(data_);
+    return !!JS_ReadStructuredClone(cx, data_, nbytes_, version_, vp,
+                                    optionalCallbacks, closure);
+}
+
+bool
+JSAutoStructuredCloneBuffer::write(JSContext *cx, jsval v,
+                                   const JSStructuredCloneCallbacks *optionalCallbacks,
+                                   void *closure)
+{
+    clear();
+    bool ok = !!JS_WriteStructuredClone(cx, v, &data_, &nbytes_,
+                                        optionalCallbacks, closure);
+    if (!ok) {
+        data_ = NULL;
+        nbytes_ = 0;
+        version_ = JS_STRUCTURED_CLONE_VERSION;
+    }
+    return ok;
+}
+
+void
+JSAutoStructuredCloneBuffer::swap(JSAutoStructuredCloneBuffer &other)
+{
+    JSUint64 *data = other.data_;
+    size_t nbytes = other.nbytes_;
+    JSUint32 version = other.version_;
+
+    other.data_ = this->data_;
+    other.nbytes_ = this->nbytes_;
+    other.version_ = this->version_;
+
+    this->data_ = data;
+    this->nbytes_ = nbytes;
+    this->version_ = version;
 }
 
 JS_PUBLIC_API(void)
 JS_SetStructuredCloneCallbacks(JSRuntime *rt, const JSStructuredCloneCallbacks *callbacks)
 {
     rt->structuredCloneCallbacks = callbacks;
 }
 
--- a/js/src/jsapi.h
+++ b/js/src/jsapi.h
@@ -3369,129 +3369,72 @@ JS_WriteStructuredClone(JSContext *cx, j
                         void *closure);
 
 JS_PUBLIC_API(JSBool)
 JS_StructuredClone(JSContext *cx, jsval v, jsval *vp,
                    const JSStructuredCloneCallbacks *optionalCallbacks,
                    void *closure);
 
 #ifdef __cplusplus
+JS_END_EXTERN_C
+
 /* RAII sugar for JS_WriteStructuredClone. */
-class JSAutoStructuredCloneBuffer {
-    JSContext *cx_;
-    uint64 *data_;
+class JS_PUBLIC_API(JSAutoStructuredCloneBuffer) {
+    JSUint64 *data_;
     size_t nbytes_;
-    uint32 version_;
+    JSUint32 version_;
 
   public:
     JSAutoStructuredCloneBuffer()
-        : cx_(NULL), data_(NULL), nbytes_(0), version_(JS_STRUCTURED_CLONE_VERSION) {}
+        : data_(NULL), nbytes_(0), version_(JS_STRUCTURED_CLONE_VERSION) {}
 
     ~JSAutoStructuredCloneBuffer() { clear(); }
 
-    JSContext *cx() const { return cx_; }
-    uint64 *data() const { return data_; }
+    JSUint64 *data() const { return data_; }
     size_t nbytes() const { return nbytes_; }
 
-    void clear(JSContext *cx=NULL) {
-        if (data_) {
-            if (!cx)
-                cx = cx_;
-            JS_ASSERT(cx);
-            JS_free(cx, data_);
-            cx_ = NULL;
-            data_ = NULL;
-            nbytes_ = 0;
-            version_ = 0;
-        }
-    }
+    void clear();
+
+    /* Copy some memory. It will be automatically freed by the destructor. */
+    bool copy(const JSUint64 *data, size_t nbytes, JSUint32 version=JS_STRUCTURED_CLONE_VERSION);
 
     /*
      * Adopt some memory. It will be automatically freed by the destructor.
-     * data must have been allocated using JS_malloc.
+     * data must have been allocated by the JS engine (e.g., extracted via
+     * JSAutoStructuredCloneBuffer::steal).
      */
-    void adopt(JSContext *cx, uint64 *data, size_t nbytes,
-               uint32 version=JS_STRUCTURED_CLONE_VERSION) {
-        clear(cx);
-        cx_ = cx;
-        data_ = data;
-        nbytes_ = nbytes;
-        version_ = version;
-    }
+    void adopt(JSUint64 *data, size_t nbytes, JSUint32 version=JS_STRUCTURED_CLONE_VERSION);
 
     /*
      * Remove the buffer so that it will not be automatically freed.
-     * After this, the caller is responsible for calling JS_free(*datap).
+     * After this, the caller is responsible for feeding the memory back to
+     * JSAutoStructuredCloneBuffer::adopt.
      */
-    void steal(uint64 **datap, size_t *nbytesp, JSContext **cxp=NULL,
-               uint32 *versionp=NULL) {
-        *datap = data_;
-        *nbytesp = nbytes_;
-        if (cxp)
-            *cxp = cx_;
-        if (versionp)
-            *versionp = version_;
-
-        cx_ = NULL;
-        data_ = NULL;
-        nbytes_ = 0;
-        version_ = 0;
-    }
-
-    bool read(jsval *vp, JSContext *cx=NULL,
+    void steal(JSUint64 **datap, size_t *nbytesp, JSUint32 *versionp=NULL);
+
+    bool read(JSContext *cx, jsval *vp,
               const JSStructuredCloneCallbacks *optionalCallbacks=NULL,
-              void *closure=NULL) const {
-        if (!cx)
-            cx = cx_;
-        JS_ASSERT(cx);
-        JS_ASSERT(data_);
-        return !!JS_ReadStructuredClone(cx, data_, nbytes_, version_, vp,
-                                        optionalCallbacks, closure);
-    }
+              void *closure=NULL) const;
 
     bool write(JSContext *cx, jsval v,
                const JSStructuredCloneCallbacks *optionalCallbacks=NULL,
-               void *closure=NULL) {
-        clear(cx);
-        cx_ = cx;
-        bool ok = !!JS_WriteStructuredClone(cx, v, &data_, &nbytes_,
-                                            optionalCallbacks, closure);
-        if (!ok) {
-            data_ = NULL;
-            nbytes_ = 0;
-            version_ = JS_STRUCTURED_CLONE_VERSION;
-        }
-        return ok;
-    }
+               void *closure=NULL);
 
     /**
      * Swap ownership with another JSAutoStructuredCloneBuffer.
      */
-    void swap(JSAutoStructuredCloneBuffer &other) {
-        JSContext *cx = other.cx_;
-        uint64 *data = other.data_;
-        size_t nbytes = other.nbytes_;
-        uint32 version = other.version_;
-
-        other.cx_ = this->cx_;
-        other.data_ = this->data_;
-        other.nbytes_ = this->nbytes_;
-        other.version_ = this->version_;
-
-        this->cx_ = cx;
-        this->data_ = data;
-        this->nbytes_ = nbytes;
-        this->version_ = version;
-    }
+    void swap(JSAutoStructuredCloneBuffer &other);
 
   private:
     /* Copy and assignment are not supported. */
     JSAutoStructuredCloneBuffer(const JSAutoStructuredCloneBuffer &other);
     JSAutoStructuredCloneBuffer &operator=(const JSAutoStructuredCloneBuffer &other);
 };
+
+JS_BEGIN_EXTERN_C
 #endif
 
 /* API for implementing custom serialization behavior (for ImageData, File, etc.) */
 
 /* The range of tag values the application may use for its own custom object types. */
 #define JS_SCTAG_USER_MIN  ((uint32) 0xFFFF8000)
 #define JS_SCTAG_USER_MAX  ((uint32) 0xFFFFFFFF)
 
--- a/js/src/methodjit/FastArithmetic.cpp
+++ b/js/src/methodjit/FastArithmetic.cpp
@@ -242,22 +242,18 @@ mjit::Compiler::jsop_binary(JSOp op, Voi
         return;
 
     /*
      * Bail out if there are unhandled types or ops.
      * This is temporary while ops are still being implemented.
      */
     if ((op == JSOP_MOD) ||
         (lhs->isTypeKnown() && (lhs->getKnownType() > JSVAL_UPPER_INCL_TYPE_OF_NUMBER_SET)) ||
-        (rhs->isTypeKnown() && (rhs->getKnownType() > JSVAL_UPPER_INCL_TYPE_OF_NUMBER_SET)) 
-#if defined(JS_CPU_ARM)
-        /* ARM cannot detect integer overflow with multiplication. */
-        || op == JSOP_MUL
-#endif /* JS_CPU_ARM */
-    ) {
+        (rhs->isTypeKnown() && (rhs->getKnownType() > JSVAL_UPPER_INCL_TYPE_OF_NUMBER_SET)))
+    {
         bool isStringResult = (op == JSOP_ADD) &&
                               (lhs->isType(JSVAL_TYPE_STRING) ||
                                rhs->isType(JSVAL_TYPE_STRING));
 
         prepareStubCall(Uses(2));
         INLINE_STUBCALL(stub);
         frame.popn(2);
         if (isStringResult)
@@ -440,21 +436,19 @@ mjit::Compiler::jsop_binary_full_simple(
       case JSOP_ADD:
         overflow = masm.branchAdd32(Assembler::Overflow, regs.result, regs.result);
         break;
 
       case JSOP_SUB:
         overflow = masm.branchSub32(Assembler::Overflow, regs.result, regs.result);
         break;
 
-#if !defined(JS_CPU_ARM)
       case JSOP_MUL:
         overflow = masm.branchMul32(Assembler::Overflow, regs.result, regs.result);
         break;
-#endif
 
       default:
         JS_NOT_REACHED("unrecognized op");
     }
     
     JS_ASSERT(overflow.isSet());
 
     /*
@@ -624,17 +618,16 @@ mjit::Compiler::jsop_binary_full(FrameEn
 
       case JSOP_SUB:
         if (reg.isSet())
             overflow = masm.branchSub32(Assembler::Overflow, reg.reg(), regs.result);
         else
             overflow = masm.branchSub32(Assembler::Overflow, Imm32(value), regs.result);
         break;
 
-#if !defined(JS_CPU_ARM)
       case JSOP_MUL:
       {
         JS_ASSERT(reg.isSet());
         
         MaybeJump storeNegZero;
         bool maybeNegZero = true;
         bool hasConstant = (lhs->isConstant() || rhs->isConstant());
         
@@ -677,17 +670,16 @@ mjit::Compiler::jsop_binary_full(FrameEn
                 stubcc.linkExitDirect(storeNegZero.get(), stubcc.masm.label());
             }
             stubcc.masm.storeValue(DoubleValue(-0.0), frame.addressOf(lhs));
             stubcc.masm.loadPayload(frame.addressOf(lhs), regs.result);
             negZeroDone = stubcc.masm.jump();
         }
         break;
       }
-#endif
 
       default:
         JS_NOT_REACHED("unrecognized op");
     }
     op = origOp;
     
     JS_ASSERT(overflow.isSet());
 
--- a/js/src/shell/js.cpp
+++ b/js/src/shell/js.cpp
@@ -33,18 +33,16 @@
  * 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 ***** */
 
-#define __STDC_LIMIT_MACROS
-
 /*
  * JS shell.
  */
 #include <errno.h>
 #include <math.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
--- a/js/src/xpconnect/src/dom_quickstubs.qsconf
+++ b/js/src/xpconnect/src/dom_quickstubs.qsconf
@@ -253,16 +253,17 @@ members = [
     'nsIDOMHTMLInputElement.form',
     'nsIDOMHTMLInputElement.src',
     'nsIDOMHTMLInputElement.name',
     'nsIDOMHTMLInputElement.value',
     'nsIDOMHTMLInputElement.files',
     'nsIDOMHTMLInputElement.textLength',
     'nsIDOMHTMLInputElement.selectionStart',
     'nsIDOMHTMLInputElement.selectionEnd',
+    'nsIDOMHTMLInputElement.selectionDirection',
     'nsIDOMHTMLInputElement.setSelectionRange',
     'nsIDOMHTMLLinkElement.disabled',
     'nsIDOMHTMLOptionElement.index',
     'nsIDOMHTMLOptionElement.selected',
     'nsIDOMHTMLOptionElement.form',
     'nsIDOMHTMLOptionElement.text',
     'nsIDOMHTMLOptionElement.defaultSelected',
     'nsIDOMHTMLOptionElement.value',
@@ -312,16 +313,17 @@ members = [
     'nsIDOMHTMLTextAreaElement.defaultValue',
     'nsIDOMHTMLTextAreaElement.cols',
     'nsIDOMHTMLTextAreaElement.value',
     'nsIDOMHTMLTextAreaElement.type',
     'nsIDOMHTMLTextAreaElement.select',
     'nsIDOMHTMLTextAreaElement.setSelectionRange',
     'nsIDOMHTMLTextAreaElement.selectionStart',
     'nsIDOMHTMLTextAreaElement.selectionEnd',
+    'nsIDOMHTMLTextAreaElement.selectionDirection',
     'nsIDOMHTMLTextAreaElement.textLength',
     'nsIDOMHTMLTextAreaElement.wrap',
     'nsIDOMHTMLTitleElement.text',
     'nsIDOMHTMLCanvasElement.width',
     'nsIDOMHTMLCanvasElement.height',
     'nsIDOMHTMLCanvasElement.getContext',
     'nsIDOMHTMLCanvasElement.toDataURL',
     'nsIDOMNSHTMLElement.contentEditable',
--- a/layout/forms/nsITextControlFrame.h
+++ b/layout/forms/nsITextControlFrame.h
@@ -45,30 +45,40 @@ class nsIDocShell;
 class nsISelectionController;
 class nsFrameSelection;
 
 class nsITextControlFrame : public nsIFormControlFrame
 {
 public:
   NS_DECL_QUERYFRAME_TARGET(nsITextControlFrame)
 
+  enum SelectionDirection {
+    eNone,
+    eForward,
+    eBackward
+  };
+
   NS_IMETHOD    GetEditor(nsIEditor **aEditor) = 0;
 
   NS_IMETHOD    GetTextLength(PRInt32* aTextLength) = 0;
   
   /**
    * Fire onChange if the value has changed since it was focused or since it
    * was last fired.
    */
   NS_IMETHOD    CheckFireOnChange() = 0;
   NS_IMETHOD    SetSelectionStart(PRInt32 aSelectionStart) = 0;
   NS_IMETHOD    SetSelectionEnd(PRInt32 aSelectionEnd) = 0;
   
-  NS_IMETHOD    SetSelectionRange(PRInt32 aSelectionStart, PRInt32 aSelectionEnd) = 0;
-  NS_IMETHOD    GetSelectionRange(PRInt32* aSelectionStart, PRInt32* aSelectionEnd) = 0;
+  NS_IMETHOD    SetSelectionRange(PRInt32 aSelectionStart,
+                                  PRInt32 aSelectionEnd,
+                                  SelectionDirection aDirection = eNone) = 0;
+  NS_IMETHOD    GetSelectionRange(PRInt32* aSelectionStart,
+                                  PRInt32* aSelectionEnd,
+                                  SelectionDirection* aDirection = nsnull) = 0;
 
   NS_IMETHOD    GetOwnedSelectionController(nsISelectionController** aSelCon) = 0;
   virtual nsFrameSelection* GetOwnedFrameSelection() = 0;
 
   virtual nsresult GetPhonetic(nsAString& aPhonetic) = 0;
 
   /**
    * Ensure editor is initialized with the proper flags and the default value.
--- a/layout/forms/nsTextControlFrame.cpp
+++ b/layout/forms/nsTextControlFrame.cpp
@@ -800,17 +800,18 @@ nsTextControlFrame::GetTextLength(PRInt3
   *aTextLength = textContents.Length();
   return NS_OK;
 }
 
 nsresult
 nsTextControlFrame::SetSelectionInternal(nsIDOMNode *aStartNode,
                                          PRInt32 aStartOffset,
                                          nsIDOMNode *aEndNode,
-                                         PRInt32 aEndOffset)
+                                         PRInt32 aEndOffset,
+                                         nsITextControlFrame::SelectionDirection aDirection)
 {
   // Create a new range to represent the new selection.
   // Note that we use a new range to avoid having to do
   // isIncreasing checks to avoid possible errors.
 
   nsCOMPtr<nsIDOMRange> range = do_CreateInstance(kRangeCID);
   NS_ENSURE_TRUE(range, NS_ERROR_FAILURE);
 
@@ -825,20 +826,34 @@ nsTextControlFrame::SetSelectionInternal
   NS_ASSERTION(txtCtrl, "Content not a text control element");
   nsISelectionController* selCon = txtCtrl->GetSelectionController();
   NS_ENSURE_TRUE(selCon, NS_ERROR_FAILURE);
 
   nsCOMPtr<nsISelection> selection;
   selCon->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(selection));  
   NS_ENSURE_TRUE(selection, NS_ERROR_FAILURE);
 
+  nsCOMPtr<nsISelectionPrivate> selPriv = do_QueryInterface(selection, &rv);
+  NS_ENSURE_SUCCESS(rv, rv);
+
+  nsDirection direction;
+  if (aDirection == eNone) {
+    // Preserve the direction
+    direction = selPriv->GetSelectionDirection();
+  } else {
+    direction = (aDirection == eBackward) ? eDirPrevious : eDirNext;
+  }
+
   rv = selection->RemoveAllRanges();
   NS_ENSURE_SUCCESS(rv, rv);
 
   rv = selection->AddRange(range);  // NOTE: can destroy the world
+  NS_ENSURE_SUCCESS(rv, rv);
+
+  selPriv->SetSelectionDirection(direction);
   return rv;
 }
 
 nsresult
 nsTextControlFrame::ScrollSelectionIntoView()
 {
   nsCOMPtr<nsITextControlElement> txtCtrl = do_QueryInterface(GetContent());
   NS_ASSERTION(txtCtrl, "Content not a text control element");
@@ -901,17 +916,18 @@ nsTextControlFrame::SelectAllOrCollapseT
   rv = SetSelectionInternal(rootNode, aSelect ? 0 : numChildren,
                             rootNode, numChildren);
   NS_ENSURE_SUCCESS(rv, rv);
 
   return ScrollSelectionIntoView();
 }
 
 nsresult
-nsTextControlFrame::SetSelectionEndPoints(PRInt32 aSelStart, PRInt32 aSelEnd)
+nsTextControlFrame::SetSelectionEndPoints(PRInt32 aSelStart, PRInt32 aSelEnd,
+                                          nsITextControlFrame::SelectionDirection aDirection)
 {
   NS_ASSERTION(aSelStart <= aSelEnd, "Invalid selection offsets!");
 
   if (aSelStart > aSelEnd)
     return NS_ERROR_FAILURE;
 
   nsCOMPtr<nsIDOMNode> startNode, endNode;
   PRInt32 startOffset, endOffset;
@@ -931,33 +947,34 @@ nsTextControlFrame::SetSelectionEndPoint
     // Selection isn't collapsed so we have to calculate
     // the end point too.
 
     rv = OffsetToDOMPoint(aSelEnd, getter_AddRefs(endNode), &endOffset);
 
     NS_ENSURE_SUCCESS(rv, rv);
   }
 
-  return SetSelectionInternal(startNode, startOffset, endNode, endOffset);
+  return SetSelectionInternal(startNode, startOffset, endNode, endOffset, aDirection);
 }
 
 NS_IMETHODIMP
-nsTextControlFrame::SetSelectionRange(PRInt32 aSelStart, PRInt32 aSelEnd)
+nsTextControlFrame::SetSelectionRange(PRInt32 aSelStart, PRInt32 aSelEnd,
+                                      nsITextControlFrame::SelectionDirection aDirection)
 {
   nsresult rv = EnsureEditorInitialized();
   NS_ENSURE_SUCCESS(rv, rv);
 
   if (aSelStart > aSelEnd) {
     // Simulate what we'd see SetSelectionStart() was called, followed
     // by a SetSelectionEnd().
 
     aSelStart   = aSelEnd;
   }
 
-  return SetSelectionEndPoints(aSelStart, aSelEnd);
+  return SetSelectionEndPoints(aSelStart, aSelEnd, aDirection);
 }
 
 
 NS_IMETHODIMP
 nsTextControlFrame::SetSelectionStart(PRInt32 aSelectionStart)
 {
   nsresult rv = EnsureEditorInitialized();
   NS_ENSURE_SUCCESS(rv, rv);
@@ -1105,24 +1122,33 @@ nsTextControlFrame::OffsetToDOMPoint(PRI
     NS_IF_ADDREF(*aResult = rootNode);
     *aPosition = 0;
   }
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
-nsTextControlFrame::GetSelectionRange(PRInt32* aSelectionStart, PRInt32* aSelectionEnd)
+nsTextControlFrame::GetSelectionRange(PRInt32* aSelectionStart,
+                                      PRInt32* aSelectionEnd,
+                                      SelectionDirection* aDirection)
 {
   // make sure we have an editor
   nsresult rv = EnsureEditorInitialized();
   NS_ENSURE_SUCCESS(rv, rv);
 
-  *aSelectionStart = 0;
-  *aSelectionEnd = 0;
+  if (aSelectionStart) {
+    *aSelectionStart = 0;
+  }
+  if (aSelectionEnd) {
+    *aSelectionEnd = 0;
+  }
+  if (aDirection) {
+    *aDirection = eNone;
+  }
 
   nsCOMPtr<nsITextControlElement> txtCtrl = do_QueryInterface(GetContent());
   NS_ASSERTION(txtCtrl, "Content not a text control element");
   nsISelectionController* selCon = txtCtrl->GetSelectionController();
   NS_ENSURE_TRUE(selCon, NS_ERROR_FAILURE);
   nsCOMPtr<nsISelection> selection;
   rv = selCon->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(selection));  
   NS_ENSURE_SUCCESS(rv, rv);
@@ -1131,16 +1157,34 @@ nsTextControlFrame::GetSelectionRange(PR
   PRInt32 numRanges = 0;
   selection->GetRangeCount(&numRanges);
 
   if (numRanges < 1)
     return NS_OK;
 
   // We only operate on the first range in the selection!
 
+  if (aDirection) {
+    nsCOMPtr<nsISelectionPrivate> selPriv = do_QueryInterface(selection);
+    if (selPriv) {
+      nsDirection direction = selPriv->GetSelectionDirection();
+      if (direction == eDirNext) {
+        *aDirection = eForward;
+      } else if (direction == eDirPrevious) {
+        *aDirection = eBackward;
+      } else {
+        NS_NOTREACHED("Invalid nsDirection enum value");
+      }
+    }
+  }
+
+  if (!aSelectionStart || !aSelectionEnd) {
+    return NS_OK;
+  }
+
   nsCOMPtr<nsIDOMRange> firstRange;
   rv = selection->GetRangeAt(0, getter_AddRefs(firstRange));
   NS_ENSURE_SUCCESS(rv, rv);
   NS_ENSURE_TRUE(firstRange, NS_ERROR_FAILURE);
 
   nsCOMPtr<nsIDOMNode> startNode, endNode;
   PRInt32 startOffset = 0, endOffset = 0;
 
--- a/layout/forms/nsTextControlFrame.h
+++ b/layout/forms/nsTextControlFrame.h
@@ -140,18 +140,22 @@ public:
 
 //==== NSITEXTCONTROLFRAME
 
   NS_IMETHOD    GetEditor(nsIEditor **aEditor);
   NS_IMETHOD    GetTextLength(PRInt32* aTextLength);
   NS_IMETHOD    CheckFireOnChange();
   NS_IMETHOD    SetSelectionStart(PRInt32 aSelectionStart);
   NS_IMETHOD    SetSelectionEnd(PRInt32 aSelectionEnd);
-  NS_IMETHOD    SetSelectionRange(PRInt32 aSelectionStart, PRInt32 aSelectionEnd);
-  NS_IMETHOD    GetSelectionRange(PRInt32* aSelectionStart, PRInt32* aSelectionEnd);
+  NS_IMETHOD    SetSelectionRange(PRInt32 aSelectionStart,
+                                  PRInt32 aSelectionEnd,
+                                  SelectionDirection aDirection = eNone);
+  NS_IMETHOD    GetSelectionRange(PRInt32* aSelectionStart,
+                                  PRInt32* aSelectionEnd,
+                                  SelectionDirection* aDirection = nsnull);
   NS_IMETHOD    GetOwnedSelectionController(nsISelectionController** aSelCon);
   virtual nsFrameSelection* GetOwnedFrameSelection();
 
   nsresult GetPhonetic(nsAString& aPhonetic);
 
   /**
    * Ensure mEditor is initialized with the proper flags and the default value.
    * @throws NS_ERROR_NOT_INITIALIZED if mEditor has not been created
@@ -385,19 +389,21 @@ protected:
   nsresult CalcIntrinsicSize(nsRenderingContext* aRenderingContext,
                              nsSize&              aIntrinsicSize);
 
   nsresult ScrollSelectionIntoView();
 
 private:
   //helper methods
   nsresult SetSelectionInternal(nsIDOMNode *aStartNode, PRInt32 aStartOffset,
-                                nsIDOMNode *aEndNode, PRInt32 aEndOffset);
+                                nsIDOMNode *aEndNode, PRInt32 aEndOffset,
+                                SelectionDirection aDirection = eNone);
   nsresult SelectAllOrCollapseToEndOfText(PRBool aSelect);
-  nsresult SetSelectionEndPoints(PRInt32 aSelStart, PRInt32 aSelEnd);
+  nsresult SetSelectionEndPoints(PRInt32 aSelStart, PRInt32 aSelEnd,
+                                 SelectionDirection aDirection = eNone);
 
   // accessors for the notify on input flag
   PRBool GetNotifyOnInput() const { return mNotifyOnInput; }
   void SetNotifyOnInput(PRBool val) { mNotifyOnInput = val; }
 
   /**
    * Return the root DOM element, and implicitly initialize the editor if needed.
    */
--- a/layout/generic/nsHTMLReflowState.cpp
+++ b/layout/generic/nsHTMLReflowState.cpp
@@ -972,17 +972,17 @@ nsHTMLReflowState::CalculateHypothetical
       aHypotheticalBox.mTop = placeholderOffset.y;
     } else {
       NS_ASSERTION(iter.GetContainer() == blockFrame,
                    "Found placeholder in wrong block!");
       nsBlockFrame::line_iterator lineBox = iter.GetLine();
 
       // How we determine the hypothetical box depends on whether the element
       // would have been inline-level or block-level
-      if (NS_STYLE_DISPLAY_INLINE == mStyleDisplay->mOriginalDisplay) {
+      if (mStyleDisplay->IsOriginalDisplayInlineOutside()) {
         // Use the top of the inline box which the placeholder lives in
         // as the hypothetical box's top.
         aHypotheticalBox.mTop = lineBox->mBounds.y + blockYOffset;
       } else {
         // The element would have been block-level which means it would
         // be below the line containing the placeholder frame, unless
         // all the frames before it are empty.  In that case, it would
         // have been just before this line.
@@ -1024,17 +1024,17 @@ nsHTMLReflowState::CalculateHypothetical
     aHypotheticalBox.mTop = placeholderOffset.y;
   }
 
   // Second, determine the hypothetical box's mLeft & mRight
   // To determine the left and right offsets we need to look at the block's 'direction'
   if (NS_STYLE_DIRECTION_LTR == blockVis->mDirection) {
     // How we determine the hypothetical box depends on whether the element
     // would have been inline-level or block-level
-    if (NS_STYLE_DISPLAY_INLINE == mStyleDisplay->mOriginalDisplay) {
+    if (mStyleDisplay->IsOriginalDisplayInlineOutside()) {
       // The placeholder represents the left edge of the hypothetical box
       aHypotheticalBox.mLeft = placeholderOffset.x;
     } else {
       aHypotheticalBox.mLeft = aBlockLeftContentEdge;
     }
 #ifdef DEBUG
     aHypotheticalBox.mLeftIsExact = PR_TRUE;
 #endif
@@ -1051,17 +1051,17 @@ nsHTMLReflowState::CalculateHypothetical
       aHypotheticalBox.mRight = aBlockLeftContentEdge + aBlockContentWidth;
 #ifdef DEBUG
       aHypotheticalBox.mRightIsExact = PR_FALSE;
 #endif
     }
 
   } else {
     // The placeholder represents the right edge of the hypothetical box
-    if (NS_STYLE_DISPLAY_INLINE == mStyleDisplay->mOriginalDisplay) {
+    if (mStyleDisplay->IsOriginalDisplayInlineOutside()) {
       aHypotheticalBox.mRight = placeholderOffset.x;
     } else {
       aHypotheticalBox.mRight = aBlockLeftContentEdge + aBlockContentWidth;
     }
 #ifdef DEBUG
     aHypotheticalBox.mRightIsExact = PR_TRUE;
 #endif
     
--- a/layout/generic/nsSelection.cpp
+++ b/layout/generic/nsSelection.cpp
@@ -5991,16 +5991,26 @@ nsTypedSelection::SelectionLanguageChang
   
   // The caret might have moved, so invalidate the desired X position
   // for future usages of up-arrow or down-arrow
   mFrameSelection->InvalidateDesiredX();
   
   return NS_OK;
 }
 
+NS_IMETHODIMP_(nsDirection)
+nsTypedSelection::GetSelectionDirection() {
+  return mDirection;
+}
+
+NS_IMETHODIMP_(void)
+nsTypedSelection::SetSelectionDirection(nsDirection aDirection) {
+  mDirection = aDirection;
+}
+
 
 // nsAutoCopyListener
 
 nsAutoCopyListener* nsAutoCopyListener::sInstance = nsnull;
 
 NS_IMPL_ISUPPORTS1(nsAutoCopyListener, nsISelectionListener)
 
 /*
new file mode 100644
--- /dev/null
+++ b/layout/reftests/abs-pos/auto-offset-inline-block-1-ref.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML>
+<title>'auto' offset properties on display:inline-block (reference)</title>
+<style>
+p { font-family: monospace /* avoid kerning */ }
+</style>
+<p>HelloWorld</p>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/abs-pos/auto-offset-inline-block-1.html
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML>
+<title>'auto' offset properties on display:inline-block</title>
+<style>
+p { font-family: monospace /* avoid kerning */ }
+span {
+  display: inline-block;
+  position: absolute;
+}
+</style>
+<p>Hello<span>World</span></p>
--- a/layout/reftests/abs-pos/reftest.list
+++ b/layout/reftests/abs-pos/reftest.list
@@ -1,2 +1,3 @@
 == font-size-wrap.html font-size-wrap-ref.html
 == abs-pos-auto-margin-1.html abs-pos-auto-margin-1-ref.html
+== auto-offset-inline-block-1.html auto-offset-inline-block-1-ref.html
--- a/layout/style/nsStyleStruct.h
+++ b/layout/style/nsStyleStruct.h
@@ -1546,23 +1546,31 @@ struct nsStyleDisplay {
   }
 
   PRBool IsBlockOutside() const {
     return NS_STYLE_DISPLAY_BLOCK == mDisplay ||
            NS_STYLE_DISPLAY_LIST_ITEM == mDisplay ||
            NS_STYLE_DISPLAY_TABLE == mDisplay;
   }
 
+  static PRBool IsDisplayTypeInlineOutside(PRUint8 aDisplay) {
+    return NS_STYLE_DISPLAY_INLINE == aDisplay ||
+           NS_STYLE_DISPLAY_INLINE_BLOCK == aDisplay ||
+           NS_STYLE_DISPLAY_INLINE_TABLE == aDisplay ||
+           NS_STYLE_DISPLAY_INLINE_BOX == aDisplay ||
+           NS_STYLE_DISPLAY_INLINE_GRID == aDisplay ||
+           NS_STYLE_DISPLAY_INLINE_STACK == aDisplay;
+  }
+
   PRBool IsInlineOutside() const {
-    return NS_STYLE_DISPLAY_INLINE == mDisplay ||
-           NS_STYLE_DISPLAY_INLINE_BLOCK == mDisplay ||
-           NS_STYLE_DISPLAY_INLINE_TABLE == mDisplay ||
-           NS_STYLE_DISPLAY_INLINE_BOX == mDisplay ||
-           NS_STYLE_DISPLAY_INLINE_GRID == mDisplay ||
-           NS_STYLE_DISPLAY_INLINE_STACK == mDisplay;
+    return IsDisplayTypeInlineOutside(mDisplay);
+  }
+
+  PRBool IsOriginalDisplayInlineOutside() const {
+    return IsDisplayTypeInlineOutside(mOriginalDisplay);
   }
 
   PRBool IsFloating() const {
     return NS_STYLE_FLOAT_NONE != mFloats;
   }
 
   PRBool IsAbsolutelyPositioned() const {return (NS_STYLE_POSITION_ABSOLUTE == mPosition) ||
                                                 (NS_STYLE_POSITION_FIXED == mPosition);}
--- a/layout/style/viewsource.css
+++ b/layout/style/viewsource.css
@@ -98,15 +98,14 @@ pre {
 }
 .markupdeclaration {
  color: steelblue;
  font-style: italic;
 }
 span:not(.error) {
  unicode-bidi: embed;
 }
-.error, .error > .start-tag, .error > .end-tag,
-.error > .comment, .error > .cdata, .error > .doctype,
-.error > .pi, .error > .entity, .error > .attribute-name,
-.error > .attribute-value {
+.error, 
+.error > :-moz-any(.start-tag, .end-tag, .comment, .cdata, .doctype, .pi,
+                   .entity, .attribute-name, .attribute-value) {
   color: red;
   font-weight: bold;
 }
--- a/mobile/chrome/content/browser.js
+++ b/mobile/chrome/content/browser.js
@@ -3123,38 +3123,41 @@ var ViewableAreaObserver = {
     let oldWidth = parseInt(Browser.styles["viewable-width"].width);
 
     let newWidth = this.width;
     let newHeight = this.height;
     if (newHeight == oldHeight && newWidth == oldWidth)
       return;
 
     // Guess if the window has been resize to handle a virtual keyboard
+    let isDueToKeyboard = (newHeight != oldHeight && newWidth == oldWidth);
     this.isKeyboardOpened = (newHeight < oldHeight && newWidth == oldWidth);
 
     Browser.styles["viewable-height"].height = newHeight + "px";
     Browser.styles["viewable-height"].maxHeight = newHeight + "px";
 
     Browser.styles["viewable-width"].width = newWidth + "px";
     Browser.styles["viewable-width"].maxWidth = newWidth + "px";
 
     let startup = !oldHeight && !oldWidth;
-    for (let i = Browser.tabs.length - 1; i >= 0; i--) {
-      let tab = Browser.tabs[i];
-      let oldContentWindowWidth = tab.browser.contentWindowWidth;
-      tab.updateViewportSize(); // contentWindowWidth may change here.
-
-      // Don't bother updating the zoom level on startup
-      if (!startup) {
-        // If the viewport width is still the same, the page layout has not
-        // changed, so we can keep keep the same content on-screen.
-        if (tab.browser.contentWindowWidth == oldContentWindowWidth)
-          tab.restoreViewportPosition(oldWidth, newWidth);
-
-        tab.updateDefaultZoomLevel();
+    if (!isDueToKeyboard) {
+      for (let i = Browser.tabs.length - 1; i >= 0; i--) {
+        let tab = Browser.tabs[i];
+        let oldContentWindowWidth = tab.browser.contentWindowWidth;
+        tab.updateViewportSize(); // contentWindowWidth may change here.
+  
+        // Don't bother updating the zoom level on startup
+        if (!startup) {
+          // If the viewport width is still the same, the page layout has not
+          // changed, so we can keep keep the same content on-screen.
+          if (tab.browser.contentWindowWidth == oldContentWindowWidth)
+            tab.restoreViewportPosition(oldWidth, newWidth);
+  
+          tab.updateDefaultZoomLevel();
+        }
       }
     }
 
     // setTimeout(callback, 0) to ensure the resize event handler dispatch is finished
     setTimeout(function() {
       let event = document.createEvent("Events");
       event.initEvent("SizeChanged", true, false);
       Elements.browsers.dispatchEvent(event);
--- a/mobile/chrome/content/content.js
+++ b/mobile/chrome/content/content.js
@@ -1327,48 +1327,70 @@ var TouchEventHandler = {
   }
 };
 
 TouchEventHandler.init();
 
 var SelectionHandler = {
   cache: {},
   selectedText: "",
+  contentWindow: null,
   
   init: function() {
     addMessageListener("Browser:SelectionStart", this);
     addMessageListener("Browser:SelectionEnd", this);
     addMessageListener("Browser:SelectionMove", this);
   },
 
   receiveMessage: function(aMessage) {
     let scrollOffset = ContentScroll.getScrollOffset(content);
     let utils = Util.getWindowUtils(content);
     let json = aMessage.json;
 
     switch (aMessage.name) {
       case "Browser:SelectionStart": {
         this.selectedText = "";
 
+        // if this is an iframe, dig down to find the document that was clicked
+        let x = json.x;
+        let y = json.y;
+        let offsetX = 0;
+        let offsetY = 0;
+        let elem = utils.elementFromPoint(x, y, true, false);
+        while (elem && (elem instanceof HTMLIFrameElement || elem instanceof HTMLFrameElement)) {
+          // adjust client coordinates' origin to be top left of iframe viewport
+          let rect = elem.getBoundingClientRect();
+          scrollOffset = ContentScroll.getScrollOffset(elem.ownerDocument.defaultView);
+          offsetX += rect.left;
+          x -= rect.left;
+
+          offsetY += rect.top + scrollOffset.y;
+          y -= rect.top + scrollOffset.y;
+          utils = elem.contentDocument.defaultView.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils);
+          elem = utils.elementFromPoint(x, y, true, false);
+        }
+        let contentWindow = elem.ownerDocument.defaultView;
+        let currentDocShell = contentWindow.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIWebNavigation).QueryInterface(Ci.nsIDocShell);
+
         // Position the caret using a fake mouse click
-        utils.sendMouseEventToWindow("mousedown", json.x - scrollOffset.x, json.y - scrollOffset.y, 0, 1, 0, true);
-        utils.sendMouseEventToWindow("mouseup", json.x - scrollOffset.x, json.y - scrollOffset.y, 0, 1, 0, true);
+        utils.sendMouseEventToWindow("mousedown", x - scrollOffset.x, y - scrollOffset.y, 0, 1, 0, true);
+        utils.sendMouseEventToWindow("mouseup", x - scrollOffset.x, y - scrollOffset.y, 0, 1, 0, true);
 
         // Select the word nearest the caret
         try {
-          let selcon = docShell.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsISelectionDisplay).QueryInterface(Ci.nsISelectionController);
+          let selcon = currentDocShell.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsISelectionDisplay).QueryInterface(Ci.nsISelectionController);
           selcon.wordMove(false, false);
           selcon.wordMove(true, true);
         } catch(e) {
           // If we couldn't select the word at the given point, bail
           return;
         }
 
         // Find the selected text rect and send it back so the handles can position correctly
-        let selection = content.getSelection();
+        let selection = contentWindow.getSelection();
         if (selection.rangeCount == 0)
           return;
 
         let range = selection.getRangeAt(0).QueryInterface(Ci.nsIDOMNSRange);
         if (!range)
           return;
 
         // Cache the selected text since the selection might be gone by the time we get the "end" message
@@ -1379,44 +1401,49 @@ var SelectionHandler = {
           selection.collapseToStart();
           return;
         }
 
         this.cache = { start: {}, end: {} };
         let rects = range.getClientRects();
         for (let i=0; i<rects.length; i++) {
           if (i == 0) {
-            this.cache.start.x = rects[i].left + scrollOffset.x;
-            this.cache.start.y = rects[i].bottom + scrollOffset.y;
+            this.cache.start.x = rects[i].left + offsetX;
+            this.cache.start.y = rects[i].bottom + offsetY;
           }
-          this.cache.end.x = rects[i].right + scrollOffset.x;
-          this.cache.end.y = rects[i].bottom + scrollOffset.y;
+          this.cache.end.x = rects[i].right + offsetX;
+          this.cache.end.y = rects[i].bottom + offsetY;
         }
 
+        this.contentWindow = contentWindow;
         sendAsyncMessage("Browser:SelectionRange", this.cache);
         break;
       }
 
       case "Browser:SelectionEnd": {
         try {
           // The selection might already be gone
-          content.getSelection().collapseToStart();
+          if (this.contentWindow)
+            this.contentWindow.getSelection().collapseToStart();
+          this.contentWindow = null;
         } catch(e) {}
 
         if (this.selectedText.length) {
           let clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper);
           clipboard.copyString(this.selectedText);
           sendAsyncMessage("Browser:SelectionCopied", { succeeded: true });
         } else {
           sendAsyncMessage("Browser:SelectionCopied", { succeeded: false });
         }
         break;
       }
 
       case "Browser:SelectionMove":
+        if (!this.contentWindow)
+          return;
         // Hack to avoid setting focus in a textbox [Bugs 654352 & 667243]
         let elemUnder = elementFromPoint(json.x - scrollOffset.x, json.y - scrollOffset.y);
         if (elemUnder && elemUnder instanceof Ci.nsIDOMHTMLInputElement || elemUnder instanceof Ci.nsIDOMHTMLTextAreaElement)
           return;
 
         if (json.type == "end") {
           this.cache.end.x = json.x - scrollOffset.x;
           this.cache.end.y = json.y - scrollOffset.y;
@@ -1428,15 +1455,15 @@ var SelectionHandler = {
           utils.sendMouseEventToWindow("mousedown", this.cache.start.x, this.cache.start.y, 0, 1, 0, true);
           // Don't cause a click. A mousedown is enough to move the caret
           //utils.sendMouseEventToWindow("mouseup", this.cache.start.x, this.cache.start.y, 0, 1, 0, true);
           utils.sendMouseEventToWindow("mousedown", this.cache.end.x, this.cache.end.y, 0, 1, Ci.nsIDOMNSEvent.SHIFT_MASK, true);
           utils.sendMouseEventToWindow("mouseup", this.cache.end.x, this.cache.end.y, 0, 1, Ci.nsIDOMNSEvent.SHIFT_MASK, true);
         }
 
         // Cache the selected text since the selection might be gone by the time we get the "end" message
-        this.selectedText = content.getSelection().toString().trim();
+        this.selectedText = this.contentWindow.getSelection().toString().trim();
         break;
     }
   }
 };
 
 SelectionHandler.init();
--- a/mobile/components/PromptService.js
+++ b/mobile/components/PromptService.js
@@ -566,34 +566,140 @@ Prompt.prototype = {
     let canSave = PromptUtils.canSaveLogin(hostname, null);
     if (canSave)
       [checkMsg, check] = PromptUtils.getUsernameAndPassword(foundLogins, username, password);
 
     if (username.value && password.value) {
       PromptUtils.setAuthInfo(aAuthInfo, username.value, password.value);
     }
 
-    let ok;
-    if (aAuthInfo.flags & Ci.nsIAuthInformation.ONLY_PASSWORD)
+    let canAutologin = false;
+    if (aAuthInfo.flags & Ci.nsIAuthInformation.AUTH_PROXY &&
+        !(aAuthInfo.flags & Ci.nsIAuthInformation.PREVIOUS_FAILED) &&
+        Services.prefs.getBoolPref("signon.autologin.proxy"))
+      canAutologin = true;
+
+    let ok = canAutologin;
+    if (!ok && aAuthInfo.flags & Ci.nsIAuthInformation.ONLY_PASSWORD)
       ok = this.nsIPrompt_promptPassword(null, message, password, checkMsg, check);
-    else
+    else if (!ok)
       ok = this.nsIPrompt_promptUsernameAndPassword(null, message, username, password, checkMsg, check);
 
     PromptUtils.setAuthInfo(aAuthInfo, username.value, password.value);
 
-    if (ok && canSave && check.value) {
+    if (ok && canSave && check.value)
       PromptUtils.savePassword(foundLogins, username, password, hostname, httpRealm);
-    }
 
     return ok;
   },
 
+  _asyncPrompts: {},
+  _asyncPromptInProgress: false,
+
+  _doAsyncPrompt : function() {
+    if (this._asyncPromptInProgress)
+      return;
+
+    // Find the first prompt key we have in the queue
+    let hashKey = null;
+    for (hashKey in this._asyncPrompts)
+      break;
+
+    if (!hashKey)
+      return;
+
+    // If login manger has logins for this host, defer prompting if we're
+    // already waiting on a master password entry.
+    let prompt = this._asyncPrompts[hashKey];
+    let prompter = prompt.prompter;
+    let [hostname, httpRealm] = PromptUtils.getAuthTarget(prompt.channel, prompt.authInfo);
+    let foundLogins = PromptUtils.pwmgr.findLogins({}, hostname, null, httpRealm);
+    if (foundLogins.length > 0 && PromptUtils.pwmgr.uiBusy)
+      return;
+
+    this._asyncPromptInProgress = true;
+    prompt.inProgress = true;
+
+    let self = this;
+
+    let runnable = {
+      run: function() {
+        let ok = false;
+        try {
+          ok = prompter.promptAuth(prompt.channel, prompt.level, prompt.authInfo);
+        } catch (e) {
+          Cu.reportError("_doAsyncPrompt:run: " + e + "\n");
+        }
+
+        delete self._asyncPrompts[hashKey];
+        prompt.inProgress = false;
+        self._asyncPromptInProgress = false;
+
+        for each (let consumer in prompt.consumers) {
+          if (!consumer.callback)
+            // Not having a callback means that consumer didn't provide it
+            // or canceled the notification
+            continue;
+
+          try {
+            if (ok)
+              consumer.callback.onAuthAvailable(consumer.context, prompt.authInfo);
+            else
+              consumer.callback.onAuthCancelled(consumer.context, true);
+          } catch (e) { /* Throw away exceptions caused by callback */ }
+        }
+        self._doAsyncPrompt();
+      }
+    }
+
+    Services.tm.mainThread.dispatch(runnable, Ci.nsIThread.DISPATCH_NORMAL);
+  },
+
   asyncPromptAuth: function asyncPromptAuth(aChannel, aCallback, aContext, aLevel, aAuthInfo) {
-    // bug 514196
-    throw Cr.NS_ERROR_NOT_IMPLEMENTED;
+    let cancelable = null;
+    try {
+      // If the user submits a login but it fails, we need to remove the
+      // notification bar that was displayed. Conveniently, the user will
+      // be prompted for authentication again, which brings us here.
+      //this._removeLoginNotifications();
+
+      cancelable = {
+        QueryInterface: XPCOMUtils.generateQI([Ci.nsICancelable]),
+        callback: aCallback,
+        context: aContext,
+        cancel: function() {
+          this.callback.onAuthCancelled(this.context, false);
+          this.callback = null;
+          this.context = null;
+        }
+      };
+      let [hostname, httpRealm] = PromptUtils.getAuthTarget(aChannel, aAuthInfo);
+      let hashKey = aLevel + "|" + hostname + "|" + httpRealm;
+      let asyncPrompt = this._asyncPrompts[hashKey];
+      if (asyncPrompt) {
+        asyncPrompt.consumers.push(cancelable);
+        return cancelable;
+      }
+
+      asyncPrompt = {
+        consumers: [cancelable],
+        channel: aChannel,
+        authInfo: aAuthInfo,
+        level: aLevel,
+        inProgress : false,
+        prompter: this
+      }
+
+      this._asyncPrompts[hashKey] = asyncPrompt;
+      this._doAsyncPrompt();
+    } catch (e) {
+      Cu.reportError("PromptService: " + e + "\n");
+      throw e;
+    }
+    return cancelable;
   }
 };
 
 let PromptUtils = {
   getLocaleString: function pu_getLocaleString(aKey, aService) {
     if (aService == "passwdmgr")
       return this.passwdBundle.GetStringFromName(aKey);
 
deleted file mode 100644
--- a/testing/sisyphus/bin/appinfo.js
+++ /dev/null
@@ -1,90 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; -*- */
-/* ***** 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 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>
- *
- * 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 AppInfo()
-{
-  // See http://developer.mozilla.org/en/docs/Using_nsIXULAppInfo
-  var appInfo;
-
-  this.vendor          = 'unknown';
-  this.name            = 'unknown';
-  this.ID              = 'unknown';
-  this.version         = 'unknown';
-  this.appBuildID      = 'unknown';
-  this.platformVersion = 'unknown';
-  this.platformBuildID = 'unknown';
-
-  try
-  {
-    netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
-
-    if('@mozilla.org/xre/app-info;1' in Components.classes) 
-    {
-      // running under Mozilla 1.8 or later
-      appInfo = Components
-                  .classes['@mozilla.org/xre/app-info;1']
-                  .getService(Components.interfaces.nsIXULAppInfo);
-
-      this.vendor          = appInfo.vendor;
-      this.name            = appInfo.name;
-      this.ID              = appInfo.ID;
-      this.version         = appInfo.version;
-      this.appBuildID      = appInfo.appBuildID;
-      this.platformVersion = appInfo.platformVersion;
-      this.platformBuildID = appInfo.platformBuildID;
-    }
-  }
-  catch(e)
-  {
-  }
-
-  if (this.vendor == 'unknown')
-  {
-    var ua = navigator.userAgent;
-    var cap = ua.match(/rv:([\d.ab+]+).*Gecko\/(\d{8,8}) ([\S]+)\/([\d.]+)/);
-
-    if (cap && cap.length == 5)
-    {
-      this.vendor          = navigator.vendor ? navigator.vendor : 'Mozilla';
-      this.name            = cap[3];
-      this.version         = cap[4];
-      this.appBuildID      = cap[2] + '00';
-      this.platformVersion = cap[1];
-      this.platformBuildID =  this.appBuildID;
-    }
-  }
-}
deleted file mode 100755
--- a/testing/sisyphus/bin/build.sh
+++ /dev/null
@@ -1,189 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-source $TEST_DIR/bin/set-build-env.sh $@
-
-case $product in
-    firefox)
-        cd $BUILDTREE/mozilla
-
-        if ! $buildbash $bashlogin -c "export PATH=\"$BUILDPATH\"; cd $BUILDTREE/mozilla; make -f client.mk build" 2>&1; then
-
-            if [[ -z "$TEST_FORCE_CLOBBER_ON_ERROR" ]]; then
-                error "error during build" $LINENO
-            else
-                echo "error occurred during build. attempting a clobber build" $LINENO
-                if ! $buildbash $bashlogin -c "export PATH=\"$BUILDPATH\"; cd $BUILDTREE/mozilla; make -f client.mk distclean" 2>&1; then
-                    error "error during forced clobber" $LINENO
-                fi
-                if ! $buildbash $bashlogin -c "export PATH=\"$BUILDPATH\"; cd $BUILDTREE/mozilla; make -f client.mk build" 2>&1; then
-                    error "error during forced build" $LINENO
-                fi
-            fi
-        fi
-
-        case "$OSID" in
-            mac) 
-                if [[ "$buildtype" == "debug" ]]; then
-                    if [[ "$product" == "firefox" ]]; then
-                        executablepath=$product-$buildtype/dist/FirefoxDebug.app/Contents/MacOS
-                    fi
-                else
-                    if [[ "$product" == "firefox" ]]; then
-                        executablepath=$product-$buildtype/dist/Firefox.app/Contents/MacOS
-                    fi
-                fi
-                ;;
-            linux)
-                executablepath=$product-$buildtype/dist/bin
-                ;;
-        esac
-
-        if [[ "$OSID" != "nt" ]]; then
-            #
-            # patch unix-like startup scripts to exec instead of 
-            # forking new processes
-            #
-            executable=`get_executable $product $branch $executablepath`
-
-            executabledir=`dirname $executable`
-
-            # patch to use exec to prevent forked processes
-            cd "$executabledir"
-            if [ -e "$product" ]; then
-                echo "$SCRIPT: patching $product"
-                cp $TEST_DIR/bin/$product.diff .
-                patch -N -p0 < $product.diff
-            fi
-            if [ -e run-mozilla.sh ]; then
-                echo "$SCRIPT: patching run-mozilla.sh"
-                cp $TEST_DIR/bin/run-mozilla.diff .
-                patch -N -p0 < run-mozilla.diff
-            fi
-        fi
-        ;;
-    js)
-
-        if [[ -e "$BUILDTREE/mozilla/js/src/configure.in" ]]; then
-
-            # use the new fangled autoconf build environment for spidermonkey
-
-            # recreate the OBJ directories to match the old naming standards
-            TEST_JSDIR=${TEST_JSDIR:-$TEST_DIR/tests/mozilla.org/js}
-            source $TEST_JSDIR/config.sh
-
-            cd "$BUILDTREE/mozilla/js/src"
-            mkdir -p "$JS_OBJDIR"
-
-            # run autoconf when configure.in is newer than configure
-            if [[ configure.in -nt configure ]]; then
-                if [[ "$OSID" == "nt" ]]; then
-                    AUTOCONF=autoconf-2.13
-                elif findprogram autoconf-2.13; then
-                    AUTOCONF=autoconf-2.13
-                elif findprogram autoconf2.13; then
-                    AUTOCONF=autoconf2.13
-                elif findprogram autoconf213; then
-                    AUTOCONF=autoconf213
-                else
-                    error "autoconf 2.13 not detected"
-                fi
-
-                if ! $buildbash $bashlogin -c "export PATH=\"$BUILDPATH\"; cd $BUILDTREE/mozilla/js/src; eval \"$AUTOCONF\";" 2>&1; then
-                    error "during js/src autoconf" $LINENO
-                fi
-            fi
-
-
-            # XXX: Todo
-            # This reproduces the limited approach which previously existed with Makefile.ref but
-            # does not provide the full functionality provided by the available configure options.
-            # Ideally, it would be good to use a mozconfig approach (if available) that would generate
-            # the necessary configure command line arguments. This would provide the generality to
-            # specify arbitrary configure options.
-            #
-
-            if [[ "configure" -nt "$JS_OBJDIR/Makefile" ]]; then
-                if [[ "$buildtype" == "debug" ]]; then
-                    if ! $buildbash $bashlogin -c "export PATH=\"$BUILDPATH\"; cd $BUILDTREE/mozilla/js/src/$JS_OBJDIR; ../configure --prefix=$BUILDTREE/mozilla/js/src/$JS_OBJDIR  --disable-optimize --enable-debug"; then
-                        error "during js/src/$JS_OBJDIR configure" $LINENO
-                    fi
-                else
-                    if ! $buildbash $bashlogin -c "export PATH=\"$BUILDPATH\"; cd $BUILDTREE/mozilla/js/src/$JS_OBJDIR; ../configure --prefix=$BUILDTREE/mozilla/js/src/$JS_OBJDIR  --enable-optimize --disable-debug"; then
-                        error "during js/src/$JS_OBJDIR configure" $LINENO
-                    fi
-                fi
-            fi
-
-            if ! $buildbash $bashlogin -c "export PATH=\"$BUILDPATH\"; cd $BUILDTREE/mozilla/js/src/$JS_OBJDIR; make" 2>&1; then
-                error "during js/src build" $LINENO
-            fi
-
-            if ! $buildbash $bashlogin -c "export PATH=\"$BUILDPATH\"; cd $BUILDTREE/mozilla/js/src/$JS_OBJDIR; make install" 2>&1; then
-                error "during js/src install" $LINENO
-            fi
-
-        elif [[ -e "$BUILDTREE/mozilla/js/src/Makefile.ref" ]]; then
-
-            # use the old-style Makefile.ref build environment for spidermonkey
-
-            if [[ $buildtype == "debug" ]]; then
-                export JSBUILDOPT=
-            else
-                export JSBUILDOPT=BUILD_OPT=1
-            fi
-
-            if ! $buildbash $bashlogin -c "export PATH=\"$BUILDPATH\"; cd $BUILDTREE/mozilla/js/src; make -f Makefile.ref ${JSBUILDOPT} clean" 2>&1; then
-                error "during js/src clean" $LINENO
-            fi 
-
-            if ! $buildbash $bashlogin -c "export PATH=\"$BUILDPATH\"; cd $BUILDTREE/mozilla/js/src; make -f Makefile.ref ${JSBUILDOPT}" 2>&1; then
-                error "during js/src build" $LINENO
-            fi
-
-        else
-
-            error "Neither Makefile.ref or autoconf builds available"
-
-        fi
-        ;;
-esac
-
-
deleted file mode 100755
--- a/testing/sisyphus/bin/builder.sh
+++ /dev/null
@@ -1,187 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-
-TEST_LOG=/dev/null
-
-#
-# options processing
-#
-options="p:b:B:T:e:d:v"
-function usage()
-{
-    cat<<EOF
-usage: 
-$SCRIPT -p products -b branches -B buildcommands -T buildtypes [-e extra] [-d datafiles] [-v]
-
-variable            description
-===============     ===========================================================
--p products         required. one or more of js firefox
--b branches         required. one or more of supported branches. see library.sh.
--B buildcommands    required. one or more of clean clobber checkout build
--T buildtypes       required. one or more of opt debug
--e extra            optional. extra qualifier to pick build tree and mozconfig.
--d datafiles        optional. one or more filenames of files containing 
-                    environment variable definitions to be included.
--v                  optional. verbose - copies log file output to stdout.
-
-note that the environment variables should have the same names as in the 
-"variable" column.
-
-EOF
-    exit 1
-}
-
-unset products branches buildcommands buildtypes extra extraflag datafiles
-
-while getopts $options optname ; 
-  do 
-  case $optname in
-      p) products="$OPTARG";;
-      b) branches="$OPTARG";;
-      B) buildcommands="$OPTARG";;
-      T) buildtypes="$OPTARG";;
-      e) extra="-$OPTARG"
-          extraflag="-e $OPTARG";;
-      d) datafiles=$OPTARG;;
-      v) verbose=1;;
-  esac
-done
-
-# include environment variables
-loaddata $datafiles
-
-if [[ -z "$products" || -z "$branches" || -z "$buildcommands" || \
-    -z "$buildtypes" ]]; then
-    usage
-fi
-
-# clean first in case checkout changes the configuration
-if echo "$buildcommands" | grep -iq clean; then
-    for product in $products; do
-        for branch in $branches; do
-
-            checkProductBranch $product $branch
-
-            for buildtype in $buildtypes; do
-
-                TEST_DATE=`date -u +%Y-%m-%d-%H-%M-%S``date +%z`
-                TEST_LOG="${TEST_DIR}/results/${TEST_DATE},$product,$branch$extra,$buildtype,$OSID,${TEST_MACHINE},clean.log"
-
-                echo "log: $TEST_LOG"
-
-                if [[ "$verbose" == "1" ]]; then
-                    clean.sh -p $product -b $branch -T $buildtype $extraflag 2>&1 | tee $TEST_LOG
-                else
-                    clean.sh -p $product -b $branch -T $buildtype $extraflag > $TEST_LOG 2>&1
-                fi
-            done
-        done
-    done
-fi
-
-# clobber first in case checkout changes the configuration
-if echo "$buildcommands" | grep -iq clobber; then
-    for product in $products; do
-        for branch in $branches; do
-
-            checkProductBranch $product $branch
-
-            for buildtype in $buildtypes; do
-
-                TEST_DATE=`date -u +%Y-%m-%d-%H-%M-%S``date +%z`
-                TEST_LOG="${TEST_DIR}/results/${TEST_DATE},$product,$branch$extra,$buildtype,$OSID,${TEST_MACHINE},clobber.log"
-
-                echo "log: $TEST_LOG"
-
-                if [[ "$verbose" == "1" ]]; then
-                    clobber.sh -p $product -b $branch -T $buildtype $extraflag 2>&1 | tee $TEST_LOG
-                else
-                    clobber.sh -p $product -b $branch -T $buildtype $extraflag > $TEST_LOG 2>&1
-                fi
-            done
-        done
-    done
-fi
-
-# if checkout, ignore buildtypes
-if echo "$buildcommands" | grep -iq checkout; then
-    for product in $products; do
-        for branch in $branches; do
-
-            checkProductBranch $product $branch
-
-            TEST_DATE=`date -u +%Y-%m-%d-%H-%M-%S``date +%z`
-            TEST_LOG="${TEST_DIR}/results/${TEST_DATE},$product,$branch$extra,$buildtype,$OSID,${TEST_MACHINE},checkout.log"
-
-            echo "log: $TEST_LOG"
-
-            if [[ "$verbose" == "1" ]]; then
-                checkout.sh -p $product -b $branch -T opt $extraflag 2>&1 | tee $TEST_LOG
-            else
-                checkout.sh -p $product -b $branch -T opt $extraflag > $TEST_LOG 2>&1
-            fi
-
-        done
-    done
-fi
-
-if echo "$buildcommands" | grep -iq build; then
-    for product in $products; do
-        for branch in $branches; do
-            for buildtype in $buildtypes; do
-
-                checkProductBranch $product $branch
-
-                TEST_DATE=`date -u +%Y-%m-%d-%H-%M-%S``date +%z`
-                TEST_LOG="${TEST_DIR}/results/${TEST_DATE},$product,$branch$extra,$buildtype,$OSID,${TEST_MACHINE},build.log"
-
-                echo "log: $TEST_LOG"
-
-                if [[ "$verbose" == "1" ]]; then
-                    build.sh -p $product -b $branch -T $buildtype $extraflag 2>&1 | tee $TEST_LOG
-                else
-                    build.sh -p $product -b $branch -T $buildtype $extraflag > $TEST_LOG 2>&1
-                fi
-
-            done
-        done
-    done
-fi
deleted file mode 100644
--- a/testing/sisyphus/bin/buildinfo.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title>Get Build Information</title>
-<script type="text/javascript" src="appinfo.js"></script>
-</head>
-<body>
-<h1>Get Build Information</h1>
-<script type="text/javascript">
-
-var appInfo = new AppInfo();
-
-document.write(appInfo.toSource());
-
-</script>
-</body>
-</html>
deleted file mode 100755
--- a/testing/sisyphus/bin/check-spider.sh
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-
-TEST_STARTUP_TRIES=${TEST_STARTUP_TRIES:-3}
-
-#
-# options processing
-#
-options="p:b:x:N:d:"
-function usage()
-{
-    cat <<EOF
-usage:
-$SCRIPT -p product -b branch -x executablepath -N profilename
-       [-d datafiles]
-
-variable            description
-===============     ============================================================
--p product          required. firefox
--b branch           required. supported branch. see library.sh
--x executablepath   required. directory-tree containing executable named
-                    'product'
--N profilename      required. name of profile to be used
--d datafiles        optional. one or more filenames of files containing
-                    environment variable definitions to be included.
-
-note that the environment variables should have the same names as in the
-"variable" column.
-
-Checks if the Spider extension is installed either in the named profile
-or as a global extension, by attempting up to 3 times to launch the Spider.
-
-If Spider fails to launch, the script returns exit code 2.
-
-EOF
-    exit 1
-}
-
-unset product branch executablepath profilename datafiles
-
-while getopts $options optname ;
-  do
-  case $optname in
-      p) product=$OPTARG;;
-      b) branch=$OPTARG;;
-      x) executablepath=$OPTARG;;
-      N) profilename=$OPTARG;;
-      d) datafiles=$OPTARG;;
-  esac
-done
-
-# include environment variables
-loaddata $datafiles
-
-if [[ -z "$product" || -z "$branch" || -z "$executablepath" || -z "$profilename" ]];
-    then
-    usage
-fi
-
-checkProductBranch $product $branch
-
-executable=`get_executable $product $branch $executablepath`
-
-if echo "$profilename" | egrep -qiv '[a-z0-9_]'; then
-    error "profile name must consist of letters, digits or _" $LINENO
-fi
-
-echo # attempt to force Spider to load
-
-tries=1
-while ! $TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "Start Spider: try $tries" \
-     $EXECUTABLE_DRIVER \
-    "$executable" -P "$profilename" \
-    -spider -start -quit \
-    -uri "http://${TEST_HTTP}/bin/start-spider.html" \
-    -hook "http://${TEST_HTTP}/bin/userhook-checkspider.js"; do
-  let tries=tries+1
-  if [ "$tries" -gt $TEST_STARTUP_TRIES  ]; then
-      error "Failed to start spider. Exiting..." $LINENO
-  fi
-  sleep 30
-done
deleted file mode 100755
--- a/testing/sisyphus/bin/checkout.sh
+++ /dev/null
@@ -1,181 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-source $TEST_DIR/bin/set-build-env.sh $@
-
-if [[ -z "$BUILDTREE" ]]; then
-    error "source tree not specified!" $LINENO
-fi
-
-case $branch in
-    1.8.0);;
-    1.8.1);;
-    1.9.0);;
-    *)
-        if [[ -z "$TEST_MOZILLA_HG" ]]; then
-            error "environment variable TEST_MOZILLA_HG must be set to the hg repository for branch $branch"
-        fi
-        ;;
-esac
-
-if [[ -n "$TEST_MOZILLA_HG" ]]; then
-    # maintain a local copy of the hg repository
-    # clone specific trees from it.
-
-    TEST_MOZILLA_HG_LOCAL=${TEST_MOZILLA_HG_LOCAL:-$BUILDDIR/hg.mozilla.org/`basename $TEST_MOZILLA_HG`}
-
-    if [[ ! -d $BUILDDIR/hg.mozilla.org ]]; then
-        mkdir $BUILDDIR/hg.mozilla.org
-    fi
-
-    if [[ ! -d $TEST_MOZILLA_HG_LOCAL ]]; then
-        if ! hg clone $TEST_MOZILLA_HG $TEST_MOZILLA_HG_LOCAL; then
-            error "during hg clone of $TEST_MOZILLA_HG" $LINENO
-        fi
-    fi
-
-    cd $TEST_MOZILLA_HG_LOCAL
-    hg pull
-    if [[ "$OSID" == "nt" ]]; then
-        # remove spurious lock file
-        rm -f $TEST_MOZILLA_HG_LOCAL/.hg/wlock.lnk
-    fi
-    hg update -C
-    echo "`hg root` id `hg id`"
-fi
-
-cd $BUILDTREE
-
-if [[ -n "$TEST_MOZILLA_HG" ]]; then
-
-    if [[ ! -d mozilla/.hg ]]; then
-        if ! hg clone $TEST_MOZILLA_HG_LOCAL $BUILDTREE/mozilla; then
-            error "during hg clone of $TEST_MOZILLA_HG_LOCAL" $LINENO
-        fi
-    fi
-
-    cd mozilla
-    hg pull
-    if [[ "$OSID" == "nt" ]]; then
-        # remove spurious lock file
-        rm -f $TEST_MOZILLA_HG/.hg/wlock.lnk
-    fi
-    hg update -C
-
-    hg update -r $TEST_MOZILLA_HG_REV
-
-    echo "`hg root` id `hg id`"
-
-    if [[ -n "$DATE_CO_FLAGS" ]]; then
-        eval hg update $DATE_CO_FLAGS
-        echo "Update to date $MOZ_CO_DATE `hg root` id `hg id`"
-    fi
-
-fi
-
-case $product in
-    firefox)
-        case $branch in
-            1.8.*|1.9.0)
-                if [[ ! ( -d mozilla && \
-                    -e mozilla/client.mk && \
-                    -e "mozilla/$project/config/mozconfig" ) ]]; then
-                    if ! eval cvs -z3 -q co $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS \
-                        mozilla/client.mk mozilla/$project/config/mozconfig; then
-                        error "during checkout of $project mozconfig" $LINENO
-                    fi
-                fi
-                if ! $buildbash $bashlogin -c "export PATH=\"$BUILDPATH\"; cd $BUILDTREE/mozilla; make -f client.mk checkout" 2>&1; then
-                    error "during checkout of $project tree" $LINENO
-                fi
-                ;;
-
-            *)
-                # do not use mozilla-build on windows systems as we
-                # must use the cygwin python with the cygwin mercurial.
-
-                if ! python client.py checkout; then
-                    error "during checkout of $project tree" $LINENO
-                fi
-                ;;
-        esac
-        ;;
-
-    js)
-
-        case $branch in
-            1.8.*|1.9.0)
-                if [[ ! ( -d mozilla && \
-                    -e mozilla/js && \
-                    -e mozilla/js/src ) ]]; then
-                    if ! eval cvs -z3 -q co $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS mozilla/js; then
-                        error "during initial co $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS mozilla/js"
-                    fi
-                fi
-
-                cd mozilla/js/src
-
-                if ! eval cvs -z3 -q update $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS -d -P 2>&1; then
-                    error "during update $MOZ_CO_FLAGS $BRANCH_CO_FLAGS $DATE_CO_FLAGS js/src" $LINENO
-                fi
-
-                if ! cvs -z3 -q update -d -P -A editline config  2>&1; then
-                    error "during checkout of js/src" $LINENO
-                fi
-                ;;
-
-            *)
-
-                # do not use mozilla-build on windows systems as we
-                # must use the cygwin python with the cygwin mercurial.
-
-                if ! python client.py checkout; then
-                    error "during checkout of $project tree" $LINENO
-                fi
-
-                cd js/src
-                ;;
-        esac
-        # end for js shell
-        ;;
-    *)
-        error "unknown product $product" $LINENO
-        ;;
-esac
deleted file mode 100755
--- a/testing/sisyphus/bin/clean.sh
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-source $TEST_DIR/bin/set-build-env.sh $@
-
-case $product in
-    firefox)
-
-        if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla; make -f client.mk clean" 2>&1; then
-            error "during client.mk clean" $LINENO
-        fi
-        ;;
-
-    js)
-        if [[ -e "$BUILDTREE/mozilla/js/src/configure.in" ]]; then
-            # use the new fangled autoconf build environment for spidermonkey
-
-            # recreate the OBJ directories to match the old naming standards
-            TEST_JSDIR=${TEST_JSDIR:-$TEST_DIR/tests/mozilla.org/js}
-            source $TEST_JSDIR/config.sh
-
-            mkdir -p "$BUILDTREE/mozilla/js/src/$JS_OBJDIR"
-
-            if [[ ! -e "$BUILDTREE/mozilla/js/src/configure" ]]; then
-
-                if findprogram autoconf-2.13; then
-                    AUTOCONF=autoconf-2.13
-                elif findprogram autoconf213; then
-                    AUTOCONF=autoconf213
-                else
-                    error "autoconf 2.13 not detected"
-                fi
-
-                cd "$BUILDTREE/mozilla/js/src"
-                eval "$AUTOCONF"
-
-            fi
-
-            cd "$BUILDTREE/mozilla/js/src/$JS_OBJDIR"
-
-            if [[ -e "Makefile" ]]; then
-                if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla/js/src/$JS_OBJDIR; make clean" 2>&1; then
-                    error "during js/src clean" $LINENO
-                fi
-            fi
-
-        elif [[ -e "$BUILDTREE/mozilla/js/src/Makefile.ref" ]]; then
-
-            if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla/js/src/editline; make -f Makefile.ref clean" 2>&1; then
-                error "during editline clean" $LINENO
-            fi
-
-            if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla/js/src; make -f Makefile.ref clean" 2>&1; then
-                error "during SpiderMonkey clean" $LINENO
-            fi
-        else
-            error "Neither Makefile.ref or autoconf builds available"
-        fi
-        ;;
-esac
deleted file mode 100755
--- a/testing/sisyphus/bin/clobber.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2008.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-source $TEST_DIR/bin/set-build-env.sh $@
-
-if [[ ! -e "$BUILDDIR" ]]; then
-    echo "build directory \"$BUILDDIR\" doesn't exist, ignoring clobber"
-    exit
-fi
-
-case $product in
-    firefox)
-
-        if [[ ! -e "$executablepath" ]]; then
-            echo "executable path $executablepath doesn't exist, ignoring clobber"
-            exit
-        fi
-
-        if ! $buildbash $bashlogin -c "export PATH=\"$BUILDPATH\"; cd $BUILDTREE/mozilla; make -f client.mk clobber" 2>&1; then
-            echo "error during client.mk clobber" $LINENO
-            echo "Forcing clobber" $LINENO
-            rm -fR $BUILDTREE/mozilla/$product-$buildtype/
-        fi
-        ;;
-
-    js)
-
-        if [[ ! -e "$jsshellsourcepath" ]]; then
-            echo "javascript shell source path $jsshellsourcepath doesn't exist, ignoring clobber"
-            exit
-        fi
-        if [[ -e "$BUILDTREE/mozilla/js/src/configure.in" ]]; then
-            rm -f $BUILDTREE/mozilla/js/src/configure
-        fi
-        rm -fR $BUILDTREE/mozilla/js/src/*_*.OBJ
-        ;;
-esac
deleted file mode 100755
--- a/testing/sisyphus/bin/combo.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash -e
-
-delim=,
-
-while getopts "d:" optname;
-  do
-  case $optname in
-      d) delim=$OPTARG;;
-  esac
-done
-
-if [[ $OPTIND -gt 1 ]]; then
-    shift 2
-fi
-
-
-if [[ -n "$4" ]]; then
-    for a in $1; do for b in $2; do for c in $3; do for d in $4; do echo $a$delim$b$delim$c$delim$d; done; done; done; done
-elif [[ -n "$3" ]]; then
-    for a in $1; do for b in $2; do for c in $3; do echo $a$delim$b$delim$c; done; done; done
-elif [[ -n "$2" ]]; then
-    for a in $1; do for b in $2; do echo $a$delim$b; done; done
-elif [[ -n "$1" ]]; then
-    for a in $1; do echo $a; done
-else
-    cat<<EOF 
-usage: combo.sh [-d delim] list1 [list2 [list3 [list4]]]
-
-output combinations of items in each list using delim as the delimiter
-
--d delim specifies the delimiter. The default is comma (,).
-
-combo.sh "a b" 
-a
-b
-
-combo.sh "a b" "1 2" 
-a,1 
-a,2 
-b,1 
-b,2
-
-combo.sh -d "-" "a b" "1 2" 
-a-1 
-a-2 
-b-1 
-b-2
-
-EOF
-
-fi
deleted file mode 100755
--- a/testing/sisyphus/bin/create-directory.sh
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-
-#
-# options processing
-#
-options="d:n"
-function usage()
-{
-    cat <<EOF
-usage: 
-$SCRIPT -d directory [-n] 
-
--d directory    directory to be created.
--n              never prompt when removing existing directory.
-
-Attempts to safely create an empty directory. If -n is not
-specified, the script will prompt before deleting any files 
-or directories. If -n is specified, it will not prompt.
-
-The safety measures include refusing to run if run by user
-root and by refusing to create directories unless there are 
-a subdirectory of /tmp or have at least two ancestor 
-directories... /grandparent/parent/child.
-
-******************** WARNING ********************
-This script will destroy existing directories and
-their contents. It can potentially wipe out your
-disk. Use with caution.
-******************** WARNING ********************
-
-EOF
-    exit 1
-}
-
-unset directory
-
-rmopt="-i"
-
-while getopts $options optname ; 
-  do 
-  case $optname in
-      d) directory=$OPTARG;;
-      n) unset rmopt;;
-  esac
-done
-
-if [[ -z $directory ]]
-    then
-    usage
-fi
-
-if [[ `whoami` == "root" ]]; then
-    error "can not be run as root" $LINENO
-fi
-
-# get the cannonical name directory name
-mkdir -p "$directory"
-if ! pushd "$directory" > /dev/null ; then 
-    error "$directory is not accessible" $LINENO
-fi
-directory=`pwd`
-popd > /dev/null
-
-if [[ "$directory" == "/" ]]; then
-    error "directory $directory can not be root" $LINENO
-fi
-
-parent=`dirname "$directory"`
-grandparent=`dirname "$parent"`
-
-if [[ "$parent" != "/tmp" && ( "$parent" == "/" || "$grandparent" == "/" ) ]]; then
-    error "directory $directory can not be a subdirectory of $parent" $LINENO
-fi
-
-
-# clean the directory if requested
-rm -fR $rmopt $directory
-mkdir -p "$directory"
deleted file mode 100755
--- a/testing/sisyphus/bin/create-profile.sh
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-
-#
-# options processing
-#
-options="p:b:x:D:N:L:U:d:"
-function usage()
-{
-    cat <<EOF
-usage:
-$SCRIPT -p product -b branch -x executablepath -D directory -N profilename
-       [-L profiletemplate] [-U user] [-d datafiles]
-
-variable            description
-===============     ============================================================
--p product          required. firefox.
--b branch           required. supported branch. see library.sh
--x executablepath   required. directory-tree containing executable 'product'
--D directory        required. directory where profile is to be created.
--N profilename      required. profile name
--L profiletemplate  optional. location of a template profile to be used.
--U user             optional. user.js preferences file.
--d datafiles        optional. one or more filenames of files containing
-                    environment variable definitions to be included.
-
-note that the environment variables should have the same names as in the
-"variable" column.
-
-EOF
-    exit 1
-}
-
-unset product branch executablepath directory profilename profiletemplate user datafiles
-
-while getopts $options optname ;
-  do
-  case $optname in
-      p) product=$OPTARG;;
-      b) branch=$OPTARG;;
-      x) executablepath=$OPTARG;;
-      D) directory=$OPTARG;;
-      N) profilename=$OPTARG;;
-      L) profiletemplate=$OPTARG;;
-      U) user=$OPTARG;;
-      d) datafiles=$OPTARG;;
-  esac
-done
-
-# include environment variables
-loaddata $datafiles
-
-if [[ -z "$product" || -z "$branch" || -z "$executablepath" || \
-    -z "$directory" || -z "$profilename" ]]; then
-    usage
-fi
-
-checkProductBranch $product $branch
-
-executable=`get_executable $product $branch $executablepath`
-
-$TEST_DIR/bin/create-directory.sh -d "$directory" -n
-
-if echo "$profilename" | egrep -qiv '[a-z0-9_]'; then
-    error "profile name \"$profilename\" must consist of letters, digits or _" $LINENO
-fi
-
-if [ $OSID == "nt" ]; then
-    directoryospath=`cygpath -a -w $directory`
-    if [[ -z "$directoryospath" ]]; then
-        error "unable to convert unix path to windows path" $LINENO
-    fi
-else
-    directoryospath="$directory"
-fi
-
-echo "creating profile $profilename in directory $directory"
-
-tries=1
-while ! $TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "-" \
-        $EXECUTABLE_DRIVER \
-        $executable -CreateProfile "$profilename $directoryospath"; do
-    let tries=tries+1
-    if [ "$tries" -gt $TEST_STARTUP_TRIES ]; then
-        error "Failed to create profile $directory Exiting..." $LINENO
-    fi
-    sleep 30
-done
-
-if [[ -n $profiletemplate ]]; then
-    if [[ ! -d $profiletemplate ]]; then
-        error "profile template directory $profiletemplate does not exist" $LINENO
-    fi
-    echo "copying template profile $profiletemplate to $directory"
-    cp -R $profiletemplate/* $directory
-fi
-
-if [[ ! -z $user ]]; then
-    cp $user $directory/user.js
-fi
deleted file mode 100755
--- a/testing/sisyphus/bin/dateparse.pl
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/perl -w
-# -*- Mode: Perl; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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) 2008
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s): Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-use Date::Parse;
-
-if (@ARGV == 0)
-{
-    die "usage: dateparse.pl datestring";
-}
-
-my $datestring = $ARGV[0];
-my $time = str2time($datestring);
-print($time);
-
deleted file mode 100755
--- a/testing/sisyphus/bin/download.sh
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org 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>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-
-args=$@
-script=`basename $0`
-
-#
-# options processing
-#
-options="u:c:f:t:d:"
-function usage()
-{
-    cat <<EOF
-$SCRIPT $args
-
-usage: 
-$SCRIPT -u url [-c credentials] -f filepath [-t timeout] [-d datafiles]
-
-variable            description
-===============     ============================================================
--u url              required. url to download build from
--c credentials      optional. username:password
--f filepath         required. path to filename to store downloaded file
--t timeout          optional. timeout in seconds before download fails.
-                    default 300 seconds
--d datafiles        optional. one or more filenames of files containing 
-                    environment variable definitions to be included.
-
-note that the environment variables should have the same names as in the 
-"variable" column.
-
-downloads file from url with optional authentication credentials
-saving the file to filepath. If the path to the file does not exist,
-it is created. If the download takes longer than timeout seconds,
-the download is cancelled.
-
-EOF
-    exit 1
-}
-
-unset url credentials filepath timeout datafiles
-
-while getopts $options optname ; 
-  do 
-  case $optname in
-      u) url=$OPTARG;;
-      c) credentials=$OPTARG;;
-      f) filepath=$OPTARG;;
-      t) timeout=$OPTARG;;
-      d) datafiles=$OPTARG;;
-  esac
-done
-
-# include environment variables
-loaddata $datafiles
-
-if [[ -z $url || -z $filepath ]]
-    then
-    usage
-fi
-
-if [[ -n "$credentials" ]]; then
-    auth="--user $credentials"
-fi
-
-timeout=${timeout:-300}
-
-
-path=`dirname $filepath`
-
-if [[ -z "$path" ]]; then
-    echo "$SCRIPT: ERROR filepath path is empty"
-    exit 2
-fi
-
-echo "url=$url filepath=$filepath credentials=$credentials timeout=$timeout"
-
-# curl options
-# -S show error if failure
-# -s silent mode
-# -L follow 3XX redirections
-# -m $timeout time out 
-# -D - dump headers to stdout
-# --create-dirs create path if needed
-
-if ! curl -LsS -m $timeout "$url" -D - --create-dirs -o $filepath $auth; then
-    echo "$SCRIPT: FAIL Unable to download $url"
-    exit 2
-fi
-
-
deleted file mode 100755
--- a/testing/sisyphus/bin/each-to-html.pl
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/usr/bin/perl
-# -*- Mode: Perl; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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>
-#
-# 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 *****
-use URI::Escape;
-use lib "$ENV{HOME}/projects/mozilla.com/test.mozilla.com/www/bin/";
-
-my $hook       = shift @ARGV || usage("hook");
-my $sitelist   = shift @ARGV || usage("sitelist");
-
-open SITES, "<$sitelist" || die "unable to open $sitelist\n";
-
-my @sites = <SITES>;
-
-close SITES;
-
-my $site;
-
-my $chromeurl;
-my $testUrl;
-
-print "<html><body>\n";
-
-foreach $site (@sites)
-{
-
-    chomp $site;
-
-    my $spider = "chrome://spider/content/spider.xul?" .
-        "depth=0&timeout=120&waittime=5&hooksignal=on&autostart=on&autoquit=on&javascripterrors=off&" .
-        "javascriptwarnings=off&chromeerrors=on&xblerrors=on&csserrors=off&" .
-        "scripturl=" . 
-        uri_escape("http://" . 
-                   $ENV{TEST_HTTP} . 
-                   $hook) . 
-                   "&" .
-                   "url=" . uri_escape(uri_escape($site));
-
-    print "<a href=\"$spider\">$site\</a><br>\n";
-}
-print "</html>\n";
-
-sub usage
-{
-    my $arg = shift @_;
-    
-    print <<USAGE;
-
-Error in $arg.
-
-Usage: each-to-html.pl hook sitelist
-
-Create an HTML page containing links to invoke Spider with the 
-appropriate URL and parameters.
-
-hook       - path to userhook script
-sitelist   - path to text file containing list of sites, 
-             one to a line
-USAGE
-
-exit 2;
-}
-
-1;
deleted file mode 100755
--- a/testing/sisyphus/bin/edit-talkback.pl
+++ /dev/null
@@ -1,380 +0,0 @@
-#!/usr/bin/perl
-# -*- Mode: Perl; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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>
-#
-# 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 *****
-
-use File::Basename;
-use File::Copy;
-use Cwd;
-
-#my $DEBUG = 0;
-#editTalkback("/tmp/test/firefox-1.5-nightly-opt/firefox/firefox", "talkbackid");
-
-1;
-
-sub editTalkback
-{
-    my ($binary, $talkbackid) = @_;
-    my $rc;
-    my $signal;
-    my $home = $ENV{HOME};
-    my $os = undef;
-    my $ostype = "";
-
-    # prevent replacements due to & in urls
-    $talkbackid =~ s/&/\\&/g;
-    
-    # hack around lack of available environment entries in both
-    # cygwin perl and redhat perl
-    open OSTYPE, "set | grep OSTYPE |" || die "Unable to open OSTYPE: $!";
-    while (<OSTYPE>)
-    {
-        chomp;
-        $ostype .= $_;
-    }
-    close OSTYPE;
-
-    die "Unable to determine OSTYPE" if (!$ostype);
-
-    if ($ostype =~ /cygwin/i)
-    {
-        $os = "nt";
-    }
-    elsif ($ostype =~ /linux/i)
-    {
-        $os = "linux";
-    }
-    elsif ($ostype =~ /darwin/)
-    {
-        $os = "darwin";
-    }
-    else
-    {
-        die "Unknown Operating System: $ostype";
-    }
-
-    if (!$binary)
-    {
-        die "binary argument missing";
-    }
-
-    if (! -f $binary)
-    {
-        die "$binary does not exist";
-    }
-
-    my $installpath = dirname($binary);
-
-    #print "installpath=$installpath\n";
-
-    if (! -d $installpath)
-    {
-        die "$installpath does not exist";
-    }
-
-#
-# edit talkback to automatically submit
-#
-    my $talkback=1;
-
-    if ( -e "$installpath/extensions/talkback\@mozilla.org/components/master.ini")
-    {
-        chdir "$installpath/extensions/talkback\@mozilla.org/components/";
-    }
-    elsif ( -e "$installpath/extensions/talkback\@mozilla.org/components/talkback/master.ini")
-    {
-        chdir "$installpath/extensions/talkback\@mozilla.org/components/talkback/";
-    }
-    elsif ( -e "$installpath/components/master.ini")
-    {
-        chdir "$installpath/components";
-    }
-    else
-    { 
-        #print "Talkback not installed.\n";
-        $talkback=0 ;
-    }
-
-    if ( $talkback == 1 )
-    {
-        # edit to automatically send talkback incidents
-        if ( -e "master.sed")
-        {
-            #print "talkback master.ini already edited\n";
-        }
-        else
-        {
-            #print "editing talkback master.ini in " . cwd() . "\n";
-            copy("/work/mozilla/mozilla.com/test.mozilla.com/www/bin/master.sed", "master.sed");
-            system(("sed", "-ibak", "-f", "master.sed", "master.ini"));
-
-            $rc = $? >> 8;
-            $signal = $? & 127;
-            $dumped = $? & 128;
-            if ($rc != 0)
-            {
-                die "non zero exitcode editing master.ini: $!";
-            }
-            if ($signal)
-            {
-                #print "signal $signal editing master.ini\n";
-            }
-        }
-
-        open MASTER, "master.ini" || die "unable to open master.ini: $!";
-        while (<MASTER>)
-        {
-            chomp $_;
-            if (/VendorID = "([^"]*)"/)
-	    {
-		($vendorid) = $1;
-	    }
-	    elsif (/ProductID = "([^"]*)"/)
-                              {
-                                  ($productid) = $1;
-                              }
-                              elsif (/PlatformID = "([^"]*)"/)
-	    {
-		($platformid) = $1;
-	    }
-	    elsif (/BuildID = "([^"]*)"/)
-                            {
-                                ($buildid) = $1;
-                            }
-                        }
-        close MASTER;
-
-        if ("$DEBUG")
-        {
-            print "vendorid=$vendorid\n";
-            print "productid=$productid\n";
-            print "platformid=$platformid\n";
-            print "buildid=$buildid\n";
-        }
-
-        my $appdata;
-
-        if ($os eq "nt")
-        {
-            # get application data directory in windows format
-            $appdata = $ENV{APPDATA};
-            if (!$appdata)
-            {
-                die "Empty Windows Application Data directory\n";
-            }
-
-            open PATH, "cygpath -d \"$appdata\"|" || die "Unable to open cygpath: $!";
-            my $path = "";
-            while (<PATH>)
-            {
-                chomp;
-                $path .= $_;
-            }
-            close PATH;
-            $path =~ s/\\/\\\\/g;
-
-            if (!$path)
-            {
-                die "Unable to convert Windows Application Data directory to short format\n";
-            }
-
-            # convert application data directory to unix format
-            $appdata = "";
-            open PATH, "cygpath -u $path|" || die "unable to open cygpath: $!";
-            while (<PATH>)
-            {
-                chomp;
-                $appdata .= $_;
-            }
-            close PATH;
-            if (!$appdata)
-            {
-                die "Unix format Windows Application Data directory is empty\n";
-            }
-            $talkbackdir = "$appdata/Talkback";
-        }
-        elsif ($os eq "linux")
-        {
-            $talkbackdir="$home/.fullcircle";
-        }
-        elsif ($os eq "darwin")
-        {
-            $talkbackdir="$home/Library/Application\ Support/FullCircle";
-        }
-        else
-        {
-            die "unknown os $os";
-        }
-
-
-        if ( ! -e "$talkbackdir" )
-        {
-            if (! mkdir "$talkbackdir", 755)
-            {
-                die "unable to create $talkbackdir\n: $!";
-            }
-        }
-
-        my $talkbackinidir;
-
-        if ($os eq "nt")
-        {
-            $talkbackinidir="$talkbackdir/$vendorid/$productid/$platformid/$buildid/";
-
-            if ( ! -e "$talkbackdir/$vendorid" )
-            {
-                if (! mkdir "$talkbackdir/$vendorid", 755)
-                {
-                    die "unable to make $talkbackdir/$vendorid: $!";
-                }
-            }
-
-            if (! -e "$talkbackdir/$vendorid/$productid")
-            {
-                if (! mkdir "$talkbackdir/$vendorid/$productid", 755)
-                {
-                    die "unable to make $talkbackdir/$vendorid/$productid: $!";
-                }
-            }
-
-
-            if (! -e "$talkbackdir/$vendorid")
-            {
-                if (! mkdir "$talkbackdir/$vendorid/$productid/$platformid", 755)
-                {
-                    die "unable to make $talkbackdir/$vendorid/$productid/$platformid: $!";
-                }
-            }
-
-
-            if (! -e "$talkbackdir/$vendorid/$productid/$platformid")
-            {
-                if (! mkdir "$talkbackdir/$vendorid/$productid/$platformid", 755)
-                {
-                    die "unable to make $talkbackdir/$vendorid/$productid/$platformid: $!";
-                }
-            }
-
-            if ( ! -e "$talkbackdir/$vendorid/$productid/$platformid/$buildid")
-            {
-                if (! mkdir "$talkbackdir/$vendorid/$productid/$platformid/$buildid", 755)
-                {
-                    die "unable to make $talkbackdir/$vendorid/$productid/$platformid/$buildid: $!";
-                }
-            }
-        }
-        elsif ($os eq "linux")
-        {
-            $talkbackinidir="$talkbackdir/$vendorid$productid$platformid$buildid";
-            if (! -e "$talkbackdir/$vendorid$productid$platformid$buildid" )
-            {
-                if (! mkdir "$talkbackdir/$vendorid$productid$platformid$buildid", 755)
-                {
-                    die "unable to make $talkbackdir/$vendorid$productid$platformid$buildid: $!";
-                }
-            }
-        }
-        elsif ($os eq "darwin")
-        {
-            $talkbackinidir="$talkbackdir/$vendorid$productid$platformid$buildid";
-            if (! -e "$talkbackdir/$vendorid$productid$platformid$buildid" )
-            {
-                if (! mkdir "$talkbackdir/$vendorid$productid$platformid$buildid", 755)
-                {
-                    die "unable to make $talkbackdir/$vendorid$productid$platformid$buildid: $!";
-                }
-            }
-        }
-        else
-        {
-            die "$os not supported yet";
-        }
-
-        if (! chdir $talkbackinidir)
-        {
-            die "unable to cd $talkbackinidir: $!";
-        }
-
-
-        if (!copy("/work/mozilla/mozilla.com/test.mozilla.com/www/talkback/$os/Talkback.ini", "Talkback.ini"))
-        {
-            die "unable to copy Talkback.ini: $!";
-        }
-        
-        #print "patching Talkback.ini\n";
-        if ($os eq "nt")
-        {
-            $rc = system(("sed", 
-                          "-ibak", 
-                          "-e", 
-                          "s|URLEdit .*|URLEdit = \"mozqa:$talkbackid\"|", 
-                          "Talkback.ini")) & 0xffff;
-            if ($rc != 0)
-            {
-                die "unable to edit Talkback.ini: $!";
-            }
-        }
-        elsif ($os eq "linux")
-        {
-            $rc = system(("sed", 
-                          "-ibak", 
-                          "-e",
-                          "s|URLEditControl .*|URLEditControl = \"mozqa:$talkbackid\"|", 
-                          "Talkback.ini")) & 0xffff;
-            if ($rc != 0)
-            {
-                die "unable to edit Talkback.ini: $!";
-            }
-        }
-        elsif ($os eq "darwin")
-        {
-            $rc = system(("sed", 
-                          "-ibak", 
-                          "-e",
-                          "s|URLEditControl .*|URLEditControl = \"mozqa:$talkbackid\"|", 
-                          "Talkback.ini")) & 0xffff;
-            if ($rc != 0)
-            {
-                die "unable to edit Talkback.ini: $!";
-            }
-        }
-        else
-        {
-            die "$os not supported yet";
-        }
-    }
-}
-
deleted file mode 100755
--- a/testing/sisyphus/bin/edit-talkback.sh
+++ /dev/null
@@ -1,187 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-
-#
-# options processing
-#
-options="p:b:x:i:d:"
-function usage()
-{
-    cat <<EOF
-usage:
-$SCRIPT -p product -b branch -x executablepath -i talkbackid [-d datafiles]
-
-variable            description
-===============     ============================================================
--p product          required. firefox.
--b branch           required. one of 1.8.0 1.8.1
--x executablepath   required. directory-tree containing executable named
-                    'product'
--i talkbackid       required. identifier to add to talkback url
--d datafiles        optional. one or more filenames of files containing
-                    environment variable definitions to be included.
-
-note that the environment variables should have the same names as in the
-"variable" column.
-
-EOF
-    exit 1
-}
-
-unset product branch executablepath talkbackid datafiles
-
-while getopts $options optname ;
-  do
-  case $optname in
-      p) product=$OPTARG;;
-      b) branch=$OPTARG;;
-      x) executablepath=$OPTARG;;
-      i) talkbackid=$OPTARG;;
-      d) datafiles=$OPTARG;;
-  esac
-done
-
-# include environment variables
-loaddata $datafiles
-
-if [[ -z "$product" || -z "$branch" || \
-    -z "$executablepath" || -z "$talkbackid" ]]; then
-    usage
-fi
-
-executable=`get_executable $product $branch $executablepath`
-
-executablepath=`dirname $executable`
-
-# escape & in talkback id to prevent replacements
-talkbackid=`echo $talkbackid | sed 's@&@\\\\&@g'`
-
-#
-# edit talkback to automatically submit
-#
-talkback=1
-
-if [[ -e "$executablepath/extensions/talkback@mozilla.org/components/master.ini" ]]; then
-    cd "$executablepath/extensions/talkback@mozilla.org/components/"
-elif [[ -e "$executablepath/extensions/talkback@mozilla.org/components/talkback/master.ini" ]]; then
-    cd "$executablepath/extensions/talkback@mozilla.org/components/talkback/"
-elif [[ -e "$executablepath/components/master.ini" ]]; then
-    cd "$executablepath/components"
-else
-    # talkback not found
-    talkback=0
-fi
-
-if [[ $talkback -eq 1 ]]; then
-    # edit to automatically send talkback incidents
-    if [[ ! -e master.sed ]]; then
-        #echo "$0: editing talkback master.ini in `pwd`"
-        cp $TEST_DIR/bin/master.sed .
-        sed -f master.sed -i.bak master.ini
-    fi
-
-    case $OSID in
-        nt)
-            vendorid=`dos2unix < master.ini | grep '^VendorID = "' | sed 's@VendorID = "\([^"]*\)"@\1@'`
-            productid=`dos2unix < master.ini | grep '^ProductID = "' | sed 's@ProductID = "\([^"]*\)"@\1@'`
-            platformid=`dos2unix < master.ini | grep '^PlatformID = "' | sed 's@PlatformID = "\([^"]*\)"@\1@'`
-            buildid=`dos2unix < master.ini | grep '^BuildID = "' | sed 's@BuildID = "\([^"]*\)"@\1@'`
-            appdata=`cygpath -a -d "$APPDATA"`
-            talkbackdir="`cygpath -a -u $appdata`/Talkback"
-            ;;
-        linux)
-            vendorid=`dos2unix < master.ini | grep '^VendorID = "' | sed 's@VendorID = "\([^"]*\)"@\1@'`
-            productid=`dos2unix < master.ini | grep '^ProductID = "' | sed 's@ProductID = "\([^"]*\)"@\1@'`
-            platformid=`dos2unix < master.ini | grep '^PlatformID = "' | sed 's@PlatformID = "\([^"]*\)"@\1@'`
-            buildid=`dos2unix < master.ini | grep '^BuildID = "' | sed 's@BuildID = "\([^"]*\)"@\1@'`
-            talkbackdir="$HOME/.fullcircle"
-            ;;
-        darwin)
-            # hack around Mac's use of spaces in directory names
-            vendorid=`grep '^VendorID = "' master.ini | sed 's@VendorID = "\([^"]*\)"@\1@'`
-            productid=`grep '^ProductID = "' master.ini | sed 's@ProductID = "\([^"]*\)"@\1@'`
-            platformid=`grep '^PlatformID = "' master.ini | sed 's@PlatformID = "\([^"]*\)"@\1@'`
-            buildid=`grep '^BuildID = "' master.ini | sed 's@BuildID = "\([^"]*\)"@\1@'`
-            talkbackdir="$HOME/Library/Application Support/FullCircle"
-            IFS=:
-            ;;
-        *)
-            error "unknown os $OSID" $LINENO
-            ;;
-    esac
-
-    if [[ -z "$talkbackdir" ]]; then
-        error "empty talkback directory" $LINENO
-    fi
-
-    mkdir -p "$talkbackdir"
-
-    case $OSID in
-        nt)
-            talkbackinidir="$talkbackdir/$vendorid/$productid/$platformid/$buildid"
-            ;;
-        linux | darwin )
-            talkbackinidir="$talkbackdir/$vendorid$productid$platformid$buildid"
-            ;;
-    esac
-
-    if [[ ! -d "$talkbackinidir" ]]; then
-        create-directory.sh -d "$talkbackinidir" -n
-    fi
-
-    cd $talkbackinidir
-
-    cp ${TEST_DIR}/talkback/$OSID/Talkback.ini .
-
-    case "$OSID" in
-        nt)
-            sed -i.bak "s@URLEdit .*@URLEdit = \"mozqa:$talkbackid\"@" Talkback.ini
-            ;;
-        linux)
-            sed -i.bak "s@URLEditControl .*@URLEditControl = \"mozqa:$talkbackid\"@" Talkback.ini
-            ;;
-        darwin)
-            sed -i.bak "s@URLEditControl .*@URLEditControl = \"mozqa:$talkbackid\"@" Talkback.ini
-            ;;
-        *)
-            error "unknown os=$OSID" $LINENO
-    esac
-fi
deleted file mode 100644
--- a/testing/sisyphus/bin/firefox.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- firefox	2005-08-18 06:28:49.000000000 -0700
-+++ firefox.test	2005-08-18 19:39:34.813357354 -0700
-@@ -178,7 +178,7 @@
- then
-   echo $dist_bin/run-mozilla.sh $script_args $dist_bin/$MOZILLA_BIN "$@"
- fi
--"$dist_bin/run-mozilla.sh" $script_args "$dist_bin/$MOZILLA_BIN" "$@"
-+exec "$dist_bin/run-mozilla.sh" $script_args "$dist_bin/$MOZILLA_BIN" "$@"
- exitcode=$?
- 
- ## Stop addon scripts
deleted file mode 100644
--- a/testing/sisyphus/bin/get-build-info.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title>Get Build Information</title>
-<script type="text/javascript" src="quit.js"></script>
-<script type="text/javascript" src="appinfo.js"></script>
-</head>
-<body>
-<h1>Get Build Information</h1>
-<script type="text/javascript">
-
-
-var appInfoSource = (new AppInfo()).toSource();
-
-document.write(appInfoSource);
-dump(appInfoSource);
-
-goQuitApplication();
-</script>
-</body>
-</html>
deleted file mode 100755
--- a/testing/sisyphus/bin/get-extension-uuid.pl
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/perl -w
-# -*- Mode: Perl; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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) 2009
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s): Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-use XML::Simple;
-
-die "usage: get-extension-uuid.pl installrdfpath" if (! $ARGV[0]);
-my $rdf = XMLin($ARGV[0], NSExpand => 1);
-print $rdf->{"{http://www.w3.org/1999/02/22-rdf-syntax-ns#}Description"}->{"{http://www.mozilla.org/2004/em-rdf#}id"};
deleted file mode 100644
--- a/testing/sisyphus/bin/include.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-dashes   = ----------
-msg = @echo "$(1)": $(dashes) $(2) $(dashes)
-prepend = sed 's/^/$(1): /'
-html2text = lynx --dump $(1)
-TEST_PROFILE?=TEST
-
-dumpvars = echo TARGETS=$$targets && for var in `echo $${!TEST_*}`; do echo $${var}=$${!var}; done
-
-
deleted file mode 100755
--- a/testing/sisyphus/bin/install-build.sh
+++ /dev/null
@@ -1,161 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-
-#
-# options processing
-#
-options="p:b:x:f:d:"
-function usage()
-{
-    cat <<EOF
-usage:
-$SCRIPT -p product -b branch  -x executablepath -f filename [-d datafiles]
-
-variable            description
-===============     ============================================================
--p product          required. firefox.
--b branch           required. supported branch. see library.sh
--x executablepath   required. directory where to install build
--f filename         required. path to filename where installer is stored
--d datafiles        optional. one or more filenames of files containing
-                    environment variable definitions to be included.
-
-note that the environment variables should have the same names as in the
-"variable" column.
-
-EOF
-    exit 1
-}
-
-unset product branch executablepath filename datafiles
-
-while getopts $options optname ;
-do
-    case $optname in
-        p) product=$OPTARG;;
-        b) branch=$OPTARG;;
-        x) executablepath=$OPTARG;;
-        f) filename=$OPTARG;;
-        d) datafiles=$OPTARG;;
-    esac
-done
-
-# include environment variables
-loaddata $datafiles
-
-if [[ -z "$product" || -z "$branch" || -z "$executablepath" || -z "$filename" ]]
-then
-    usage
-fi
-
-$TEST_DIR/bin/uninstall-build.sh -p "$product" -b "$branch" -x "$executablepath"
-
-$TEST_DIR/bin/create-directory.sh -d "$executablepath" -n
-
-filetype=`file $filename`
-
-if [[ $OSID == "nt" ]]; then
-
-    if echo $filetype | grep -iq windows; then
-        chmod u+x "$filename"
-        if [[ $branch == "1.8.0" ]]; then
-            $filename -ms -hideBanner -dd `cygpath -a -w "$executablepath"`
-        else
-            $filename /S /D=`cygpath -a -w "$executablepath"`
-        fi
-    elif echo  $filetype | grep -iq 'zip archive'; then
-        unzip -o -d "$executablepath" "$filename"
-        find $executablepath -name '*.exe' | xargs chmod u+x
-        find $executablepath -name '*.dll' | xargs chmod u+x
-    else
-        error "$unknown file type $filetype" $LINENO
-    fi
-
-else
-
-    case "$OSID" in
-        linux)
-            if echo $filetype | grep -iq 'bzip2'; then
-                tar -jxvf $filename -C "$executablepath"
-            elif echo $filetype | grep -iq 'gzip'; then
-                tar -zxvf $filename -C "$executablepath"
-            else
-                error "unknown file type $filetype" $LINENO
-            fi
-            ;;
-
-        darwin)
-            # assumes only 1 mount point
-            mkdir -p /tmp/sisyphus/mount
-            if ! hdiutil attach -mountpoint /tmp/sisyphus/mount $filename; then
-                error "mounting disk image" $LINENO
-            fi
-
-            for app in /tmp/sisyphus/mount/*.app; do
-                cp -R $app $executablepath
-            done
-
-            # requires 10.4 or later
-            hdiutil detach /tmp/sisyphus/mount
-            ;;
-    esac
-
-    #
-    # patch unix-like startup scripts to exec instead of
-    # forking new processes
-    #
-    executable=`get_executable $product $branch $executablepath`
-
-    executabledir=`dirname $executable`
-
-    # patch to use exec to prevent forked processes
-    cd "$executabledir"
-    if [ -e "$product" ]; then
-        echo "$SCRIPT: patching $product"
-        cp $TEST_DIR/bin/$product.diff .
-        patch -N -p0 < $product.diff
-    fi
-    if [ -e run-mozilla.sh ]; then
-        echo "$SCRIPT: patching run-mozilla.sh"
-        cp $TEST_DIR/bin/run-mozilla.diff .
-        patch -N -p0 < run-mozilla.diff
-    fi
-fi
deleted file mode 100644
--- a/testing/sisyphus/bin/install-extensions-1.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title>Install Extensions - 1</title>
-<script type="text/javascript" src="quit.js"></script>
-</head>
-<body>
-<h1>Install Extensions - 1</h1>
-<p>
-First restart to install extensions...
-</p>
-<script type="text/javascript">
-	setTimeout("goQuitApplication()", 10000);
-</script>
-</body>
-</html>
deleted file mode 100755
--- a/testing/sisyphus/bin/install-extensions.sh
+++ /dev/null
@@ -1,146 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org 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>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-
-TEST_STARTUP_TRIES=${TEST_STARTUP_TRIES:-3}
-
-#
-# options processing
-#
-options="p:b:x:N:E:d:"
-function usage()
-{
-    cat <<EOF
-usage:
-$SCRIPT -p product -b branch -x executablepath -N profilename -E extensiondir
-       [-d datafiles]
-
-variable            description
-===============     ============================================================
--p product          required. firefox.
--b branch           required. supported branch. see library.sh
--x executablepath   required. directory-tree containing executable named
-                    'product'
--N profilename      required. profile name
--E extensiondir       required. path to directory containing xpis to be installed
--d datafiles        optional. one or more filenames of files containing
-            environment variable definitions to be included.
-
-note that the environment variables should have the same names as in the
-"variable" column.
-
-EOF
-    exit 1
-}
-
-unset product branch executablepath profilename extensiondir datafiles
-
-while getopts $options optname ;
-do
-    case $optname in
-        p) product=$OPTARG;;
-        b) branch=$OPTARG;;
-        x) executablepath=$OPTARG;;
-        N) profilename=$OPTARG;;
-        E) extensiondir=$OPTARG;;
-        d) datafiles=$OPTARG;;
-    esac
-done
-
-# include environment variables
-loaddata $datafiles
-
-if [[ -z "$product" || -z "$branch" || \
-    -z "$executablepath" || -z "$profilename" || -z "$extensiondir" ]]; then
-    usage
-fi
-
-checkProductBranch $product $branch
-
-if echo $profilename | egrep -qiv '[a-z0-9_]'; then
-    error "profile name must consist of letters, digits or _" $LINENO
-fi
-
-executable=`get_executable $product $branch $executablepath`
-executableextensiondir=`dirname $executable`/extensions
-
-# create directory to contain installed extensions
-if [[ ! -d /tmp/sisyphus/extensions ]]; then
-    create-directory.sh -n -d /tmp/sisyphus/extensions
-fi
-
-for extensionloc in $extensiondir/all/*.xpi $extensiondir/$OSID/*.xpi; do
-    if [[ $extensionloc == "$extensiondir/all/*.xpi" ]]; then
-        continue
-    fi
-    if [[ $extensionloc == "$extensiondir/$OSID/*.xpi" ]]; then
-        continue
-    fi
-
-    extensionname=`xbasename $extensionloc .xpi`
-    extensioninstalldir=/tmp/sisyphus/extensions/$extensionname
-
-    if [[ "$OSID" == "nt" ]]; then
-        extensionosinstalldir=`cygpath -a -w $extensioninstalldir`
-    else
-        extensionosinstalldir=$extensioninstalldir
-    fi
-    echo installing $extensionloc
-
-    # unzip the extension if it does not already exist.
-    if [[ ! -e $extensioninstalldir ]]; then
-        create-directory.sh -n -d $extensioninstalldir
-        unzip -d $extensioninstalldir $extensionloc
-    fi
-
-    extensionuuid=`perl $TEST_DIR/bin/get-extension-uuid.pl $extensioninstalldir/install.rdf`
-    if [[ ! -e $executableextensiondir/$extensionuuid ]]; then
-        echo $extensionosinstalldir > $executableextensiondir/$extensionuuid
-    fi
-
-done
-
-# restart to make extension manager happy
-if ! $TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "install extensions - first restart" \
-    $executable -P $profilename "http://${TEST_HTTP}/bin/install-extensions-1.html"; then
-    echo "Ignoring 1st failure to load the install-extensions page"
-fi
-
-exit 0
deleted file mode 100755
--- a/testing/sisyphus/bin/install-plugins.sh
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-
-#
-# options processing
-#
-options="p:b:x:D:d:"
-function usage()
-{
-    cat <<EOF
-usage:
-$SCRIPT -p product -b branch -x executablepath -D directory [-d datafiles]
-
-variable            description
-===============     ============================================================
--p product          required. firefox.
--b branch           required. one of supported branches. see library.sh
--x executablepath   required. path to browser executable
--D directory        required. path to location of plugins/components
--d datafiles        optional. one or more filenames of files containing
-                    environment
-                    variable definitions to be included.
-
-note that the environment variables should have the same names as in the
-"variable" column.
-
-EOF
-    exit 1
-}
-
-unset product branch executablepath directory datafiles
-
-while getopts $options optname ;
-  do
-  case $optname in
-      p) product=$OPTARG;;
-      b) branch=$OPTARG;;
-      x) executablepath=$OPTARG;;
-      D) directory=$OPTARG;;
-      d) datafiles=$OPTARG;;
-  esac
-done
-
-# include environment variables
-loadata $datafiles
-
-if [[ -z "$product" || -z "$branch" || \
-    -z "$executablepath" || -z "$directory" ]]; then
-    usage
-fi
-
-checkProductBranch $product $branch
-
-executable=`get_executable $product $branch $executablepath`
-
-executablepath=`dirname $executable`
-
-#
-# install plugins and components
-#
-echo "$SCRIPT: installing plugins from $directory/ in $executablepath/"
-cp -r "$directory/$OSID/" "$executablepath/"
deleted file mode 100755
--- a/testing/sisyphus/bin/library.sh
+++ /dev/null
@@ -1,458 +0,0 @@
-# -*- Mode: Shell-script; tab-width: 2; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-# This script contains a number of variables, functions, etc which
-# are reused across a number of scripts. It should be included in each
-# script prior to any other commands as follows:
-#
-# source $TEST_DIR/bin/library.sh
-
-if [[ -n "$DEBUG" ]]; then
-    echo "calling $0 $@" 1>&2
-fi
-
-# export variables
-set -a
-
-# in the event of an untrapped script error tail the test log,
-# if it exists, to stderr then echo a FATAL ERROR message to the
-# test log and stderr.
-
-function _err()
-{
-    local rc=$?
-    debug "_err: $0"
-
-    if [[ "$rc" -gt 0 ]]; then
-        if [[ -n "$TEST_LOG" ]]; then
-            echo -e "\nFATAL ERROR in $0 exit code $rc\n" >> $TEST_LOG
-        else
-            echo -e "\nFATAL ERROR in $0 exit code $rc\n" 1>&2
-        fi
-    fi
-    exit $rc
-}
-
-trap "_err" ERR
-
-function _exit()
-{
-    local rc=$?
-    local currscript=`get_scriptname $0`
-
-    debug "_exit: $0"
-
-    if [[ "$rc" -gt 0 && -n "$TEST_LOG" && "$SCRIPT" == "$currscript" ]]; then
-        # only tail the log once at the top level script
-        tail $TEST_LOG 1>&2
-    fi
-}
-
-trap "_exit" EXIT
-
-# error message
-# output error message end exit 2
-
-error()
-{
-    local message=$1
-    local lineno=$2
-
-    debug "error: $0:$LINENO"
-
-    echo -e "FATAL ERROR in script $0:$lineno $message\n" 1>&2
-    if [[ "$0" == "-bash" || "$0" == "bash" ]]; then
-        return 0
-    fi
-    exit 2
-}
-
-
-if [[ -z "$LIBRARYSH" ]]; then
-    # skip remainder of script if it has already included
-
-    checkProductBranch()
-    {
-        local product=$1
-        local branch=$2
-
-        case $product in
-            js|firefox)
-                ;;
-            *)
-                error "product \"$product\" must be one of js or firefox" $LINENO
-        esac
-
-        case $branch in
-            1.8.0|1.8.1|1.9.0|1.9.1|1.9.2|1.9.3)
-                ;;
-            *)
-                error "branch \"$branch\" must be one of 1.8.0 1.8.1 1.9.0 1.9.1 1.9.2 1.9.3" $LINENO
-        esac
-
-     }
-
-    # Darwin 8.11.1's |which| does not return a non-zero exit code if the
-    # program can not be found. Therefore, kludge around it.
-    findprogram()
-    {
-        local program=$1
-        local location=`which $program 2>&1`
-        if [[ ! -x $location ]]; then
-            return 1
-        fi
-        return 0
-    }
-
-    debug()
-    {
-        if [[ -n "$DEBUG" ]]; then
-            echo "DEBUG: $@"
-        fi
-    }
-
-    # console msg
-    #
-    # output message to console, ie. stderr
-
-    console()
-    {
-        echo -e "$@" 1>&2
-    }
-
-    # loaddata
-    #
-    # load data files into environment
-    loaddata()
-    {
-        local datafiles="$@"
-        local datafile
-        if [[ -n "$datafiles" ]]; then
-            for datafile in $datafiles; do
-                if [[ ! -e "$datafile" ]]; then
-                    error "datafile $datafile does not exist"
-                fi
-                cat $datafile | sed 's|^|data: |'
-                if ! source $datafile; then
-                    error "Unable to load data file $datafile"
-                fi
-            done
-        fi
-    }
-
-    # dumpenvironment
-    #
-    # output environment to stdout
-
-    dumpenvironment()
-    {
-        set | grep '^[A-Z]' | sed 's|^|environment: |'
-    }
-
-    dumphardware()
-    {
-        echo "uname -a:`uname -a`"
-        echo "uname -s:`uname -s`"
-        echo "uname -n:`uname -n`"
-        echo "uname -r:`uname -r`"
-        echo "uname -v:`uname -v`"
-        echo "uname -m:`uname -m`"
-        echo "uname -p:`uname -p`"
-        if [[ "$OSID" != "darwin" ]]; then
-            echo "uname -i:`uname -i`"
-            echo "uname -o:`uname -o`"
-        fi
-
-        ulimit -a | sed 's|^|ulimit:|'
-
-        if [[ -e /proc/cpuinfo ]]; then
-            cat /proc/cpuinfo | sed 's|^|cpuinfo:|'
-        fi
-        if [[ -e /proc/meminfo ]]; then
-            cat /proc/meminfo | sed 's|^|meminfo:|'
-        fi
-        if findprogram system_profiler; then
-            system_profiler | sed 's|^|system_profiler:|'
-        fi
-    }
-
-    # dumpvars varname1, ...
-    #
-    # dumps name=value pairs to stdout for each variable named
-    # in argument list
-
-    dumpvars()
-    {
-        local argc=$#
-        local argn=1
-
-        while [ $argn -le $argc ]; do
-            local var=${!argn}
-            echo ${var}=${!var}
-            let argn=argn+1
-        done
-    }
-
-    # get_executable product branch directory
-    #
-    # writes path to product executable to stdout
-
-    get_executable()
-    {
-        local get_executable_product="$1"
-        local get_executable_branch="$2"
-        local get_executable_directory="$3"
-
-        if [[ -z "$get_executable_product" || \
-            -z "$get_executable_branch" || \
-            -z "$get_executable_directory" ]]; then
-            error "usage: get_executable product branch directory"
-        elif [[ ! -d "$get_executable_directory" ]]; then
-            error "get_executable: executable directory \"$get_executable_directory\" does not exist"
-        else
-            # should use /u+x,g+x,a+x but mac os x uses an obsolete find
-            # filter the output to remove extraneous file in dist/bin for
-            # cvs builds on mac os x.
-            local executable=`(
-                get_executable_name="$get_executable_product${EXE_EXT}"
-                case "$OSID" in
-                    darwin)
-                        get_executable_filter="Contents/MacOS/$get_executable_product"
-                        ;;
-                    *)
-                        get_executable_filter="$get_executable_product"
-                        ;;
-                esac
-                if find "$get_executable_directory" -perm +111 -type f \
-                    -name "$get_executable_name" | \
-                    grep "$get_executable_filter"; then
-                    true
-                fi
-                )`
-
-            if [[ -z "$executable" ]]; then
-                error "get_executable $product $branch $executablepath returned empty path" $LINENO
-            fi
-
-            if [[ ! -x "$executable" ]]; then
-                error "executable \"$executable\" is not executable" $LINENO
-            fi
-
-            echo $executable
-        fi
-    }
-
-    function get_scriptname()
-    {
-        debug "\$0: $0"
-
-        local script
-        if [[ "$0" == "-bash" || "$0" == "bash" ]]; then
-            script="library.sh"
-        else
-            script=`basename $0`
-        fi
-        echo $script
-    }
-
-    xbasename()
-    {
-        local path=$1
-        local suffix=$2
-        local result
-
-        if ! result=`basename -s $suffix $path 2>&1`; then
-            result=`basename $path $suffix`
-        fi
-
-        echo $result
-    }
-
-    LIBRARYSH=1
-
-    MALLOC_CHECK_=${MALLOC_CHECK_:-2}
-
-    ulimit -c 0
-
-    # set path to make life easier
-    if ! echo ${PATH} | grep -q $TEST_DIR/bin; then
-        PATH=$TEST_DIR/bin:$PATH
-    fi
-
-    # force en_US locale
-    if ! echo "$LANG" | grep -q en_US; then
-        LANG=en_US
-        LC_TIME=en_US
-    fi
-
-    # handle sorting non-ascii logs on mac os x 10.5.3
-    LC_ALL=C
-
-    TEST_TIMEZONE=`date +%z`
-
-    # save starting directory
-    STARTDIR=`pwd`
-
-    # location of the script.
-    SCRIPTDIR=`dirname $0`
-
-    # don't attach to running instance
-    MOZ_NO_REMOTE=1
-
-    # don't restart
-    NO_EM_RESTART=1
-
-    # bypass profile manager
-    MOZ_BYPASS_PROFILE_AT_STARTUP=1
-
-    # ah crap handler timeout
-    MOZ_GDB_SLEEP=${MOZ_GDB_SLEEP:-10}
-
-    # no airbag
-    unset MOZ_AIRBAG
-    #MOZ_CRASHREPORTER_DISABLE=${MOZ_CRASHREPORTER_DISABLE:-1}
-    MOZ_CRASHREPORTER_NO_REPORT=${MOZ_CRASHREPORTER_NO_REPORT:-1}
-
-    #leak gauge
-    #NSPR_LOG_MODULES=DOMLeak:5,DocumentLeak:5,nsDocShellLeak:5
-
-    TEST_MEMORY="`memory.pl`"
-
-    # debug msg
-    #
-    # output debugging message to stdout if $DEBUG is set
-
-    DEBUG=${DEBUG:-""}
-
-    SCRIPT=`get_scriptname $0`
-
-    if [[ -z "$TEST_DIR" ]]; then
-        # get the "bin" directory
-        TEST_DIR=`dirname $0`
-        # get the "bin" directory parent
-        TEST_DIR=`dirname $TEST_DIR`
-        if [[ ! -e "${TEST_DIR}/bin/library.sh" ]]; then
-            error "BAD TEST_DIR $TEST_DIR"
-        fi
-    fi
-
-    TEST_HTTP=${TEST_HTTP:-test.mozilla.com}
-    TEST_STARTUP_TIMEOUT=${TEST_STARTUP_TIMEOUT:-30}
-    TEST_MACHINE=`uname -n`
-
-    kernel_name=`uname -s`
-
-    if [[ $kernel_name == 'Linux' ]]; then
-        OSID=linux
-        EXE_EXT=
-        TEST_KERNEL=`uname -r | sed 's|\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*|\1.\2.\3|'`
-        TEST_PROCESSORTYPE=`cat /proc/cpuinfo | grep vendor | uniq | sed 's|vendor.* : \(.*\)|\1|'`
-        TIMECOMMAND='/usr/bin/time -f "Elapsed time %e seconds, User %U seconds, System %S seconds, CPU %P, Memory: %M"'
-
-        if echo $TEST_PROCESSORTYPE | grep -q 'Intel'; then
-            TEST_PROCESSORTYPE=intel
-        elif echo $TEST_PROCESSORTYPE | grep -q 'AMD'; then
-            TEST_PROCESSORTYPE=amd
-        fi
-
-        if uname -p | grep -q '64$'; then
-            TEST_PROCESSORTYPE=${TEST_PROCESSORTYPE}64
-        else
-            TEST_PROCESSORTYPE=${TEST_PROCESSORTYPE}32
-        fi
-
-    elif [[ $kernel_name == 'Darwin' ]]; then
-        OSID=darwin
-        EXE_EXT=
-        TEST_KERNEL=`uname -r`
-        TEST_PROCESSORTYPE=`uname -p`
-        TIMEFORMAT="Elapsed time %E seconds, User %U seconds, System %S seconds, CPU %P%"
-        TIMECOMMAND=time
-
-        if [[ $TEST_PROCESSORTYPE == "i386" ]]; then
-            TEST_PROCESSORTYPE=intel
-        fi
-
-        # assume 32bit for now...
-        TEST_PROCESSORTYPE=${TEST_PROCESSORTYPE}32
-
-    elif echo $kernel_name | grep -q CYGWIN; then
-        OSID=nt
-        EXE_EXT=".exe"
-        TEST_KERNEL=`echo $kernel_name | sed 's|[^.0-9]*\([.0-9]*\).*|\1|'`
-        TEST_PROCESSORTYPE=`cat /proc/cpuinfo | grep vendor | uniq | sed 's|vendor.* : \(.*\)|\1|'`
-        TIMECOMMAND='/usr/bin/time -f "Elapsed time %e seconds, User %U seconds, System %S seconds, CPU %P, Memory: %M"'
-
-        if echo $TEST_PROCESSORTYPE | grep -q 'Intel'; then
-            TEST_PROCESSORTYPE=intel
-        elif echo $TEST_PROCESSORTYPE | grep -q 'AMD'; then
-            TEST_PROCESSORTYPE=amd
-        fi
-
-        if uname -p | grep -q '64$'; then
-            TEST_PROCESSORTYPE=${TEST_PROCESSORTYPE}64
-        else
-            TEST_PROCESSORTYPE=${TEST_PROCESSORTYPE}32
-        fi
-
-    else
-        error "Unknown OS $kernel_name" $LINENO
-    fi
-
-    case $TEST_PROCESSORTYPE in
-        *32)
-            if [[ $TEST_MEMORY -gt 4 ]]; then
-                TEST_MEMORY=4
-            fi
-            ;;
-    esac
-
-    # no dialogs on asserts
-    XPCOM_DEBUG_BREAK=${XPCOM_DEBUG_BREAK:-warn}
-
-    if [[ -z "$BUILDDIR" ]]; then
-        case `uname -s` in
-            MINGW*)
-                export BUILDDIR=/c/work/mozilla/builds
-                ;;
-            *)
-                export BUILDDIR=/work/mozilla/builds
-                ;;
-        esac
-    fi
-fi
deleted file mode 100755
--- a/testing/sisyphus/bin/master.sed
+++ /dev/null
@@ -1,3 +0,0 @@
-s/DisableDontAsk = 0/DisableDontAsk = 1/
-s/DisableUI = 0/DisableUI = 1/
-s/DisableWizard = 0/DisableWizard = 1/
deleted file mode 100755
--- a/testing/sisyphus/bin/memory.pl
+++ /dev/null
@@ -1,182 +0,0 @@
-#!/usr/bin/perl -w
-# -*- Mode: Perl; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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) 2008
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s): Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-my $K = 1024;
-my $M = 1024 * $K;
-my $G = 1024 * $M;
-
-my $tmpmemory;
-my $unitmemory;
-my $raw_memory = 0;
-my $swap_memory = 0;
-my $ulimit_maxmemory = 0;
-my $ulimit_virtualmemory = 0;
-my $test_memory = 0;
-
-# hack around lack of available environment entries in both
-# cygwin perl and redhat perl.
-# Note the bash -c set is required for ubuntu 9.04 otherwise the
-# OSTYPE file will return no data. I don't know why.
-open OSTYPE, "bash -c set | grep OSTYPE |" || die "Unable to open OSTYPE: $!";
-while (<OSTYPE>)
-{
-    chomp;
-    $ostype .= $_;
-}
-close OSTYPE;
-
-die "Unable to determine OSTYPE" if (!$ostype);
-
-if ($ostype =~ /linux/i || $ostype =~ /cygwin/i)
-{
-    open MEMINFO, "/proc/meminfo" or die "Unable to open /proc/meminfo";
-    while (<MEMINFO>)
-    {
-        if ( ($tmpmemory, $unitmemory) = $_ =~ /MemTotal:\s*([0-9]*) (kB)/)
-        {
-            die "Unknown memory unit meminfo MemTotal $unitmemory" if $unitmemory ne "kB";
-
-            $tmpmemory *= 1024;
-            $raw_memory = int($tmpmemory / $G + .5);
-        }
-        elsif ( ($tmpmemory, $unitmemory) = $_ =~ /SwapTotal:\s*([0-9]*) (kB)/)
-        {
-            die "Unknown memory unit meminfo SwapTotal $unitmemory" if $unitmemory ne "kB";
-
-            $tmpmemory *= 1024;
-            $swap_memory = int($tmpmemory / $G + .5);
-        }
-    }
-    close MEMINFO;
-}
-elsif ($ostype =~ /darwin/i)
-{
-    open SYSTEMPROFILER, "system_profiler|" or die "Unable to open system_profiler";
-    while (<SYSTEMPROFILER>)
-    {
-        if (  ($tmpmemory, $unitmemory) = $_ =~ /\s*Memory:\s*([0-9]*) ([a-zA-Z]*)/)
-        {
-            if ($unitmemory =~ /KB/)
-            {
-                $tmpmemory *= $K;
-            }
-            elsif ($unitmemory =~ /MB/)
-            {
-                $tmpmemory *= $M;
-            }
-            elsif ($unitmemory =~ /GB/)
-            {
-                $tmpmemory *= $G;
-            }
-            else
-            {
-                die "Unknown memory unit system_profiler $unitmemory";
-            }
-            $raw_memory = int($tmpmemory / $G + .5);
-        }
-    }
-    close SYSTEMPROFILER;
-}
-else
-{
-    die "Unknown Operating System: $ostype";
-}
-
-open ULIMIT, 'bash -c "ulimit -a"|' or die "Unable to open ulimit -a";
-
-while (<ULIMIT>)
-{
-    if (  ($unitmemory, $tmpmemory) = $_ =~ /max memory size + \(([a-zA-Z]*), \-m\) ([0-9]*)/)
-    {
-        if ($tmpmemory eq "")
-        {
-            $tmpmemory = 0;
-        }
-
-        if ($unitmemory =~ /kbytes/i)
-        {
-            $tmpmemory *= $K;
-        }
-        elsif ($unitmemory =~ /mbytes/i)
-        {
-            $tmpmemory *= $M;
-        }
-        elsif ($unitmemory =~ /gbytes/i)
-        {
-            $tmpmemory *= $G;
-        }
-        else
-        {
-            die "Unknown memory unit ulimit $unitmemory";
-        }
-
-        $ulimit_maxmemory = int($tmpmemory / $G + .5);
-    }
-    elsif (  ($unitmemory, $tmpmemory) = $_ =~ /virtual memory + \(([a-zA-Z]*), \-v\) ([0-9]*)/)
-    {
-        if ($tmpmemory eq "")
-        {
-            $tmpmemory = 0;
-        }
-
-        if ($unitmemory =~ /kbytes/i)
-        {
-            $tmpmemory *= $K;
-        }
-        elsif ($unitmemory =~ /mbytes/i)
-        {
-            $tmpmemory *= $M;
-        }
-        elsif ($unitmemory =~ /gbytes/i)
-        {
-            $tmpmemory *= $G;
-        }
-        else
-        {
-            die "Unknown virtual memory unit ulimit $unitmemory";
-        }
-
-        $ulimit_virtualmemory = int($tmpmemory / $G + .5);
-    }
-}
-close ULIMIT;
-
-$test_memory = $ulimit_virtualmemory > 0 ? $ulimit_virtualmemory : ($raw_memory + $swap_memory);
-
-print "$test_memory";
-
deleted file mode 100755
--- a/testing/sisyphus/bin/mips.pl
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/perl -w
-# -*- Mode: Perl; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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) 2008
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s): Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-# Calculate a relative speed measurement based on 
-# iterating over a simple loop in perl. Print the
-# result as millions of iterations per cpu second.
-
-sub mips
-{
-    my $tries = 3;        # repeat count to get average
-    my $m     = 1000000;  # scale to million iterations/second
-    my $l     = 10000000; # number of iterations to time
-    my $cpu   = 0;        # cpu time accumlator
-    my $dummy = 0;        # dummy variable to prevent optimizations
-    my $i;
-    my $start;
-    my $stop;
-    my $a;
-
-    for ($a = 0; $a < $tries; ++$a)
-    {
-        $start = (times)[0];
-        for ($i = 0; $i < $l; ++$i)
-        {
-            $dummy += $i;
-        }
-        $stop = (times)[0];
-        $cpu += $stop - $start;
-    }
-    $cpu /= $tries;
-
-    print "" . int($l/($cpu*$m)) . "\n";
-
-    return $dummy; # reuse dummy variable
-}
-
-mips;
deleted file mode 100644
--- a/testing/sisyphus/bin/quit.js
+++ /dev/null
@@ -1,143 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; -*- */
-/* ***** 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 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>
- *
- * 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 ***** */
-
-/*
-  From mozilla/toolkit/content
-  These files did not have a license
-*/
-
-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 = 'UniversalPreferencesRead UniversalPreferencesWrite ' +
-    '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;
-}
-
-
deleted file mode 100644
--- a/testing/sisyphus/bin/run-mozilla.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- run-mozilla.sh	2004-04-18 10:17:09.000000000 -0400
-+++ run-mozilla.sh.test	2005-08-18 22:27:42.906250000 -0400
-@@ -163,7 +163,7 @@
- 	##
- 	## Run the program
- 	##
--	"$prog" ${1+"$@"}
-+	exec "$prog" ${1+"$@"}
- 	exitcode=$?
- 	if [ "$DEBUG_CORE_FILES" ]
- 	then
deleted file mode 100755
--- a/testing/sisyphus/bin/sayvars.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash -e 
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-
-for var in `echo ${!TEST_*}`; do 
-	echo ${var}=${!var} >> $TEST_LOG 
-done
deleted file mode 100755
--- a/testing/sisyphus/bin/set-build-env.sh
+++ /dev/null
@@ -1,483 +0,0 @@
-#!/bin/bash
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-if [[ -z "$LIBRARYSH" ]]; then
-    source $TEST_DIR/bin/library.sh
-fi
-
-export MOZ_CVS_FLAGS="-z3 -q"
-export MOZILLA_OFFICIAL=1
-export BUILD_OFFICIAL=1
-
-if [[ -z "$CVSROOT" ]]; then
-    if grep -q buildbot@qm ~/.ssh/id_dsa.pub; then
-        export CVSROOT=:ext:unittest@cvs.mozilla.org:/cvsroot
-        export CVS_RSH=ssh
-    else
-        export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
-    fi
-fi
-
-#
-# options processing
-#
-options="p:b:T:e:"
-usage()
-{
-    cat <<EOF
-
-usage: set-build-env.sh -p product -b branch -T buildtype [-e extra]
-
--p product      one of js firefox.
--b branch       one of supported branches. see library.sh
--T buildtype    one of opt debug
--e extra        extra qualifier to pick mozconfig and tree
-
-EOF
-}
-
-myexit()
-{
-    myexit_status=$1
-
-    case $0 in
-        *bash*)
-            # prevent "sourced" script calls from
-            # exiting the current shell.
-            break 99;;
-        *)
-            exit $myexit_status;;
-    esac
-}
-
-for step in step1; do # dummy loop for handling exits
-
-    unset product branch buildtype extra
-
-    while getopts $options optname ;
-      do
-      case $optname in
-          p) product=$OPTARG;;
-          b) branch=$OPTARG;;
-          T) buildtype=$OPTARG;;
-          e) extra="-$OPTARG";;
-      esac
-    done
-
-    # include environment variables
-    datafiles=$TEST_DIR/data/$product,$branch$extra,$buildtype.data
-    if [[ -e "$datafiles" ]]; then
-        loaddata $datafiles
-    fi
-
-    # echo product=$product, branch=$branch, buildtype=$buildtype, extra=$extra
-
-    if [[ -z "$product" || -z "$branch" || -z "$buildtype" ]]; then
-        echo -n "missing"
-        if [[ -z "$product" ]]; then
-            echo -n " -p product"
-        fi
-        if [[ -z "$branch" ]]; then
-            echo -n " -b branch"
-        fi
-        if [[ -z "$buildtype" ]]; then
-            echo -n " -T buildtype"
-        fi
-        usage
-        myexit 1
-    fi
-
-    if [[ $branch == "1.8.0" ]]; then
-        export BRANCH_CO_FLAGS=${BRANCH_CO_FLAGS:--r MOZILLA_1_8_0_BRANCH}
-    elif [[ $branch == "1.8.1" ]]; then
-        export BRANCH_CO_FLAGS=${BRANCH_CO_FLAGS:--r MOZILLA_1_8_BRANCH}
-    elif [[ $branch == "1.9.0" ]]; then
-        export BRANCH_CO_FLAGS="";
-    elif [[ $branch == "1.9.1" ]]; then
-        TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-        export BRANCH_CO_FLAGS="";
-    elif [[ $branch == "1.9.2" ]]; then
-        TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.2}
-        export BRANCH_CO_FLAGS="";
-    elif [[ $branch == "1.9.3" ]]; then
-        TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/mozilla-central}
-        export BRANCH_CO_FLAGS="";
-    else
-        echo "Unknown branch: $branch"
-        myexit 1
-    fi
-
-    if [[ -n "$MOZ_CO_DATE" ]]; then
-        if [[ $branch == "1.8.0" || $branch == "1.8.1" || $branch == "1.9.0" ]]; then
-            export DATE_CO_FLAGS="-D \"$MOZ_CO_DATE\""
-        else
-            export DATE_CO_FLAGS="--date \"<$MOZ_CO_DATE\""
-        fi
-    fi
-
-    # use BUILDPATH to record the PATH to be used during build
-    # related scripts. This is used to pass MSYS specific PATHs
-    # to mozilla-build on Windows.
-    export BUILDPATH="$PATH"
-    case $OSID in
-        nt)
-
-            # On Windows, Sisyphus is run under Cygwin, so the OS will be CYGWIN
-            # regardless. Check if mozilla-build has been installed to the default
-            # location, and if so, set up to call mozilla-build to perform the actual
-            # build steps.
-            #
-            # To make life simpler, change the mount point of the C: drive in cygwin from
-            # /cygdrive/c to /c via mount -c /
-            # which will make paths to non cygwin and non msys locations identical between cygwin
-            # and msys, e.g. /c/work will work in both to point to c:\work
-            #
-            # It is also necessary to set the /tmp path in cygwin and msys to point to the
-            # same physical directory.
-            #
-            # Note that all commands *except* make client.mk will be performed in cygwin.
-            #
-            # Note that when calling a command string of the form $buildbash --login -c "command",
-            # you must cd to the desired directory as part of "command" since msys will set the
-            # directory to the home directory prior to executing the command.
-
-            export mozillabuild=${mozillabuild:-/c/mozilla-build}
-            export PYTHON=$mozillabuild/python25/python
-            export BUILDDIR=${BUILDDIR:-/c/work/mozilla/builds}
-            export buildbash="$mozillabuild/msys/bin/bash"
-            export bashlogin=--login # this is for msys' bash.
-
-            # determine installed compilers
-            export MSVCROOTKEY="/machine/SOFTWARE/Microsoft/VisualStudio"
-            export MSVC6KEY="$MSVCROOTKEY/6.0/Setup/Microsoft Visual C++"
-            export MSVC71KEY="$MSVCROOTKEY/7.1/Setup/VC"
-            export MSVC8KEY="$MSVCROOTKEY/8.0/Setup/VC"
-            export MSVC8EXPRESSKEY="/machine/SOFTWARE/Microsoft/VCExpress/8.0/Setup/VC"
-            export MSVC9KEY="$MSVCROOTKEY/9.0/Setup/VC"
-            export MSVC9EXPRESSKEY="/machine/SOFTWARE/Microsoft/VCExpress/9.0/Setup/VC"
-
-            if [[ -z "$VC6DIR" ]]; then
-                export VC6DIR=`regtool get "$MSVC6KEY/ProductDir" 2> /dev/null`
-            fi
-
-            if [[ -z "$VC71DIR" ]]; then
-                export VC71DIR=`regtool get "$MSVC71KEY/ProductDir" 2> /dev/null`
-            fi
-
-            if [[ -z "$VC8DIR" ]]; then
-                export VC8DIR=`regtool get "$MSVC8KEY/ProductDir" 2> /dev/null`
-            fi
-
-            if [[ -z "$VC8EXPRESSDIR" ]]; then
-                export VC8EXPRESSDIR=`regtool get "$MSVC8EXPRESSKEY/ProductDir" 2> /dev/null`
-            fi
-
-            if [[ -z "$VC9DIR" ]]; then
-                export VC9DIR=`regtool get "$MSVC9KEY/ProductDir" 2> /dev/null`
-            fi
-
-            if [[ -z "$VC9EXPRESSDIR" ]]; then
-                export VC9EXPRESSDIR=`regtool get "$MSVC9EXPRESSKEY/ProductDir" 2> /dev/null`
-            fi
-
-            case $branch in
-                1.8.0)
-                    # only msvc6 supported
-                    if [[ -n "$VC6DIR" ]]; then
-                        startbat=start-msvc6.bat
-                    fi
-                    ;;
-                1.8.1)
-                    # msvc6 official, vc7.1 (2003) supported
-                    if [[ -n "$VC6DIR" ]]; then
-                        startbat=start-msvc6.bat
-                    elif [[ -n "$VC71DIR" ]]; then
-                        startbat=start-msvc71.bat
-                    fi
-                    ;;
-                *)
-                    # msvc8 official, vc7.1, (2003), vc9 (2009) supported
-                    # for 1.9.0 and later
-                    if [[ -n "$VC8DIR" ]]; then
-                        startbat=start-msvc8.bat
-                        # set VCINSTALLDIR for use in detecting the MS CRT
-                        # source when building jemalloc.
-                        VCINSTALLDIR=$VC8DIR
-                    elif [[ -n "$VC8EXPRESSDIR" ]]; then
-                        startbat=start-msvc8.bat
-                    elif [[ -n "$VC71DIR" ]]; then
-                        startbat=start-msvc71.bat
-                    elif [[ -n "$VC9DIR" || -n "$VC9EXPRESSDIR" ]]; then
-                        startbat=start-msvc9.bat
-                    fi
-                    ;;
-                *)
-                    ;;
-            esac
-
-            if [[ -z "$startbat" ]]; then
-                myexit 2
-            fi
-
-            startbat="$mozillabuild/$startbat"
-
-            # The start batch file changes directory and starts an msys bash shell
-            # which will block its execution. Create a working copy without the
-            # bash invocation to just set the environment variables and save them
-            # to ~/mozilla-build-env.dat.
-            varsbat=`echo $startbat | sed 's|start|vars|'`;
-            if [[ ! -e "$varsbat" ]]; then
-                sed 's|\(^cd.*USERPROFILE.*\)|rem \1|; s|\(^.*MOZILLABUILD.*bash.*\)|\1 -c "set > ~/mozilla-build-env.dat"|' $startbat > $varsbat
-            fi
-
-            # call the windows command line to execute the new batch file
-            varsbat=`cygpath -w "$varsbat"`
-            cmd /c "$varsbat"
-            # escape the windows path delimiter \ in the mozilla-build-env.dat
-            sed -i.bak 's|\\|\\\\\\\\|g' ~/mozilla-build-env.dat
-            # set IFS to bel in order to read full line including leading whitespace.
-            saveIFS=$IFS
-            IFS=`echo -e '\007'`
-            # read from ~/mozilla-build-env.dat without forking a process
-            # see "Advanced Bash-Scripting Guide" 19-4. Avoiding a subshell
-            exec 3< ~/mozilla-build-env.dat
-            while read line <&3; do
-                if ! echo "$line" | grep -q '^[a-zA-Z_0-9]*=[^(]'; then
-                    # skip function definitions
-                    continue
-                fi
-                name="`echo $line | sed 's|\(^[a-zA-Z_0-9]*\)=.*|\1|'`"
-                if [[ "$name" == "_" ]]; then
-                    continue
-                fi
-                if [[ "$name" == "BASH_EXECUTION_STRING" ]]; then
-                    continue
-                fi
-                eval "var=\$$name"
-                # remove any single quotes around the value
-                value="`echo $line | sed \"s|^[a-zA-Z_0-9]*='*\([^']*\)'*|\1|\"`"
-                if [[ -z "$var" ]]; then
-                    # variable is not defined, i.e. was defined by the batch file.
-                    # export it into the current process.
-                    eval "export $name=\"$value\""
-                elif [[ "$name" == "PATH" ]]; then
-                    # convert msys relative paths to paths relative to /c/.
-                    value=`echo "$value" | sed 's|/local/bin|/c/mozilla-build/msys/local/bin|' | sed 's|:/usr/local/bin:/mingw/bin:/bin:|:/c/mozilla-build/msys/usr/local/bin:/c/mozilla-build/msys/mingw/bin:/c/mozilla-build/msys/bin:|'`
-                    eval "export BUILDPATH=\"$value:$PATH\""
-                fi
-            done
-            IFS=$saveIFS
-            # close mozilla-build-env.dat
-            exec 3>&-
-
-            echo moztools Location: $MOZ_TOOLS
-
-            # now convert TEST_DIR and BUILDDIR to cross compatible paths using
-            # the common cygdrive prefix for cygwin and msys
-            TEST_DIR_WIN=`cygpath -w $TEST_DIR`
-            BUILDDIR_WIN=`cygpath -w $BUILDDIR`
-            TEST_DIR=`cygpath -u $TEST_DIR_WIN`
-            BUILDDIR=`cygpath -u $BUILDDIR_WIN`
-            ;;
-
-        linux)
-            export BUILDDIR=${BUILDDIR:-/work/mozilla/builds}
-            export buildbash="/bin/bash"
-            export bashlogin=-l
-
-            # if a 64 bit linux system, assume the
-            # compiler is in the standard reference
-            # location /tools/gcc/bin/
-            case "$TEST_PROCESSORTYPE" in
-                *64)
-                    export PATH=/tools/gcc/bin:$PATH
-                    ;;
-            esac
-            ;;
-
-        darwin)
-            export BUILDDIR=${BUILDDIR:-/work/mozilla/builds}
-            export buildbash="/bin/bash"
-            export bashlogin=-l
-            ;;
-        *)
-            ;;
-    esac
-
-    export SHELL=$buildbash
-    export CONFIG_SHELL=$buildbash
-    export CONFIGURE_ENV_ARGS=$buildbash
-
-    export BUILDTREE="${BUILDTREE:-$BUILDDIR/$branch$extra}"
-
-    #
-    # extras can't be placed in mozconfigs since not all parts
-    # of the build system use mozconfig (e.g. js shell) and since
-    # the obj directory is not configurable for them as well thus
-    # requiring separate source trees
-    #
-
-    case "$extra" in
-        -too-much-gc)
-            export XCFLAGS="-DWAY_TOO_MUCH_GC=1"
-            export CFLAGS="-DWAY_TOO_MUCH_GC=1"
-            export CXXFLAGS="-DWAY_TOO_MUCH_GC=1"
-            ;;
-        -gcov)
-
-            if [[ "$OSID" == "nt" ]]; then
-                echo "NT does not support gcov"
-                myexit 1
-            fi
-            export CFLAGS="--coverage"
-            export CXXFLAGS="--coverage"
-            export XCFLAGS="--coverage"
-            export OS_CFLAGS="--coverage"
-            export LDFLAGS="--coverage"
-            export XLDFLAGS="--coverage"
-            export XLDOPTS="--coverage"
-            ;;
-        -jprof)
-            ;;
-        -narcissus)
-            export XCFLAGS="-DNARCISSUS=1"
-            export CFLAGS="-DNARCISSUS=1"
-            export CXXFLAGS="-DNARCISSUS=1"
-            ;;
-    esac
-
-    if [[ ! -d $BUILDTREE ]]; then
-        echo "Build directory $BUILDTREE does not exist"
-        myexit 2
-    fi
-
-    # here project refers to either browser or mail
-    # and is used to find mozilla/(browser|mail)/config/mozconfig
-    if [[ $product == "firefox" ]]; then
-        project=browser
-        case $branch in
-            1.9.1)
-                export TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-                ;;
-            1.9.2)
-                export TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.2}
-                ;;
-            1.9.3)
-                export TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/mozilla-central}
-                ;;
-        esac
-        export MOZCONFIG=${MOZCONFIG:-"$BUILDTREE/mozconfig-firefox-$OSID-$TEST_PROCESSORTYPE-$buildtype"}
-
-    else
-        echo "Assuming project=browser for product: $product"
-        project=browser
-        case $branch in
-            1.9.1)
-                export TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-                ;;
-            1.9.2)
-                export TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.2}
-                ;;
-            1.9.3)
-                export TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/mozilla-central}
-                ;;
-        esac
-        export MOZCONFIG=${MOZCONFIG:-"$BUILDTREE/mozconfig-firefox-$OSID-$TEST_PROCESSORTYPE-$buildtype"}
-    fi
-
-    if [[ -n "$TEST_MOZILLA_HG" ]]; then
-        export TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
-    fi
-
-    # js shell builds
-    if [[ $buildtype == "debug" ]]; then
-        unset BUILD_OPT
-    else
-        export BUILD_OPT=1
-    fi
-
-    case "$OSID" in
-        darwin)
-            export JS_EDITLINE=1 # required for mac
-            ;;
-    esac
-    # end js shell builds
-
-    # set default "data" variables to reduce need for data files.
-
-    case $product in
-        firefox)
-            profilename=${profilename:-$product-$branch$extra-profile}
-            profiledirectory=${profiledirectory:-/tmp/$product-$branch$extra-profile}
-            userpreferences=${userpreferences:-$TEST_DIR/prefs/test-user.js}
-            extensiondir=${extensiondir:-$TEST_DIR/xpi}
-            executablepath=${executablepath:-$BUILDTREE/mozilla/$product-$buildtype/dist}
-            ;;
-        js)
-            jsshellsourcepath=${jsshellsourcepath:-$BUILDTREE/mozilla/js/src}
-            ;;
-    esac
-
-    if [[ -n "$datafiles" && ! -e $datafiles ]]; then
-        # if there is not already a data file for this configuration, create it
-        # this will save this configuration for the tester.sh and other scripts
-        # which use datafiles for passing configuration values.
-
-        echo product=\${product:-$product}                                          >> $datafiles
-        echo branch=\${branch:-$branch}                                             >> $datafiles
-        echo buildtype=\${buildtype:-$buildtype}                                    >> $datafiles
-        if [[ $product == "js" ]]; then
-            echo jsshellsourcepath=\${jsshellsourcepath:-$jsshellsourcepath}        >> $datafiles
-        else
-            echo profilename=\${profilename:-$profilename}                          >> $datafiles
-            echo profiledirectory=\${profiledirectory:-$profiledirectory}           >> $datafiles
-            echo executablepath=\${executablepath:-$executablepath}                 >> $datafiles
-            echo userpreferences=\${userpreferences:-$userpreferences}              >> $datafiles
-            echo extensiondir=\${extensiondir:-$extensiondir}                       >> $datafiles
-        fi
-        if [[ -n "$TEST_MOZILLA_HG" ]]; then
-            echo TEST_MOZILLA_HG=\${TEST_MOZILLA_HG:-$TEST_MOZILLA_HG}              >> $datafiles
-            echo TEST_MOZILLA_HG_REV=\${TEST_MOZILLA_HG_REV:-$TEST_MOZILLA_HG_REV}  >> $datafiles
-        fi
-    fi
-
-    set | sed 's/^/environment: /'
-    echo "mozconfig: $MOZCONFIG"
-    cat $MOZCONFIG | sed 's/^/mozconfig: /'
-done
deleted file mode 100644
--- a/testing/sisyphus/bin/start-spider.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title>Start Spider</title>
-</head>
-<body>
-<h1>Start Spider</h1>
-<p>
-Initialize Spider...
-</p>
-</body>
-</html>
deleted file mode 100755
--- a/testing/sisyphus/bin/test-setup.sh
+++ /dev/null
@@ -1,266 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-
-#
-# options processing
-#
-options="p:b:u:f:c:B:T:x:N:D:L:U:E:d:"
-function usage()
-{
-    cat<<EOF
-usage:
-$SCRIPT -p product -b branch
-       [-u url [-f filepath] [-c credentials]]
-       [-B buildcommands -T buildtype]
-       [-x executablepath]
-       [-N profilename [-D profiledirectory [-L profiletemplate
-         [-U userpreferences]]]]
-       [-E extensiondir]
-       [-d datafiles]
-
-variable            description
-===============     ===========================================================
--p product          required. one of js firefox.
--b branch           required. supported branch. see library.sh
--u url              optional. url where to download build
--f filepath         optional. location to save downloaded build or to find
-                    previously downloaded build. If not specified, the
-                    default will be the basename of the url saved to the
-                    /tmp directory. If there is no basename, then the
-                    filepath will be /tmp/\$product-\$branch-file.
--B buildcommands    optional. one or more of clean checkout build
--T buildtype        optional. one of opt debug
--x executablepath   optional. directory tree containing executable with same
-                    name as product. If the build is downloaded and executable
-                    path is not specified, it will be defaulted to
-                    /tmp/\$product-\$branch.
-                    For cvs builds it will be defaulted to the appropriate
-                    directory in
-                    ${BUILDDIR}/\$branch/mozilla/\$product-\$buildtype/
--N profilename      optional. profilename. profilename is required if
-                    profiledirectory or extensiondir are specified.
--D profiledirectory optional. If profiledirectory is specified, a new profile
-                    will be created in the directory.
--L profiletemplate  optional. If a new profile is created, profiletemplate is
-                    the path to an existing profile which will be copied over
-                    the new profile.
--U userpreferences  optional. If a new profile is created, userpreferences is
-                    the path to a user.js file to be copied into the new
-                    profile.
-                    If userpreferences is not specified when a new profile is
-                    created, it is defaulted to
-                    ${TEST_DIR}/prefs/test-user.js
--E extensiondir     optional. path to directory tree containing extensions to
-                    be installed.
--d datafiles        optional. one or more filenames of files containing
-                    environment variable definitions to be included.
-
-note that the environment variables should have the same
-names as in the "variable" column.
-
-EOF
-    exit 1
-}
-
-unset product branch url filepath credentials buildcommands buildtype executablepath profilename profiledirectory profiletemplate userpreferences extenstiondir datafiles
-
-while getopts $options optname ;
-  do
-  case $optname in
-      p) product="$OPTARG";;
-      b) branch="$OPTARG";;
-
-      u) url="$OPTARG";;
-      f) filepath="$OPTARG";;
-      c) credentials="$OPTARG";;
-
-      B) buildcommands="$OPTARG";;
-      T) buildtype="$OPTARG";;
-
-      x) executablepath="$OPTARG";;
-
-      N) profilename="$OPTARG";;
-      D) profiledirectory="$OPTARG";;
-      L) profiletemplate="$OPTARG";;
-      U) userpreferences="$OPTARG";;
-
-      E) extensiondir="$OPTARG";;
-
-      d) datafiles="$OPTARG";;
-  esac
-done
-
-# include environment variables
-loaddata $datafiles
-
-TEST_PRODUCT=$product
-TEST_BRANCH=$branch
-TEST_BUILDCOMMANDS=$buildcommands
-TEST_BUILDTYPE=$buildtype
-TEST_EXECUTABLEPATH=$executablepath
-if [[ -n "$profilename" ]]; then
-    TEST_PROFILENAME=$profilename
-fi
-if [[ -n "$profiletemplate" ]];then
-    TEST_PROFILETEMPLATE=$profiletemplate
-fi
-if [[ -n "$userpreferences" ]]; then
-    TEST_USERPREFERENCES=$userpreferences
-fi
-if [[ -n "$extensiondir" ]]; then
-    TEST_EXTENSIONDIR=$extensiondir
-fi
-TEST_DATAFILES=$datafiles
-
-dumpenvironment
-dumphardware
-
-if [[ -z "$product" || -z "$branch" ]]; then
-    echo "product and branch are required"
-    usage
-fi
-
-checkProductBranch $product $branch
-
-if [[ ( -n "$url" || -n "$filepath" ) && ( -n "$buildcommands" ) ]]; then
-    echo "you can not both download and build cvs builds at the same time"
-    usage
-fi
-
-if [[ -n "$buildcommands" && -n "$executablepath" ]]; then
-    echo "You can not specify the executable path and build cvs builds at the same time"
-    usage
-fi
-
-if [[ (-n "$profiledirectory" || -n "$extensiondir" ) && -z "$profilename" ]]; then
-    echo "You must specify a profilename if you specify a profiledirectory or extensiondir"
-    usage
-fi
-
-# if the url is specified but not the filepath
-# generate a default path where to save the
-# downloaded build.
-if [[ -n "$url" && -z "$filepath" ]]; then
-    filepath=`basename $url`
-    if [[ -z "$filepath" ]]; then
-        filepath="$product-$branch-file"
-    fi
-    filepath="/tmp/$filepath"
-fi
-
-if [[ -n "$url" ]]; then
-    download.sh -u "$url" -c "$credentials" -f "$filepath" -t "$TEST_DOWNLOAD_TIMEOUT"
-fi
-
-# install the build at the specified filepath
-if [[ -n "$filepath" ]]; then
-    if [[ -z "$executablepath" ]]; then
-        executablepath="/tmp/$product-$branch"
-    fi
-    install-build.sh -p $product -b $branch -x $executablepath -f $filepath
-fi
-
-if [[ -n "$buildcommands" ]]; then
-
-    if [[ -z "$buildtype" ]]; then
-        echo "You must specify a buildtype if you are building from cvs"
-        usage
-    elif [[ "$buildtype" != "opt" && "$buildtype" != "debug" ]]; then
-        echo "buildtype must be one of opt debug"
-        usage
-    fi
-
-    case "$OSID" in
-        mac)
-            if [[ "$product" == "firefox" ]]; then
-                App=Firefox
-            fi
-            if [[ "$buildtype" == "debug" ]]; then
-                AppType=Debug
-            fi
-            executablepath="${BUILDDIR}/$branch/mozilla/$product-$buildtype/dist/$App$AppType.app/Contents/MacOS"
-            ;;
-        *)
-            executablepath="${BUILDDIR}/$branch/mozilla/$product/$buildtype/dist/bin"
-    esac
-
-    if echo "$buildcommands" | grep -iq clean; then
-        clean.sh -p $product -b $branch -t $buildtype
-    fi
-
-    if echo "$buildcommands" | grep -iq checkout; then
-        checkout.sh -p $product -b $branch -t $buildtype
-    fi
-
-    if echo "$buildcommands" | grep -iq build; then
-        build.sh -p $product -b $branch -t $buildtype
-    fi
-
-fi
-
-if [[ -n "$profiledirectory" ]]; then
-
-    if [[ -z "$userpreferences" ]]; then
-        userpreferences=${TEST_DIR}/prefs/test-user.js
-    fi
-
-    unset optargs
-    if [[ -n "$profiletemplate" ]]; then
-        optargs="$optargs -L $profiletemplate"
-    fi
-    if [[ -n "$userpreferences" ]]; then
-        optargs="$optargs -U $userpreferences"
-    fi
-
-    create-profile.sh -p $product -b $branch \
-        -x $executablepath -D $profiledirectory -N $profilename \
-        $optargs
-fi
-
-if [[ -n "$extensiondir" ]]; then
-
-    install-extensions.sh -p $product -b $branch \
-        -x $executablepath -N $profilename -E $extensiondir
-
-    check-spider.sh -p $product -b $branch \
-        -x $executablepath -N $profilename
-
-fi
deleted file mode 100755
--- a/testing/sisyphus/bin/tester.sh
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-
-TEST_LOG=/dev/null
-
-#
-# options processing
-#
-options="p:b:e:T:t:v"
-function usage()
-{
-    cat<<EOF
-usage: 
-$SCRIPT -t testscript [-v ] datalist1 [datalist2 [datalist3 [datalist4]]]
-
-variable            description
-===============     ===========================================================
--t testscript       required. quoted test script with required arguments.
--v                  optional. verbose - copies log file output to stdout.
-
-executes the testscript using the input data files in 
-$TEST_DIR/data constructed from each combination of the input parameters:
-
-{item1},{item2},{item3},{item4}
-
-EOF
-    exit 1
-}
-
-unset testscript testargs
-
-# remove script name from args
-shiftargs=1
-
-while getopts $options optname ; 
-  do 
-  case $optname in
-      t) 
-          let shiftargs=$shiftargs+1
-          testscript="$OPTARG"
-          if echo $testscript | grep -iq ' ' ; then
-              testargs=`echo $testscript   | sed 's|^\([^ ]*\)[ ]*\(.*\)|\2|'`
-              testscript=`echo $testscript | sed 's|^\([^ ]*\)[ ]*.*|\1|'`
-          fi
-          ;;
-      v) verbose=1
-          let shiftargs=$shiftargs+1
-          ;;
-  esac
-done
-
-if [[ -z "$testscript" ]]; then
-    usage
-fi
-
-shift $shiftargs
-
-datalist=`combo.sh "$@"`
-
-TEST_SUITE=`dirname $testscript | sed "s|$TEST_DIR/||" | sed "s|/|_|g"`
-
-for data in $datalist; do
-    TEST_DATE=`date -u +%Y-%m-%d-%H-%M-%S``date +%z`
-    TEST_LOG="${TEST_DIR}/results/${TEST_DATE},$data,$OSID,${TEST_MACHINE},$TEST_SUITE.log"
-
-    if [[ "$OSID" == "nt" ]]; then
-        # If on Windows, set up the Windbg/CDB debug log file
-        # name to point to our log. 
-        export _NT_DEBUG_LOG_FILE="`cygpath -w $TEST_LOG`"
-    fi
-
-    # tell caller what the log files are
-    echo "log: $TEST_LOG "
-
-    if [[ "$verbose" == "1" ]]; then
-        test-setup.sh -d $TEST_DIR/data/$data.data 2>&1 | tee -a $TEST_LOG
-        $testscript $testargs -d $TEST_DIR/data/$data.data 2>&1 | tee -a $TEST_LOG
-    else
-        test-setup.sh -d $TEST_DIR/data/$data.data >> $TEST_LOG 2>&1
-        $testscript $testargs -d $TEST_DIR/data/$data.data >> $TEST_LOG 2>&1
-    fi
-
-    if [[ "$XPCOM_DEBUG_BREAK" == "stack" ]]; then
-        case $OSID in
-            nt)
-                ;;
-            linux)
-                if findprogram fix-linux-stack.pl; then
-                    fix-linux-stack.pl < $TEST_LOG > $TEST_LOG.tmp
-                    mv $TEST_LOG.tmp $TEST_LOG
-                else
-                    error "XPCOM_DEBUG_BREAK=stack specified but fix-linux-stack.pl is not available"
-                fi
-                ;;
-            darwin)
-                if findprogram fix-macosx-stack.pl; then
-                    fix-macosx-stack.pl < $TEST_LOG > $TEST_LOG.tmp
-                    mv $TEST_LOG.tmp $TEST_LOG
-                else
-                    error "XPCOM_DEBUG_BREAK=stack specified but fix-macosx-stack.pl is not available"
-                fi
-                ;;
-        esac
-    fi
-
-done
deleted file mode 100755
--- a/testing/sisyphus/bin/timed_run.py
+++ /dev/null
@@ -1,156 +0,0 @@
-#!/usr/bin/python -u
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Foundation.
-# Portions created by the Initial Developer are Copyright (C) 2004
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s): Chris Cooper
-#                 Jesse Ruderman
-#
-# 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 *****
-
-# Usage: timed_run timeout prefix command args
-import os, signal, sys, time
-
-#
-# returns exit code as follows:
-# 
-exitOSError   = 66
-exitSignal    = 77
-exitTimeout   = 88
-exitInterrupt = 99
-
-pid = None
-prefix = sys.argv[2]
-elapsedtime = 0
-
-if prefix == "-":
-    prefix = ''
-else:
-    prefix = prefix + ':'
-
-def getSignalName(num):
-    for p in dir(signal):
-        if p.startswith("SIG") and not p.startswith("SIG_"):
-            if getattr(signal, p) == num:
-                return p
-    return "UNKNOWN"
-
-def alarm_handler(signum, frame):
-    global pid
-    global prefix
-    try:
-	stoptime = time.time()
-	elapsedtime = stoptime - starttime
-        print "\n%s EXIT STATUS: TIMED OUT (%s seconds)\n" % (prefix, elapsedtime)
-        flushkill(pid, signal.SIGKILL)
-    except OSError, e:
-        print "\ntimed_run.py: exception trying to kill process: %d (%s)\n" % (e.errno, e.strerror)
-        pass
-    flushexit(exitTimeout)
-
-def forkexec(command, args):
-    global prefix
-    global elapsedtime
-    #print command
-    #print args
-    try:
-        pid = os.fork()
-        if pid == 0:  # Child
-            os.execvp(command, args)
-            flushbuffers()
-        else:  # Parent
-            return pid
-    except OSError, e:
-        print "\n%s ERROR: %s %s failed: %d (%s) (%f seconds)\n" % (prefix, command, args, e.errno, e.strerror, elapsedtime)
-        flushexit(exitOSError)
-
-def flushbuffers():
-        sys.stdout.flush()
-        sys.stderr.flush()
-
-def flushexit(rc):
-        flushbuffers()
-        sys.exit(rc)
-
-def flushkill(pid, sig):
-        flushbuffers()
-        os.kill(pid, sig)
-
-signal.signal(signal.SIGALRM, alarm_handler)
-signal.alarm(int(sys.argv[1]))
-starttime = time.time()
-try:
-	pid = forkexec(sys.argv[3], sys.argv[3:])
-	status = os.waitpid(pid, 0)[1]
-	signal.alarm(0) # Cancel the alarm
-	stoptime = time.time()
-	elapsedtime = stoptime - starttime
-	# it appears that linux at least will on "occasion" return a status
-	# when the process was terminated by a signal, so test signal first.
-	if os.WIFSIGNALED(status):
-            signum = os.WTERMSIG(status)
-            if signum == 2:
-                msg = 'INTERRUPT'
-                rc = exitInterrupt
-            else:
-                msg = 'CRASHED'
-                rc = exitSignal
-
-            print "\n%s EXIT STATUS: %s signal %d %s (%f seconds)\n" % (prefix, msg, signum, getSignalName(signum), elapsedtime)
-            flushexit(rc)
-
-	elif os.WIFEXITED(status):
-	    rc = os.WEXITSTATUS(status)
-	    msg = ''
-	    if rc == 0:
-	        msg = 'NORMAL'
-	    else:
-	        msg = 'ABNORMAL ' + str(rc)
-		rc = exitSignal
-
-	    print "\n%s EXIT STATUS: %s (%f seconds)\n" % (prefix, msg, elapsedtime)
-	    flushexit(rc)
-	else:
-	    print "\n%s EXIT STATUS: NONE (%f seconds)\n" % (prefix, elapsedtime)
-	    flushexit(0)
-except KeyboardInterrupt:
-	flushkill(pid, 9)
-	flushexit(exitInterrupt)
-
-# check that the child process has terminated.
-try:
-    os.getpgid(pid)
-    # process still exists. try to kill it and exit with OSError
-    flushkill(pid, 9)
-    flushexit(exitOSError)
-except OSError:
-    # process doesn't exist. all is well.
-    1
deleted file mode 100755
--- a/testing/sisyphus/bin/uninstall-build.sh
+++ /dev/null
@@ -1,146 +0,0 @@
-#!/bin/bash -e
-# -*- Mode: Shell-script; tab-width: 4; indent-tabs-mode: nil; -*-
-# ***** 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.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2006.
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Bob Clary <bob@bclary.com>
-#
-# 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 *****
-
-source $TEST_DIR/bin/library.sh
-
-#
-# options processing
-#
-options="p:b:x:d:"
-function usage()
-{
-    cat <<EOF
-usage:
-$SCRIPT -p product -b branch  -x executablepath [-d datafiles]
-
-variable            description
-===============     ============================================================
--p product          required. firefox.
--b branch           required. supported branch. see library.sh
--x executablepath   required. directory where build is installed
--d datafiles        optional. one or more filenames of files containing
-                    environment variable definitions to be included.
-
-note that the environment variables should have the same names as in the
-"variable" column.
-
-Uninstalls build located in directory-tree 'executablepath'
-then removes the directory upon completion.
-
-EOF
-    exit 1
-}
-
-unset product branch executablepath datafiles
-
-while getopts $options optname ;
-  do
-  case $optname in
-      p) product=$OPTARG;;
-      b) branch=$OPTARG;;
-      x) executablepath=$OPTARG;;
-      d) datafiles=$OPTARG;;
-  esac
-done
-
-# include environment variables
-loaddata $datafiles
-
-if [[ -z "$product" || -z "$branch" || -z "$executablepath" ]]
-    then
-    usage
-fi
-
-
-if ! ls $executablepath/* > /dev/null 2>&1; then
-    echo "uninstall-build.sh: ignoring missing $executablepath"
-    exit 0
-fi
-
-executable=`get_executable $product $branch $executablepath`
-
-executabledir=`dirname $executable`
-
-if [[ $OSID == "nt" ]]; then
-    # see http://nsis.sourceforge.net/Docs/Chapter3.html
-
-    # if the directory already exists, attempt to uninstall
-    # any existing installation. Suppress failures.
-
-    if [[ -d "$executabledir/uninstall" ]]; then
-
-        if [[ "$branch" == "1.8.0" ]]; then
-            uninstallexe="$executabledir/uninstall/uninstall.exe"
-            uninstallini="$executabledir/uninstall/uninstall.ini"
-            if [[ -n "$uninstallexe"  && -e "$uninstallexe" ]]; then
-                if sed -i.bak 's/Run Mode=Normal/Run Mode=Silent/' $uninstallini;
-                    then
-                    if $uninstallexe; then true; fi
-                fi
-            fi
-        else
-            uninstalloldexe="$executabledir/uninstall/uninst.exe"
-            uninstallnewexe="$executabledir/uninstall/helper.exe"
-            if [[ -n "$uninstallnewexe" && -e "$uninstallnewexe" ]]; then
-                if $uninstallnewexe /S /D=`cygpath -a -w $executabledir | sed 's@\\\\@\\\\\\\\@g'`; then true; fi
-            elif [[ -n "$uninstalloldexe" && -e "$uninstalloldexe" ]]; then
-                if $uninstalloldexe /S /D=`cygpath -a -w $executabledir | sed 's@\\\\@\\\\\\\\@g'`; then true; fi
-            else
-                uninstallexe="$executabledir/$product/uninstall/uninstaller.exe"
-                if [[ -n "$uninstallexe" && -e "$uninstallexe" ]]; then
-                    if $uninstallexe /S /D=`cygpath -a -w "$executabledir"  | sed 's@\\\\@\\\\\\\\@g'`; then true; fi
-                fi
-            fi
-        fi
-        # the NSIS uninstaller will copy itself, then fork to the new
-        # copy so that it can delete itself. This causes a race condition
-        # between the uninstaller deleting the files and the rm command below
-        # sleep for 10 seconds to give the uninstaller time to complete before
-        # the installation directory is removed.
-        sleep 10
-    fi
-fi
-
-
-# safely creates/deletes a directory. If we pass this,
-# then we know it is safe to remove the directory.
-
-$TEST_DIR/bin/create-directory.sh -d "$executablepath" -n
-
-rm -fR "$executablepath"
deleted file mode 100644
--- a/testing/sisyphus/bin/userhook-checkspider.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** 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 JavaScript Engine testing utilities.
- *
- * The Initial Developer of the Original Code is
- * Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2006
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s): Bob Clary
- *
- * 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 ***** */
-
-/*
- * Spider hook function to check if spider is working.
- */
-
-
-function userOnStart()
-{
-}
-
-function userOnBeforePage()
-{
-}
-
-function userOnAfterPage()
-{
-  var win = gSpider.mDocument.defaultView;
-  if (win.wrappedJSObject)
-  {
-    win = win.wrappedJSObject;
-  }
-
-  dumpObject('navigator', win.navigator);
-
-  for (var i = 0; i < win.navigator.mimeTypes.length; i++)
-  {
-    dumpObject('navigator.mimeTypes[' + i + ']', win.navigator.mimeTypes[i]);
-  }
-
-  for (var i = 0; i < win.navigator.plugins.length; i++)
-  {
-    dumpObject('navigator.plugins[' + i + ']', win.navigator.plugins[i]);
-  }
-
-  gPageCompleted = true;
-}
-
-function dumpObject(name, object)
-{
-  for (var p in object)
-  {
-    if (/(string|number)/.test(typeof object[p]))
-    {
-      cdump(name + '.' + p + ':' + object[p]);
-    }
-  }
-
-}
-
-function userOnStop()
-{
-}
-
-
-gConsoleListener.onConsoleMessage = 
-function userOnConsoleMessage(s)
-{
-  dump(s);
-};
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.8.0,debug.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.8.0}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.8.0-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.8.0-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.8.0/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.8.0,opt.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.8.0}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.8.0-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.8.0-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.8.0/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.8.0-test,debug.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.8.0}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.8.0-test-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.8.0-test-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.8.0-test/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.8.0-test,opt.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.8.0}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.8.0-test-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.8.0-test-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.8.0-test/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.8.0-too-much-gc,debug.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.8.0}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.8.0-too-much-gc-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.8.0-too-much-gc-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.8.0-too-much-gc/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.8.1,debug.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.8.1}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.8.1-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.8.1-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.8.1/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.8.1,opt.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.8.1}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.8.1-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.8.1-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.8.1/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.8.1-test,debug.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.8.1}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.8.1-test-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.8.1-test-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.8.1-test/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.8.1-test,opt.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.8.1}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.8.1-test-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.8.1-test-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.8.1-test/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.8.1-too-much-gc,debug.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.8.1}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.8.1-too-much-gc-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.8.1-too-much-gc-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.8.1-too-much-gc/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.0,debug.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.9.0-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.0-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.0/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.0,nightly-darwin.data
+++ /dev/null
@@ -1,9 +0,0 @@
-product=firefox
-branch=1.9.0
-url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.0.14pre.en-US.mac.dmg
-profilename=firefox-1.9.0-profile
-profiledirectory=/tmp/firefox-1.9.0-profile
-executablepath=/tmp/firefox-1.9.0
-userpreferences=${TEST_DIR}/prefs/test-user.js
-extensiondir=${TEST_DIR}/xpi
-buildtype=nightly
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.0,nightly-linux.data
+++ /dev/null
@@ -1,9 +0,0 @@
-product=firefox
-branch=1.9.0
-url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.0.14pre.en-US.linux-i686.tar.bz2
-profilename=firefox-1.9.0-profile
-profiledirectory=/tmp/firefox-1.9.0-profile
-executablepath=/tmp/firefox-1.9.0
-userpreferences=${TEST_DIR}/prefs/test-user.js
-extensiondir=${TEST_DIR}/xpi
-buildtype=nightly
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.0,nightly-nt.data
+++ /dev/null
@@ -1,9 +0,0 @@
-product=firefox
-branch=1.9.0
-url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.0.14pre.en-US.win32.zip
-profilename=firefox-1.9.0-profile
-profiledirectory=/tmp/firefox-1.9.0-profile
-executablepath=/tmp/firefox-1.9.0
-userpreferences=${TEST_DIR}/prefs/test-user.js
-extensiondir=${TEST_DIR}/xpi
-buildtype=nightly
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.0,opt.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.9.0-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.0-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.0/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.0-gcov,debug.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.9.0-gcov-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.0-gcov-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.0-gcov/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/builds/hg.mozilla.org/mozilla-central-test/testing/sisyphus/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/builds/hg.mozilla.org/mozilla-central-test/testing/sisyphus/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.0-gcov,opt.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.9.0-gcov-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.0-gcov-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.0-gcov/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/builds/hg.mozilla.org/mozilla-central-test/testing/sisyphus/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/builds/hg.mozilla.org/mozilla-central-test/testing/sisyphus/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.0-jprof,debug.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.9.0-jprof-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.0-jprof-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.0-jprof/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/builds/hg.mozilla.org/mozilla-central-test/testing/sisyphus/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/builds/hg.mozilla.org/mozilla-central-test/testing/sisyphus/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.0-jprof,opt.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.9.0-jprof-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.0-jprof-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.0-jprof/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/builds/hg.mozilla.org/mozilla-central-test/testing/sisyphus/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/builds/hg.mozilla.org/mozilla-central-test/testing/sisyphus/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.0-test,debug.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.9.0-test-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.0-test-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.0-test/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.0-test,opt.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.9.0-test-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.0-test-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.0-test/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.0-too-much-gc,debug.data
+++ /dev/null
@@ -1,8 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.9.0-too-much-gc-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.0-too-much-gc-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.0-too-much-gc/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.1,debug.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.1}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.9.1-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.1-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.1/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.1,nightly-darwin.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=firefox
-branch=1.9.1
-url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-1.9.1/firefox-3.5.3pre.en-US.mac.dmg
-profilename=firefox-1.9.1-profile
-profiledirectory=/tmp/firefox-1.9.1-profile
-executablepath=/tmp/firefox-1.9.1
-userpreferences=${TEST_DIR}/prefs/test-user.js
-extensiondir=${TEST_DIR}/xpi
-buildtype=nightly
-TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.1,nightly-linux.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=firefox
-branch=1.9.1
-url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-1.9.1/firefox-3.5.3pre.en-US.linux-i686.tar.bz2
-profilename=firefox-1.9.1-profile
-profiledirectory=/tmp/firefox-1.9.1-profile
-executablepath=/tmp/firefox-1.9.1
-userpreferences=${TEST_DIR}/prefs/test-user.js
-extensiondir=${TEST_DIR}/xpi
-buildtype=nightly
-TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.1,nightly-nt.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=firefox
-branch=1.9.1
-url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-1.9.1/firefox-3.5.3pre.en-US.win32.zip
-profilename=firefox-1.9.1-profile
-profiledirectory=/tmp/firefox-1.9.1-profile
-executablepath=/tmp/firefox-1.9.1
-userpreferences=${TEST_DIR}/prefs/test-user.js
-extensiondir=${TEST_DIR}/xpi
-buildtype=nightly
-TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.1,opt.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.1}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.9.1-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.1-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.1/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.1-jprof,debug.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.1}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.9.1-jprof-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.1-jprof-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.1-jprof/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/builds/hg.mozilla.org/mozilla-central-test/testing/sisyphus/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/builds/hg.mozilla.org/mozilla-central-test/testing/sisyphus/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.1-jprof,opt.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.1}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.9.1-jprof-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.1-jprof-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.1-jprof/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/builds/hg.mozilla.org/mozilla-central-test/testing/sisyphus/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/builds/hg.mozilla.org/mozilla-central-test/testing/sisyphus/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.1-test,debug.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.1}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.9.1-test-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.1-test-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.1-test/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.1-test,opt.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.1}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.9.1-test-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.1-test-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.1-test/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.1-too-much-gc,debug.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.1}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.9.1-too-much-gc-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.1-too-much-gc-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.1-too-much-gc/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.2,debug.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.2}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.9.2-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.2-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.2/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.2}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.2,nightly-darwin.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=firefox
-branch=1.9.2
-url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-1.9.2/firefox-3.6a2pre.en-US.mac.dmg
-profilename=firefox-1.9.2-profile
-profiledirectory=/tmp/firefox-1.9.2-profile
-executablepath=/tmp/firefox-1.9.2
-userpreferences=${TEST_DIR}/prefs/test-user.js
-extensiondir=${TEST_DIR}/xpi
-buildtype=nightly
-TEST_MOZILLA_HG=http://hg.mozilla.org/releases/mozilla-1.9.2
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.2,nightly-linux.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=firefox
-branch=1.9.2
-url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-1.9.2/firefox-3.6a2pre.en-US.linux-i686.tar.bz2
-profilename=firefox-1.9.2-profile
-profiledirectory=/tmp/firefox-1.9.2-profile
-executablepath=/tmp/firefox-1.9.2
-userpreferences=${TEST_DIR}/prefs/test-user.js
-extensiondir=${TEST_DIR}/xpi
-buildtype=nightly
-TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.2,nightly-nt.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=firefox
-branch=1.9.2
-url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-1.9.2/firefox-3.6a2pre.en-US.linux-i686.tar.bz2
-profilename=firefox-1.9.2-profile
-profiledirectory=/tmp/firefox-1.9.2-profile
-executablepath=/tmp/firefox-1.9.2
-userpreferences=${TEST_DIR}/prefs/test-user.js
-extensiondir=${TEST_DIR}/xpi
-buildtype=nightly
-TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.2,opt.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.2}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.9.2-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.2-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.2/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.2}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.2-test,debug.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.2}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.9.2-test-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.2-test-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.2-test/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.2}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.2-test,opt.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.2}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.9.2-test-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.2-test-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.2-test/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.2}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.3,nightly-darwin.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=firefox
-branch=1.9.3
-url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.7a1pre.en-US.mac.dmg
-profilename=firefox-1.9.3-profile
-profiledirectory=/tmp/firefox-1.9.3-profile
-executablepath=/tmp/firefox-1.9.3
-userpreferences=${TEST_DIR}/prefs/test-user.js
-extensiondir=${TEST_DIR}/xpi
-buildtype=nightly
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/mozilla-central}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.3,nightly-linux.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=firefox
-branch=1.9.3
-url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.7a1pre.en-US.linux-i686.tar.bz2
-profilename=firefox-1.9.3-profile
-profiledirectory=/tmp/firefox-1.9.3-profile
-executablepath=/tmp/firefox-1.9.3
-userpreferences=${TEST_DIR}/prefs/test-user.js
-extensiondir=${TEST_DIR}/xpi
-buildtype=nightly
-TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.3,nightly-nt.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=firefox
-branch=1.9.3
-url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.7a1pre.en-US.win32.zip
-profilename=firefox-1.9.3-profile
-profiledirectory=/tmp/firefox-1.9.3-profile
-executablepath=/tmp/firefox-1.9.3
-userpreferences=${TEST_DIR}/prefs/test-user.js
-extensiondir=${TEST_DIR}/xpi
-buildtype=nightly
-TEST_MOZILLA_HG=http://hg.mozilla.org/mozilla-central
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.3-tracemonkey,debug.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.3}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.9.3-tracemonkey-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.3-tracemonkey-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.3-tracemonkey/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/tracemonkey}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.3-tracemonkey,opt.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.3}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.9.3-tracemonkey-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.3-tracemonkey-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.3-tracemonkey/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/tracemonkey}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.3-tracemonkey-test,debug.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.3}
-buildtype=${buildtype:-debug}
-profilename=${profilename:-firefox-1.9.3-tracemonkey-test-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.3-tracemonkey-test-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.3-tracemonkey-test/mozilla/firefox-debug/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/tracemonkey}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/firefox,1.9.3-tracemonkey-test,opt.data
+++ /dev/null
@@ -1,10 +0,0 @@
-product=${product:-firefox}
-branch=${branch:-1.9.3}
-buildtype=${buildtype:-opt}
-profilename=${profilename:-firefox-1.9.3-tracemonkey-test-profile}
-profiledirectory=${profiledirectory:-/tmp/firefox-1.9.3-tracemonkey-test-profile}
-executablepath=${executablepath:-/work/mozilla/builds/1.9.3-tracemonkey-test/mozilla/firefox-opt/dist}
-userpreferences=${userpreferences:-/work/mozilla/mozilla.com/test.mozilla.com/www/prefs/test-user.js}
-extensiondir=${extensiondir:-/work/mozilla/mozilla.com/test.mozilla.com/www/xpi}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/tracemonkey}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.8.0,debug.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.8.0}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.8.0/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.8.0,opt.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.8.0}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.8.0/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.8.0-test,debug.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.8.0}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.8.0-test/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.8.0-test,opt.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.8.0}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.8.0-test/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.8.1,debug.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.8.1}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.8.1/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.8.1,opt.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.8.1}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.8.1/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.8.1-test,debug.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.8.1}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.8.1-test/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.8.1-test,opt.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.8.1}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.8.1-test/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.8.1-too-much-gc,debug.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.8.1}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.8.1-too-much-gc/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.0,debug.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.0/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.0,opt.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.0/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.0-gcov,debug.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.0-gcov/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.0-gcov,opt.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.0-gcov/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.0-test,debug.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.0-test/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.0-test,opt.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.0-test/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.0-too-much-gc,debug.data
+++ /dev/null
@@ -1,4 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.0}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.0-too-much-gc/mozilla/js/src}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.1,debug.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.1}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.1/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.1,opt.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.1}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.1/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.1-test,debug.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.1}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.1-test/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.1-test,opt.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.1}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.1-test/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.1-too-much-gc,debug.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.1}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.1-too-much-gc/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.1}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.2,debug.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.2}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.2/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.2}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.2,opt.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.2}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.2/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.2}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.2-narcissus,debug.data
+++ /dev/null
@@ -1,7 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.2}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.2-narcissus/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.2}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
-NARCISSUS=${narcissuspath:-/work/mozilla/builds/1.9.2-narcissus/mozilla/js/narcissus/js.js}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.2-narcissus,opt.data
+++ /dev/null
@@ -1,7 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.2}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.2-narcissus/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.2}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
-NARCISSUS=${narcissuspath:-/work/mozilla/builds/1.9.2-narcissus/mozilla/js/narcissus/js.js}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.2-test,debug.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.2}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.2-test/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.2}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.2-test,opt.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.2}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.2-test/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/releases/mozilla-1.9.2}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.3,debug.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.3}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.3/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/mozilla-central}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.3,opt.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.3}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.3/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/mozilla-central}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.3-narcissus,debug.data
+++ /dev/null
@@ -1,7 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.3}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.3-narcissus/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/mozilla-central}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
-NARCISSUS=${narcissuspath:-/work/mozilla/builds/1.9.3-narcissus/mozilla/js/narcissus/js.js}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.3-narcissus,opt.data
+++ /dev/null
@@ -1,7 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.3}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.3-narcissus/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/mozilla-central}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
-NARCISSUS=${narcissuspath:-/work/mozilla/builds/1.9.3-narcissus/mozilla/js/narcissus/js.js}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.3-test,debug.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.3}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.3-test/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/mozilla-central}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.3-test,opt.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.3}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.3-test/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/mozilla-central}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.3-tracemonkey,debug.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.3}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.3-tracemonkey/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/tracemonkey}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.3-tracemonkey,opt.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.3}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.3-tracemonkey/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/tracemonkey}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.3-tracemonkey-test,debug.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.3}
-buildtype=${buildtype:-debug}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.3-tracemonkey-test/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/tracemonkey}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/data/js,1.9.3-tracemonkey-test,opt.data
+++ /dev/null
@@ -1,6 +0,0 @@
-product=${product:-js}
-branch=${branch:-1.9.3}
-buildtype=${buildtype:-opt}
-jsshellsourcepath=${jsshellsourcepath:-/work/mozilla/builds/1.9.3-tracemonkey-test/mozilla/js/src}
-TEST_MOZILLA_HG=${TEST_MOZILLA_HG:-http://hg.mozilla.org/tracemonkey}
-TEST_MOZILLA_HG_REV=${TEST_MOZILLA_HG_REV:-tip}
deleted file mode 100644
--- a/testing/sisyphus/prefs/mail-user.js
+++ /dev/null
@@ -1,25 +0,0 @@
-user_pref("app.update.enabled", false);
-user_pref("browser.dom.window.dump.enabled", true);
-user_pref("browser.sessionstore.resume_from_crash", false);
-user_pref("browser.shell.checkDefaultBrowser", false);
-user_pref("capability.policy.policynames", "trusted");
-user_pref("capability.policy.trusted.sites", "http://test.mozilla.com http://test.bclary.com");
-user_pref("capability.principal.codebase.p0.granted", "UniversalPreferencesWrite UniversalXPConnect UniversalBrowserWrite UniversalPreferencesRead UniversalBrowserRead");
-user_pref("capability.principal.codebase.p0.id", "http://test.mozilla.com");
-user_pref("capability.principal.codebase.p1.granted", "UniversalPreferencesWrite UniversalXPConnect UniversalBrowserWrite UniversalPreferencesRead UniversalBrowserRead");
-user_pref("capability.principal.codebase.p1.id", "http://test.bclary.com");
-user_pref("dom.allow_scripts_to_close_windows", true);
-user_pref("dom.max_script_run_time", 0);
-user_pref("extensions.update.enabled", false);
-user_pref("extensions.update.notifyUser", false);
-user_pref("mail.startup.enabledMailCheckOnce", false);
-user_pref("security.warn_submit_insecure", false);
-user_pref("signed.applets.codebase_principal_support", true);
-user_pref("mailnews.start_page.override_url", "http://test.mozilla.com/bin/install-extensions-1.html");
-user_pref("mailnews.start_page.url", "http://test.mozilla.com/bin/install-extensions-1.html");
-user_pref("mailnews.start_page.welcome_url", "http://test.mozilla.com/bin/install-extensions-1.html");
-user_pref("browser.warnOnQuit", false);
-user_pref("extensions.checkCompatibility", false);
-user_pref("extensions.checkUpdateSecurity", false);
-user_pref("browser.EULA.override", true);
-
deleted file mode 100644
--- a/testing/sisyphus/prefs/public-user.js
+++ /dev/null
@@ -1,30 +0,0 @@
-user_pref("app.update.enabled", false);
-user_pref("browser.dom.window.dump.enabled", true);
-user_pref("browser.sessionstore.resume_from_crash", false);
-user_pref("browser.shell.checkDefaultBrowser", false);
-user_pref("browser.xul.error_pages.enabled", true);
-user_pref("capability.policy.policynames", "trusted");
-user_pref("capability.policy.trusted.sites", "http://test.mozilla.com http://test.bclary.com");
-user_pref("capability.principal.codebase.p0.granted", "UniversalPreferencesWrite UniversalXPConnect UniversalBrowserWrite UniversalPreferencesRead UniversalBrowserRead");
-user_pref("capability.principal.codebase.p0.id", "http://test.mozilla.com");
-user_pref("capability.principal.codebase.p1.granted", "UniversalPreferencesWrite UniversalXPConnect UniversalBrowserWrite UniversalPreferencesRead UniversalBrowserRead");
-user_pref("capability.principal.codebase.p1.id", "http://test.bclary.com");
-user_pref("dom.allow_scripts_to_close_windows", false);
-user_pref("dom.disable_move_resize", true);
-user_pref("dom.disable_open_during_load", true);
-user_pref("dom.disable_window_flip", true);
-user_pref("dom.disable_window_open_feature.status", true);
-user_pref("dom.max_script_run_time", 0);
-user_pref("dom.max_chrome_script_run_time", 0);
-user_pref("javascript.options.showInConsole", true);
-user_pref("layout.css.report_errors", true);
-user_pref("security.warn_entering_secure", false);
-user_pref("security.warn_entering_weak", false);
-user_pref("security.warn_leaving_secure", false);
-user_pref("security.warn_submit_insecure", false);
-user_pref("security.warn_viewing_mixed", false);
-user_pref("signed.applets.codebase_principal_support", true);
-user_pref("browser.warnOnQuit", false);
-user_pref("extensions.checkCompatibility", false);
-user_pref("extensions.checkUpdateSecurity", false);
-user_pref("browser.EULA.override", true);
deleted file mode 100644
--- a/testing/sisyphus/prefs/test-user.js
+++ /dev/null
@@ -1,28 +0,0 @@
-user_pref("app.update.enabled", false);
-user_pref("browser.dom.window.dump.enabled", true);
-user_pref("browser.sessionstore.resume_from_crash", false);
-user_pref("browser.shell.checkDefaultBrowser", false);
-user_pref("browser.xul.error_pages.enabled", true);
-user_pref("capability.policy.policynames", "trusted");
-user_pref("capability.policy.trusted.sites", "http://test.mozilla.com http://test.bclary.com");
-user_pref("capability.principal.codebase.p0.granted", "UniversalPreferencesWrite UniversalXPConnect UniversalBrowserWrite UniversalPreferencesRead UniversalBrowserRead");
-user_pref("capability.principal.codebase.p0.id", "http://test.mozilla.com");
-user_pref("capability.principal.codebase.p1.granted", "UniversalPreferencesWrite UniversalXPConnect UniversalBrowserWrite UniversalPreferencesRead UniversalBrowserRead");
-user_pref("capability.principal.codebase.p1.id", "http://test.bclary.com");
-user_pref("dom.allow_scripts_to_close_windows", true);
-user_pref("dom.disable_open_during_load", false);
-user_pref("dom.max_script_run_time", 0);
-user_pref("dom.max_chrome_script_run_time", 0);
-user_pref("javascript.options.showInConsole", true);
-user_pref("layout.css.report_errors", true);
-user_pref("security.warn_entering_secure", false);
-user_pref("security.warn_entering_weak", false);
-user_pref("security.warn_leaving_secure", false);
-user_pref("security.warn_submit_insecure", false);
-user_pref("security.warn_viewing_mixed", false);
-user_pref("signed.applets.codebase_principal_support", true);
-user_pref("browser.warnOnQuit", false);
-user_pref("browser.cache.check_doc_frequency", 1);
-user_pref("extensions.checkCompatibility", false);
-user_pref("extensions.checkUpdateSecurity", false);
-user_pref("browser.EULA.override", true);
deleted file mode 100644
--- a/testing/sisyphus/talkback/linux/Talkback.ini
+++ /dev/null
@@ -1,8 +0,0 @@
-HistorySettings = 3, 10, 100
-EnableAgentFromWizard = 1
-SeenIntro = 1
-EmailControl = "mozqa@mozilla.com"
-URLEditControl = 
-PromptUser = 0
-LocalKey = B9591F218C
-RandomPool = 0C1ED3B691EEF8D151CFFEC84FD73F6CFC01B4020911D1EA423672E9E283166049807247DCD80E4DB824C97E1519B54194689137D48F7D78E50ED406219AB674577942AFCAD115A5574CA22F1A95F73F40A1FA581FC6921A3F08540E054E75358208074043AE72B963092E6023B984FC78294069BF039970CB4E444889DF0DD3
deleted file mode 100644
--- a/testing/sisyphus/talkback/mac/Talkback.ini
+++ /dev/null
@@ -1,8 +0,0 @@
-HistorySettings = 3, 10, 100
-EnableAgentFromWizard = 1
-SeenIntro = 1
-UserEmailAddress = "mozqa@mozilla.com"
-URLEditControl = 
-PromptUser = 0
-LocalKey = BFAF47F801
-RandomPool = A21DF17FEA8D8A9F5155C3D45CA2AC367763CB23915C6F6BF6F810F264DFCE67EF4067E0CEA849A3A9C25D74D26CA10B08A9D03D1BB34D51A5DD4186721B3C4A38B35F4B3F1869F0235EFB88A3DC59AABD86129BCA6C7BAD7B8A0DBED0AF57BE284C750E48F94745879C3F5F932BCA2494E4D9430D9942264E02F7C29C8C4375
deleted file mode 100644
--- a/testing/sisyphus/talkback/win32/Talkback.ini
+++ /dev/null
@@ -1,8 +0,0 @@
-HistorySettings = 3, 10, 100
-EnableAgentFromWizard = 1
-SeenIntro = 1
-EmailEdit = "mozqa@mozilla.com"
-URLEdit = 
-PromptUser = 0
-LocalKey = BFAF47F801
-RandomPool = A21DF17FEA8D8A9F5155C3D45CA2AC367763CB23915C6F6BF6F810F264DFCE67EF4067E0CEA849A3A9C25D74D26CA10B08A9D03D1BB34D51A5DD4186721B3C4A38B35F4B3F1869F0235EFB88A3DC59AABD86129BCA6C7BAD7B8A0DBED0AF57BE284C750E48F94745879C3F5F932BCA2494E4D9430D9942264E02F7C29C8C4375
deleted file mode 100644
--- a/testing/sisyphus/tests/mozilla.org/download-page/collect-urls-userhook.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-
-function userOnStart()
-{
-  dlog('userOnStart()');
-}
-
-function userOnBeforePage()
-{
-  dlog('userOnBeforePage()');
-}
-
-function userOnPause()
-{
-  dlog('userOnPause()');
-}
-
-function userOnAfterPage()
-{
-  dlog('userOnAfterPage()');
-
-  setTimeout(collectLinks, 5000);
-}
-
-function collectLinks()
-{
-  dlog('collectLinks()');
-
-  var win = gSpider.mDocument.defaultView;
-  if (win.wrappedJSObject)
-  {
-    win = win.wrappedJSObject;
-  }
-
-  var os;
-
-  switch(navigator.platform)
-  {
-  case 'Win32':
-    os = 'win';
-    break;
-  case 'MacPPC':
-  case 'MacIntel':
-    os = 'osx';
-    break;
-  case 'Linux i686':
-  case 'Linux i686 (x86_64)':
-    os = 'linux';
-    break;
-  default:
-    cdump('Error: Unknown OS ' + navigator.platform);
-    return;
-  }
-    
-  cdump('document.body: ' + win.document.body.innerHTML);
-  var links = win.document.links;
-
-  for (var ilink = 0; ilink < links.length; ilink++)
-  {
-    var link = links[ilink];
-    if (link.href.indexOf('http://download.mozilla.org') != -1 && 
-        link.href.indexOf('os=' + os) != -1)
-    {
-      var href = link.href;
-      cdump('href: ' + href);
-    }
-  }
-
-  gPageCompleted = true;
-}
-
-
-function userOnStop()
-{
-  dlog('userOnStop()');
-}
-
deleted file mode 100755
--- a/testing/sisyphus/tests/mozilla.org/download-page/test.sh
+++ /dev/null
@@ -1,201 +0,0 @@
-#!/bin/bash -e
-
-if [[ -z "$TEST_DIR" ]]; then
-  cat <<EOF
-`basename $0`: error
-
-TEST_DIR, the location of the Sisyphus framework, 
-is required to be set prior to calling this script.
-EOF
-  exit 2
-fi
-
-source $TEST_DIR/bin/library.sh
-
-TEST_DOWNLOAD_PAGE_TIMEOUT=${TEST_DOWNLOAD_PAGE_TIMEOUT:-60}
-TEST_DOWNLOAD_BUILD_TIMEOUT=${TEST_DOWNLOAD_BUILD_TIMEOUT:-900}
-
-#
-# options processing
-#
-options="u:t:p:b:x:c:N:d:"
-function usage()
-{
-    cat <<EOF
-usage: 
-$SCRIPT -u allurl -t test -p product -b branch -N profilename -x executablepath 
-        -c credentials [-d datafiles]
-
-variable            description
-===============     ============================================================
--u allurl           required. location to find download "all" page.
--t test             required. all for download page. ftp for ftp directory
--p product          required. firefox|thunderbird
--b branch           required. 1.8.0|1.8.1|1.9.0
--x executablepath   required. directory-tree containing executable 'product'
--c credentials      optional. user:password if required for authentication
--N profilename      required. profile name 
--d datafiles        optional. one or more filenames of files containing 
-                    environment variable definitions to be included.
-
-                    note that the environment variables should have the same 
-                    names as in the "variable" column.
-
-
-allurl         =$allurl 
-test           =$test 
-product        =$product 
-branch         =$branch 
-profilename    =$profilename 
-executablepath =$executablepath 
-credentials    =$credentials 
-datafiles      =$datafiles
-
-EOF
-    exit 2
-}
-
-unset allurl test product branch profilename executablepath credentials datafiles
-
-while getopts $options optname ; 
-  do 
-  case $optname in
-      u) allurl=$OPTARG;;
-      t) test=$OPTARG;;
-      p) product=$OPTARG;;
-      b) branch=$OPTARG;;
-      N) profilename=$OPTARG;;
-      x) executablepath=$OPTARG;;
-      c) credentials="-c $OPTARG";;
-      d) datafiles=$OPTARG;;
-  esac
-done
-
-# include environment variables
-if [[ -n "$datafiles" ]]; then
-    for datafile in $datafiles; do 
-        source $datafile
-    done
-fi
-
-if [[ -z "$allurl" || -z "$test" || \
-    -z "$product" || -z "$branch" || -z "$profilename" || \
-    -z "$executablepath" ]]; then
-    usage
-fi