125 Commits

Author SHA1 Message Date
ashuk%eng.sun.com
ad8ed2e23e bug=44279
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
2000-06-30 00:01:58 +00:00
ashuk%eng.sun.com
25d27834af The current webclient only works with M13, and the
old webclient, in classes and src, works with pre M13.

This change removes the old webclient.


git-svn-id: svn://10.0.0.236/trunk@73561 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-29 23:59:12 +00:00
edburns%acm.org
7af4ea35a6 Removed accidentally introduced ^M's
git-svn-id: svn://10.0.0.236/trunk@72428 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-16 21:59:04 +00:00
edburns%acm.org
e10055646c Created file to allow shift-clicking.
git-svn-id: svn://10.0.0.236/trunk@71906 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-09 19:03:42 +00:00
edburns%acm.org
97cc25884d Make building the spec compliant classes the default.
git-svn-id: svn://10.0.0.236/trunk@71828 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-09 00:03:51 +00:00
edburns%acm.org
6928c33fd1 Added nativeGetDOM.
git-svn-id: svn://10.0.0.236/trunk@71826 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-08 23:51:13 +00:00
edburns%acm.org
5adaa3e694 Modifications to allow webclient to run again on solaris.
git-svn-id: svn://10.0.0.236/trunk@71819 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-08 23:24:51 +00:00
edburns%acm.org
0eacb3af82 Checked in nascent "select the current node in the tree view when the user shift-clicks on a node" feature,
but it's blocked by the incompleteness of the DOM implementation in M13.


git-svn-id: svn://10.0.0.236/trunk@71794 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-08 18:40:20 +00:00
edburns%acm.org
9fac87eedf bug 40330
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
2000-06-08 02:16:06 +00:00
edburns%acm.org
3f164dfaa6 Remove CRLF's accidentally put in by Ashu.
git-svn-id: svn://10.0.0.236/trunk@71747 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-08 00:52:50 +00:00
edburns%acm.org
765e1f447a modified getPropertiesObject() to populate the hash table with
keys for properties in nsIDOMMouseEvent.


git-svn-id: svn://10.0.0.236/trunk@71652 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-07 00:12:06 +00:00
edburns%acm.org
542ba8a6ef Make it so the status bar URLs correctly display with pre-pended
base URLs.


git-svn-id: svn://10.0.0.236/trunk@71530 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-05 19:11:22 +00:00
edburns%acm.org
f508e6bc26 Enable/disable button bar buttons appropriately.
git-svn-id: svn://10.0.0.236/trunk@71529 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-05 18:23:23 +00:00
edburns%acm.org
e7523b5108 Give the BookmarksFrame the ability to tell the browser to
visit the clicked URL.


git-svn-id: svn://10.0.0.236/trunk@71525 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-05 17:54:58 +00:00
edburns%acm.org
1442832df2 bug 40330
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
2000-06-04 22:16:36 +00:00
edburns%acm.org
30686697e8 Added processing of "END_DOCUMENT_LOAD" and MouseExited events.
git-svn-id: svn://10.0.0.236/trunk@71306 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-01 23:42:35 +00:00
edburns%acm.org
8001fb2a87 Added StatusBar for URL messages.
git-svn-id: svn://10.0.0.236/trunk@71297 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-01 23:10:33 +00:00
edburns%acm.org
e547313630 If BAL_INTERFACE is defined in the build environment, produce
webclient_bal.{lib,dll} instead of webclient.{lib,dll}.


git-svn-id: svn://10.0.0.236/trunk@71288 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-01 22:41:31 +00:00
edburns%acm.org
656f03311d Return from doRemoveListeners after issuing removeAllListeners
git-svn-id: svn://10.0.0.236/trunk@71202 18797224-902f-48f8-a5cc-f745e15eee43
2000-05-31 23:37:06 +00:00
ashuk%eng.sun.com
570ee7f745 Ed's fix for multiple window closing bug
author=edburns
r=ashuk


git-svn-id: svn://10.0.0.236/trunk@71183 18797224-902f-48f8-a5cc-f745e15eee43
2000-05-31 21:58:36 +00:00
ashuk%eng.sun.com
b4e5689fee Ed's review for multiple window closing bug
author=ashuk
r=ashuk


git-svn-id: svn://10.0.0.236/trunk@71181 18797224-902f-48f8-a5cc-f745e15eee43
2000-05-31 21:56:36 +00:00
ashuk%eng.sun.com
3887ea225b Ed's fix for bug where multiple window closing caused null ptr error
author = edburns
r = ashuk


