java layers.
- Rework NativeEventThread to be usable without having the
browserControl window realized.
- change who owns the NativEventThread to be the BrowserControl, by
proxy through WrapperFactoryImpl. Again, this is with a view toward
using webclient without the browserControl window realized.
A webclient/src_moz/NativeBrowserControl.h
A webclient/src_moz/NativeBrowserControl.cpp
- Centerpiece of native Object hierarchy. Owned by NativeEventThread.
M webclient/build-tests.xml
- reformat
- add new test, currently failing, for Navigation.
M webclient/classes_spec/org/mozilla/webclient/impl/BrowserControlImpl.java
- destroy our nativeBrowserControl.
M webclient/classes_spec/org/mozilla/webclient/impl/WrapperFactory.java
- Added API for obtaining the NativeEventThread for a BrowserControl.
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/BookmarksImpl.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/HistoryImpl.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NavigationImpl.java
- rename nativeWebShell to nativeBrowserControl
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/ImplObjectNative.java
- rename nativeWebShell to nativeBrowserControl
- add method to get the NativeEventThread for this instance.
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeEventThread.java
- remove dependency on WindowControl
- make this class be the owner of the nativeBrowserControl instance.
- rename nativeWebShell to nativeBrowserControl
- renamed nativeInitialize to nativeStartup
- added nativeShutdown
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java
- remove delete() method.
- no longer owns NativeEventThread
- no longer owns nativeBrowserControl
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
- Take over NativeEventThread ownership responsibilities from
WindowControlImpl (by proxy for BrowserControl).
M webclient/src_moz/CBrowserContainer.cpp
M webclient/src_moz/CBrowserContainer.h
M webclient/src_moz/CurrentPageActionEvents.cpp
M webclient/src_moz/CurrentPageActionEvents.h
M webclient/src_moz/CurrentPageImpl.cpp
M webclient/src_moz/HistoryActionEvents.cpp
M webclient/src_moz/HistoryActionEvents.h
M webclient/src_moz/HistoryImpl.cpp
M webclient/src_moz/NativeEventThreadActionEvents.cpp
M webclient/src_moz/NativeEventThreadActionEvents.h
M webclient/src_moz/NavigationActionEvents.cpp
M webclient/src_moz/NavigationActionEvents.h
M webclient/src_moz/NavigationImpl.cpp
M webclient/src_moz/PromptActionEvents.cpp
M webclient/src_moz/PromptActionEvents.h
M webclient/src_moz/WindowControlActionEvents.cpp
M webclient/src_moz/WindowControlActionEvents.h
M webclient/src_moz/WindowCreator.cpp
M webclient/src_moz/WindowCreator.h
- rename nativeWebShell to nativeBrowserControl
M webclient/src_moz/Makefile.in
- comment out not yet fixed per-window sources
- add NativeBrowserControl.cpp
M webclient/src_moz/NativeEventThread.cpp
- major refactoring. Much of the work is now being done in
NativeBrowserControl.cpp
M webclient/src_moz/WindowControlImpl.cpp
- remove functionality now located in NativeEventThread and
NativeBrowserControl.
M webclient/src_moz/WrapperFactoryImpl.cpp
- flesh out native{Create,Destroy}BrowserControl.
M webclient/src_moz/ns_globals.h
- remove gActionQueue and gEmbeddedThread. Moved into class
NativeBrowserControl.
M webclient/src_moz/ns_util.cpp
- rename initContext to NativeBrowserControl
- get action queue from NativeBrowserControl
M webclient/src_moz/ns_util.h
- remove WebShellInitContext! It's finally a class now, called
NativeBrowserControl.
M webclient/test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImplTest.java
- added new testcase to show create/deleteBrowserControl works.
git-svn-id: svn://10.0.0.236/trunk@154679 18797224-902f-48f8-a5cc-f745e15eee43
doesn't run, but several unit tests for webclient do.
I'll be proceeding through the rest of the webclient interfaces,
building junit tests as I go, in the coming months. I hope to flesh out
the basic framework, then publish build instructions, and hopefully I
can get some contributions from the community.
M util/classes/org/mozilla/util/Utilities.java
new method: getImplFromServices:
+ *
+ * <p>This method tries to load the resource
+ * <code>META-INF/services/>interfaceClassName></code>, where
+ * <code>>interfaceClassName<</code> is the argument to this
+ * method. If the resource is found, interpret it as a
+ * <code>Properties</code> file and read out its first line.
+ * Interpret the first line as the fully qualified class name of a
+ * class that implements <code></code>. The named class must have a
+ * public no-arg constructor.</p>
M webclient/build-tests.xml
- junit testcases for Webclient APIs, developed using test-first.
M webclient/build.xml
- changes for new package name structure:
packages org.mozilla.webclient.{wrapper_native, wrapper_non_native} have gone away. Replaced with org.mozilla.webclient.impl.{wrapper_native, wrapper_non_native}
- changes to accomodate "Services" based approach for pluggable
webclient implementation.
- don't bother re-naming the javah generated files, just let javah pick
the names.
- pass debugging args from build.properties
- changed name of junit test target to "test".
M webclient/classes_spec/org/mozilla/webclient/BrowserControl.java
- got rid of BROWSER_TYPE. No longer necessary due to the new
pluggability mechanism.
M webclient/classes_spec/org/mozilla/webclient/BrowserControlFactory.java
- Leverage the org.mozilla.util.Utilities.getImplFromServices()
mechanism to allow a vendor-pluggable webclient implementation of the
new "WebclientFactory" interface, which is method for method
compatible with BrowserControlFactory. Make all BrowserControlFactory
methods call through to methods on the vendor provided
WebclientFactory implementation.
R webclient/classes_spec/org/mozilla/webclient/BrowserControlFactoryInterface.java
A webclient/classes_spec/org/mozilla/webclient/BrowserControlICE.java
R webclient/classes_spec/org/mozilla/webclient/BrowserControlImpl.java
R webclient/classes_spec/org/mozilla/webclient/BrowserType.java
- move all implementation specific classe to the impl package.
M webclient/classes_spec/org/mozilla/webclient/ImplObject.java
- ImplObject shouldn't depend on vendor private classes.
M webclient/classes_spec/org/mozilla/webclient/Preferences.java
- new method
+ public void unregisterPrefChangedCallback(PrefChangedCallback cb,
+ String prefName, Object closure);
M webclient/classes_spec/org/mozilla/webclient/ProfileManager.java
- properly specify this interface.
A webclient/classes_spec/org/mozilla/webclient/WebclientFactory.java
* <p>This interface allows a pluggable webclient API implementation.
* The static methods in {@link BrowserControlFactory} call through to
* methods on this interface. Please see {@link BrowserControlFactory}
* for information on how to hook up your <code>WebclientFactory</code>
* implementation to the <code>BrowserControlFactory</code></p>
R webclient/classes_spec/org/mozilla/webclient/WrapperFactory.java
R webclient/classes_spec/org/mozilla/webclient/impl/BrowserControlFactoryImpl.java
- moved these to the impl class
A webclient/classes_spec/org/mozilla/webclient/impl/BrowserControlImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/Service.java
A webclient/classes_spec/org/mozilla/webclient/impl/WebclientFactoryImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/WrapperFactory.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/BookmarkEntryImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/BookmarksImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/HistoryImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/ISupportsPeer.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/ImplObjectNative.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeEventThread.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NavigationImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/PreferencesImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/ProfileManagerImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/RDFEnumeration.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/RDFTreeNode.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/SelectionImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WCEventListenerWrapper.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WCMouseListenerImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/gtk/GtkBrowserControlCanvas.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/win32/Win32BrowserControlCanvas.java
- copied from old package naming scheme.
- lots and lots of cleanup.
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/BookmarkEntryImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/BookmarksImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/CurrentPageImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/EventRegistrationImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/HistoryImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/ISupportsPeer.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/ImplObjectNative.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/NativeEventThread.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/NavigationImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/PreferencesImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/ProfileManagerImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/RDFEnumeration.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/RDFTreeNode.java
A webclient/classes_spec/org/mozilla/webclient/wrapper_native/README
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/SelectionImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/WCEventListenerWrapper.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/WCMouseListenerImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/WindowControlImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/WrapperFactoryImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/gtk/GtkBrowserControlCanvas.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/win32/Win32BrowserControlCanvas.java
- removed from old package naming scheme
M webclient/src_moz/BookmarksImpl.cpp
- remove dependency on RDFActionEvents by inlining all the code that
formerly was in the events.
- package name change
- JNI include file name change
M webclient/src_moz/CurrentPageImpl.cpp
M webclient/src_moz/HistoryImpl.cpp
M webclient/src_moz/ISupportsPeer.cpp
- package name change
- JNI include file name change
M webclient/src_moz/Makefile.in
- get rid of PreferencesActionEvents.cpp and RDFActionEvents.cpp
- add ProfileManagerImpl.cpp
M webclient/src_moz/NativeEventThread.cpp
- this file is not done yet. I've been pulling misplaced initialization
stuff out of here and putting it into WrapperFactoryImpl.cpp.
- got rid of gComponentManager, since we can use do_CreateInstance
instead.
- package name change
- JNI include file name change
M webclient/src_moz/NativeEventThreadActionEvents.h
- JNI include file name change
M webclient/src_moz/NavigationImpl.cpp
- package name change
- JNI include file name change
R webclient/src_moz/PreferencesActionEvents.cpp
R webclient/src_moz/PreferencesActionEvents.h
- don't need these anymore! woohoo!
M webclient/src_moz/PreferencesImpl.cpp
- remove dependency on PreferencesActionEvents by inlining code into the
methods that used to use the events.
A webclient/src_moz/ProfileManagerImpl.cpp
- new class, implementation of the ProfileManager interface.
M webclient/src_moz/PromptActionEvents.cpp
- change erroneous comment so my grep performed correctly.
R webclient/src_moz/RDFActionEvents.cpp
R webclient/src_moz/RDFActionEvents.h
- don't need these anymore! woohoo!
M webclient/src_moz/RDFEnumeration.cpp
M webclient/src_moz/RDFTreeNode.cpp
- remove dependency on RDFActionEvents by inlining code into the
methods that used to use the events.
M webclient/src_moz/WindowControlActionEvents.cpp
- deallocate shareInitiContext.
M webclient/src_moz/WindowControlImpl.cpp
- package name change
- JNI include file name change
- remove the "sleep so I can attach gdb" code. Moved to
WrapperFactoryImpl.cpp.
M webclient/src_moz/WrapperFactoryImpl.cpp
- lots of changes. This is now where the app initialization and
shutdown happens,
M webclient/src_moz/dom_util.cpp
- comment change
M webclient/src_moz/ns_globals.h
- get rid of inappropriate global usage.
M webclient/src_moz/ns_util.h
- new struct WebclientContext for singletons.
M webclient/src_moz/rdf_util.cpp
- new methods, rdf_startup and rdf_shutdown.
- replace calls to nsComponentManager::CreateInstance() with
do_CreateInstance().
M webclient/src_moz/rdf_util.h
- new methods, rdf_startup and rdf_shutdown.
M webclient/src_moz/gtk/GtkBrowserControlCanvas.cpp
- package name change
- JNI include file name change
M webclient/src_moz/gtk/GtkBrowserControlCanvasStub.cpp
- package name change
- JNI include file name change
- this file isn't needed anymore, thankfully! I'll remove it soon.
M webclient/src_moz/gtk/StubFunctions.h
- package name change
- JNI include file name change
- this file isn't needed anymore, thankfully! I'll remove it soon.
M webclient/src_moz/motif/BrowserControlNativeShimStub.cpp
M webclient/src_moz/motif/MotifBrowserControlCanvas.cpp
M webclient/src_moz/motif/MotifBrowserControlCanvasStub.cpp
M webclient/src_moz/motif/NativeLoaderStub.cpp
M webclient/src_moz/win32/Win32BrowserControlCanvas.cpp
- package name change
- JNI include file name change
M webclient/src_share/jni_util.cpp
M webclient/src_share/jni_util.h
- util_InitializeShareInitContext() takes a JNIEnv *.
- new methods
+void util_DeleteGlobalRef(JNIEnv *env, jobject toDeleteRef);
+void util_DeleteLocalRef(JNIEnv *env, jobject toDeleteRef);
+void util_getSystemProperty(JNIEnv *env,
+ const char *propName,
+ char *propValue,
+ jint propValueLen);
M webclient/src_share/jni_util_export.cpp
M webclient/src_share/jni_util_export.h
+JNIEXPORT jobjectArray util_GetJstringArrayFromJcharArray(JNIEnv *env,
+ jint len,
+ jchar **strings,
+ jint *stringLengths)
A webclient/test/automated/src/classes/org/mozilla/webclient/BookmarksTest.java
R webclient/test/automated/src/classes/org/mozilla/webclient/BrowserControlFactoryTest.java
A webclient/test/automated/src/classes/org/mozilla/webclient/PreferencesTest.java
A webclient/test/automated/src/classes/org/mozilla/webclient/ProfileManagerTest.java
A webclient/test/automated/src/classes/org/mozilla/webclient/impl/WebclientFactoryImplTest.java
A webclient/test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImplTest.java
A webclient/test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/gtk/TestGtkBrowserControlCanvas.java
R webclient/test/automated/src/classes/org/mozilla/webclient/wrapper_native/gtk/TestGtkBrowserControlCanvas.java
A webclient/test/automated/src/test/BrowserControlFactoryTest_correct
- junit tests! TEST FIRST!
git-svn-id: svn://10.0.0.236/trunk@147393 18797224-902f-48f8-a5cc-f745e15eee43
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*****
git-svn-id: svn://10.0.0.236/trunk@75504 18797224-902f-48f8-a5cc-f745e15eee43
r=ashuk
bugs: 44327, 44328
NativeEventThread:
Re-instate the policy of creating an EventQueue for each window.
Put in a superfluous printf in processEventLoop that fixes 44327.
nsActions.{cpp,h}:
Added wsDeallocateInitContextEvent, to enable the correct
removal of the eventQueue, 44328
WindowControlImpl
Fire the wsDeallocateInitcontextEvent in nativeDestroyInitContext.
git-svn-id: svn://10.0.0.236/trunk@73826 18797224-902f-48f8-a5cc-f745e15eee43
a=edburns
r=edburns
author=ashuk.
This code makes Webclient work with Mozilla M16.
git-svn-id: svn://10.0.0.236/trunk@73562 18797224-902f-48f8-a5cc-f745e15eee43
a=edburns
This checkin mainly does two things:
1. Correctly populates the java.awt.event.MouseEvent subclass with the
correct modifiers, x, y, and clickCount for the mozilla mouse event.
2. Adds a performance optimization: previously, every mouse event was
causing a new instance of java.util.Properties to be created. Now,
only one Properties instance is created per-page, and it is cleared on
each mouse event.
Also, I made the DOMMouseListenerImpl constructor initialize the
refCount to 0. This allows the object to be correctly deleted.
M classes_spec/org/mozilla/webclient/test/EMWindow.java
M classes_spec/org/mozilla/webclient/wrapper_native/WCMouseListenerImpl.java
M src_moz/DOMMouseListenerImpl.cpp
M src_moz/DOMMouseListenerImpl.h
M src_moz/WindowControlImpl.cpp
M src_moz/jni_util.cpp
M src_moz/jni_util.h
M src_moz/jni_util_export.cpp
M src_moz/jni_util_export.h
M classes_spec/org/mozilla/webclient/test/EMWindow.java
* Added test code for MouseListener properties: buttons, modifiers, etc.
M classes_spec/org/mozilla/webclient/wrapper_native/WCMouseListenerImpl.java
* Added support for mouse modifiers. Pull values out of the hash table,
put them in the MouseEvent constructor.
M src_moz/DOMMouseListenerImpl.cpp
* Modified constructors so they initialize all ivars.
* changed usage model of properties object to share the lifetime of the
DOMMouseListenerImpl instance. Needed to make use of the new function
util_ClearPropertiesObject() to do this. Now we have only one call to
util_DestroyPropertiesObject(), in the DOMMouseListenerImpl
destructor.
M src_moz/DOMMouseListenerImpl.h
> virtual ~DOMMouseListenerImpl();
>
98a101
> protected:
100a104,105
>
> void JNICALL addMouseEventDataToProperties(nsIDOMEvent *aMouseEvent);
M src_moz/WindowControlImpl.cpp
* Initialize new WebShellInitConext member propertiesClass to nsnull
M src_moz/jni_util.cpp
* Added util_ClearPropertiesObject() an optimization.
* Store the jclass for java/util/Properties in an element in
WebShellInitContext. This prevents us from having to do FindClass
each time a mouse event occurs.
* Added a parameter to util_StoreIntoPropertiesObject.
M src_moz/jni_util.h
* Added propertiesClass to WebShellInitContext
* Added new method ClearPropertiesObject
* Added new last argument to DestroyPropertiesObject
M src_moz/jni_util_export.cpp
M src_moz/jni_util_export.h
* Added function pointer for util_ClearPropertiesObject.
git-svn-id: svn://10.0.0.236/trunk@71756 18797224-902f-48f8-a5cc-f745e15eee43
a=edburns
r=drapeau
This checkin creates a dependency on the mozilla java dom module.
Please see mozilla\java\dom\README to build the java dom.
Note that you can just run make in mozilla\java and everything
should be built correctly.
A webclient/classes_spec/org/mozilla/webclient/test/DOMAccessPanel.java
A webclient/classes_spec/org/mozilla/webclient/test/DOMCellRenderer.java
A webclient/classes_spec/org/mozilla/webclient/test/DOMTreeDumper.java
A webclient/classes_spec/org/mozilla/webclient/test/DOMTreeModel.java
A webclient/classes_spec/org/mozilla/webclient/test/DOMTreeNotifier.java
A webclient/classes_spec/org/mozilla/webclient/test/DOMViewerFrame.java
M Makefile.win
M README
M webclient/classes_spec/Makefile.unix
M webclient/classes_spec/Makefile.win
M webclient/classes_spec/org/mozilla/webclient/CurrentPage.java
M webclient/classes_spec/org/mozilla/webclient/test/EMWindow.java
M webclient/classes_spec/org/mozilla/webclient/wrapper_native/CurrentPageImpl.java
M webclient/src_moz/CurrentPageImpl.cpp
M webclient/src_moz/DocumentLoaderObserverImpl.cpp
M webclient/src_moz/Makefile.win
M webclient/src_moz/WindowControlImpl.cpp
M webclient/src_moz/jni_util.h
git-svn-id: svn://10.0.0.236/trunk@71490 18797224-902f-48f8-a5cc-f745e15eee43
r=ashuk
a=edburns
This set of changes replaces all occurrences of
env->Func(args...)
with
::util_Func(env, args...)
Except of course, for the implementations of the above mentioned
::util_Func() functions.
This is done to allow the JNI functions to be called from a non JNI
context, such as UNO.
git-svn-id: svn://10.0.0.236/trunk@63190 18797224-902f-48f8-a5cc-f745e15eee43
also modifies EmbeddedMozilla so this code is exercised.
I have changed EmbeddedMozilla to be a stub-like class that simply
displays a Frame with a single Button, titled "New Window". Pressing
this button causes an EMWindow to be created and displayed. EMWindow is
basically the former EmbeddedMozilla renamed, with modifications to the
WindowListener implementation to call the BrowserControl deallocation
method.
I've added a delete() method to ImplObect:
* I know Java has automatic garbage collection and all, but explicitly
* adding a delete method helps the gc algorithm out. <P>
* Subclasses should override this and call super.delete() at the end of
* their overridden delete() method.
* @see org.mozilla.webclient.wrapper_native.ImplObjectNative#delete
and ImplObjectNative:
* Note how we call super.delete() at the end. THIS IS VERY IMPORTANT. <P>
* Also, note how we don't de-allocate nativeWebShell, that is done in
* the class that owns the nativeWebShell reference, WindowControlImpl.
* ImplObjectNative subclasses that further override delete() are <P>
<CODE><PRE>
BookmarksImpl.java
EventRegistrationImpl.java
NativeEventThread.java
WindowControlImpl.java
</PRE><CODE> <P>
* All other ImplObject subclasses don't have any local Ivars and thus
* don't need to override delete().
I've added a delete() method to BrowserControlImpl:
* Called from BrowserControlFactory.deleteBrowserControl() <P>
* The order of deletion of objects is very important! <P>
* We don't allow deletion if the Canvas is showing. <P>
In BrowserControlImpl's delete(), the important delete()s is for
WindowControlImpl:
* First, we delete our eventThread, which causes the eventThread to
* stop running. Then we call nativeDestroyInitContext(), which
* deallocates native resources for this window.
As stated above, NativeEventThread.delete() is called:
* This is a very delicate method, and possibly subject to race
* condition problems. To combat this, our first step is to set our
* browserControlCanvas to null, within a synchronized block which
* synchronizes on the same object used in the run() method's event
* loop. By setting the browserControlCanvas ivar to null, we cause the
* run method to return.
After all of this deleting, we return from
BrowserControlFactory.delete().
git-svn-id: svn://10.0.0.236/trunk@62772 18797224-902f-48f8-a5cc-f745e15eee43
a=edburns
r=bruce
Folks, don't EVER use NULL in your c++ code. Use nsnull instead.
git-svn-id: svn://10.0.0.236/trunk@62456 18797224-902f-48f8-a5cc-f745e15eee43
r=edburns
author=ashuk
bug=28407
New native code for spec-compliant impl ported to solaris -- Ashu K.
git-svn-id: svn://10.0.0.236/trunk@62342 18797224-902f-48f8-a5cc-f745e15eee43