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.
* 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
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.
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*****