git-svn-id: svn://10.0.0.236/trunk@71180 18797224-902f-48f8-a5cc-f745e15eee43
2000-05-31 21:55:49 +00:00
ashuk%eng.sun.com
62677f207f Ed's fix for bug where multiple windows closing caused null ptr dereference.
author = edburns
r = ashuk


git-svn-id: svn://10.0.0.236/trunk@71179 18797224-902f-48f8-a5cc-f745e15eee43
2000-05-31 21:54:04 +00:00
edburns%acm.org
bcbf08419d bug: 20659
r=gbarney
a=edburns

This checkin adds java.awt.event.MouseListener support to webclient for
mozilla.  The following files are include in this checkin.  "A" is new
file "M" is modified file.

A classes_spec/org/mozilla/webclient/WCMouseEvent.java
A classes_spec/org/mozilla/webclient/wrapper_native/WCMouseListenerImpl.java
A src_moz/DOMMouseListenerImpl.cpp
A src_moz/DOMMouseListenerImpl.h
A src_moz/dom_util.cpp
A src_moz/dom_util.h

M classes_spec/org/mozilla/webclient/EventRegistration.java
M classes_spec/org/mozilla/webclient/test/EMWindow.java
M classes_spec/org/mozilla/webclient/wrapper_native/EventRegistrationImpl.java
M classes_spec/org/mozilla/webclient/wrapper_native/NativeEventThread.java
M src_moz/DocumentLoaderObserverImpl.cpp
M src_moz/DocumentLoaderObserverImpl.h
M src_moz/EventRegistration.cpp
M src_moz/EventRegistration.h
M src_moz/Makefile.solaris
M src_moz/Makefile.win
M src_moz/NativeEventThread.cpp
M src_moz/NavigationImpl.cpp
M src_moz/RDFTreeNode.cpp
M src_moz/bal_util.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



A classes_spec/org/mozilla/webclient/WCMouseEvent.java

 * <P> This java.awt.event.MouseEvent subclass allows the user to access the
 * WebclientEvent.  This eventData of this WebclientEvent, if non-null,
 * is a java.util.Properties instance that contains information about
 * this event.  </P>

 * <P>The following are some interesting keys:</P>

 * <UL>

 * <LI> href
 * </LI>

 * <LI> #text
 * </LI>

 * </UL>

A classes_spec/org/mozilla/webclient/wrapper_native/WCMouseListenerImpl.java

 * This class wraps the user provided instance of
 * java.awt.event.MouseListener so it can be installed as a
 * WebclientEventListener.  Note that we implement MouseListener so we
 * can be detected by the webclient event system.  We don't do anything
 * with these methods here, though.


A src_moz/DOMMouseListenerImpl.cpp

A src_moz/DOMMouseListenerImpl.h

 * This class is the shim between the mozilla listener event system for
 * mouse events and the java MouseListener interface.
 * For each of the Mouse* methods, we call the appropriate method in java.
 * See the implementation of MouseOver for an example.

 * For each mouseEvent, we create a Properties object containing
 * information about the event.  We use methods in dom_util to do this.

A src_moz/dom_util.cpp

A src_moz/dom_util.h

/**

 * Methods to simplify webclient accessing the mozilla DOM.

 */

M classes_spec/org/mozilla/webclient/EventRegistration.java

Added support for java.awt.event.MouseListener

M classes_spec/org/mozilla/webclient/test/EMWindow.java

Implemented simle MouseListener

M classes_spec/org/mozilla/webclient/wrapper_native/EventRegistrationImpl.java

Added support for java.awt.event.MouseListener

M classes_spec/org/mozilla/webclient/wrapper_native/NativeEventThread.java

Added support for java.awt.event.MouseListener

M src_moz/DocumentLoaderObserverImpl.cpp
M src_moz/DocumentLoaderObserverImpl.h

 * We define a local IID to allow the addDocumentLoadListener and
 * addMouseListener functions in EventRegistration.{h,cpp} to
 * interrogate the currently installed DocumentLoaderObserver instance
 * in mozilla.

 */

#define NS_IDOCLOADEROBSERVERIMPL_IID_STR "fdadb2e0-3028-11d4-8a96-0080c7b9c5ba"

#define NS_IDOCLOADEROBSERVERIMPL_IID {0xfdadb2e0, 0x3028, 0x11d4, { 0x8a, 0x96, 0x00, 0x80, 0xc7, 0xb9, 0xc5, 0xba }}

/**

 * This class is the shim between the mozilla listener event system for
 * document load events and the java DocumentLoadListener interface.
 * For each of the On* methods, we call the appropriate method in java.
 * See the implementation of OnEndDocumentLoad for an example.

 * A DocumentLoaderObserverImpl instance has a "jobject target", which
 * is the Java object that should ultimately receive the events.  This
 * target will be null if the user just wants to listen for mouse
 * events.  It willl be non-null if the user wants to listen for
 * DocumentLoad events.

 * It also hosts a nsIDOMMouseListener instance, which piggybacks on the
 * nsIDocumentLoaderObserver instance.

M src_moz/EventRegistration.cpp
M src_moz/EventRegistration.h

Add support for MouseListener

M src_moz/Makefile.win

Added classes for MouseListener and Dom access

M src_moz/NativeEventThread.cpp

Added support for MouseListener

M src_moz/NavigationImpl.cpp

Added call to ReleaseStringChars for bal case.

M src_moz/RDFTreeNode.cpp

Added call to ReleaseStringChars for bal case.

M src_moz/bal_util.cpp

Added #include "wchar.h" so this file compiles on Solaris.

M src_moz/jni_util.cpp

Added implementations for util_CreatePropertiesObject,
util_DestroyPropertiesObject and util_StoreIntoPropertiesObject.

M src_moz/jni_util.h

/**

 * A JNI wrapper to create a java.util.Properties object, or the
 * equivalent object in the BAL case.

 */

jobject util_CreatePropertiesObject(JNIEnv *env, jobject reserved_NotUsed);

/**

 * A JNI wrapper to destroy the object from CreatePropertiesObject

 */

void util_DestroyPropertiesObject(JNIEnv *env, jobject propertiesObject,
                                  jobject reserved_NotUsed);

/**

 * A JNI wrapper for storing a name/value pair into the Properties
 * object created by CreatePropertiesObject

 */

void util_StoreIntoPropertiesObject(JNIEnv *env, jobject propertiesObject,
                                    jobject name, jobject value);


M src_moz/jni_util_export.cpp
M src_moz/jni_util_export.h

Added functions for allowing the BAL user to specify functions for
{creating, destroying, setting values into} properties objects.


git-svn-id: svn://10.0.0.236/trunk@70879 18797224-902f-48f8-a5cc-f745e15eee43
2000-05-25 23:51:51 +00:00
ashuk%eng.sun.com
0ef34b084a Added fix for GetSourceBytes and SelectAll Stubs
author = ashuk
r = edburns

_Ashu


git-svn-id: svn://10.0.0.236/trunk@70684 18797224-902f-48f8-a5cc-f745e15eee43
2000-05-23 21:10:02 +00:00
ashuk%eng.sun.com
92f29b7df3 Added code for CurrentPage::SelectAll()
author = ashuk
r = edburns

_Ashu


git-svn-id: svn://10.0.0.236/trunk@70683 18797224-902f-48f8-a5cc-f745e15eee43
2000-05-23 21:08:27 +00:00
ashuk%eng.sun.com
88f2758dfd Added code for SelectAll()
author = ashuk
r = edburns

_Ashu


git-svn-id: svn://10.0.0.236/trunk@70682 18797224-902f-48f8-a5cc-f745e15eee43
2000-05-23 21:07:49 +00:00
ashuk%eng.sun.com
cb6b63eb44 Added code to throw UnimplementedException whenever a method tht is
not yet implemented is called.

Bug = 40330
a = ashuk
r = edburns

_Ashu


git-svn-id: svn://10.0.0.236/trunk@70681 18797224-902f-48f8-a5cc-f745e15eee43
2000-05-23 21:06:41 +00:00
ashuk%eng.sun.com
d60a1b5e4b Added code for UnimplementedException. This exception gets thrown whenever a
funcion that has not yet been implemented is called.

Bug = 40330
author = ashuk
r = edburns

_Ashu


git-svn-id: svn://10.0.0.236/trunk@70680 18797224-902f-48f8-a5cc-f745e15eee43
2000-05-23 21:04:47 +00:00
edburns%acm.org
12b0c6b01b Added comment in nativeDestroyInitContext about bug http://bugzilla.mozilla.org/show_bug.cgi?id=38271
git-svn-id: svn://10.0.0.236/trunk@68391 18797224-902f-48f8-a5cc-f745e15eee43
2000-05-05 14:02:12 +00:00
edburns%acm.org
8f4e04f72f a=edburns
bug: pressing BACK hangs webclient

