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,