Reviewers: amitmanjhi, Description: There's a TODO(amitmanjhi) in HtmlUnitSessionHandler to refactor SessionHandler, and the current situation makes it impossible for me to implement OOPHM in Adobe AIR (well, unless I write a full-fledged OOPHM client).
So here's a patch that factors out a SessionHandlerClient from HtmlUnitSessionHandler (breaking all references between BrowserChannelClient and HtmlUnit), and pushing down a bunch of methods from SessionHandler into a new SessionHandlerServer (all those methods that were implemented in HtmlUnitSessionHandler as throwing an UnsupportedOperationException). This patch does not do any tidying of no-op or "silly" methods (sendFreeValues is a no-op, as javaObjectsToFree is always empty; and invokeSpecial should never be called on the client side), it's just straightforward refactoring, thanks to Eclipse (extract superclass, pull up, push down). I've renamed HtmlUnitSessionHandler's getHtmlPage to getSynchronizationObject, 'cause it really doesn't matter which type of object it is, getHtmlPage() was only used as the synchronization object for synchronized blocks. I checked that it compiles OK and both BrowserChannelTest and BrowserChannelServerTest are green. Please review this at http://gwt-code-reviews.appspot.com/114801 Affected files: dev/core/src/com/google/gwt/dev/shell/BrowserChannel.java dev/core/src/com/google/gwt/dev/shell/BrowserChannelClient.java dev/core/src/com/google/gwt/dev/shell/BrowserChannelServer.java dev/core/src/com/google/gwt/dev/shell/BrowserListener.java dev/core/src/com/google/gwt/dev/shell/HtmlUnitSessionHandler.java dev/core/src/com/google/gwt/dev/shell/JavaObject.java dev/core/src/com/google/gwt/dev/shell/OophmSessionHandler.java dev/core/src/com/google/gwt/dev/shell/ServerMethods.java dev/core/test/com/google/gwt/dev/shell/BrowserChannelServerTest.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors