114 Commits

Author SHA1 Message Date
edburns%acm.org
8643eb4ce2 r=ashuk
a=edburns
bug=32011
This change enables the current webclient API to be called from native
code.

It adds makefile and conditional compilation logic.

If the user defines BAL_INTERFACE in their environment before building
webclient, -DBAL_INTERFACE is added to LCFLAGS.  This causes code in
jni_util_export.cpp to behave differently due to the conditional
compilation logic.

I've broken out the 8 functions that are necessary to call into the
Webclient JNI methods into jni_util_export.{h,cpp}.

I've created a new pair of files, bal_util.{h,cpp} that contain function
declarations and definitions that are used when src_moz is built with
BAL_INTERFACE.  bal_util.obj is not built, nor added to webclient.dll if
building without BAL_INTERFACE.

See the page
http://www.mozilla.org/projects/blackwood/webclient/design/uno-transition.html
for a design document description of these changes.


git-svn-id: svn://10.0.0.236/trunk@63599 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-21 19:27:13 +00:00
edburns%acm.org
b233b02f87 bug=32011
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
2000-03-16 23:07:03 +00:00
edburns%acm.org
f4d7081311 This checkin adds API to cleanly destroy a BrowserControl instance. It
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
2000-03-13 18:44:32 +00:00
edburns%acm.org
508cc90c1c bug=31123
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
2000-03-09 05:12:42 +00:00
edburns%acm.org
f3317f63ad JAVAH generated header files should not be checked in, since they are generated as a result of the build.
git-svn-id: svn://10.0.0.236/trunk@62452 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-09 04:41:43 +00:00
edburns%acm.org
57a27f1d50 Changed NULL to nsnull, so it would build with gcc.
.


git-svn-id: svn://10.0.0.236/trunk@62399 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-08 18:54:00 +00:00
ashuk%eng.sun.com
9daf7a540c a=edburns
r=edburns
author=ashuk
bug=28407

Made fix for new BookmarksImpl.java file -- Ashu K.


git-svn-id: svn://10.0.0.236/trunk@62398 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-08 18:49:36 +00:00
ashuk%eng.sun.com
6c6385f95e a=edburns
r=edburns
author=ashuk
bug=28407

Made fix for changed BookmarksImpl.cpp file in the Stubs file -- Ashu K.


git-svn-id: svn://10.0.0.236/trunk@62397 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-08 18:41:01 +00:00
ashuk%eng.sun.com
4ad2fcb8e0 a=edburns
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@62345 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-07 22:45:37 +00:00
ashuk%eng.sun.com
dbbd9a87d7 a=edburns
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
2000-03-07 22:33:38 +00:00
edburns%acm.org
57c1e905c2 NOT IN SeaMonkey
Added // PENDING comment


git-svn-id: svn://10.0.0.236/trunk@62341 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-07 22:32:27 +00:00
ashuk%eng.sun.com
d60410b769 a=edburns
r=edburns
author=ashuk
bug=28407

New run script for spec-compliant impl -- Ashu K.


git-svn-id: svn://10.0.0.236/trunk@62339 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-07 22:19:20 +00:00
ashuk%eng.sun.com
0e1f237edc a=edburns
r=edburns
author=ashuk
bug=28407

New solaris Makefile for spec-compliant impl -- Ashu K.


git-svn-id: svn://10.0.0.236/trunk@62338 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-07 22:18:17 +00:00
edburns%acm.org
2471024921 a=edburns
r=ashuk
bug=2069

Native code for spec compliant webclient impl.


git-svn-id: svn://10.0.0.236/trunk@62196 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-04 01:37:20 +00:00