2.0 Alpha 7 Release Notes
We only have a binary release now, and it is only known to work on win32.
Webclient 2.0 Alpha 7 depends on xulrunner 1.8.1.3. 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 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://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.1.3/contrib/win32/xulrunner-1.8.1.3.en-US.win32.zip. 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_a6_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.
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 command xulrunner
. If you see a
dialog titled "XULRunner" with "Mozilla XULRunner 1.8.1.3" 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 the
WEBCLIENT_DIST/xulrunner
directory. This is the
directory that contains the xulrunner.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
become PROGRA~1
and Documents and
Settings
may become DOCUME~1
. To see what
the "~" syntax is in your case do a dir /x
in the
parent directory.
For example, on my machine, browser.bin.dir
is
C:\\DOCUME~1\\edburns\\MYDOCU~1\\tmp\\webclient-alpha-6\\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.
Build instructions pending. Obviously, it can be built, but documenting how to do so takes some time.
Stop any running mozilla or webclient instances
Run the "clean" ant target.
New package org.mozilla.mcp
for easy automated testing
of Ajax web applications. Please see the
javadoc package description for usage instructions.
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.
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 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.7 release notes to remove the registry, then re-run mozilla 1.7 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
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".