Author: Ron Capelli
These changes make webclient run with Mozilla 1.4.
Summary of changes:
src_moz/rdf_util.cpp
reason: API change to RDFServiceImpl::GetResource()
src_moz/RDFActionEvents.cpp
reason: API change to RDFServiceImpl::GetUnicodeResource()
src_moz/wsRDFObserver.cpp
reason: member name changes to inherited nsIRDFObserver
src_moz/CBrowserContainer.cpp
reasons:
- replaced obsolete/deleted nsFileSpec.h with nsCRT.h
(to access only required/referenced function)
- added new SetBlurSuppression and GetBlurSuppression methods
required by change to inherited nsIBaseWindow (implementation
copied from mozilla/xpfe/appshell/src/nsXULWindow.cpp).
src_moz/CBrowserContainer.h
reason: added mBlurSuppressionLevel member variable for
SetBlurSuppression and GetBlurSuppression methods.
The changes were relatively straightforward to identify from errors
attempting to build with Mozilla 1.4. Testing so far indicates no
new problems have been introduced...
Author: Ron Capelli <capelli@acm.org>
The following files are updated to allow use of IBM Java 1.3.x
JVMs on Linux. Instead of statically linking libjawt.lib, the
code now dynamically links libjawt.so and then libawt.so only
if needed (similar to previous change for win32). It should
work on Solaris, but we couldn't test that here.
mozilla/java/webclient/src_moz/Makefile.in
mozilla/java/webclient/src_moz/gtk/GtkBrowserControlCanvas.cpp
The following files are changed to support the ant 'clean'
target for src_ie.
mozilla/java/webclient/build.xml
mozilla/java/webclient/src_ie/Makefile.in
The following files are changed to disable the CurrentPage(2)
interface for IE, since it will be a while before that can be
made to work. With these changes, IE embeds smoothly with
Navigation and History interfaces working nicely to some degree.
mozilla/java/webclient/src_ie/WrapperFactoryImpl.cpp
mozilla/java/webclient/classes_spec/org/mozilla/webclient/test/EMWindow.java
The following file is changed so that it does not depend on
Mozilla, allowing it to be shared cleanly for IE.
mozilla/java/webclient/src_moz/win32/Win32BrowserControlCanvas.cpp
The following file is changed to correct the list of makefiles
that need to be configured for Webclient.
mozilla/java/makefiles
Finally, please delete the following files from CVS.
mozilla/java/webclient/src_ie/build.xml
mozilla/java/webclient/src_ie/Makefile.win
- src_ie has no clobber, clobber_all, or clean target. Comment this out
for now.
M webclient/classes_spec/org/mozilla/webclient/Prompt.java
M webclient/classes_spec/org/mozilla/webclient/test/EMWindow.java
M webclient/classes_spec/org/mozilla/webclient/test/UniversalDialog.java
M webclient/src_moz/CBrowserContainer.cpp
M webclient/src_moz/CBrowserContainer.h
M webclient/src_moz/Makefile.in
M webclient/src_moz/NativeEventThread.cpp
M webclient/src_moz/NativeEventThreadActionEvents.cpp
M webclient/src_moz/PromptActionEvents.cpp
M webclient/src_moz/PromptActionEvents.h
M webclient/src_share/jni_util.cpp
M webclient/src_share/jni_util.h
- Roll back Kyle Yuan's 20030509 change for nsIPrompt, since it seems to
break events between the browser and the app.
R webclient/src_moz/PromptService.h
R webclient/classes_spec/org/mozilla/webclient/test/UniversalDialogData.java
R webclient/src_moz/AppComponents.cpp
R webclient/src_moz/AppComponents.h
R webclient/src_moz/PromptService.cpp
- These are new files that Kyle added.
r=edburns
SECTION: classes changes
M build.xml
- Removed spurious linebreak on Kyle's create.webclient.scripts.
M classes_spec/org/mozilla/webclient/BrowserControlCanvas.java
- Bugfix from Daniel Park
M classes_spec/org/mozilla/webclient/test/EMWindow.java
- Leverage new CurrentPage2 interface to display the Selection object.
M classes_spec/org/mozilla/webclient/wrapper_native/CurrentPageImpl.java
M classes_spec/org/mozilla/webclient/wrapper_nonnative/CurrentPageImpl.java
- Implement new methods from CurrentPage2.
M src_moz/CurrentPageActionEvents.cpp
M src_moz/CurrentPageActionEvents.h
M src_moz/CurrentPageImpl.cpp
M src_moz/gtk/GtkBrowserControlCanvasStub.cpp
M src_moz/gtk/StubFunctions.h
Native details for CurrentPage2.
SECTION: New files
A classes_spec/org/mozilla/webclient/Selection.java
A classes_spec/org/mozilla/webclient/CurrentPage2.java
A classes_spec/org/mozilla/webclient/wrapper_native/SelectionImpl.java
File->New Window
File->Close
View->View Page Source as String
Search->Find
Search->Find Next
Edit->Select All
Edit->Copy
History->Back
History->Forward
History-> <Navigation Number>
Bookmarks->Manage Bookmarks
The bookmarks window pops up and you can double click on bookmarks to
cause webclient to go to that page.
Stream->Load Stream From File...
Stream->Load Random HTML InputStream
Mouse over events work
The DOMViewer works
Navigation buttons work.
This leaves Bookmarks->Add Current Page, Bookmarks->Add Current Page in New Folder,
Profile->Create Profile, and Profile->Delete Profile. The first two should be easy,
the second two, I'll probably just take out, since their implementation was based in
BlackConnect, which is currently quite dead.
When I'm happy with the state of Webclient on win32, I'll get it working on linux.
M dom/jni/javaDOMEventsGlobals.cpp
M dom/jni/makefile.win
M dom/jni/nativeDOMProxyListener.cpp
M dom/jni/nativeDOMProxyListener.h
M dom/jni/org_mozilla_dom_events_EventImpl.cpp
M dom/src/makefile.win
M dom/src/nsJavaDOMImpl.cpp
M webclient/Makefile.win
M webclient/classes_spec/Makefile.win
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/ProfileManagerImpl.java
M webclient/src_moz/CBrowserContainer.cpp
M webclient/src_moz/CurrentPageActionEvents.cpp
M webclient/src_moz/HistoryActionEvents.cpp
M webclient/src_moz/HistoryImpl.cpp
M webclient/src_moz/InputStreamShim.cpp
M webclient/src_moz/Makefile.win
M webclient/src_moz/NativeEventThread.cpp
M webclient/src_moz/NativeEventThreadActionEvents.cpp
M webclient/src_moz/NavigationActionEvents.cpp
M webclient/src_moz/NavigationImpl.cpp
M webclient/src_moz/PreferencesActionEvents.cpp
M webclient/src_moz/PromptActionEvents.cpp
M webclient/src_moz/RDFActionEvents.cpp
M webclient/src_moz/win32/Makefile.win
Changes to make webclient compile and run with MOZILLA_0_9_9_BRANCH.
author=ashuk
ra=edburns
Files modifed
BrowserControl.java BrowserControlFactory.java BrowserControlImpl.java
Files added
BrowserType.java
everything in wrapper_nonnative
everything in test_nonnative
This patch allows Webclient to wrap non-native pure Java browsers like
the ICE browser.
_Ashu
ra=edburns
authors=edburns,
* Brian Satterfield <bsatterf@atl.lmco.com>
* Anthony Sizer <sizera@yahoo.com>
This implements Post. Please see EMWindow for how to use.
Files modified java/webclient/import/Makefile.in
This fixes the problem of dependencies in parallel builds. Now
Blackwood can be build using parallel make on Solaris.
Added dependencies between .java and .idl files.
Bug=73085
Small fix to Makefile.in. Adding the links to the libjawt.so for
the Java Native AWT Interface. This had mistakenly been backed
out in the previous fix.
files modified :
motif/MotifBrowserControlCanvas.cpp
changed include "ns_util.h" to
include "../ns_util.h"
This was a simple path resolution problem fix in the
include statement.
Bug=81648
Files modifed:
mozilla/java/webclient/classes_spec/org/mozilla/webclient/wrapper_native/motif/MotifBrowserControlCanvas.java
Small change - comment out all references to DrawingSurfaceInfo with
explanation. This is no longer needed now that we use JAWT Native
Interface
author=ashuk
r=edburns
Files modified
mozilla/java/build/install_webclient_unix.js
mozilla/java/build/install_webclient_win32.js
mozilla/java/build/Makefile.in
mozilla/java/build/Makefile.win
mozilla/java/Makefile.win
mozilla/java/webclient/src_moz/Makefile.in
mozilla/java/webclient/src_moz/Makefile.win
Files added
mozilla/java/build/README.BLACKCONNECT
mozilla/java/build/README.BLACKWOOD
mozilla/java/build/README.DOM
mozilla/java/build/README.PLUGLET
mozilla/java/build/README.WEBCLIENT
this fix allows XPIs to be generated for all the Blackwood
components individually or together on Win32, Solaris and
linux.
author=ashuk
r=edburns
Files modified
M util/classes/org/mozilla/util/Assert.java
M webclient/classes_spec/org/mozilla/webclient/BrowserControlCanvas.java
M webclient/classes_spec/org/mozilla/webclient/BrowserControlFactory.java
M webclient/classes_spec/org/mozilla/webclient/BrowserControlImpl.java
M webclient/classes_spec/org/mozilla/webclient/test/EMWindow.java
M webclient/classes_spec/org/mozilla/webclient/test/RandomHTMLInputStream.java
M webclient/classes_spec/org/mozilla/webclient/test/UniversalDialog.java
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/BookmarksImpl.java
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/CurrentPageImpl.java
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/EventRegistrationImpl.java
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/HistoryImpl.java
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/NativeEventThread.java
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/NavigationImpl.java
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/PreferencesImpl.java
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/RDFEnumeration.java
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/RDFTreeNode.java
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/WCMouseListenerImpl.java
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/WindowControlImpl.java
This fix changes the name of the Assert.assert methd to Assert.assert_it
in all the Blackwood modules which use this Assertion facility from
java/util. This is necessary for getting Blackwood to work with JDK1.4
since assert is a keyword in JDK1.4 onwards.
author=ashuk
r=edburns
Files modified:
M mozilla/java/webclient/classes_spec/org/mozilla/webclient/wrapper_native/win32/Win32BrowserControlCanvas.java
M mozilla/java/webclient/classes_spec/org/mozilla/webclient/wrapper_native/motif/MotifBrowserControlCanvas.java
M mozilla/java/webclient/classes_spec/org/mozilla/webclient/BrowserControlCanvas.java
M mozilla/java/webclient/src_moz/motif/MotifBrowserControlCanvas.cpp
M mozilla/java/webclient/src_moz/motif/MotifBrowserControlCanvas.h
M mozilla/java/webclient/src_moz/motif/MotifBrowserControlCanvasStub.cpp
M mozilla/java/webclient/src_moz/Makefile.in
M mozilla/java/webclient/src_moz/Makefile.win
A mozilla/java/webclient/src_moz/win32/Makefile.win
A mozilla/java/webclient/src_moz/win32/Win32BrowserControlCanvas.cpp
A mozilla/java/webclient/src_moz/win32/Win32BrowserControlCanvas.h
This fix removes the deprecated methods used in Webclient and
now uses the JAWT Native Interface for allowing the Java AWT
canvas access to the native peer window.
author=ashuk
r=edburns
Files modified
A mozilla/java/webclient/classes_spec/org/mozilla/webclient/stubs
A mozilla/java/webclient/classes_spec/org/mozilla/webclient/ProfileManager.java
A mozilla/java/webclient/classes_spec/org/mozilla/webclient/wrapper_native/ProfileManagerImpl.java
A mozilla/java/webclient/config/rules.mk
A mozilla/java/webclient/config/rules.mak
A mozilla/java/webclient/import
A mozilla/java/webclient/import/Makefile.in
A mozilla/java/webclient/import/Makefile.win
A mozilla/java/webclient/import/chPackage.pl
M mozilla/java/webclient/Makefile.in
M mozilla/java/webclient/Makefile.win
M mozilla/java/webclient/classes_spec/Makefile.in
M mozilla/java/webclient/classes_spec/Makefile.win
M mozilla/java/webclient/classes_spec/org/mozilla/webclient/BrowserControl.java
M mozilla/java/webclient/classes_spec/org/mozilla/webclient/BrowserControlImpl.java
M mozilla/java/webclient/classes_spec/org/mozilla/webclient/test/EMWindow.java
M mozilla/java/webclient/classes_spec/org/mozilla/webclient/wrapper_native/WrapperFactoryImpl.java
M mozilla/java/webclient/src_share/runem.pl
This fix adds the new ProfileManager interface in the Webclient API.
This is also the first integration of BlackConnect in Webclient.
Webclient uses this ProfileManager interface to provide an interface
to the nsIProfile api in Mozilla for profile management. It uses
BlackConnect for this.
author=ashuk
Files modified
java/webclient/src_moz/CBrowserContainer.cpp
java/dom/jni/org_mozilla_dom_events_MousEventImpl.cpp
This patch allows Webclient and JavaDOM to build with the
mozilla trunk as of 05/14/01
From: valeski@netscape.com (Judson Valeski)
Newsgroups: netscape.public.mozilla.embedding
Subject: Re: nsIDocumentLoaderObserver migration guide?
Date: 8 May 2001 14:41:33 GMT
Organization: Another Netscape Collabra Server User
Lines: 44
Message-ID: <3AF8059A.D83EAAF@netscape.com>
To enable fine grained status tracking in webclient.
The following files are in this checkin.
M classes_spec/org/mozilla/webclient/test/EMWindow.java
M src_moz/CBrowserContainer.cpp
M src_moz/CBrowserContainer.h
This checkin migrates javaDOM to use the new nsIWebProgressListener
interface, removing its dependency on the now non-existant
nsIDocumentLoaderObserver.
It has only been tested inside webclient. QA needs to do the standalone
javaDOM tests.
The following files are in this bugfix:
dom/jni/org_mozilla_dom_DOMAccessor.cpp
dom/src/nsIJavaDOM.h
dom/src/nsJavaDOMImpl.cpp
dom/src/nsJavaDOMImpl.h
webclient/classes_spec/org/mozilla/webclient/test/EMWindow.java
webclient/classes_spec/org/mozilla/webclient/wrapper_native/CurrentPageImpl.java
M classes_spec/org/mozilla/webclient/test/EMWindow.java
M classes_spec/org/mozilla/webclient/wrapper_native/CurrentPageImpl.java
M src_moz/CBrowserContainer.cpp
M src_moz/CBrowserContainer.h
M src_moz/NativeEventThreadActionEvents.cpp
M src_moz/WindowControlActionEvents.cpp
bug: 79278
This checkin makes webclient work with the trunk as of 7 May 2001 AM PDT.
It also adds support for PROGRESS_URL_LOAD and STATUS_URL_LOAD events.
ar=edburns
author=edburns, ashuk
M Makefile.in
M Makefile.win
M webclient/classes_spec/Makefile.in
M webclient/classes_spec/Makefile.win
M webclient/src_moz/Makefile.win
A build/Makefile.in
A build/Makefile.win
A build/install_blackconnect_unix.js
A build/install_blackconnect_win32.js
A build/install_blackwood_unix.js
A build/install_blackwood_win32.js
A build/install_dom_unix.js
A build/install_dom_win32.js
A build/install_pluglets_unix.js
A build/install_pluglets_win32.js
A build/install_webclient_unix.js
A build/install_webclient_win32.js
A build/symlink.sh
a=edburns
author = edburns ashuk
r=edburns
Files in fix for this bug:
M dom/classes/Makefile
M webclient/src_moz/CBrowserContainer.cpp
M webclient/src_moz/CBrowserContainer.h
M webclient/src_moz/CurrentPageActionEvents.cpp
M webclient/src_moz/HistoryActionEvents.cpp
M webclient/src_moz/Makefile.in
M webclient/src_moz/NativeEventThread.cpp
M webclient/src_moz/motif/MotifBrowserControlCanvas.cpp
This checkin makes Webclient work with the Mozilla trunk as of 27 April
0100 PDT.
r=ashuk
a=edburns
This fix makes it so bookmarks work with the tip of the branch as of 11/01/00.
This fix removes the necessity to modify xpcom/base/nsDebug.cpp to
remove the thread safety assertions.
This fix primarily does two things:
1. Make nsActionEvents for all bookmarks/rdf actions
2. Remove the synchronized(this.browserControlCanvas.getTreeLock()) call
around nativeProcessEvents() in NativeEventThread.run().
Files in this fix:
M classes_spec/org/mozilla/webclient/test/EMWindow.java
M classes_spec/org/mozilla/webclient/wrapper_native/BookmarkEntryImpl.java
M classes_spec/org/mozilla/webclient/wrapper_native/BookmarksImpl.java
M classes_spec/org/mozilla/webclient/wrapper_native/NativeEventThread.java
M classes_spec/org/mozilla/webclient/wrapper_native/RDFEnumeration.java
M classes_spec/org/mozilla/webclient/wrapper_native/RDFTreeNode.java
M src_moz/BookmarksImpl.cpp
M src_moz/RDFEnumeration.cpp
M src_moz/RDFTreeNode.cpp
M src_moz/nsActions.cpp
M src_moz/nsActions.h
M src_moz/motif/NativeLoaderStub.cpp
September 2000. It will run, but without bookmarks.
The changes consist of the following kinds of changes:
Changes to method signatures for methods implemented by webclient.
Changes to string functions.
Changes to account for the demise of PROGIDS in favor of ContractIDs
Modified files:
M classes_spec/org/mozilla/webclient/test/EMWindow.java
M src_moz/CBrowserContainer.cpp
M src_moz/CurrentPageImpl.cpp
M src_moz/Makefile.win
M src_moz/NativeEventThread.cpp
M src_moz/RDFEnumeration.cpp
M src_moz/RDFTreeNode.cpp
M src_moz/ns_util_export.cpp
M src_moz/rdf_util.cpp
* Jason Mawdsley <jason@macadamian.com>
* Louis-Philippe Gagnon <louisphilippe@macadamian.com>
It enables webclient to be built and run under JDK1.1.x. Note that JavaDOM
does not work under jdk1.1.x.
The fix consists of two elements:
On the Java side, replace all JDK1.2 specific calls with JDK1.1.x
equivalents. On the native side use pre-processer macro for
JNI_VERSION, like this:
#ifdef JNI_VERSION_1_2
#ifndef JNI_VERSION
#define JNI_VERSION JNI_VERSION_1_2
#endif
#else
#ifndef JNI_VERSION_1_1
#define JNI_VERSION_1_1 0x00010001
#endif
#ifndef JNI_VERSION
#define JNI_VERSION JNI_VERSION_1_1
#endif
#endif // END: JNI_VERSION_1_2
This fix has been tested on win32, solaris, and linux.
The following files are in this fix:
M webclient/classes_spec/org/mozilla/webclient/test/DOMTreeModel.java
M webclient/classes_spec/org/mozilla/webclient/test/DOMViewerFrame.java
M webclient/classes_spec/org/mozilla/webclient/test/EMWindow.java
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/BookmarksImpl.java
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/NativeEventThread.java
M webclient/src_moz/CBrowserContainer.cpp
M webclient/src_moz/nsActions.cpp
M webclient/src_share/jni_util.cpp
M webclient/src_share/jni_util.h
M webclient/src_share/jni_util_export.cpp
r=gbarney
a=edburns
M classes_spec/org/mozilla/webclient/test/EMWindow.java
A src_ie/CMyDialog.cpp
A src_ie/CMyDialog.h
M src_ie/CurrentPageImpl.cpp
M src_ie/HistoryImpl.cpp
M src_ie/Makefile.win
M src_ie/NativeEventThread.cpp
M src_ie/WindowControlImpl.cpp
M src_ie/WrapperFactoryImpl.cpp
M src_ie/ie_util.cpp
M src_ie/ie_util.h
cvs diff -u classes_spec/org/mozilla/webclient/test/EMWindow.java src_ie/CMyDialog.cpp src_ie/CMyDialog.h src_ie/CurrentPageImpl.cpp src_ie/HistoryImpl.cpp src_ie/Makefile.win src_ie/NativeEventThread.cpp src_ie/WindowControlImpl.cpp src_ie/WrapperFactoryImpl.cpp src_ie/ie_util.cpp src_ie/ie_util.h
This change adds listener DocumentLoadListener support to src_ie.
tar -cvf 49293.tar classes_spec/org/mozilla/webclient/test/EMWindow.java src_ie/CMyDialog.cpp src_ie/CMyDialog.h src_ie/CurrentPageImpl.cpp src_ie/HistoryImpl.cpp src_ie/Makefile.win src_ie/NativeEventThread.cpp src_ie/WindowControlImpl.cpp src_ie/WrapperFactoryImpl.cpp src_ie/ie_util.cpp src_ie/ie_util.h
bug=47357
a=edburns
Files in this checkin
M src_moz/CBrowserContainer.cpp
M src_moz/CBrowserContainer.h
M src_moz/ns_util.cpp
M src_moz/ns_util.h
M src_share/jni_util.cpp
M src_share/jni_util.h
cvs diff -u src_moz/CBrowserContainer.cpp src_moz/CBrowserContainer.h src_moz/ns_util.cpp src_moz/ns_util.h src_share/jni_util.cpp src_share/jni_util.h
This change moves out listener constants and other support data from
src_moz into src_share to enable it to be used in src_ie.
tar -cvf 47357.tar src_moz/CBrowserContainer.cpp src_moz/CBrowserContainer.h src_moz/ns_util.cpp src_moz/ns_util.h src_share/jni_util.cpp src_share/jni_util.h
a=edburns
Files in this checkin
M src_moz/CBrowserContainer.cpp
M src_moz/CBrowserContainer.h
M src_moz/ns_util.cpp
M src_moz/ns_util.h
M src_share/jni_util.cpp
M src_share/jni_util.h
cvs diff -u src_moz/CBrowserContainer.cpp src_moz/CBrowserContainer.h src_moz/ns_util.cpp src_moz/ns_util.h src_share/jni_util.cpp src_share/jni_util.h
This change moves out listener constants and other support data from
src_moz into src_share to enable it to be used in src_ie.
tar -cvf 47357.tar src_moz/CBrowserContainer.cpp src_moz/CBrowserContainer.h src_moz/ns_util.cpp src_moz/ns_util.h src_share/jni_util.cpp src_share/jni_util.h
r=ashuk
bug=47357
M classes_spec/org/mozilla/webclient/wrapper_native/NativeEventThread.java
M src_moz/CBrowserContainer.cpp
M src_moz/NativeEventThread.cpp
M src_moz/ns_util.cpp
M src_moz/ns_util.h
M src_share/jni_util.cpp
M src_share/jni_util.h
tar -cvf 47357.2.tar classes_spec/org/mozilla/webclient/wrapper_native/NativeEventThread.java src_moz/CBrowserContainer.cpp src_moz/NativeEventThread.cpp src_moz/ns_util.cpp src_moz/ns_util.h src_share/jni_util.cpp src_share/jni_util.h
cvs diff -u classes_spec/org/mozilla/webclient/wrapper_native/NativeEventThread.java src_moz/CBrowserContainer.cpp src_moz/NativeEventThread.cpp src_moz/ns_util.cpp src_moz/ns_util.h src_share/jni_util.cpp src_share/jni_util.h
This change modifes what one has to do on the native side to add a
listener.
* How to create a new listener type on the native side: <P>
* 1. add an entry in the gSupportedListenerInterfaces array defined in
* ns_util.cpp <P>
* 2. add a corresponding entry in the LISTENER_CLASSES enum in
* ns_util.h <P>
* 3. add a jstring to the string constant list in
* CBrowserContainer.cpp, below.
* 4. Initialize this jstring constant in CBrowserContainer.cpp
* initStringConstants() <P>
* 5. add an entry to the switch statement in NativeEventThread.cpp
* native{add,remove}Listener <P>
You have to clobber_all in webclient after this change.
author=edburns
a=edburns
r=ashuk
Files in this fix:
M classes_spec/org/mozilla/webclient/wrapper_native/EventRegistrationImpl.java
M classes_spec/org/mozilla/webclient/wrapper_native/NativeEventThread.java
A classes_spec/org/mozilla/webclient/wrapper_native/WCEventListenerWrapper.java
M src_moz/NativeEventThread.cpp
M src_moz/motif/NativeLoaderStub.cpp
Added class WCEventListenerWrapper:
* This class allows the custom app to have one instance that implements
* multiple Webclient event listener types. <P>
* This is simply a "struct" type class that encapsulates a listener
* instance with its class name. This is necessary because the class
* name is lost when we deal with the listener as a
* WebclientEventListener, and not a WebclientEventListener subclass. <P>
* @see org.mozilla.webclient.wrapper_native.NativeEventThread#addListener
Made it so when a java listener is added,
* We create a WCEventListenerWrapper containing the user passed
* DocumentLoadListener, and the string obtained from
* DocumentLoadListener.class.getName();
We then call nativeEventThread.addListener:
* Takes the abstract WebclientEventListener instance and adds it to a
* Vector of listeners to be added. This vector is scanned each time
* around the event loop in run(). <P>
* The vector is a vector of WCEventListenerWrapper instances. In run()
* these are unpacked and sent to nativeAddListener like this:
* nativeAddListener(nativeWebShell,tempListener.listener,
* tempListener.listenerClassName); <P>
a=edburns
r=ashuk
This change creates a new directory, java/webclient/src_share, that
contains the code that will be used in both src_moz and src_ie, and any
other native browser wrapping implementations.
Here are the steps I followed to implement this change.
1. Create a new directory java/webclient/src_share
2. Move all jni_util*.* files from src_moz into src_share
3. Make it so src_share compiles into a new .lib
src_share has no netscape dependencies. Any functionality that
depended on ns dependencies was kept in src_moz. In this case, we
have a function prototype only in src_share, with the implementation
in src_moz. We did this for nsHashtable. The other trick was for
things in WebShellInitContext that had nothing to do with Netscape.
This case was accomodated by creating a new struct, ShareInitContext,
that contains all WebShellInitContext members that have nothing to do
with Netscape. Currently this is just jobject propertiesClass. I
modified the WebShellInitContext struct to contain a ShareContext
struct as its last member. There are two new methods in jni_util.h
that allow for the initialization and deallocation of the members of
the ShareContext struct.
4. Make it so src_moz uses the new .lib to provide the jni_util behavior
a. Create ns_util* files that include ../src_share/jni_util* files
appropriately.
The only tricky part was for things in jni_util.h that
Here's the list of files in this change.
cvs -z3 -n update (in directory D:\Projects\mozilla\java\webclient)
cvs server: Updating .
M Makefile.win // added src_share to DIRS
M src_moz/BookmarksImpl.cpp // include ns_util instead of jni_util
M src_moz/CBrowserContainer.cpp // include ns_util instead of jni_util
M src_moz/CBrowserContainer.h // include ns_util instead of jni_util
M src_moz/CurrentPageImpl.cpp // include ns_util instead of jni_util
M src_moz/HistoryImpl.cpp // include ns_util instead of jni_util
M src_moz/Makefile.win // include ns_util instead of jni_util
M src_moz/NativeEventThread.cpp // include ns_util instead of jni_util
M src_moz/NavigationImpl.cpp // include ns_util instead of jni_util
M src_moz/RDFEnumeration.cpp // include ns_util instead of jni_util
M src_moz/RDFTreeNode.cpp // include ns_util instead of jni_util
M src_moz/WindowControlImpl.cpp // include ns_util instead of jni_util
// also use new util_InitShareContext
// function
M src_moz/WrapperFactoryImpl.cpp // include ns_util instead of jni_util
R src_moz/jni_util.cpp // moved to ../src_share
R src_moz/jni_util.h // moved to ../src_share
R src_moz/jni_util_export.cpp // moved to ../src_share
R src_moz/jni_util_export.h // moved to ../src_share
M src_moz/nsActions.cpp // include ns_util instead of jni_util
// also use new
util_DeallocateShareContext
M src_moz/nsActions.h // include ns_util instead of jni_util
A src_moz/ns_util.cpp // include jni_util.h
A src_moz/ns_util.h // include jni_util.h, changes to
// WebshellInitContext struct
A src_moz/ns_util_export.cpp // provide impls for methods in
// jni_util_export.h
A src_share/Makefile.win
A src_share/bal_util.cpp
A src_share/bal_util.h
A src_share/jni_util.cpp
A src_share/jni_util.h
A src_share/jni_util_export.cpp
A src_share/jni_util_export.h
*****CVS exited normally with code 0*****
a=edburns
r=ashuk
This checkin makes it so CBrowserContainer is properly released. The
problem was that the CBrowserContainer was still registered to the
docShell as a listener. The solution was to call
wcIBrowserContianer::RemoveAllListeners() in the WebShellInitContext
deallocator.