If you don't know what those two things are, check out
<http://developers.sun.com/web/swdp/>.
Anyhow, it was a real pain to keep these two things working together as
jMaki rapidly evolved. Now at least we can have an automated test to
catch regressions.
SECTION: Changes
A dist/mcp-test/src/main/java/jsf_jmaki/JsfjMaki.java
A dist/mcp-test/src/test/java/jsf_jmaki/JsfjMakiTest.java
- The automated test and the netbeans empty main class.
M dom/classes/org/mozilla/dom/util/DOMTreeDumper.java
- Introduce preorder traversal callback facility
M webclient/classes_spec/org/mozilla/mcp/MCP.java
- add methods
+ public List<Element> getAnchors(String id) {
+ public List<Element> getAnchors() {
+ public List<Element> getChildElementsWithTagName(Element root,
+ final String tagName) {
+ public List<Element> getChildElementsWithTagName(String id,
+ final String tagName) {
+ public void clickElement(String id) {
+ public void blockingClickElement(Element element) {
A plugins/examples/jmfplayer/src/main/java/jmfplayer/JMFPlayer.java
A plugins/examples/jmfplayer/src/main/web/test01.html
R plugins/examples/MediaPlayer/JMPlayer.java
R plugins/examples/MediaPlayer/samples/test.html
R plugins/examples/MediaPlayer/samples/tilego3.avi
- Move mediaplayer example to jmfplayer
M plugins/examples/index.html
- Add mediaplayer example
M plugins/netbeans/build.xml
M plugins/netbeans/pluglet.properties
- require new property jdkhome.nospaces
M plugins/release/build.xml
- marching toward binary distribution
M plugins/netbeans/nbproject/build-impl.xml
M plugins/netbeans/nbproject/genfiles.properties
M plugins/netbeans/nbproject/project.properties
M plugins/netbeans/nbproject/project.xml
- IDE changes
A plugins/netbeans/.cvsignore
A plugins/netbeans/build.xml
A plugins/netbeans/manifest.mf
A plugins/netbeans/nbproject/.cvsignore
A plugins/netbeans/nbproject/build-impl.xml
A plugins/netbeans/nbproject/genfiles.properties
A plugins/netbeans/nbproject/project.properties
A plugins/netbeans/nbproject/project.xml
A plugins/netbeans/pluglet.properties
A plugins/release/build.xml
A plugins/examples/EmptyMainClass/EmptyMainClass.java
A plugins/examples/index.html
A plugins/examples/simple/src/main/java/simple/SimplePluglet.java
A plugins/examples/simple/src/main/web/index.html
M plugins/build.xml
M plugins/mozilla/nppluglet.cpp
- Towards a binar distribution of pluglets
M plugins/mozilla/Makefile.in
- Changes to build with objdir
M plugins/examples/MediaPlayer/JMPlayer.java
- Do not use * imports
M plugins/examples/MediaPlayer/build.xml
- distribute to objdir
M plugins/src/PlugletEngine.cpp
M plugins/src/PlugletFactory.cpp
M plugins/src/PlugletsDir.cpp
- Additional logging
- package description for MCP
M dist/build.xml
- copy ancilliary files for javadoc
A dist/javadoc.css
- Stylesheet for code samples within Javadocs
M dist/netbeans/build.xml
- Use releasenotes for test browesr start page
M dom/jni/Makefile.in
M dom/src/Makefile.in
M webclient/src_moz/Makefile.in
M webclient/src_share/Makefile.in
- FORCE_PR_LOG
M dom/jni/javaDOMEventsGlobals.cpp
M dom/jni/nativeDOMProxyListener.cpp
M dom/jni/org_mozilla_dom_events_MouseEventImpl.cpp
- use nsCOMPtr and correct QI-ing.
M webclient/classes_spec/org/mozilla/mcp/MCP.java
- Javadocs
- Make private things private
A webclient/classes_spec/org/mozilla/mcp/mcp.jpg
- Master Control Program
M webclient/classes_spec/org/mozilla/webclient/WebclientFactory.java
- javadocs
M logging.properties
- Do not append. Create a new file each time.
- Do not specify a limit.
M dom/classes/org/mozilla/dom/AttrImpl.java
M dom/classes/org/mozilla/dom/CharacterDataImpl.java
M dom/classes/org/mozilla/dom/DOMAccessor.java
M dom/classes/org/mozilla/dom/DOMImplementationImpl.java
M dom/classes/org/mozilla/dom/DocumentImpl.java
M dom/classes/org/mozilla/dom/DocumentTypeImpl.java
M dom/classes/org/mozilla/dom/ElementImpl.java
M dom/classes/org/mozilla/dom/EntityImpl.java
M dom/classes/org/mozilla/dom/NamedNodeMapImpl.java
M dom/classes/org/mozilla/dom/NodeImpl.java
M dom/classes/org/mozilla/dom/NodeListImpl.java
M dom/classes/org/mozilla/dom/NotationImpl.java
M dom/classes/org/mozilla/dom/ProcessingInstructionImpl.java
M dom/classes/org/mozilla/dom/events/EventImpl.java
M dom/classes/org/mozilla/dom/events/MouseEventImpl.java
M dom/classes/org/mozilla/dom/events/UIEventImpl.java
- Use the new ReturnRunnable and RunnableRunner mechanism to ensure
all DOM calls happen on the NativeEventThread
M dom/jni/org_mozilla_dom_DocumentImpl.cpp
- If the element is not found, make sure the exception thrown is a DOM
Exception.
M webclient/build-tests.xml
- pass a test browser url.
M webclient/classes_spec/org/mozilla/mcp/MCP.java
- Use the CountDownLatch instead of wait/notify
M webclient/classes_spec/org/mozilla/webclient/impl/WrapperFactory.java
- public int loadNativeLibraryIfNecessary();
+ public int loadNativeLibrariesIfNecessary();
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
- Fix error in log string
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeEventThread.java
- Clean up log messages a bit.
- Use CountDownLatch instead of wait/notify for synchronization
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
webclient into an internal contract so it can be used by dom.
M dom/classes/org/mozilla/dom/DOMAccessor.java
- use RunnableRunner and ReturnRunnable to do internal thread
coordination.
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/BookmarksImpl.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/CocoaBrowserControlCanvas.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/GtkBrowserControlCanvas.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/HistoryImpl.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NavigationImpl.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/PreferencesImpl.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/ProfileManagerImpl.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/RDFEnumeration.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/Win32BrowserControlCanvas.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
- Refactor to rename WCRunnable to ReturnRunnable.
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeEventThread.java
A util/classes/org/mozilla/util/ReturnRunnable.java
- Implement new RunnableRunner interface.
R webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WCRunnable.java
A util/classes/org/mozilla/util/RunnableRunner.java
- moved class
public native methods. Have each formerly public native method now be a
package private method with the same name as before, but the string
"native" prepended, and the first letter of the old name capitalized.
Have a new public method with the same name as the old method with a
body that calls through to the corresponding native method, passing args
correctly.
Next step will be to provide a threading solution from webclient.
M dom/classes/org/mozilla/dom/AttrImpl.java
M dom/classes/org/mozilla/dom/CharacterDataImpl.java
M dom/classes/org/mozilla/dom/DOMAccessor.java
M dom/classes/org/mozilla/dom/DOMImplementationImpl.java
M dom/classes/org/mozilla/dom/DocumentImpl.java
M dom/classes/org/mozilla/dom/DocumentTypeImpl.java
M dom/classes/org/mozilla/dom/ElementImpl.java
M dom/classes/org/mozilla/dom/EntityImpl.java
M dom/classes/org/mozilla/dom/NamedNodeMapImpl.java
M dom/classes/org/mozilla/dom/NodeImpl.java
M dom/classes/org/mozilla/dom/NodeListImpl.java
M dom/classes/org/mozilla/dom/NotationImpl.java
M dom/classes/org/mozilla/dom/ProcessingInstructionImpl.java
M dom/classes/org/mozilla/dom/events/EventImpl.java
M dom/classes/org/mozilla/dom/events/MouseEventImpl.java
M dom/classes/org/mozilla/dom/events/UIEventImpl.java
M dom/jni/org_mozilla_dom_AttrImpl.cpp
M dom/jni/org_mozilla_dom_CharacterDataImpl.cpp
M dom/jni/org_mozilla_dom_DOMAccessor.cpp
M dom/jni/org_mozilla_dom_DOMImplementationImpl.cpp
M dom/jni/org_mozilla_dom_DocumentImpl.cpp
M dom/jni/org_mozilla_dom_ElementImpl.cpp
M dom/jni/org_mozilla_dom_EntityImpl.cpp
M dom/jni/org_mozilla_dom_NamedNodeMapImpl.cpp
M dom/jni/org_mozilla_dom_NodeImpl.cpp
M dom/jni/org_mozilla_dom_NodeListImpl.cpp
M dom/jni/org_mozilla_dom_NotationImpl.cpp
M dom/jni/org_mozilla_dom_ProcessingInstructionImpl.cpp
M dom/jni/org_mozilla_dom_events_EventImpl.cpp
M dom/jni/org_mozilla_dom_events_MouseEventImpl.cpp
M dom/jni/org_mozilla_dom_events_UIEventImpl.cpp
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeEventThread.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
- cause the webclient native library to be loaded from the
NativeEventThread. This eliminates many native thread safety
assertions.
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
- Initialize the dom on the NativeEventThread
- Get the dom on the NativeEventThread
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
- remove unnecessary synchronized block.
M dist/netbeans/build.xml
M dist/netbeans/nbproject/project.properties
- prepare for alpha 6 release
M webclient/src_moz/AjaxListener.cpp
M webclient/src_moz/AjaxListener.h
M webclient/src_moz/EmbedProgress.cpp
M webclient/src_moz/EmbedProgress.h
- the AjaxListener no longer keeps the jobject EventRegistrationImpl as
an ivar. Instead, it lazily uses an accessor on EmbedProgress
M webclient/test/manual/src/classes/org/mozilla/webclient/test/TestBrowser.java
- Take a url from commandline.
- this automated test is now a complete example for how to test an ajax
web application in an automated fashion.
M dom/classes/org/mozilla/dom/NodeImpl.java
M dom/jni/org_mozilla_dom_NodeImpl.cpp
- implement getTextContent() from DOM level 3.
M webclient/build-tests.xml
- add cardemoTest to unit test list as a place-holder until I can write
a testcase that doesn't require the public Internet.
A webclient/classes_spec/org/mozilla/mcp/AjaxListener.java
- New class. Docs forthcoming.
M webclient/classes_spec/org/mozilla/mcp/MCP.java
- new methods to support complete ajax automated testing.
M webclient/src_moz/AjaxListener.cpp
M webclient/src_moz/AjaxListener.h
- add mIsObserving flag. From our dtor, make sure to remove ourselves
from the EmbedProgress.
M webclient/src_moz/EmbedProgress.cpp
M webclient/src_moz/EmbedProgress.h
- We need to add ourselves as an observer both from SetCapturePageInfo
and SetEventRegistration.
M webclient/src_moz/NativeBrowserControl.cpp
- Unit testing found a bug! We can't call mWindow->ReleaseChildren()
until after we remove ourself as a listener.
- fix bug where eventType was incorrectly getting accessed as a const char *
M webclient/src_moz/AjaxListener.cpp
- Create a Java DOM instance from the Ajax response.
M webclient/test/manual/src/classes/org/mozilla/webclient/test/TestBrowser.java
- Resurrect the DOMViewer. Make it show the tree for ajax responses.
- add event masks for Ajax
M webclient/classes_spec/org/mozilla/webclient/PageInfoListener.java
- Document map values for ajax events
M webclient/src_moz/AjaxListener.cpp
M webclient/src_moz/AjaxListener.h
- Flesh out implementation as much as the underlying browser allows.
For mozilla, this means start, end, and error.
M webclient/src_moz/EmbedProgress.cpp
M webclient/src_moz/EmbedProgress.h
- move the initialization of the AjaxListener into SetEventRegistration().
- Expose NativeBrowserControl * getter
- Make RequestToURIString public
M webclient/src_share/jni_util.cpp
M webclient/src_share/jni_util.h
- new map keys: readyState, responseText, responseXML
- new event masks START_AJAX, END_AJAX, ERROR_AJAX
M webclient/test/manual/src/classes/org/mozilla/webclient/test/TestBrowser.java
- print map values for AJAX cases.
a cue from Doron Rosenberg in #developers and looked at the Eclipse ATF
project's XHRObserver.java.
This was my first look at java code that uses the java xpcom bridge, and
I'm very impressed. Once I get webclient 2.0 done, I'll definately
rewrite as much as possible of the mozilla implementation using the java
xpcom bridge. For now, I'm going to continue to crank with my
"on-demand hand coded JNI C++" approach. I think I can get results
pretty quickly with this. For example, just yesterday I learned that
the regular nsIWebProgressListener doesn't get notifications on Ajax
requests, and now I see a way to do it (thanks to Doron).
Here is the work in progress.
A webclient/src_moz/AjaxListener.cpp
A webclient/src_moz/AjaxListener.h
M logging.properties
- set "ALL" for MCP level
M dist/mcp-test/src/test/java/cardemo/CarDemoTest.java
- Cause an Ajax transaction to happen
M webclient/classes_spec/org/mozilla/mcp/MCP.java
- log messages for outgoing HTTP requests
M webclient/src_moz/EmbedProgress.cpp
M webclient/src_moz/EmbedProgress.h
- Leverage new AjaxListener class
M webclient/src_moz/Makefile.in
- add xmlextras, to include nsIXMLHttpRequest.
- remove Robot from this class. Moved into MCP
M dom/classes/org/mozilla/dom/DocumentImpl.java
M dom/jni/org_mozilla_dom_DocumentImpl.cpp
- implement getDocumentURI().
M dom/classes/org/mozilla/dom/util/DOMTreeDumper.java
- added findElementWithName().
R webclient/classes_spec/org/mozilla/webclient/test/DOMTreeModel.java
A dom/classes/org/mozilla/dom/util/DOMTreeModel.java
R webclient/test/manual/src/classes/org/mozilla/webclient/test/DOMTreeNotifier.java
A dom/classes/org/mozilla/dom/util/DOMTreeNotifier.java
M webclient/classes_spec/org/mozilla/webclient/test/DOMAccessPanel.java
M webclient/classes_spec/org/mozilla/webclient/test/DOMViewerFrame.java
M webclient/test/manual/src/classes/org/mozilla/webclient/test/DOMViewerFrame.java
- Move these over from test browser package
M webclient/classes_spec/org/mozilla/mcp/MCP.java
- added useful new public methods
findElement
clickElement
blockingClickElement
- absorbed functionality of Robot.
R webclient/classes_spec/org/mozilla/webclient/impl/DOMTreeDumper.java
R webclient/test/manual/src/classes/org/mozilla/webclient/test/DOMTreeDumper.java
- For some reason, there were several copies of this file.
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
- Use newly implemented getDocumentURI() for logging.
- Underpinnings for "clickElementWithId"
M dom/jni/Makefile.in
- depend on layout, for nsIBoxObject. Thanks smaug.
M dom/jni/javaDOMGlobals.h
- copy over WC_ITOA macro
M dom/jni/org_mozilla_dom_ElementImpl.cpp
- add support for special attributes screenX, screenY, clientX, clientY
M webclient/build-tests.xml
- compile the CarDemoTest
M webclient/classes_spec/org/mozilla/mcp/MCP.java
- add getElementInCurrentPageById()
M webclient/test/automated/src/classes/org/mozilla/webclient/DOMTest.java
- exercise new features in dom ElementImpl.
- Do not exclude Bookmarks, Prefs, and Profile from core source
M dist/mcp-test/src/test/java/cardemo/CarDemoTest.java
- sleep for 10 seconds after the initial load
M dist/netbeans/build.xml
- add the ability to compile the core source of the webclient library,
should the user want to modify it.
M webclient/classes_spec/org/mozilla/mcp/MCP.java
- Correctly cause blockingLoad to block until the load completes.
- Added copy.core.src target
M netbeans/build.xml
- added complie.core.src target
M netbeans/nbproject/build-impl.xml
M netbeans/nbproject/genfiles.properties
M netbeans/nbproject/project.properties
- autogenerate changes
M netbeans/nbproject/project.xml
- rename source roots
A mcp-test/src/main/java/cardemo/CarDemo.java
A mcp-test/src/test/java/cardemo/CarDemoTest.java
- include automated test to use MCP to test the Ajax cardemo
- Add ability to debug a singe junit test
M webclient/build.xml
A webclient/classes_spec/org/mozilla/mcp/MCP.java
A webclient/classes_spec/org/mozilla/mcp/MCPLogStrings.properties
- add mcp package
M webclient/test/automated/src/classes/org/mozilla/webclient/WebclientTestCase.java
- add getter for outputFileRoot.
A non-ide/README
A non-ide/build.properties.sample
A non-ide/build.xml
A non-ide/logging.properties
A non-ide/project.properties
- Add non-ide build file.
M dist/build.xml
M dist/netbeans/build.xml
A dist/netbeans/logging.properties
M dist/netbeans/webclient.properties
M webclient/test/automated/src/classes/org/mozilla/webclient/WebclientTestCase.java
Make it so the automated tests run from netbeans.
M build.xml
A netbeans/build.xml
A netbeans/manifest.mf
A netbeans/webclient.properties
A netbeans/nbproject/build-impl.xml
A netbeans/nbproject/build.properties
A netbeans/nbproject/genfiles.properties
A netbeans/nbproject/project.properties
A netbeans/nbproject/project.xml
- the default dist will include a netbeans project that builds the test
browser and runs the unit tests.
- Add new method copyCurrentSelectionHtmlToSystemClipboard().
M classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
- Full support for text and html copy
M test/automated/src/classes/org/mozilla/webclient/CurrentPageTest.java
- Exercise HTML copy.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
M test/automated/src/classes/org/mozilla/webclient/CurrentPageTest.java
- Get the test case working.
Workaround
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
+void addStringToTransferable(String mimeType, String text) {
This method is called from native code when a Transferable is being
inspected for the DataFlavors it supports.
M webclient/classes_spec/org/mozilla/webclient/test/WorkDialog.java
- Whitespace
M webclient/src_moz/EmbedWindow.cpp
M webclient/src_moz/EmbedWindow.h
- copy code from nsPrimitiveHelpers to aid in the extraction of text
from the nsITransferable
- Flesh out GetText(), SendTextToJava() methods.
M webclient/src_moz/Makefile.in
- Additional dependencies for nsPrimitiveHelpers copy.
Use the nsIClipboardDragDropHooks mechanism to manually copy over data
from the nsITransferable to java, so that java can manualy fabricate a
Transferable instance and put it on the clipboard.
M src_moz/CurrentPageImpl.cpp
- Pass the java instance to EmbedWindow::CopySelection().
M src_moz/EmbedWindow.cpp
M src_moz/EmbedWindow.h
- Modify CopySelection to take the java object instance
- Make this implement nsIClipboardDragDropHooks. Use the
nsICommandManager to get informed of the copy event.
- Implement ::OnCopyOrDrag() to copy the data from the nsITransferable
over to Java.
M src_moz/Makefile.in
- declare dependency on commandhandler
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
M webclient/src_moz/CurrentPageImpl.cpp
M webclient/src_moz/Makefile.in
- Remove bookmarks because bookmarks is not in XULRunner
M webclient/test/automated/src/classes/org/mozilla/webclient/CurrentPageTest.java
- Disable testCopyCurrentSelectionToSystemClipboard. Need to try with
1.5.0.9.
M webclient/test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
M webclient/test/automated/src/classes/org/mozilla/webclient/WebclientTestCase.java
- Account for build dir change
M webclient/test/manual/src/classes/org/mozilla/webclient/test/TestBrowser.java
- enable copy button.
M dom/jni/Makefile.in
M dom/jni/javaDOMGlobals.cpp
M dom/src/Makefile.in
M webclient/build-tests.xml
M webclient/build.xml
M webclient/src_ie/Makefile.in
M webclient/src_moz/Makefile.in
M webclient/src_moz/gtk/Makefile.in
M webclient/src_moz/motif/gtkmozilla.h
M webclient/src_share/Makefile.in
- Enable building with an objdir. Much more civilized. Thanks very
much to Bradley Smedberg.
- re-enable all tests, but CurrentPageTest is currently hanging.
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
- Use new "runUntilEventOfType" method to prevent deadlock when creating a new
window.
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeEventThread.java
- extract doEventLoopOnce() method from run()
- create new method runUntilEventOfType().
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java
- convert anonymous inner class for WCRunnable.nativeRealize into
non-anonymous inner class of WindowControlImpl
M webclient/test/automated/src/classes/org/mozilla/webclient/WindowCreatorTest.java
- Make sure to realize the new window on the main thread.
- use log level INFO
M webclient/build-tests.xml
- comment out broken tests. Currently: WindowCreatorTest, CurrentPageTest
M webclient/test/automated/src/classes/org/mozilla/webclient/WebclientTestCase.java
- Log INFO for tearDown()