I have changed the usage contract of the DocumentLoadListener slightly.
Prior to this checkin, calling getEventData() on the DocumentLoadEvent
passed in to your eventDispatched() method returned the URI to which the
event applies.
Now the getEventData() returns a Map. You must look up the "URI" key to
find the URI to which the event applies. If your listener is an
instance of PageInfoListener, and your event mask is
END_URL_LOAD_EVENT_MASK, your Map will have an additional entry under
the key "headers". This entry is another Map representing the response
headers.
DocumentLoadListener:
* <p>The <code>eventDispatched()</code> method is passed a {@link
* DocumentLoadEvent} instance. The <code>type</code> property of the
* event will be one of the types defined as a <code>public static final
* int</code> in <code>DocumentLoadEvent</code>.</p>
*
* <p>The <code>eventData</code> property of the
* <code>DocumentLoadEvent</code> instance will be a
* <code>java.util.Map</code>. For all <code>EVENT_MASK</code> types in
* <code>DocumentLoadEvent</code> 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>
*
* <p>For the <code>PROGRESS_URL_LOAD_EVENT_MASK</code> there will be an
* entry in the map for the key "<code>message</code>". This will be
* the progress message from the browser.</p>
PageInfoListener:
* <p>This {@link DocumentLoadListener} subclass adds the ability to get
* detailed information on each event. </p>
*
* <p>The <code>eventDispatched()</code> method is passed the same thing
* as in the {@link DocumentLoadListener}.</p>
*
* <p>The <code>eventData</code> property of the
* <code>DocumentLoadEvent</code> instance will be a
* <code>java.util.Map</code>. For the
* <code>END_URL_LOAD_EVENT_MASK</code> type in
* <code>DocumentLoadEvent</code> 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. The map will also contain an
* entry under the key "<code>headers</code>". This entry will be a
* <code>Map</code> of all the response headers.</p>
The next step will be to allow the same procedure to work to discover
the request headers.
Ed
A classes_spec/org/mozilla/webclient/PageInfoListener.java
- marker class for listenening for high fidelity page information.
A src_moz/EventRegistrationImpl.cpp
- add boolean property, capturePageInfo to turn on or off high fidelity
page information collection.
M build-tests.xml
- add new test, DocumentLoadListenerTest
M build.xml
- added new JNI class, EventRegistrationImpl
M classes_spec/org/mozilla/webclient/CurrentPage2.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
- rollback previous API for headers discovery
M classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
- pass thru the capturePageInfo property
- add URIToStringMap, currently not working.
M classes_spec/org/mozilla/webclient/test/EMWindow.java
- call toString() on the eventData, don't cast it to a String.
M src_moz/EmbedProgress.cpp
M src_moz/EmbedProgress.h
- leverage the nsIHttpHeaderVisitor interface to discover the response
headers.
- add boolean property capturePageInfo
A src_moz/HttpHeaderVisitorImpl.cpp
A src_moz/HttpHeaderVisitorImpl.h
- copy the headers to a Properties object.
M src_moz/Makefile.in
- compile two new files:
+ EventRegistrationImpl.cpp \
+ HttpHeaderVisitorImpl.cpp \
M src_moz/NativeBrowserControl.cpp
M src_moz/NativeBrowserControl.h
- pass the NativeWrapperFactory to our Init() method
- add wrapperFactory getter.
M src_moz/WrapperFactoryImpl.cpp
- pass the nativeWrapperFactory to the NativeBrowserControl's Init method.
M src_share/jni_util.cpp
M src_share/jni_util.h
- new constants: URI, headers
R test/automated/src/classes/org/mozilla/webclient/CurrentPageTest.java
- not yet time for this one
A test/automated/src/classes/org/mozilla/webclient/DocumentLoadListenerTest.java
- exercise bare minimum functionality of PageInfoListener
M test/manual/src/classes/org/mozilla/webclient/test/TestBrowser.java
- print out headers.
git-svn-id: svn://10.0.0.236/trunk@162011 18797224-902f-48f8-a5cc-f745e15eee43
Currently, I'm trying to discover what is the best way to expose this
API in documents that include frames.
I think I'll need more than those two new methods on CurrentPage2. I'll
probably have some way to get a list of all URLs that comprise the
frameset, including nested framesets. It's true that you could use the
DOM to derive this, but that's very complicated. I need something more
lightweight. In the meantime, I'll check in what I have.
M build-tests.xml
- add commented out CurrentPageTest
M build.xml
- add clean.test target
M classes_spec/org/mozilla/webclient/CurrentPage2.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
- new methods and no-op impls, so test-first test fails.
+ public Map getRequestHeaders();
+
+ public Map getResponseHeaders();
M classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
- swallow exceptions thrown by listeners.
M src_moz/EmbedProgress.cpp
- test for existence of httpChannel, so we can visit the headers
M test/automated/src/classes/org/mozilla/util/THTTPD.java
- return a "Server: " header that I can test in the testcase.
M test/automated/src/classes/org/mozilla/webclient/DocumentLoadListenerImpl.java
- add doStartCheck() method.
M test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
M test/automated/src/classes/org/mozilla/webclient/WebclientTestCase.java
- push THTTPD stuff to superclass.
A test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
- new testcase, fails.
git-svn-id: svn://10.0.0.236/trunk@161722 18797224-902f-48f8-a5cc-f745e15eee43
WebBrowser
<https://jdic.dev.java.net/nonav/documentation/javadoc/jdic/org/jdesktop/jdic/browser/WebBrowser.html>, with the following exceptions:
- we're based on mozilla 1.6
- it only works on windows
- we don't have mouse event support
- we only support mozilla, not IE
So, webclient still has a ways to go until we reach its former glory,
but reach it we will.
I'm going to assemble a 2.0 alpha 1 source code only release, including
build instructions, from what we have now.
I'd love it if someone could get the unit tests working on GNU/Linux
again. I think the problem has to do with our old friend GDKSUPERWIN.
Next step is to assemble the 2.0 alpha 1 source code release!
Ed
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NavigationImpl.java
M webclient/src_moz/NavigationImpl.cpp
- re-enable POST
M webclient/src_moz/EmbedWindow.cpp
M webclient/src_moz/EmbedWindow.h
- expose DocShell post method.
M webclient/test/automated/src/classes/org/mozilla/util/THTTPD.java
M webclient/test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
- test code for POST
git-svn-id: svn://10.0.0.236/trunk@158472 18797224-902f-48f8-a5cc-f745e15eee43
A test/automated/src/classes/org/mozilla/webclient/DocumentLoadListenerImpl.java
A test/automated/src/classes/org/mozilla/webclient/HistoryTest.java
A test/automated/src/test/HistoryTest0.html
A test/automated/src/test/HistoryTest1.html
A test/automated/src/test/HistoryTest2.html
A test/automated/src/test/HistoryTest3.html
- new test content.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/HistoryImpl.java
M src_moz/HistoryImpl.cpp
- expose back() method
M src_moz/Makefile.in
M test/automated/src/classes/org/mozilla/util/THTTPD.java
- added way for the server to return the content type of the document
M test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
- pulled out DocumentLoadListener into a separate class.
git-svn-id: svn://10.0.0.236/trunk@158376 18797224-902f-48f8-a5cc-f745e15eee43
know, I find that selection doesn't work. Hmm. Well, let's hear it for
test first.
Naturally, the next step is to fix the new NavigationTest.testHttpLoad().
A test/automated/src/test/HttpNavigationTest.txt
- data file for testHttpLoad().
A test/automated/src/classes/org/mozilla/util/THTTPD.java
- trivial HTTP server that suits my needs.
M test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
- added commented out testHttpLoad(). It breaks.
M test/automated/src/classes/org/mozilla/webclient/WebclientTestCase.java
- remove emacs mode line.
git-svn-id: svn://10.0.0.236/trunk@158112 18797224-902f-48f8-a5cc-f745e15eee43
the DocumentLoadListener events will be trivial.
Next step: flesh out the rest of the DocumentLoadListener events.
Modify NavigationTest so that it does its selection checking inside the
listeners. This will probably require creating a Thread, managed by
EventRegistrationImpl, that is used to process callbacks from mozilla
into Java, so that we don't get deadlock.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
- remove all dependencies on NativeEventThread
- introduce dependency on BrowserControlCanvas (needed for future
MouseListener) work.
- {add,remove}DocumentLoadListener() now just a matter of
adding/removing to List.
- add nativeEventOccurred() method, called from native code
M classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeEventThread.java
- remove dependency on BrowserControlCanvas
- removed nativeEventOccurred
M src_moz/EmbedProgress.cpp
- delete the global ref in the dtor.
- create the global ref in SetEventRegistration().
- call back to Java on startDocumentLoad.
M src_moz/NativeBrowserControl.cpp
- initialize our string constants.
M src_share/jni_util.cpp
M src_share/jni_util.h
- alter the signature of util_SendEventToJava
-void util_SendEventToJava(JNIEnv *yourEnv, jobject nativeEventThread,
- jobject webclientEventListener,
+void util_SendEventToJava(JNIEnv *yourEnv, jobject eventRegistrationImpl,
jstring eventListenerClassName,
jlong eventType, jobject eventData)
M test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
- show that the DocumentLoadListener gets called.
git-svn-id: svn://10.0.0.236/trunk@157818 18797224-902f-48f8-a5cc-f745e15eee43
I now have the new architecture for pumping events from mozilla back
into java. I've added a sequence diagram to
<http://www.mozilla.org/projects/blackwood/webclient/design/20040306-webclient-2_0.zargo>
and updated the private API class diagram.
The next step will be to have the EmbedProgress::On* methods call back
to EventRegistration.nativeEventOccured.
M src_moz/EmbedProgress.cpp
M src_moz/EmbedProgress.h
- make this class maintain a reference to the java EventRegistration
instance for this BrowserControl
M src_moz/NativeBrowserControl.cpp
M src_moz/NativeBrowserControl.h
- make this class maintain a reference to the java BrowserControl instance.
M src_moz/WindowControlImpl.cpp
- push the java BrowserControl to the NativeBrowserControl on Realize().
M src_moz/WrapperFactoryImpl.cpp
M src_moz/ns_globals.h
- expose gImplementedInterfaces in ns_globals.h
git-svn-id: svn://10.0.0.236/trunk@157781 18797224-902f-48f8-a5cc-f745e15eee43
be to verify that loadFromStream works as expected.
M build-tests.xml
- win32 gtk stuff. I can't figure out why this file in particular gets
messed up when I move from Unix to Windows and back. Can anyone tell me
why?
M classes_spec/org/mozilla/webclient/Navigation2.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/NavigationImpl.java
- added method loadURLBlocking().
M classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
M src_moz/CurrentPageImpl.cpp
- activated selectAll() and getSelection()
M src_moz/EmbedWindow.cpp
M src_moz/EmbedWindow.h
- imbued this class with selection related methods selectAll and
getSelection()
M src_moz/Makefile.in
- activated CurrentPageImpl.cpp
M test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
- new test content.
git-svn-id: svn://10.0.0.236/trunk@155637 18797224-902f-48f8-a5cc-f745e15eee43
CurrentPage working so that I can "selectAll" the page, and verify
that the contents are loaded correctly.
Ed
M build-tests.xml
- enable all tests
M build.xml
- added compile.test passthru target
M classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java
- unpack the Rectangle into final ints
M src_moz/WindowControlImpl.cpp
- this was causing the deadlock: the package name was wrong. The
UnsatisfiedLinkError was not caught, and vanished into nowhere.
M test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
- we must independently make the canvas visible. Hmm. Shouldn't it
automatically receive setVisible() when its parent is made visible?
- do cleanup
git-svn-id: svn://10.0.0.236/trunk@155326 18797224-902f-48f8-a5cc-f745e15eee43
- make NavigationTest not run
M build.xml
- Move Win32BrowserControlCanvas up to parent package
M classes_spec/org/mozilla/webclient/BrowserControlCanvas.java
- You can't resize until you're initialized
- pass visibility through to native layer
M classes_spec/org/mozilla/webclient/impl/BrowserControlImpl.java
- Use WrapperFactory to create the BrowserControlCanvas impl.
A classes_spec/org/mozilla/webclient/impl/wrapper_native/Win32BrowserControlCanvas.java
- moved up from child package
M classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java
- use the new thread model for nativeSetBounds(), nativeRealize(),
nativeSetVisible().
M classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
- make this create the BrowserControlCanvas instance.
- honor the new package name for Win32BrowserControlCanvas.
R classes_spec/org/mozilla/webclient/impl/wrapper_native/win32/Win32BrowserControlCanvas.java
- moved up one level.
M src_moz/EmbedWindow.cpp
M src_moz/EmbedWindow.h
- Take size parameters to CreateWindow_
M src_moz/Makefile.in
- add WindowControlImpl.cpp
M src_moz/NativeBrowserControl.cpp
M src_moz/NativeBrowserControl.h
- add size parameters to Realize().
M src_moz/WindowControlImpl.cpp
- reactivate nativeRealize(), nativeSetVisible(), nativesetBounds(),
M src_moz/win32/Win32BrowserControlCanvas.cpp
- new package name
M test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
- we have to create a Canvas to load a URL. Mozilla limitation.
M test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImplTest.java
- remove unneeded test metdod
git-svn-id: svn://10.0.0.236/trunk@155219 18797224-902f-48f8-a5cc-f745e15eee43
- re-activate some tests
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/PreferencesImpl.java
- Make null an acceptable argument for prefValue. Make it mean, remove
the pref.
M webclient/src_moz/PreferencesImpl.cpp
- make a null prefValue argument to nativeSetUnicharPref mean, ClearPref().
git-svn-id: svn://10.0.0.236/trunk@154682 18797224-902f-48f8-a5cc-f745e15eee43
java layers.
- Rework NativeEventThread to be usable without having the
browserControl window realized.
- change who owns the NativEventThread to be the BrowserControl, by
proxy through WrapperFactoryImpl. Again, this is with a view toward
using webclient without the browserControl window realized.
A webclient/src_moz/NativeBrowserControl.h
A webclient/src_moz/NativeBrowserControl.cpp
- Centerpiece of native Object hierarchy. Owned by NativeEventThread.
M webclient/build-tests.xml
- reformat
- add new test, currently failing, for Navigation.
M webclient/classes_spec/org/mozilla/webclient/impl/BrowserControlImpl.java
- destroy our nativeBrowserControl.
M webclient/classes_spec/org/mozilla/webclient/impl/WrapperFactory.java
- Added API for obtaining the NativeEventThread for a BrowserControl.
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/BookmarksImpl.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/HistoryImpl.java
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NavigationImpl.java
- rename nativeWebShell to nativeBrowserControl
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/ImplObjectNative.java
- rename nativeWebShell to nativeBrowserControl
- add method to get the NativeEventThread for this instance.
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeEventThread.java
- remove dependency on WindowControl
- make this class be the owner of the nativeBrowserControl instance.
- rename nativeWebShell to nativeBrowserControl
- renamed nativeInitialize to nativeStartup
- added nativeShutdown
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java
- remove delete() method.
- no longer owns NativeEventThread
- no longer owns nativeBrowserControl
M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
- Take over NativeEventThread ownership responsibilities from
WindowControlImpl (by proxy for BrowserControl).
M webclient/src_moz/CBrowserContainer.cpp
M webclient/src_moz/CBrowserContainer.h
M webclient/src_moz/CurrentPageActionEvents.cpp
M webclient/src_moz/CurrentPageActionEvents.h
M webclient/src_moz/CurrentPageImpl.cpp
M webclient/src_moz/HistoryActionEvents.cpp
M webclient/src_moz/HistoryActionEvents.h
M webclient/src_moz/HistoryImpl.cpp
M webclient/src_moz/NativeEventThreadActionEvents.cpp
M webclient/src_moz/NativeEventThreadActionEvents.h
M webclient/src_moz/NavigationActionEvents.cpp
M webclient/src_moz/NavigationActionEvents.h
M webclient/src_moz/NavigationImpl.cpp
M webclient/src_moz/PromptActionEvents.cpp
M webclient/src_moz/PromptActionEvents.h
M webclient/src_moz/WindowControlActionEvents.cpp
M webclient/src_moz/WindowControlActionEvents.h
M webclient/src_moz/WindowCreator.cpp
M webclient/src_moz/WindowCreator.h
- rename nativeWebShell to nativeBrowserControl
M webclient/src_moz/Makefile.in
- comment out not yet fixed per-window sources
- add NativeBrowserControl.cpp
M webclient/src_moz/NativeEventThread.cpp
- major refactoring. Much of the work is now being done in
NativeBrowserControl.cpp
M webclient/src_moz/WindowControlImpl.cpp
- remove functionality now located in NativeEventThread and
NativeBrowserControl.
M webclient/src_moz/WrapperFactoryImpl.cpp
- flesh out native{Create,Destroy}BrowserControl.
M webclient/src_moz/ns_globals.h
- remove gActionQueue and gEmbeddedThread. Moved into class
NativeBrowserControl.
M webclient/src_moz/ns_util.cpp
- rename initContext to NativeBrowserControl
- get action queue from NativeBrowserControl
M webclient/src_moz/ns_util.h
- remove WebShellInitContext! It's finally a class now, called
NativeBrowserControl.
M webclient/test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImplTest.java
- added new testcase to show create/deleteBrowserControl works.
git-svn-id: svn://10.0.0.236/trunk@154679 18797224-902f-48f8-a5cc-f745e15eee43
be WindowControl, and now it's BrowserControl. I'm hoping this allows
us to operate Webclient in a "headless" fashion. For example, you can
imagine a web-crawler app that leverages DOM.
A test/automated/src/test/NavigationTest.txt
- fodder for testcase
M build-tests.xml
- reformat
- add NavigationTest (fails)
M classes_spec/org/mozilla/webclient/ImplObject.java
- Refactoring: remove public ivars. Make them private, provide
accessor.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/ImplObjectNative.java
- Refactoring: remove public ivars. Make them private, provide
accessor.
- Remove dependence on WindowControl
- leverage new method on WrapperFactory: getNativeBrowserControl().
M classes_spec/org/mozilla/webclient/impl/BrowserControlImpl.java
- Make BrowserControlImpl the owner of the nativeWebShell pointer. I'd
like to see if it's possible for webclient to operate "headless" for
certain applications, therefore, you may not have a WindowControl
instance, which used to own the nativeWebShell pointer.
M classes_spec/org/mozilla/webclient/impl/WrapperFactory.java
- reformatting
- Software Practice: avoid downcasting to implementation class. Since BrowserControlImpl is the owner of the nativeWebShell, but there
is no mention of that in the public API, we modify the WrapperFactory
contract to maintain a data structure of BrowserControl to
nativeWebShell mappings.
- add native{Create,Destroy}BrowserControl(), which is called from
ImplObjectNative.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/BookmarksImpl.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/HistoryImpl.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/NavigationImpl.java
- refactoring for removing public ivars.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java
- refactoring for removing public ivars.
- comment out nativeCreateInitContext temporarily
M classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
- implement new methods:
- add native{Create,Destroy}BrowserControl(), which is called from
ImplObjectNative.
M classes_spec/org/mozilla/webclient/wrapper_nonnative/WrapperFactoryImpl.java
- remove vertigo test
M src_moz/ProfileManagerImpl.cpp
- shutdown the current profile
M src_moz/WrapperFactoryImpl.cpp
- Spinup and Spindown the Appshell
A test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
- new test
M test/automated/src/test/BrowserControlFactoryTest_correct
- new test content
git-svn-id: svn://10.0.0.236/trunk@153571 18797224-902f-48f8-a5cc-f745e15eee43
successfully. We are now ready to continue with webclient 2.0
development.
M build-tests.xml
- formatting
M build.xml
- added target that skips the "main" dependency.
M src_moz/ProfileManagerImpl.cpp
- correct error messages
M test/automated/src/classes/org/mozilla/webclient/ProfileManagerTest.java
- reset the system to the original profile before deleting the new one.
git-svn-id: svn://10.0.0.236/trunk@153268 18797224-902f-48f8-a5cc-f745e15eee43
M README
- update instructions for building and running source and unit tests
M build.properties.sample
- you need junit.jar
M webclient/build-tests.xml
- reformat
M webclient/build.xml
- add "prepare" target to set the PATH_SEP
M webclient/src_ie/BookmarksImpl.cpp
M webclient/src_ie/CurrentPageImpl.cpp
M webclient/src_ie/HistoryImpl.cpp
- Account for new javah header names
M webclient/src_moz/Makefile.in
- account for new location of jawt.lib in J2SDK 1.4.2
M webclient/src_moz/NativeEventThread.cpp
+#include "nsEmbedAPI.h" // for NS_HandleEmbeddingEvent
M webclient/src_moz/NavigationActionEvents.cpp
- result is an nsIInputStream
M webclient/src_moz/WrapperFactoryImpl.cpp
+#include <nsDependentString.h> // for nsDependentCString
and the compile is more strict now.
M webclient/src_moz/dom_util.cpp
- signature change
git-svn-id: svn://10.0.0.236/trunk@153091 18797224-902f-48f8-a5cc-f745e15eee43
doesn't run, but several unit tests for webclient do.
I'll be proceeding through the rest of the webclient interfaces,
building junit tests as I go, in the coming months. I hope to flesh out
the basic framework, then publish build instructions, and hopefully I
can get some contributions from the community.
M util/classes/org/mozilla/util/Utilities.java
new method: getImplFromServices:
+ *
+ * <p>This method tries to load the resource
+ * <code>META-INF/services/>interfaceClassName></code>, where
+ * <code>>interfaceClassName<</code> is the argument to this
+ * method. If the resource is found, interpret it as a
+ * <code>Properties</code> file and read out its first line.
+ * Interpret the first line as the fully qualified class name of a
+ * class that implements <code></code>. The named class must have a
+ * public no-arg constructor.</p>
M webclient/build-tests.xml
- junit testcases for Webclient APIs, developed using test-first.
M webclient/build.xml
- changes for new package name structure:
packages org.mozilla.webclient.{wrapper_native, wrapper_non_native} have gone away. Replaced with org.mozilla.webclient.impl.{wrapper_native, wrapper_non_native}
- changes to accomodate "Services" based approach for pluggable
webclient implementation.
- don't bother re-naming the javah generated files, just let javah pick
the names.
- pass debugging args from build.properties
- changed name of junit test target to "test".
M webclient/classes_spec/org/mozilla/webclient/BrowserControl.java
- got rid of BROWSER_TYPE. No longer necessary due to the new
pluggability mechanism.
M webclient/classes_spec/org/mozilla/webclient/BrowserControlFactory.java
- Leverage the org.mozilla.util.Utilities.getImplFromServices()
mechanism to allow a vendor-pluggable webclient implementation of the
new "WebclientFactory" interface, which is method for method
compatible with BrowserControlFactory. Make all BrowserControlFactory
methods call through to methods on the vendor provided
WebclientFactory implementation.
R webclient/classes_spec/org/mozilla/webclient/BrowserControlFactoryInterface.java
A webclient/classes_spec/org/mozilla/webclient/BrowserControlICE.java
R webclient/classes_spec/org/mozilla/webclient/BrowserControlImpl.java
R webclient/classes_spec/org/mozilla/webclient/BrowserType.java
- move all implementation specific classe to the impl package.
M webclient/classes_spec/org/mozilla/webclient/ImplObject.java
- ImplObject shouldn't depend on vendor private classes.
M webclient/classes_spec/org/mozilla/webclient/Preferences.java
- new method
+ public void unregisterPrefChangedCallback(PrefChangedCallback cb,
+ String prefName, Object closure);
M webclient/classes_spec/org/mozilla/webclient/ProfileManager.java
- properly specify this interface.
A webclient/classes_spec/org/mozilla/webclient/WebclientFactory.java
* <p>This interface allows a pluggable webclient API implementation.
* The static methods in {@link BrowserControlFactory} call through to
* methods on this interface. Please see {@link BrowserControlFactory}
* for information on how to hook up your <code>WebclientFactory</code>
* implementation to the <code>BrowserControlFactory</code></p>
R webclient/classes_spec/org/mozilla/webclient/WrapperFactory.java
R webclient/classes_spec/org/mozilla/webclient/impl/BrowserControlFactoryImpl.java
- moved these to the impl class
A webclient/classes_spec/org/mozilla/webclient/impl/BrowserControlImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/Service.java
A webclient/classes_spec/org/mozilla/webclient/impl/WebclientFactoryImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/WrapperFactory.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/BookmarkEntryImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/BookmarksImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/HistoryImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/ISupportsPeer.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/ImplObjectNative.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeEventThread.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NavigationImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/PreferencesImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/ProfileManagerImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/RDFEnumeration.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/RDFTreeNode.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/SelectionImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WCEventListenerWrapper.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WCMouseListenerImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/gtk/GtkBrowserControlCanvas.java
A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/win32/Win32BrowserControlCanvas.java
- copied from old package naming scheme.
- lots and lots of cleanup.
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/BookmarkEntryImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/BookmarksImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/CurrentPageImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/EventRegistrationImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/HistoryImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/ISupportsPeer.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/ImplObjectNative.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/NativeEventThread.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/NavigationImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/PreferencesImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/ProfileManagerImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/RDFEnumeration.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/RDFTreeNode.java
A webclient/classes_spec/org/mozilla/webclient/wrapper_native/README
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/SelectionImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/WCEventListenerWrapper.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/WCMouseListenerImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/WindowControlImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/WrapperFactoryImpl.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/gtk/GtkBrowserControlCanvas.java
R webclient/classes_spec/org/mozilla/webclient/wrapper_native/win32/Win32BrowserControlCanvas.java
- removed from old package naming scheme
M webclient/src_moz/BookmarksImpl.cpp
- remove dependency on RDFActionEvents by inlining all the code that
formerly was in the events.
- package name change
- JNI include file name change
M webclient/src_moz/CurrentPageImpl.cpp
M webclient/src_moz/HistoryImpl.cpp
M webclient/src_moz/ISupportsPeer.cpp
- package name change
- JNI include file name change
M webclient/src_moz/Makefile.in
- get rid of PreferencesActionEvents.cpp and RDFActionEvents.cpp
- add ProfileManagerImpl.cpp
M webclient/src_moz/NativeEventThread.cpp
- this file is not done yet. I've been pulling misplaced initialization
stuff out of here and putting it into WrapperFactoryImpl.cpp.
- got rid of gComponentManager, since we can use do_CreateInstance
instead.
- package name change
- JNI include file name change
M webclient/src_moz/NativeEventThreadActionEvents.h
- JNI include file name change
M webclient/src_moz/NavigationImpl.cpp
- package name change
- JNI include file name change
R webclient/src_moz/PreferencesActionEvents.cpp
R webclient/src_moz/PreferencesActionEvents.h
- don't need these anymore! woohoo!
M webclient/src_moz/PreferencesImpl.cpp
- remove dependency on PreferencesActionEvents by inlining code into the
methods that used to use the events.
A webclient/src_moz/ProfileManagerImpl.cpp
- new class, implementation of the ProfileManager interface.
M webclient/src_moz/PromptActionEvents.cpp
- change erroneous comment so my grep performed correctly.
R webclient/src_moz/RDFActionEvents.cpp
R webclient/src_moz/RDFActionEvents.h
- don't need these anymore! woohoo!
M webclient/src_moz/RDFEnumeration.cpp
M webclient/src_moz/RDFTreeNode.cpp
- remove dependency on RDFActionEvents by inlining code into the
methods that used to use the events.
M webclient/src_moz/WindowControlActionEvents.cpp
- deallocate shareInitiContext.
M webclient/src_moz/WindowControlImpl.cpp
- package name change
- JNI include file name change
- remove the "sleep so I can attach gdb" code. Moved to
WrapperFactoryImpl.cpp.
M webclient/src_moz/WrapperFactoryImpl.cpp
- lots of changes. This is now where the app initialization and
shutdown happens,
M webclient/src_moz/dom_util.cpp
- comment change
M webclient/src_moz/ns_globals.h
- get rid of inappropriate global usage.
M webclient/src_moz/ns_util.h
- new struct WebclientContext for singletons.
M webclient/src_moz/rdf_util.cpp
- new methods, rdf_startup and rdf_shutdown.
- replace calls to nsComponentManager::CreateInstance() with
do_CreateInstance().
M webclient/src_moz/rdf_util.h
- new methods, rdf_startup and rdf_shutdown.
M webclient/src_moz/gtk/GtkBrowserControlCanvas.cpp
- package name change
- JNI include file name change
M webclient/src_moz/gtk/GtkBrowserControlCanvasStub.cpp
- package name change
- JNI include file name change
- this file isn't needed anymore, thankfully! I'll remove it soon.
M webclient/src_moz/gtk/StubFunctions.h
- package name change
- JNI include file name change
- this file isn't needed anymore, thankfully! I'll remove it soon.
M webclient/src_moz/motif/BrowserControlNativeShimStub.cpp
M webclient/src_moz/motif/MotifBrowserControlCanvas.cpp
M webclient/src_moz/motif/MotifBrowserControlCanvasStub.cpp
M webclient/src_moz/motif/NativeLoaderStub.cpp
M webclient/src_moz/win32/Win32BrowserControlCanvas.cpp
- package name change
- JNI include file name change
M webclient/src_share/jni_util.cpp
M webclient/src_share/jni_util.h
- util_InitializeShareInitContext() takes a JNIEnv *.
- new methods
+void util_DeleteGlobalRef(JNIEnv *env, jobject toDeleteRef);
+void util_DeleteLocalRef(JNIEnv *env, jobject toDeleteRef);
+void util_getSystemProperty(JNIEnv *env,
+ const char *propName,
+ char *propValue,
+ jint propValueLen);
M webclient/src_share/jni_util_export.cpp
M webclient/src_share/jni_util_export.h
+JNIEXPORT jobjectArray util_GetJstringArrayFromJcharArray(JNIEnv *env,
+ jint len,
+ jchar **strings,
+ jint *stringLengths)
A webclient/test/automated/src/classes/org/mozilla/webclient/BookmarksTest.java
R webclient/test/automated/src/classes/org/mozilla/webclient/BrowserControlFactoryTest.java
A webclient/test/automated/src/classes/org/mozilla/webclient/PreferencesTest.java
A webclient/test/automated/src/classes/org/mozilla/webclient/ProfileManagerTest.java
A webclient/test/automated/src/classes/org/mozilla/webclient/impl/WebclientFactoryImplTest.java
A webclient/test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImplTest.java
A webclient/test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/gtk/TestGtkBrowserControlCanvas.java
R webclient/test/automated/src/classes/org/mozilla/webclient/wrapper_native/gtk/TestGtkBrowserControlCanvas.java
A webclient/test/automated/src/test/BrowserControlFactoryTest_correct
- junit tests! TEST FIRST!
git-svn-id: svn://10.0.0.236/trunk@147393 18797224-902f-48f8-a5cc-f745e15eee43