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.
re-implemented using the new event model. It's a bit cleaner.
Next step is to uncomment the selection check at the end of
WindowCreatorTest.java. This code currently causes the VM to crash. I
also plan to do some testing on the chrome flags.
M classes_spec/org/mozilla/webclient/EventRegistration2.java
- deprecate {add,remove}NewWindowListener(), replace with
setNewWindowListener().
M classes_spec/org/mozilla/webclient/NewWindowEvent.java
- added BrowserControl property, which the user sets into the event.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
- change newWindowListeners List ivar to newWindowListener ivar.
- fix {add,remove}NewWindowListener() to leverage setNewWindowListener()
- change nativeEventOccurred() to return an int instead of void.
- add boolean property nativeSetNewWindowListenerAttached()
M classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeEventThread.java
- modify pushBlockingWCRunnable() to execute the runnable right away if
we're already on the NativeEventThread. This is necessary to allow
re-entrancy.
M src_moz/EmbedEventListener.cpp
M src_moz/EmbedEventListener.h
- expose the mEventRegistration ivar via a getter.
M src_moz/EventRegistrationImpl.cpp
M src_moz/NativeBrowserControl.cpp
M src_moz/NativeBrowserControl.h
- add nativeSetNewWindowListenerAttached(), which calls through and sets
it on the NativeBrowserControl.
M src_moz/WindowCreator.cpp
- implement CreateChromeWindow2, which is called when the browser needs
a new window.
M src_share/jni_util.cpp
M src_share/jni_util.h
- change util_SendEventToJava() to return int.
M test/automated/src/classes/org/mozilla/webclient/WindowCreatorTest.java
NewWindowListener mechanism. Next step will be to continue to try to
get it working.
A test/automated/src/classes/org/mozilla/webclient/WindowCreatorTest.java
A test/automated/src/test/WindowCreatorTest0.html
A test/automated/src/test/WindowCreatorTest1.html
- new test, currently fails.
M build-tests.xml
- add new test, non-running
M classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
- prep for NewWindowListener
M src_moz/WindowCreator.cpp
- sketch implementation plan. In WindowCreator.CreateChromeWindow2:
+ /*
+ Block this thread.
+
+ Call back into java and ask the user to create a top level
+ window and hand it, or an added child of it, to us. Call this
+ thing the userWindow.
+
+ Create a new BrowserControl, get its BrowserControlCanvas and
+ make it be a child of the userWindow.
+
+ Set the userWindow and the BrowserControlCanvas to visible ==
+ true. This is necessary to get the cause the underlying
+ mozilla window to be created.
+
+ java returns the C++ nativeBrowserControl to us. Cast it to a
+ native NativeBrowserControl C++ object instance. If the
+ nsIURI is non-null, cause the new window to navigate to that
+ URI. Return the NativeBrowserControl's EmbedWindow instance,
+ which is an impl of nsIWebBrowserChrome.
+
+ I'm not sure if it's safe to do all this on the same thread on
+ which mozilla calls us. I hope so.
+ */
between mozilla concepts and java concepts wrong before. The correct
mapping is:
Mozilla concept Java concept
KeyDown keyPressed
KeyUp keyReleased
KeyPress keyTyped
KeyCode keyCode
CharCode keyChar
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
- Force the keyCode to be VK_UNDEFINED if this is a KEY_TYPED event.
- For security, log any exceptions thrown during ctor of KeyEvent.
M webclient/src_moz/EmbedEventListener.cpp
- remove unused automatic vars.
M webclient/src_moz/NavigationImpl.cpp
- roll back change done by Brian Ryner, since it doesn't make sense
under mozilla 1.7.
M webclient/src_share/jni_util.cpp
- reverse mapping of CHAR_CODE and KEY_CODE to their java counterparts.
M webclient/test/automated/src/classes/org/mozilla/webclient/KeyListenerTest.java
- Add in some code to make it easier to run this testcase in a manual
fashion.