2.0 Alpha 9 Release Notes
READ THIS Before You Build and Install
Webclient is distributed as a mostly-binary release. The platform-dependent native code and the core webclient java code are pre-compiled. The binary distribution includes the complete webclient and MCP Java source code. This includes the code for the sample browser, sample MCP tests, JUnit tests, and the core webclient API and implementation. The Netbeans project included with the webclient distribution has build targets for the samples, as well as the core source code.
Webclient 2.0 Alpha 9 depends on xulrunner 18.104.22.168. If you build webclient from source, you must first build xulrunner. For instructions on building xulrunner please visit http://www.mozilla.org/build/.
This section explains how to install and run webclient using the binary distribution.
Un-install any existing webclient installations.
Install JDK 1.5 or later from http://java.sun.com/. Older JDKs may work but you're on your own for support.
The binary distribution has a NetBeans 5.5 project file to ease building and running the automated and manual tests. It also has a non-ide build.xml file that allows building and running without an IDE. You can download NetBeans 5.5 from http://www.netbeans.org/. If you want to use the non-ide build file, you need Apache Ant, which can be downloaded from http://ant.apache.org/.
Make a new empty directory, called WEBCLIENT_DIST for the purposes of discussion. The rest of the instructions will guide you in populating this directory.
Download the approriate xulrunner for your platform.
Windows: http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/22.214.171.124/contrib/win32/xulrunner-126.96.36.199.en-US.win32.zip. Unpack the zip directly to WEBCLIENT_DIST. It is strongly recommended that the path to WEBCLIENT_DIST contain no spaces.
Mac OS X: http://mediacast.sun.com/share/edburns/xulrunner-188.8.131.52.en-US.mac-pkg.dmg. Copy the XUL.Framework from the mounted Disk Image to WEBCLIENT_DIST.
Download the binary at http://www.mozilla.org/projects/blackwood/webclient/bin/webclient_2_0_a9_rc3.zip and unpack it into WEBCLIENT_DIST. This zip file that contains native binaries for all supported platforms.
At this point, you should have the following directories in WEBCLIENT_DIST:
webclient_2_0_a9/ bin/ javadocs/ lib/ netbeans/ non-ide/ test/ XULRUNNER_DIST
The contents of these directories are as follows.
- Native binaries for each supported OS
- JavaDocs for the public API
- Jar files for the public API and implementation
- A Netbeans 5.5 project directory that allows easily building and running the automated tests and sample app.
- A build.xml file for building and running the webclient tests and example browser without an IDE.
- The source files for the automated tests and sample app.
- The root directory of the xulrunner binary dist. The name of this directory will vary from platform to platform.
IMPORTANT Before launching NetBeans or running ant, make sure the directory under
XULRUNNER_DISTthat contains the actual
xulrunnerexecutable has been added to the platform appropriate environment variables.
WEBCLIENT_DIST/xulrunnerto your PATH environment variable. It is recommended to do this in an individual command shell rather than through the System Properties. Verify correctness by cding to the root directory of your machine, and entering the command
xulrunner. If you see a dialog titled "XULRunner" with "Mozilla XULRunner 184.108.40.206" as the first line, you are ok to proceed. Otherwise, don't continue with these instructions until you see this dialog. Click OK to exit the dialog.
Mac OS X:
WEBCLIENT_DIST/XUL.framework/Versions/220.127.116.11to your PATH and DYLD_LIBRARY_PATH environment variables. Verify correctness by cding to your home directory, and entering the command
xulrunner-bin. If you output starting with "Mozilla XULRunner 18.104.22.168", you are ok to proceed. Otherwise, don't continue with these instructions until you see this output.
If you are using NetBeans
Using the same command shell where you successfully ran the xulrunner command, start NetBeans 5.5 and use the File->Open Project... dialog to open the "netbeans" directory in the WEBCLIENT_DIST/webclient_2_0_a9 directory.
Go to the "Files" tab, open the "webclient" node and edit the "webclient.properties" file.
browser.bin.dirproperty to point to the absolute path to the
This is the directory that contains the
xulrunner.exefile. It is the same directory you added to the PATH. IMPORTANT: make sure this property does not contain any spaces and any backslashes in the path are escaped. On win32, you may have to use the funky "~" syntax. For example,
Program Filesmay become
Documents and Settingsmay become
DOCUME~1. To see what the "~" syntax is in your case do a
dir /xin the parent directory.
For example, on my machine,
Mac OS X:
This is the directory that contains the
XULlibrary file. It is the same directory you added to the DYLD_LIBRARY_PATH.
For example, on my machine,
Save the modified
Back in the Project tab, Right-click on the "webclient" entry in the tree view and choose "Build Project".
Once the project builds successfully, you may "run" or "test" it using the netbeans commands.
If you are using the non-ide build with ant
Using the same command shell in which you executed the
xulrunnercommand, cd to the non-ide directory and copy build.properties.sample to build.properties. Edit the file according to the environment of your system. The same constraints about spaces and backslash characters apply here, as in the above steps for NetBeans.
ant -projecthelpto see what targets are available.
Building the 2.0 Alpha 9 Release
These instructions cover how to build the java source for webclient using netbeans, included in the binary distribution. Instructions for building the native code are still pending.
Install the binary, as above.
Open the netbeans project and Go to the "Files" tab.
webclientnode in the tree viewer. Expand the
build.xmlnode. Right click on the "compile.core. src" target and select "Run Target". This will move aside the webclient jar and compile the core sources into the build directory.
Stop any running mozilla or webclient instances
Run the "clean" ant target.
Available and Unavailable Features
New Features for This Release
org.mozilla.mcp for easy automated testing
of Ajax web applications. Please see the
javadoc package description for usage instructions.
This package now includes a timeout facility
New Features from Previous Releases
Request header sniffing. See http://lxr.mozilla.org/mozilla/source/java/webclient/test/manual/src/classes/org/mozilla/webclient/test/TestBrowser.java for an example.
Support for java.awt.MouseListener. See http://lxr.mozilla.org/mozilla/source/java/webclient/test/automated/src/classes/org/mozilla/webclient/MouseListenerTest.java for an example.
Make webclient use its own prefs file. This enables one to run webclient and mozilla at the same time.
Fix focus problem where you couldn't type in text fields.
Support for java.awt.KeyListener. See http://lxr.mozilla.org/mozilla/source/java/webclient/test/automated/src/classes/org/mozilla/webclient/KeyListenerTest.java for an example.
Support for NewWindowListener. This makes it possible to correctly handle cases where the browser requests a new window. See http://lxr.mozilla.org/mozilla/source/java/webclient/test/automated/src/classes/org/mozilla/webclient/WindowCreatorTest.java for an example.
The following methods are known to work.
BrowserControlFactory.setAppData() BrowserControlFactory.newBrowserControl() BrowserControlFactory.deleteBrowserControl() BrowserControlFactory.appTerminate() BrowserControl.queryInterface() for the following interfaces BrowserControl.HISTORY_NAME BrowserControl.BROWSER_CONTROL_CANVAS_NAME BrowserControl.EVENT_REGISTRATION_NAME BrowserControl.NAVIGATION_NAME BrowserControl.CURRENT_PAGE_NAME CurrentPage.getSelection() CurrentPage.copyCurrentSelectionToSystemClipboard() CurrentPage.copyCurrentSelectionHtmlToSystemClipboard() CurrentPage.getCurrentURL() CurrentPage.find() CurrentPage.findNext() CurrentPage.getDOM() (including getElementById()) CurrentPage.highlightSelection() CurrentPage.selectAll() CurrentPage.clearAllSelections() CurrentPage.printPreview() CurrentPage.getSource() EventRegistration.addDocumentLoadListener() (including PageInfoListener) EventRegistration.removeDocumentLoadListener() History.canBack() History.canForward() History.back() History.forward() Full support for Java AWT KeyListener and MouseListener. Navigation.loadURL() Navigation.loadFromStream() Navigation.refresh() Navigation.stop() Navigation.post() Support for new windows popped up by the browser with chrome supplied from Java.
Browser and General Issues
Webclient hasn't yet been stress tested, so there are probably lots of issues that will come up with a little use.
Printing is not yet implemented.
You can run plugins inside webclient, but on win32, the Java plugin will not work. You must remove the java plugin. Please see the section on installing the win32 binary in this file.
Bookmarks and History
Bookmarks is not supported with XULRunner. Both the Bookmarks and History interfaces are incompletely implemented.
If webclient is acting funny, it may be due to conflicting mozilla registry file. Follow the steps in the mozilla 1.8 release notes to remove the registry, then re-run mozilla 1.8 to generate a new registry.
Can't do File->New Window on unix: Bug 156712. This one is a real stumper for me.
Embedding apps can't setCurrentHistoryIndex. See http://bugzilla.mozilla.org/show_bug.cgi?id=47278
Webclient needs to be displayed to be used. See http://bugzilla.mozilla.org/show_bug.cgi?id=44075