There's no magic: 
http://code.google.com/webtoolkit/doc/latest/DevGuideCompilingAndDebugging.html#DevGuideDevMode

JSNI code (which obviously includes everything manipulating the DOM) is 
sent to the browser (from the DevMode java app –a.k.a. "code server"– to 
the Dev Plugin running in your browser) to be evaluated (as JavaScript), 
the browser then keeps references to these functions to call them later.
Every time your code calls one such JSNI method, the DevMode java app asks 
the browser Dev plugin to call the function; the result is sent back to the 
DevMode java app.
Similarly, when you call Java methods from your JSNI, or when there's an 
even in the browser that has to be routed to Java code, the Dev browser 
plugin asks the DevMode to run the code in Java; and he result is sent back 
to the Dev browser plugin.
JS objects ("extends JavaScriptObject") are kept in the browser and 
assigned a "client ID"; the DevMode java app only knows about their "client 
ID". Similarly, Java objects (most of your code) is kept on the Java side 
and the browser only sees "opaque" objects with a "server ID" assigned by 
the DevMode java app.
That way, JS code is run in the browser, and subject to browser bugs and 
features, and Java code runs in Java.

And what's great is that you can run the DevMode "code server" on one 
machine and the browser with the Dev plugin on another one, or within a VM; 
this allows to develop in, say, Linux, and test in DevMode in IE (on 
another machine or in VirtualBox).
And you can also run unit tests that way: 
http://code.google.com/webtoolkit/doc/latest/DevGuideTestingRemoteTesting.html
AFAICT, the GWT team runs all the GWT unit tests in a bunch of browsers 
(Firefox, Safari, IE6/7/8/9, etc. on Linux, MacOSX, Windows; I don't 
exactly) using this "remote testing" recipe; automatically as part of their 
continuous build.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/NnGTSupjGoEJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to