version 1.9 of InputStreamShim.cpp didn't correctly implement
QueryInterface. Fixing that allowed me to discover that the system
wants to call ::ReadSegments, so I had to implement that. Now the
RandomHTMLInputStream case works, but the garden variety FileInputStream
case does not. Since the FileInputStream case is generally easier to
debug, I'll check in what I have now and continue with this last case
tomorrow.
M src_moz/InputStreamShim.cpp
M src_moz/InputStreamShim.h
- made this correctly implement nsIAsyncInputStream.
M test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
- comment out the FileInputStream case.
least in the case of a FileInputStream. I still can't get the
RandomHTMLInputStream to work. I'm still waiting on a response from
Darin Fisher on that one.
M build-tests.xml
- comment in all tests
M classes_spec/org/mozilla/webclient/Navigation2.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/NavigationImpl.java
- add loadFromStreamBlocking, until we have DocumentLoadListener working
M src_moz/InputStreamShim.cpp
M src_moz/InputStreamShim.h
- rollback the nsIAsyncInputStream changes.
M test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
- test from a FileInputStream
M test/automated/src/classes/org/mozilla/webclient/RandomHTMLInputStream.java
- Allow notification when read completes.
- comment in all tests
M classes_spec/org/mozilla/webclient/Navigation2.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/NavigationImpl.java
- add loadFromStreamBlocking, until we have DocumentLoadListener working
M src_moz/InputStreamShim.cpp
M src_moz/InputStreamShim.h
- rollback the nsIAsyncInputStream changes.
M test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
- test from a FileInputStream
M test/automated/src/classes/org/mozilla/webclient/RandomHTMLInputStream.java
- Allow notification when read completes.
only able to load the first burst from the RandomHTMLInputStream,
because for some reason the native stream is getting closed prematurely.
Need to investigate more.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/NavigationImpl.java
- remove loadFromStreamBlocking. No point in implementing this since
the loadFromStream() impl is inherently multi-threaded.
M src_moz/EmbedWindow.cpp
M src_moz/EmbedWindow.h
- expose LoadStream() method that wraps same on nsIDocShell.
M src_moz/InputStreamShim.cpp
- Do a lock around our buffer deletion in or dtor.
M src_moz/Makefile.in
- activate nsActions and NavigationActionEvents
M src_moz/NavigationActionEvents.cpp
M src_moz/NavigationActionEvents.h
- comment out everything but wsLoadFromStreamEvent.
- fix it to work with the NativeBrowserControl.
M src_moz/NavigationImpl.cpp
- activate nativeLoadFromStream. This is the first *new* version method
to use the old native event queue.
M src_moz/ns_util.cpp
M src_moz/ns_util.h
- remove unused first arg from Post*Event methods.
M test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
- activate loadFromStream test.
M test/automated/src/classes/org/mozilla/webclient/RandomHTMLInputStream.java
- add a randomExceptions param to the ctor to enable or disable randomly
thrown exceptions.
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.
- rework exclusion patterns to prevent compilation of platform specific
classes
A classes_spec/org/mozilla/webclient/impl/wrapper_native/GtkBrowserControlCanvas.java
R classes_spec/org/mozilla/webclient/impl/wrapper_native/gtk/GtkBrowserControlCanvas.java
- moved GtkBrowserControlCanvas.java up one level, for access to package
private classes.
M src_moz/gtk/GtkBrowserControlCanvas.cpp
- package name changes
M test/automated/src/classes/org/mozilla/webclient/CompareFiles.java
- rework this logic to account for files that end in a different number
of ignorable conditions.
A test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/TestGtkBrowserControlCanvas.java
R test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/gtk/TestGtkBrowserControlCanvas.java
- moved this test up one level.
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
- 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
M classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/ImplObjectNative.java
- remove getNativeEventThread(). I've decided to expose the singleton
NativeEventThread instance via a package private class var.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/BookmarksImpl.java
- run the necessary native methods on the event thread to avoid thread
safety assertions.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeEventThread.java
- rename pushNotifyRunnable() to pushBlockingWCRunnable. Make it block
the caller until the argument WCRunnable has been run on the
NativeEventThread. Implement this by using wait/notify between
pushBlockingWCRunnable() and run().
- add package private NativeEventThread class variable.
- rename runnablesWithNotify ivar to blockingRunnables.
- remove the exception storage mechanism.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/NavigationImpl.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/PreferencesImpl.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/ProfileManagerImpl.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/RDFEnumeration.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
- levarage NativeEventThread.instance.pushBlockingWCRunnable().
A classes_spec/org/mozilla/webclient/impl/wrapper_native/WCRunnable.java
- Just like runnable, except return Object, not void.
M src_moz/PreferencesImpl.cpp
- remove unused automatic variable.
M webclient/src_moz/EmbedWindow.cpp
M webclient/src_moz/NativeWrapperFactory.cpp
M webclient/src_moz/gtk/Makefile.in
- fixes for building under GNU/Linux
runs, but nothing else does.
As you all probably already know, all mozilla API calls have to happen
on the same thread. For webclient, this will be the NativeEventThread.
This change-bundle does many many things, here are the main ones.
These changes are in concert with the checkin I just did to the diagram
at
<http://www.mozilla.org/projects/blackwood/webclient/design/20040306-webclient-2_0.zargo>.
M classes_spec/org/mozilla/webclient/impl/WrapperFactory.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
* <p>This class is the hub of the startup and shutdown sequence for
* Webclient. It is a singleton and owns references to other app
* singletons:</p>
*
* <ul>
* <li><p>{@link NativeEventThread}</p></li>
*
* <li><p>{@link Bookmarks}</p></li>
*
* <li><p>{@link Preferences}</p></li>
*
* <li><p>{@link ProfileManager}</p></li>
* <li><p>the native object singleton corresponding to this java
* object (if necessary)</p></li>
*
* </ul>
*
* <p>It maintains a set of {@link BrowserControlImpl} instances so that
* we may return the native pointer for each one.</p>
*
* <p>This class is responsible for creating and initializing and
* deleting {@link BrowserControlImpl} instances, as well as ensuring
* that the native counterpart is proprely maintained in kind.</p>
*
* <p>This class has a tight contract with {@link
* NativeEventThread}.</p>
- make BrowserControl creation and deletion part of this classes
responsibilities.
- introduce NativeWrapperFactory concept.
- own the one and only NativeEventThread.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeEventThread.java
- make this a singleton.
- remove dependencies on BrowserControl and nativeBrowserControl
* <p>This is a singleton class. All native events pass thru this class
* by virtue of the {@link #pushRunnable} or {@link pushNotifyRunnable}
* methods.</p>
- remove listener logic. This'll go into EventRegistration, where it
belongs.
A src_moz/NativeWrapperFactory.cpp
A src_moz/NativeWrapperFactory.h
- takes the place of the old WebclientContext
- is now a class
M classes_spec/org/mozilla/webclient/impl/BrowserControlImpl.java
- this no longer destroys the nativeBrowserControl. That is now done by
WrapperFactoryImpl.
M classes_spec/org/mozilla/webclient/impl/WebclientFactoryImpl.java
- no longer maintain browserControlCount.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/BookmarksImpl.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/NavigationImpl.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/PreferencesImpl.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/ProfileManagerImpl.java
- rename NativeContext to NativeWrapperFactory, to illustrate its
singletonness.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
- comment out a bunch of stuff in anticipation of the new threading
model, currently being fleshed out.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/ImplObjectNative.java
- NativeEventThread is singleton
M src_moz/BookmarksImpl.cpp
M src_moz/PreferencesImpl.cpp
M src_moz/ProfileManagerImpl.cpp
M src_moz/RDFEnumeration.cpp
M src_moz/RDFTreeNode.cpp
- rename WebclientContext to NativeWrapperFactory.
M src_moz/EmbedWindow.cpp
- mBaseWindow->Destroy();
+ if (mBaseWindow) {
+ mBaseWindow->Destroy();
+ }
M src_moz/Makefile.in
- Bring back NavigationImpl
- add NativeWrapperFactory.
M src_moz/NativeBrowserControl.cpp
M src_moz/NativeBrowserControl.h
- move event queue and java related stuff to NativeWrapperFactory. This
class is now essentially a copy of EmbedPrivate in GtkEmbed.
M src_moz/NativeEventThread.cpp
- remove methods, most of it has moved to
WrapperFactoryImpl/NativeWrapperFactory.
M src_moz/NavigationImpl.cpp
- comment out all methods but LoadURI.
M src_moz/WrapperFactoryImpl.cpp
- take functionality over from NativeEventThread.
M src_moz/ns_util.cpp
M src_moz/ns_util.h
- the eventQueue is owned by NativeWrapperFactory now.
M src_moz/rdf_util.cpp
M src_share/jni_util.cpp
- make all exceptions RuntimeExceptions, so they can be thrown from a
Runnable.
M test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImplTest.java
- comment out the meat of this test until I figure out how to test it.
M test/automated/src/test/BrowserControlFactoryTest_correct
- new content.
A src_moz/EmbedWindow.cpp
- copied from GtkEmbed, but modified for our purposes.
M src_moz/Makefile.in
- compile EmbedWindow
M src_moz/NativeBrowserControl.cpp
M src_moz/NativeBrowserControl.h
- hook EmbedWindow to our object hierarchy
- 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().
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.
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
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.
- remove log line that isn't guaranteed to be encountered
M test/automated/src/classes/org/mozilla/webclient/CompareFiles.java
- change "new" to "actual" and "old" to expected
- skip "WARNING:" lines in the expected file as well.
M test/automated/src/test/BrowserControlFactoryTest_correct
- remove log line that isn't guaranteed to be encountered.
still seeing non-ignorable differences in the golden file, which I
must address.
M README
- remove quotes from env vars
M webclient/src_moz/WrapperFactoryImpl.cpp
- make the native.waitForDebugger mechanism work on Win32.
M webclient/test/automated/src/classes/org/mozilla/webclient/CompareFiles.java
- Tweaks to optionally ignore WARNING: messages
- Tweaks to ignore lines containing keywords, such as nativeBinDir,
which changes from platform to platform and user to user
M webclient/test/automated/src/classes/org/mozilla/webclient/WebclientTestCase.java
- formatting
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
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!
Author: Ron Capelli
These changes make webclient run with Mozilla 1.4.
Summary of changes:
src_moz/rdf_util.cpp
reason: API change to RDFServiceImpl::GetResource()
src_moz/RDFActionEvents.cpp
reason: API change to RDFServiceImpl::GetUnicodeResource()
src_moz/wsRDFObserver.cpp
reason: member name changes to inherited nsIRDFObserver
src_moz/CBrowserContainer.cpp
reasons:
- replaced obsolete/deleted nsFileSpec.h with nsCRT.h
(to access only required/referenced function)
- added new SetBlurSuppression and GetBlurSuppression methods
required by change to inherited nsIBaseWindow (implementation
copied from mozilla/xpfe/appshell/src/nsXULWindow.cpp).
src_moz/CBrowserContainer.h
reason: added mBlurSuppressionLevel member variable for
SetBlurSuppression and GetBlurSuppression methods.
The changes were relatively straightforward to identify from errors
attempting to build with Mozilla 1.4. Testing so far indicates no
new problems have been introduced...
Author: Ron Capelli <capelli@acm.org>
The following files are updated to allow use of IBM Java 1.3.x
JVMs on Linux. Instead of statically linking libjawt.lib, the
code now dynamically links libjawt.so and then libawt.so only
if needed (similar to previous change for win32). It should
work on Solaris, but we couldn't test that here.
mozilla/java/webclient/src_moz/Makefile.in
mozilla/java/webclient/src_moz/gtk/GtkBrowserControlCanvas.cpp
The following files are changed to support the ant 'clean'
target for src_ie.
mozilla/java/webclient/build.xml
mozilla/java/webclient/src_ie/Makefile.in
The following files are changed to disable the CurrentPage(2)
interface for IE, since it will be a while before that can be
made to work. With these changes, IE embeds smoothly with
Navigation and History interfaces working nicely to some degree.
mozilla/java/webclient/src_ie/WrapperFactoryImpl.cpp
mozilla/java/webclient/classes_spec/org/mozilla/webclient/test/EMWindow.java
The following file is changed so that it does not depend on
Mozilla, allowing it to be shared cleanly for IE.
mozilla/java/webclient/src_moz/win32/Win32BrowserControlCanvas.cpp
The following file is changed to correct the list of makefiles
that need to be configured for Webclient.
mozilla/java/makefiles
Finally, please delete the following files from CVS.
mozilla/java/webclient/src_ie/build.xml
mozilla/java/webclient/src_ie/Makefile.win
- src_ie has no clobber, clobber_all, or clean target. Comment this out
for now.
M webclient/classes_spec/org/mozilla/webclient/Prompt.java
M webclient/classes_spec/org/mozilla/webclient/test/EMWindow.java
M webclient/classes_spec/org/mozilla/webclient/test/UniversalDialog.java
M webclient/src_moz/CBrowserContainer.cpp
M webclient/src_moz/CBrowserContainer.h
M webclient/src_moz/Makefile.in
M webclient/src_moz/NativeEventThread.cpp
M webclient/src_moz/NativeEventThreadActionEvents.cpp
M webclient/src_moz/PromptActionEvents.cpp
M webclient/src_moz/PromptActionEvents.h
M webclient/src_share/jni_util.cpp
M webclient/src_share/jni_util.h
- Roll back Kyle Yuan's 20030509 change for nsIPrompt, since it seems to
break events between the browser and the app.
R webclient/src_moz/PromptService.h
R webclient/classes_spec/org/mozilla/webclient/test/UniversalDialogData.java
R webclient/src_moz/AppComponents.cpp
R webclient/src_moz/AppComponents.h
R webclient/src_moz/PromptService.cpp
- These are new files that Kyle added.
r=edburns
SECTION: classes changes
M build.xml
- Removed spurious linebreak on Kyle's create.webclient.scripts.
M classes_spec/org/mozilla/webclient/BrowserControlCanvas.java
- Bugfix from Daniel Park
M classes_spec/org/mozilla/webclient/test/EMWindow.java
- Leverage new CurrentPage2 interface to display the Selection object.
M classes_spec/org/mozilla/webclient/wrapper_native/CurrentPageImpl.java
M classes_spec/org/mozilla/webclient/wrapper_nonnative/CurrentPageImpl.java
- Implement new methods from CurrentPage2.
M src_moz/CurrentPageActionEvents.cpp
M src_moz/CurrentPageActionEvents.h
M src_moz/CurrentPageImpl.cpp
M src_moz/gtk/GtkBrowserControlCanvasStub.cpp
M src_moz/gtk/StubFunctions.h
Native details for CurrentPage2.
SECTION: New files
A classes_spec/org/mozilla/webclient/Selection.java
A classes_spec/org/mozilla/webclient/CurrentPage2.java
A classes_spec/org/mozilla/webclient/wrapper_native/SelectionImpl.java