GWT defaults to loading code from HTML files in an iframe that works kind of like a "sandbox". The iframe's content has to be from the same "origin" as the host page for them to be able to communicate with each others (see "
Same Origin Policy").
When loaded from the filesystem, the iframe will have a different "origin" as the host page, so it'll fail.
You might try using the xsiframe linker, which loads JS files, instead of HTML ones (add <add-linker name="xsiframe"/> to your gwt.xml). Otherwise, you have to serve your HTML host page through a web server.