Hey all, I'm working on releasing our internal Firefox bindings as a public project. You can see the beginnings of it here:
http://code.google.com/p/gwt-firefox-extension/source/browse/#svn/trunk There's a bit of work I need to do to clean it up and turn it into something usable by outsiders, but I need some helping thinking through the best way to re-architect how we package/consume the associated data from the XPI. The biggest looming task is to remove some of the heavy Ant dependencies that we're using to compile the XPI. My first idea is to reuse the wardir functionality, but lay it out the same way an extension would look internally. This layout would be bootstrapped via shell-script, like the current GWT's projectCreator. When a user loads dev mode with the extension module available, an XPI would be generated underneath the war/modulename/ directory which could be loaded into Firefox to run the extension in hosted mode. The hosted-mode XPI would use the local server to load its CSS and image resources so that users can restart FF to pick up changes without redeploying. In production mode, a compressed and optimized XPI would be generated underneath the www/ folder that could be deployed by users as needed. For this first release, I'm thinking of GWT modules as headless scriptable components that start up at Firefox load time and hook into the various browser components to do what they need to do. To deal with UI from the scriptable component, you can either modify the DOM from script, or use the XulRunner overlay system with hooks to call back into your GWT code. One interesting issue with building extensions in GWT is that all ImageBundles on the source path will currently emit their resources, even if the bundle is later pruned. While extra image resources aren't really a big issue on the web, they add pretty significant overhead to the size of the final XPI. In fact, we were pulling in nearly 100kB of extra resources before we re-worked our source paths. I hope to have something out later this week that will actually produce compilable code. Feedback welcome (and would be appreciated!). Matt. -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
