loading: it depends on jvm.dll, which was not on my path. I had to add
%JDKHOME%\jre\bin\client to my path and now it loaded. Thanks to shaver
and plasticmillion on #developers for the tip to use depends.exe, the
Dependency Walker. What a nice tool.
Of course, there is now a crash after it loads, which will be my next
step after this checkin.
A plugins/src/iPlugletEngine.idl
A plugins/src/iPlugletManager.idl
- make IDL files for our external interfaces.
M plugins/src/Makefile.in
- move PlugletEngine.cpp to the top of the list.
M plugins/src/PlugletEngine.cpp
M plugins/src/PlugletEngine.h
- big changes here. Make this a proper generic XPCOM component.
- use the iPlugletManager interface, and the nsICategoryManager
to make sure we get called at startup.
M plugins/src/Pluglet.cpp
M plugins/src/Pluglet.h
M plugins/src/PlugletFactory.cpp
M plugins/src/PlugletFactory.h
M plugins/src/PlugletInputStream.cpp
M plugins/src/PlugletInputStream.h
M plugins/src/PlugletLoader.cpp
M plugins/src/PlugletManager.cpp
M plugins/src/PlugletPeer.cpp
M plugins/src/PlugletStreamInfo.cpp
M plugins/src/PlugletStreamListener.cpp
M plugins/src/PlugletViewWindows.cpp
M plugins/src/PlugletsDir.cpp
M plugins/src/Registry.cpp
- remove static method PlugletEngine::GetJNIEnv, in favor of instance
method and use of nsIServiceManager.
M makefiles
- remove plugins/Makefile, this'll be replaced by ant
- add jni Makefile
R plugins/makefile.win
R plugins/jni/makefile.win
R plugins/src/makefile.win
- obsolete.
M plugins/jni/Makefile.in
- new includes and such
M plugins/jni/org_mozilla_pluglet_mozilla_PlugletOutputStream.cpp
- cast to const char *.
Next step is to fix this:
D:\Projects\mozilla\MOZILLA_NIH\FIREFOX_1_5_0_1\mozilla\java\webclient\build-tests.xml:152: Test org.mozilla.webclient.DocumentLoadListenerTest failed
M build.properties.sample
- Add hint for msdev arguments.
M dom/build.xml
M util/build.xml
M webclient/build.xml
- compile.source to 1.3
M dom/jni/Makefile.in
M webclient/src_ie/Makefile.in
M webclient/src_moz/Makefile.in
M webclient/src_moz/gtk/Makefile.in
M webclient/src_share/Makefile.in
- +DEFINES += -DMOZILLA_INTERNAL_API
M dom/jni/nativeDOMProxyListener.cpp
M dom/src/nsJavaDOMImpl.cpp
- remove cast to (void **) in AttachCurrentThread
M dom/src/Makefile.in
- depend on layout
- +DEFINES += -DMOZILLA_INTERNAL_API
M webclient/build-tests.xml
- comment out ProfileManagerTest
- compile with compile.source
M webclient/src_moz/NativeBrowserControl.cpp
- nsIFocusController,nsIChromeEventHandler,nsIDomWindowInternal no
longer needs nsCOMPtr
M webclient/src_moz/NativeEventThread.cpp
- remove IID defs for webShell, sHistory.
M webclient/src_moz/NavigationActionEvents.cpp
- remove nsIPresContext include
M webclient/src_moz/NavigationImpl.cpp
-#include "nsIServiceManagerUtils.h" // PENDING(edburns): when moving
- // past 1.7, this changes to
- // nsServiceManagerUtils.h
+#include "nsServiceManagerUtils.h"
M webclient/src_moz/ProfileManagerImpl.cpp
- This is currently totally broken. Next step is to fix it.
M webclient/src_moz/WrapperFactoryImpl.cpp
- comment out profileManager accesses
M webclient/src_moz/ns_globals.h
M webclient/src_moz/ns_util.h
- take out nsIWebShell
M webclient/test/automated/src/classes/org/mozilla/webclient/BrowserControlFactoryTest.java
- comment out goldenFile assertion until ProfileManager works.
listeners, using test driven development techniques of course.
Next step is to update the test browser to use this feature.
SECTION:
A webclient/classes_spec/org/mozilla/webclient/WCKeyEvent.java
- KeyEvent subclass to expose WebclientEvent, and allow access to the
Source property, which is a dom Node
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
- change to handle WCKeyEvent
M webclient/test/automated/src/classes/org/mozilla/webclient/KeyListenerTest.java
M webclient/test/automated/src/classes/org/mozilla/webclient/MouseListenerTest.java
- new test content
M webclient/test/automated/src/test/KeyListenerTest1.html
- add id attribute
allowing the standard java key and mouse event listeners to get access
to the dom Node that corresponds to that event. I have the Node
propagated out to the webclient level, but I need to push it all the way
out so the client can access it.
Next step is to expose the dom Node to the standard java key and mouse
listeners, using test driven development techniques of course.
SECTION: Changes
M dom/classes/org/mozilla/dom/DOMAccessor.java
- make getNodeByHandle(long p) public so I can get the dom node for a
key or mouse event.
M dom/classes/org/mozilla/dom/NodeImpl.java
- added commented out methods for the Node in Java SE 5.0
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
- Extract the dom Node that corresponds to a key or mouse event.
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/RDFTreeNode.java
- Don't use keyword enum, for Java SE 5.0
M webclient/src_moz/EmbedEventListener.cpp
- store the long into the properties.
M webclient/src_share/jni_util.cpp
M webclient/src_share/jni_util.h
- new constant, NodeLong.
M dom/src/Makefile.in
- conditional builds to work properly XP
M webclient/build-tests.xml
- pass MOZ_SRC to test environment to enable absolute pathing to golden
files
M webclient/test/automated/src/classes/org/mozilla/webclient/WebclientTestCase.java
- Leverage MOZ_SRC to get absolute pathing to golden files
work on the dom viewer in the TestBrowser.
M webclient/classes_spec/org/mozilla/webclient/EventRegistration.java
M webclient/classes_spec/org/mozilla/webclient/EventRegistration2.java
- add javadocs.
bytes, including whitespace, that is being shown in the BrowserControl.
The source actually comes from the browser's cache, and is not
re-fetched over the network unless the browser doesn't have an entry in
the cache.
Next step is to fix up the TestBrowser to show off this feature.
A src_moz/LoadCompleteProgressListener.cpp
A src_moz/LoadCompleteProgressListener.h
* Simple nsIWebProgressListener that offers a "loadComplete" property
* that can be queried to determine if the load has completed.
A test/manual/src/classes/org/mozilla/webclient/test/DOMAccessPanel.java
A test/manual/src/classes/org/mozilla/webclient/test/DOMCellRenderer.java
A test/manual/src/classes/org/mozilla/webclient/test/DOMTreeDumper.java
A test/manual/src/classes/org/mozilla/webclient/test/DOMTreeModel.java
A test/manual/src/classes/org/mozilla/webclient/test/DOMTreeNotifier.java
A test/manual/src/classes/org/mozilla/webclient/test/DOMViewerFrame.java
- move over from Old test browser. Produces some thread issues.
M src_moz/CurrentPageImpl.cpp
- Leverage LoadCompleteProgressListener to discover when it's safe to
call "selectAll" on the window.
M src_moz/Makefile.in
- add LoadCompleteProgressListener
M test/automated/src/classes/org/mozilla/webclient/CurrentPageTest.java
- re-enable GetSource test
M test/automated/src/test/ViewSourceTest.html
- re-edit for ease of comparison in CurrentPageTest
M test/manual/src/classes/org/mozilla/webclient/test/TestBrowser.java
- Hack: viewSource button. A menu would be better.
problem is that selectAll isn't working due to the window not being
realized. We'll see. Next step is to get it working!
M classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
- rewrite getSource() to call native code, instead of using the DOM.
M src_moz/CurrentPageImpl.cpp
- re-enable nativeGetSource().
M src_moz/EmbedWindow.cpp
M src_moz/EmbedWindow.h
- fill out dtor
- add InitNoChrome.
M test/automated/src/classes/org/mozilla/webclient/CurrentPageTest.java
- comment out test
classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java src_moz/CurrentPageImpl.cpp src_moz/EmbedWindow.cpp src_moz/EmbedWindow.h test/automated/src/classes/org/mozilla/webclient/CurrentPageTest.java
the whitespace formatting of the current page, which is a big problem.
Next step is to get the DOMViewer working with the TestBrowser.
M build.xml
- exclude test from the default build
A classes_spec/org/mozilla/webclient/impl/DOMTreeDumper.java
- Copy this over from test.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
- leverage DOMTreeDumper to print the current source.
M test/automated/src/classes/org/mozilla/webclient/CurrentPageTest.java
A test/automated/src/test/ViewSourceTest.html
- exercise new methods.
This change-bundle implements the FULL proposal for this, as well as
covering some corner-cases not in the initial proposal.
I have yet to get the last stamp of approval from the EG, but I'm
confident we'll get it, so I'm checking it in now.
r=visvan.
SECTION: API Changes
M jsf-api/src/javax/faces/application/StateManager.java
- reword the class description for readability
- saveSerializedView
Deprecate this. Make it no-longer abstract. Provide default impl
that returns null.
- saveView
new method. Replaces saveSerializedView. Provide default impl that
calls through to saveSerializedView().
- writeState that takes Object
new method. Provide default impl:
+ * <p>For backwards compatability with existing
+ * <code>StateManager</code> implementations, the default
+ * implementation of this method checks if the argument is an
+ * instance of <code>Object []</code> of length greater than or
+ * equal to two. If so, it creates a <code>SerializedView</code>
+ * instance with the tree structure coming frome element zero and
+ * the component state coming from element one and calls through to
+ * {@link
+ * #writeState(javax.faces.context.FacesContext,javax.faces.application.StateManager.SerializedView}.
+ * If not, does nothing.</p>
- getTreeStructureToSave
- getComponentStateToSave
- restoreTreeStructure
- restoreComponentState
Deprecate these. Provide default impl that returns null or no-ops.
- SerializedView
Deprecate this.
M jsf-api/src/javax/faces/application/StateManagerWrapper.java
- add new methods.
M jsf-api/src/javax/faces/render/ResponseStateManager.java
- writeState that takes Object
new method.
+ * <p>For backwards compatability with existing
+ * <code>ResponseStateManager</code> implementations, the default
+ * implementation of this method checks if the argument is an
+ * instance of <code>SerializedView</code>. If so, it calls through
+ * to {@link
+ * #writeState(javax.faces.context.FacesContext,javax.faces.application.StateManager.SerializedView}.
+ * If not, does nothing.</p>
- writeState that takes SerializedView
+ * @deprecated This method has been replaced by {@link
+ * #writeState(javax.faces.context.FacesContext,java.lang.Object)}.
+ * The default implementation of this method does nothing.
+ *
- getState
new method.
- getTreeStructureToRestore
- getComponentStateToRestore
Deprecate these. Provide default impl that returns null or no-ops.
SECTION: RI Changes
M jsf-ri/src/com/sun/faces/application/StateManagerImpl.java
Provide implementations for deprecated methods that will be called by
the default implementations of the new methods in StateManager.
- saveSerializedView(): no functional change since last version
M jsf-ri/src/com/sun/faces/application/ViewHandlerImpl.java
- move the responsibility for doing the redirect to createView() from
renderView(), since it was only designed to catch the initial request.
M jsf-ri/src/com/sun/faces/lifecycle/RestoreViewPhase.java
- introduce private isPostback() method.
+ * @return true if the request method is POST or PUT, or the method
+ * is GET but there are query parameters, or the request is not an
+ * instance of HttpServletRequest.
Only call restoreView() if isPostback(), otherwise call createView().
M jsf-ri/src/com/sun/faces/renderkit/ResponseStateManagerImpl.java
- modify getTreeStructureToRestore() so it knows the value of the hidden
field is only a string, not a base64 encoded object tree, if the
stateSavingMethod is server.
- modify writeState() to not encode the view if we're saving state in
the server, just write out the id.
- remove unused replaceMarkers method.
M jsf-ri/src/com/sun/faces/taglib/jsf_core/ViewTag.java
- leverage new APIs and rely on impl to delegate to deprecated APIs for
backwards compatability.
M jsf-ri/systest/build-tests.xml
M jsf-ri/systest/src/com/sun/faces/htmlunit/AbstractTestCase.java
M jsf-ri/systest/src/com/sun/faces/jsptest/JspIntegrationTestCase.java
M jsf-ri/test/com/sun/faces/FacesTestCaseService.java
M jsf-ri/test/com/sun/faces/lifecycle/TestApplyRequestValuesPhase.java
M jsf-ri/test/com/sun/faces/lifecycle/TestLifecycleImpl_initial.java
M jsf-ri/test/com/sun/faces/lifecycle/TestPhase.java
M jsf-ri/test/com/sun/faces/lifecycle/TestProcessValidationsPhase.java
M jsf-ri/test/com/sun/faces/lifecycle/TestRestoreViewPhase.java
M jsf-ri/web/test/RenderResponse_correct
M jsf-ri/web/test/TestLifecycleImpl_initial_correct
M jsf-ri/web/test/TestViewHandlerImpl_correct
- Oof, mondo changes here.
haven't been touched since 1998!
A dom/classes/org/mozilla/dom/package.html
A dom/classes/org/mozilla/dom/util/package.html
A util/classes/org/mozilla/util/package.html
A webclient/classes_spec/org/mozilla/webclient/overview.html
A webclient/classes_spec/org/mozilla/webclient/package.html
M dist/build.xml
M util/classes/org/mozilla/util/Debug.java
M util/classes/org/mozilla/util/Log.java
M util/classes/org/mozilla/util/Range.java
M util/classes/org/mozilla/util/Utilities.java
M webclient/classes_spec/org/mozilla/webclient/BrowserControl.java
M webclient/classes_spec/org/mozilla/webclient/BrowserControlFactory.java
M webclient/classes_spec/org/mozilla/webclient/ImplObject.java
M webclient/classes_spec/org/mozilla/webclient/Navigation2.java
M webclient/classes_spec/org/mozilla/webclient/WebclientFactory.java
M dom/classes/org/mozilla/dom/events/MouseEventImpl.java
- Changes to allow generation of javadocs from full tree.
haven't been touched since 1998!
A dom/classes/org/mozilla/dom/package.html
A dom/classes/org/mozilla/dom/util/package.html
A util/classes/org/mozilla/util/package.html
A webclient/classes_spec/org/mozilla/webclient/overview.html
A webclient/classes_spec/org/mozilla/webclient/package.html
M dist/build.xml
M util/classes/org/mozilla/util/Debug.java
M util/classes/org/mozilla/util/Log.java
M util/classes/org/mozilla/util/Range.java
M util/classes/org/mozilla/util/Utilities.java
M webclient/classes_spec/org/mozilla/webclient/BrowserControl.java
M webclient/classes_spec/org/mozilla/webclient/BrowserControlFactory.java
M webclient/classes_spec/org/mozilla/webclient/ImplObject.java
M webclient/classes_spec/org/mozilla/webclient/Navigation2.java
M webclient/classes_spec/org/mozilla/webclient/WebclientFactory.java
- Start refresh of javadocs
M src_moz/EmbedProgress.cpp
- remove PageInfoListener meta-data from END_DOCUMENT_LOAD. Didn't
belong there.
M test/manual/src/classes/org/mozilla/webclient/test/TestBrowser.java
- print out the request method and response code.
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.
Next step is to take a step back and see what's best to do next!
M classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
- call through to print related methods
M src_moz/CurrentPageImpl.cpp
- Copy from CurrentPageActionEvents.cpp
M test/automated/src/classes/org/mozilla/webclient/CurrentPageTest.java
- add test stub for print preview.
will work.
A test/automated/src/test/DOMSelectionTest.html
- test CurrentPage.highlightSelection and clearAllSelections().
M classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
- send all native methods through the event thread
M classes_spec/org/mozilla/webclient/impl/wrapper_native/SelectionImpl.java
- never return null from toString(). Return "" instead.
M src_moz/CurrentPageImpl.cpp
- copy from CurrentPageActionEvents.cpp
M test/automated/src/classes/org/mozilla/webclient/CurrentPageTest.java
M test/automated/src/classes/org/mozilla/webclient/DOMTest.java
- new test conent
find command.
Next step will be to add more tests.
M classes_spec/org/mozilla/webclient/CurrentPage2.java
- add find and findNext methods which return boolean.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
- implement these methods
M src_moz/CurrentPageImpl.cpp
- change native methods to accomodate
M test/automated/src/classes/org/mozilla/webclient/CurrentPageTest.java
- minimal test of new content.
to provide a way to return result of the find, by defining methods on
the CurrentPage2 interface.
A test/automated/src/test/FindTest0.html
- fodder for find
M src_moz/CurrentPageImpl.cpp
- copy content from CurrentPageActionEvents
M test/automated/src/classes/org/mozilla/webclient/CurrentPageTest.java
- basic test. Needs more robustness.
CurrentPage.copyCurrentSelectionToSystemClipboard() and provides a unit
test for it.
Next step is getCurrentURL.
A test/automated/src/classes/org/mozilla/webclient/CurrentPageTest.java
- new test suite for CurrentPage. Currently only has
testCopyCurrentSelectionToSystemClipboard().
M build-tests.xml
- add CurrentPage TestSuite with one test.
M src_moz/CurrentPageImpl.cpp
- re-implement nativeCopyCurrentSelectionToSystemClipboard()
<http://lxr.mozilla.org/mozilla/source/java/webclient/test/automated/src/classes/org/mozilla/webclient/DOMTest.java>
for a trivial usage example.
Next step is to continue to flesh out CurrentPage methods.
Ed
A test/automated/src/classes/org/mozilla/webclient/DOMTest.java
- show basic DOM functionality
M build-tests.xml
- Add new DOM test
M src_moz/CurrentPageImpl.cpp
- re-expose DOM functionality
M test/automated/src/test/HistoryTest0.html
- Add an ID to the anchor so we can do getElementById() on it.