2.0 Alpha 5 Release Notes
READ THIS Before You Build and Install
We only have a binary release now, and it is only known to work on win32.
Webclient 2.0 Alpha 5 depends on xulrunner 1.8.0.9. If you build webclient from source, you must first build xulrunner. For instructions on building xulrunner please visit http://www.mozilla.org/build/.
Installing the 2.0 Release
Win32
This section explains how to install and run webclient using the win32 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/.
Download the 20061206 nightly of xulrunner from http://ftp.mozilla.org/pub/mozilla.org/xulrunner/nightly/2006-12-06-08-mozilla1.8.0/xulrunner-1.8.0.9.en-US.win32.zip. This is the build of xulrunner that most closely matches the code in Firefox 1.5.0.9, which is very stable for embedding. Unpack this zip in a fresh empty directory, called WEBCLIENT_DIST for the purposes of discussion here instructions. It is strongly recommended that the path to WEBCLIENT_DIST contain no spaces.
Download the binary at http://www.mozilla.org/projects/blackwood/webclient/bin/win32/webclient_2_0_a5_win32.zip and unpack it into WEBCLIENT_DIST.
At this point, you should have the following directories in WEBCLIENT_DIST:
bin javadocs lib netbeans non-ide test xulrunner
The contents of these directories are as follows.
- bin
- Native binaries for this OS
- javadocs
- JavaDocs for the public API
- lib
- Jar files for the public API and implementation
- netbeans
- A Netbeans 5.5 project directory that allows easily building and running the automated tests and sample app.
- non-ide
- A build.xml file for building and running the webclient tests and example browser without an IDE.
- test
- The source files for the automated tests and sample app.
- xulrunner
- The root directory of the xulrunner binary dist.
IMPORTANT Before launching NetBeans or running ant, make sure
WEBCLIENT_DIST/xulrunner
is in your PATH.Once you have added
WEBCLIENT_DIST/xulrunner
to your PATH, verify that it works by opening up a command prompt, cding to the root directory of your machine, and typeing the commandxulrunner
. If you see a dialog titled "XULRunner" with "Mozilla XULRunner 1.8.0.9" 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.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 directory.
Go to the "Files" tab, open the "webclient" node and edit the "webclient.properties" file.
Adjust the
browser.bin.dir
property to point to the absolute path to theWEBCLIENT_DIST/xulrunner
directory. This is the directory that contains thexulrunner.exe
file. 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 Files
may becomePROGRA~1
andDocuments and Settings
may becomeDOCUME~1
. To see what the "~" syntax is in your case do adir /x
in the parent directory.For example, on my machine,
browser.bin.dir
isC:\\DOCUME~1\\edburns\\MYDOCU~1\\tmp\\webclient-alpha-5\\xulrunner
.Save the modified
webclient.properties
file.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
xulrunner
command, 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.Run
ant -projecthelp
to see what targets are available.
Building the 2.0 Alpha 5 Release
Build Instructions -- Cross Platform
Build instructions pending. Obviously, it can be built, but documenting how to do so takes some time.
Uninstalling the 2.0 Alpha 5 Build
Uninstalling
Stop any running mozilla or webclient instances
Run the "clean" ant target.
Available and Unavailable Features
New Features for This Release
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.
New Features from Previous Releases
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.
Known Issues
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
Printing is not yet implemented.
Plugins
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.
Profiles
If webclient is acting funny, it may be due to conflicting mozilla registry file. Follow the steps in the mozilla 1.7 release notes to remove the registry, then re-run mozilla 1.7 to generate a new registry.
Known Bugs
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
For the complete list, follow this bugzilla link, or go to bugzilla's query page at http://bugzilla.mozilla.org/query.cgi and query for all bugs on the component "Java APIs to WebShell".