Files touched

File: DocumentLoadEvent.java	Status: Locally Modified

Made the constants final so they can be used in a
switch statement

File: EMWindow.java    	Status: Locally Modified

Modified eventDispatched() so it doesn't call any webclient
events.  This was causing the hang.  Took advantage of
the newly implemented ability to pass a string from the
mozilla event handler into java.


File: DocumentLoaderObserverImpl.cpp	Status: Locally Modified

Create a jstring from the url in the OnStartDocumentLoad event.
Pass it on to java.

File: jni_util.cpp	Status: Locally Modified

Wrapped JNU_GetEnv in BAL stuff so it works from Star.

File: WebclinetEventListener.java	Status: Locally Modified

Added comment to eventDispatched.


git-svn-id: svn://10.0.0.236/trunk@66829 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-22 02:01:20 +00:00
edburns%acm.org
394bcff4aa bug 33099
r=shaver
a=edburns

Native code changes: This fix eradicates all
occurrences of the following symbols
 nsComponentManager nsServiceManeger
And replaces them with their nsI counterparts.
The following ns* classes still are used in
webclient, and no plans exist to replace them
with nsI counterparts: nsresult nsCOMPtr
nsCRT nsnull * nsServiceManager occurrences
were replaced with do_GetService(), using a
PROGID. * nsComponentManager occurrences were replaced with a call on the global class gComponentManager, declared in the new file ns_globals.h, and defined in WrapperFactoryImpl.cpp. ns_globals.h is included in jni_util.h. See the attachment to bug 33099 for ns_globals.h * Added deallocation code to WindowControlImpl.cpp nativeTerminate. I know it doesn't do much, but it's correct. Java code changes: * Added static method BrowserControlFactory.appTerminate(). This method simply calls the existing BrowserControlImpl.appTerminate(), which calls WrapperFactoryImpl.cpp nativeTerminate(). BrowserControlFactory.appTerminate() is called from EmbeddedMozilla's WindowListener, which gets fired when the user signals she wants the app to terminate.


git-svn-id: svn://10.0.0.236/trunk@66563 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-20 18:16:05 +00:00
ashuk%eng.sun.com
9cf731c129 fixed small bug with call to getSourceBytes
_Ashu


git-svn-id: svn://10.0.0.236/trunk@66507 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-20 03:16:15 +00:00
ashuk%eng.sun.com
fdc4a78470 new signature for getSourceBytes
_Ashu


git-svn-id: svn://10.0.0.236/trunk@66505 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-20 02:59:53 +00:00
edburns%acm.org
b51ab218cc bug 32011
r=ashuk
a=edburns

Add an "eventData" argument to WebclientEvent and subclasses.
This argument is sub-event specific.  For example, when a user
gets a DocumentLoadEvent, with an event type of
STATUS_URL_LOAD, the eventData is a String containing
the status string from the browser.

Added support for doing this in a BAL context.


git-svn-id: svn://10.0.0.236/trunk@66321 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-18 21:58:29 +00:00
edburns%acm.org
7d273c0b6a bug 32011
r=ashuk
a=edburns

Add an "eventData" argument to WebclientEvent and subclasses.
This argument is sub-event specific.  For example, when a user
gets a DocumentLoadEvent, with an event type of
STATUS_URL_LOAD, the eventData is a String containing
the status string from the browser.


git-svn-id: svn://10.0.0.236/trunk@66319 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-18 21:57:42 +00:00
edburns%acm.org
573dca278a bug=http://bugzilla.mozilla.org/show_bug.cgi?id=32011
Added ability to allow Native webclient client to populate
the listener class hash table and provide an InstanceOf function.

This enables listeners to work for the future.


git-svn-id: svn://10.0.0.236/trunk@66043 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-15 00:27:35 +00:00
edburns%acm.org
e27cea00ad bug: http://bugzilla.mozilla.org/show_bug.cgi?id=32011
Add first function pointer integration to webclient for StarOffice.
This is necessary to allow events to be sent from mozilla to
StarOffice.


git-svn-id: svn://10.0.0.236/trunk@65737 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-13 00:12:50 +00:00
ashuk%eng.sun.com
93dcc0b67f Made fix for Find Dialog closing correctly on Solaris
a=ashuk
r=geetha.vaidyanaathan@sun.com
Bug=35514

