During a module transition, remove all enqueued JS jobs. Seems to fix the 
timeouts in UISuite.

Patch by: amitmanjhi
Review by: rjrjr (desk review)



git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@6536 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/shell/HtmlUnitSessionHandler.java b/dev/core/src/com/google/gwt/dev/shell/HtmlUnitSessionHandler.java
index 7eaca71..9c87d9f 100644
--- a/dev/core/src/com/google/gwt/dev/shell/HtmlUnitSessionHandler.java
+++ b/dev/core/src/com/google/gwt/dev/shell/HtmlUnitSessionHandler.java
@@ -24,6 +24,7 @@
 import com.google.gwt.dev.util.log.PrintWriterTreeLogger;
 
 import com.gargoylesoftware.htmlunit.ScriptResult;
+import com.gargoylesoftware.htmlunit.WebWindow;
 import com.gargoylesoftware.htmlunit.html.HtmlPage;
 import com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine;
 import com.gargoylesoftware.htmlunit.javascript.host.Window;
@@ -209,8 +210,11 @@
         currentUrl = getUrlBeforeHash(currentUrl);
         String newUrl = getUrlBeforeHash((String) args[0].getValue());
         if (!newUrl.equals(currentUrl)) {
-          // TODO: removeAllJobs for all windows?
-          window.getWebWindow().getTopWindow().getJobManager().removeAllJobs();
+          WebWindow webWindow = window.getWebWindow();
+          do {
+            webWindow.getJobManager().removeAllJobs();
+            webWindow = webWindow.getParentWindow();
+          } while (webWindow != webWindow.getTopWindow());
         }
       }
       result = jsEngine.callFunction(htmlPage, jsFunction, jsContext, window,