edburns%acm.org 140d778e14 This checkin enables finding out the request method and response status
of a URL_LOAD event.  I'm still working on getting the request body via
the nsIUploadChannel interface.  Next step will be to get that working.
I'm currently running into problems where the END_URL event for a POST
doesn't have a status.  I think this is because I'm using the
Navigation.post() method rather than simulating a user post by pressing
a form submit button.

A classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeInputStream.java
A src_moz/NativeInputStreamImpl.cpp

- Class to enable reading the post body from the request.

M build.xml

- add NativeInputStream to JNI generation

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

 * <p>This {@link DocumentLoadListener} subclass adds the ability to get
 * detailed information on each event. </p>
 *
 * <p>The <code>eventData</code> property of the
 * <code>DocumentLoadEvent</code> instance will be a
 * <code>java.util.Map</code>.  The following entries may be present in
 * this map for the following <code>*_EVENT_MASK</code> types in
 * <code>DocumentLoadEvent</code>.</p>
 *
 * <dl>
 *
 * <dt>For all <code>*_EVENT_MASK</code> types</dt>
 *
 * <dd><p>the map will contain an entry under the key "<code>URI</code>"
 * without the quotes.  This will be the fully qualified URI for the
 * event. </p></dd>
 *
 * <dt>For <code>START_URL_LOAD</code> type</dt>
 *
 * <dd><p>The map will contain an entry under the key
 * "<code>method</code>" without the quotes.  This will be the request
 * method for this event.  The map will also contain an entry under the
 * key "<code>headers</code>".  This entry will be a
 * <code>java.util.Map</code> of all the request headers.</p></dd>
 *
 * <dt>For <code>END_URL_LOAD</code> type</dt>
 *
 * <dd><p>The map will contain an entry under the key
 * "<code>method</code>" without the quotes.  This will be the request
 * method for this event.  The map will contain an entry under the key
 * "<code>status</code>" without the quotes.  This will be the response
 * status string from the server, such as "<code>200 OK</code>".  The
 * map will also contain an entry under the key "<code>headers</code>".
 * This entry will be a <code>java.util.Map</code> of all the response
 * headers.</p></dd>
 *
 * </dl>

M src_moz/EmbedProgress.cpp

- leverage nsIHttpChannel methods to get request method, response
  status, and post body.

M src_moz/Makefile.in

- add NativeInputStream

M src_share/jni_util.cpp
M src_share/jni_util.h

- new constants

- add variant of ThrowExceptionToJava that takes the exception class name.

M test/automated/src/classes/org/mozilla/webclient/DocumentLoadListenerTest.java

- new test content.  Post related content commented out.


git-svn-id: svn://10.0.0.236/trunk@169991 18797224-902f-48f8-a5cc-f745e15eee43
2005-02-28 17:15:45 +00:00
..
2004-10-20 02:16:16 +00:00

20040222

This README documents the Java Enhancers to the Mozilla web browser.

Currently, the only active sub-project is the Webclient Java API to the
Mozilla web browser.  This project also leverages the JavaDOM
sub-project.

Requirements:

* J2SDK 1.3.1 or later

* Apache ant 1.4.1 or later.  If running under J2SDK 1.4.2 or later, you
  need ant 1.6.1, due to javah issues.

* Successfully built debug enabled Mozilla 1.6 tree

How To Build:

* cd to the directory above your top level mozilla directory and cvs
  checkout the Webclient module.

* Modify mozilla/allmakefiles.sh and prepend the contents of the file
  "makefiles", in this directory, to add_makefiles section after the
  "Common makfiles used by everyone" comment.

* re-run ./configure to generate the java makefiles

* put the "mozilla/dist/bin" directory in your LD_LIBRARY_PATH on Unix,
  or PATH on Win32.

* set the value of the environment var MOZ_JDKHOME to be your J2SDK
  directory.

* Create a build.properties file in the mozilla/java directory with the
  following contents.

######
build.unix.classes=true
build.win32.classes=false
build.home=/home/edburns/Projects/mozilla/MOZILLA_1_4/mozilla/dist/classes
compile.debug=true
######

  Of course, set the values of the above properties correctly according
  to your system.

* run "ant" in the mozilla/java directory.  This will build webclient
  and all dependent libraries.  

How to run the Junit tests:

* Make sure junit.jar is properly set in your mozilla/java/build.properties

* Make sure junit.jar is installed in your $ANT_HOME/lib directory

* Set the following variables in your environment

NSPR_LOG_MODULES=webclient:4,webclientstub:4
NSPR_LOG_FILE=logfile.txt

* cd to mozilla/java/webclient

* Kill any running mozilla instances.  These will mess up the
  profilemanager code.

* run ant test

How to run the test browser (broken as of this writing):

* cd to mozilla/java/webclient/src_moz and run the "runem" batch file to
  run the test browser.

Problems?

* post to netscape.public.mozilla.java newsgroup