_Ashu


git-svn-id: svn://10.0.0.236/trunk@65726 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-12 18:06:21 +00:00
ashuk%eng.sun.com
978a03597e Made changes for accomodating new CurrentPage Find features into
webclient

a=ashuk
r=edburns
Bug=20659

Ashu


git-svn-id: svn://10.0.0.236/trunk@65430 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-06 17:45:27 +00:00
ashuk%eng.sun.com
b8d80f0eaa changed signatures of functions in CurrentPage interface
a=ashuk
r=edburns
Bug=20659

Ashu


git-svn-id: svn://10.0.0.236/trunk@65429 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-06 17:42:46 +00:00
ashuk%eng.sun.com
0056fc3244 Added stuff to implement Find features in CurrentPage interface
a=ashuk
r=edburns
Bug=20659

_Ashu


git-svn-id: svn://10.0.0.236/trunk@65428 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-06 17:39:01 +00:00
ashuk%eng.sun.com
1703e1e146 Added AWT code to create a generic Dialog box. Used this to create a
Find Dialog Box for the Find features in the CurrentPage interface

a=ashuk
r=edburns
Bug=20659

Ashu


git-svn-id: svn://10.0.0.236/trunk@65427 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-06 17:36:57 +00:00
ashuk%eng.sun.com
f3ef86993e Made changes in EMWIndow.java and EmbeddedMozilla.java to create a better
GUI with menus for creating and closing new windows and for Find features.

Ashu

a=ashuk
r=edburns
Bug=20659


git-svn-id: svn://10.0.0.236/trunk@65426 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-06 17:33:49 +00:00
edburns%acm.org
6bd98defd0 bug: http://bugzilla.mozilla.org/show_bug.cgi?id=34665
This change replaces all printfs in src_moz with calls to PR_LOG.  No
printfs should appear in src_moz anymore.

You won't see any console output from native code unless you define

NSPR_LOG_MODULES=webclient:3

in your environment.  Furthermore, if you want PR_LOG statements in
webclient to go to a file instead, define

WEBCLIENT_LOG_FILE=C:\VALIDDIR\filename.txt

in your environment.  This file will get created fresh each time, since
PR_LOG uses fopen(filename, "w").

New Files:

I've created ns_globals.h, included from jni_util.h.  ns_globals.h holds
an extern * to a struct used in the PR_LOG calls.

Significant changes:

WrapperFactoryImpl.cpp

nativeAppInitialize(){

Added:

#if DEBUG_RAPTOR_CANVAS
    prLogModuleInfo = PR_NewLogModule("webclient");
    const char *webclientLogFile = PR_GetEnv("WEBCLIENT_LOG_FILE");
    if (nsnull != webclientLogFile) {
        PR_SetLogFile(webclientLogFile);
        // If this fails, it just goes to stdout/stderr
    }
#endif
}

All the other files in this checkin follow the this pattern:

Before checkin:

       printf("InitMozillaStuff(%lx): Create the Event Queue for the UI thread...\n",
               initContext);

After checkin:

    if (prLogModuleInfo) {
        PR_LOG(prLogModuleInfo, 3,
               ("InitMozillaStuff(%lx): Create the Event Queue for the UI thread...\n",
               initContext));
    }

See http://lxr.mozilla.org/mozilla/source/nsprpub/pr/include/prlog.h#190

for the definition of PR_LOG


git-svn-id: svn://10.0.0.236/trunk@65380 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-05 21:38:27 +00:00
edburns%acm.org
e77c9b9105 The problem was in the way the
NativeEventThread's run() method's infinite loop was implemented.  The
  loop looks like this:

    while (null != this.browserControlCanvas) {
        synchronized (this.browserControlCanvas.getTreeLock()) {
            nativeProcessEvents(nativeWebShell);

            if (null != listenersToAdd && !listenersToAdd.isEmpty()) {
                tempEnum = listenersToAdd.elements();
                while (tempEnum.hasMoreElements()) {
                    nativeAddListener(nativeWebShell,
                                          (WebclientEventListener)
                                      tempEnum.nextElement());
                }
                listenersToAdd.clear();
            }
        }
    }

  The problem I was observing was that
  nativeProcessEvents(nativeWebShell) would crash due to the fact that
  the nativeWebShell, which is actually an WebShellInitContext instance,
  had been de-allocated.  This de-allocation happens as a result of the
  WindowControlImpl.delete() method, which looks like this:

public void delete()
{
    Assert.assert(null != eventThread, "eventThread shouldn't be null at delete time");
    eventThread.delete();
    eventThread = null;
    nativeDestroyInitContext(nativeWebShell);
    nativeWebShell = -1;
}

  nativeDestroyInitContext de-allocates the WebShellInitContextInstance.
  You can see that the first thing done is to delete the eventThread().
  NativeEventThread.delete() looks like this:

public void delete()
{
    // setting this to null causes the run thread to exit
    synchronized(this.browserControlCanvas.getTreeLock()) {
        browserControlCanvas = null;
    }
...
}

  If you compare NativeEventThread.delete() with the infinite loop in
  NativeEventThread.run(), you'll see that the fact that they both
  synchronize on the same object doesn't protect us from the following
  case:

    NativeEventThread: The infinite loop checks to see if the
    browserControlCanvas is null, then does synchronize on
    browserControlCanvas.getTreeLock(), then calls processNativeEvents().

meanwhile

    WindowControlImpl thread: delete() calls NativeEventThread.delete(),
    which does synchronize on browserControlCanvas.getTreeLock().
    During NativeEventThread.delete(), synchronized section,
    browserControlCanvas is set to null.

    NativeEventThread: because the check for null browserControlCanvas
    occurrs outside of the synchronized block, it's not recheked, and
    thus, the event loop continues to process when it shouldn't.

  The fix is to change the event loop to look like this:

    while (true) {
        synchronized (this.browserControlCanvas.getTreeLock()) {
            // this has to be inside the synchronized block!
            if (null == this.browserControlCanvas) {
                return;
            }
            nativeProcessEvents(nativeWebShell);

            if (null != listenersToAdd && !listenersToAdd.isEmpty()) {
                tempEnum = listenersToAdd.elements();
                while (tempEnum.hasMoreElements()) {
                    nativeAddListener(nativeWebShell,
                                          (WebclientEventListener)
                                      tempEnum.nextElement());
                }
                listenersToAdd.clear();
            }
        }
    }


git-svn-id: svn://10.0.0.236/trunk@64998 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-03 04:32:27 +00:00
edburns%acm.org
5345939064 Adding this line to the top of the run() method in
NativeEventThread seems to fix the hanging problem.

    this.setPriority(Thread.MIN_PRIORITY);


Looks like it was starvation.


git-svn-id: svn://10.0.0.236/trunk@64830 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-01 01:17:33 +00:00
edburns%acm.org
3f3dd34f18 Thanks to Andi Eades, and Steffen Grarup for finding and fixing this.
Basically, we were storing a local jobject ref and using it on
 another thread without calling NewGlobalRef.

The fix is below:

cvs diff WindowControlImpl.cpp NativeEventThread.cpp (in directory D:\Projects\mozilla\java\webclient\src_moz\)
Index: WindowControlImpl.cpp
===================================================================
RCS file: /cvsroot/mozilla/java/webclient/src_moz/WindowControlImpl.cpp,v
retrieving revision 1.5
diff -r1.5 WindowControlImpl.cpp
131c131,134
<     initContext->nativeEventThread = nsnull;
---
>     if (nsnull != initContext->nativeEventThread) {
>         ::util_DeleteGlobalRef(env, initContext->nativeEventThread);
>         initContext->nativeEventThread = nsnull;
>     }
Index: NativeEventThread.cpp
===================================================================
RCS file: /cvsroot/mozilla/java/webclient/src_moz/NativeEventThread.cpp,v
retrieving revision 1.7
diff -r1.7 NativeEventThread.cpp
213c213,215
<         initContext->nativeEventThread = obj; // VERY IMPORTANT!!
---
>         initContext->nativeEventThread =
>             ::util_NewGlobalRef(env, obj); // VERY IMPORTANT!!
>

*****CVS exited normally with code 1*****


git-svn-id: svn://10.0.0.236/trunk@64778 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-31 17:09:00 +00:00
ashuk%eng.sun.com
035dbecc72 a=ashuk
Made changes to the solaris makefile to include jni_util_export - for webclient-uno stuff

_Ashu


git-svn-id: svn://10.0.0.236/trunk@64389 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-28 21:36:04 +00:00
edburns%acm.org
30a4816649 I really meant to check in this one.
git-svn-id: svn://10.0.0.236/trunk@64235 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-27 20:28:21 +00:00