The Preferences unit test currently fails, but the test browser runs.
Next step is to make all the unit tests run, then produce the source and
binary distribution for 2.0 alpha 2.
M dom/jni/javaDOMEventsGlobals.cpp
- use nsString.get() instead of nsString.GetBufferHandle()
M webclient/src_moz/NavigationActionEvents.cpp
- don't use ctor initializer for nsString
M webclient/src_moz/ns_util.cpp
- nsString2.h is gone.
git-svn-id: svn://10.0.0.236/trunk@162977 18797224-902f-48f8-a5cc-f745e15eee43
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.
git-svn-id: svn://10.0.0.236/trunk@155640 18797224-902f-48f8-a5cc-f745e15eee43
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.
git-svn-id: svn://10.0.0.236/trunk@154953 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
Changes to make webclient compile and minimally run with
Netscape 6.2.1.
git-svn-id: svn://10.0.0.236/trunk@112073 18797224-902f-48f8-a5cc-f745e15eee43
bug=47357
a=edburns
Files in this checkin
M src_moz/CBrowserContainer.cpp
M src_moz/CBrowserContainer.h
M src_moz/ns_util.cpp
M src_moz/ns_util.h
M src_share/jni_util.cpp
M src_share/jni_util.h
cvs diff -u src_moz/CBrowserContainer.cpp src_moz/CBrowserContainer.h src_moz/ns_util.cpp src_moz/ns_util.h src_share/jni_util.cpp src_share/jni_util.h
This change moves out listener constants and other support data from
src_moz into src_share to enable it to be used in src_ie.
tar -cvf 47357.tar src_moz/CBrowserContainer.cpp src_moz/CBrowserContainer.h src_moz/ns_util.cpp src_moz/ns_util.h src_share/jni_util.cpp src_share/jni_util.h
git-svn-id: svn://10.0.0.236/trunk@76567 18797224-902f-48f8-a5cc-f745e15eee43
r=ashuk
bug=47357
M classes_spec/org/mozilla/webclient/wrapper_native/NativeEventThread.java
M src_moz/CBrowserContainer.cpp
M src_moz/NativeEventThread.cpp
M src_moz/ns_util.cpp
M src_moz/ns_util.h
M src_share/jni_util.cpp
M src_share/jni_util.h
tar -cvf 47357.2.tar classes_spec/org/mozilla/webclient/wrapper_native/NativeEventThread.java src_moz/CBrowserContainer.cpp src_moz/NativeEventThread.cpp src_moz/ns_util.cpp src_moz/ns_util.h src_share/jni_util.cpp src_share/jni_util.h
cvs diff -u classes_spec/org/mozilla/webclient/wrapper_native/NativeEventThread.java src_moz/CBrowserContainer.cpp src_moz/NativeEventThread.cpp src_moz/ns_util.cpp src_moz/ns_util.h src_share/jni_util.cpp src_share/jni_util.h
This change modifes what one has to do on the native side to add a
listener.
* How to create a new listener type on the native side: <P>
* 1. add an entry in the gSupportedListenerInterfaces array defined in
* ns_util.cpp <P>
* 2. add a corresponding entry in the LISTENER_CLASSES enum in
* ns_util.h <P>
* 3. add a jstring to the string constant list in
* CBrowserContainer.cpp, below.
* 4. Initialize this jstring constant in CBrowserContainer.cpp
* initStringConstants() <P>
* 5. add an entry to the switch statement in NativeEventThread.cpp
* native{add,remove}Listener <P>
You have to clobber_all in webclient after this change.
git-svn-id: svn://10.0.0.236/trunk@76019 18797224-902f-48f8-a5cc-f745e15eee43
a=edburns
r=ashuk
This change creates a new directory, java/webclient/src_share, that
contains the code that will be used in both src_moz and src_ie, and any
other native browser wrapping implementations.
Here are the steps I followed to implement this change.
1. Create a new directory java/webclient/src_share
2. Move all jni_util*.* files from src_moz into src_share
3. Make it so src_share compiles into a new .lib
src_share has no netscape dependencies. Any functionality that
depended on ns dependencies was kept in src_moz. In this case, we
have a function prototype only in src_share, with the implementation
in src_moz. We did this for nsHashtable. The other trick was for
things in WebShellInitContext that had nothing to do with Netscape.
This case was accomodated by creating a new struct, ShareInitContext,
that contains all WebShellInitContext members that have nothing to do
with Netscape. Currently this is just jobject propertiesClass. I
modified the WebShellInitContext struct to contain a ShareContext
struct as its last member. There are two new methods in jni_util.h
that allow for the initialization and deallocation of the members of
the ShareContext struct.
4. Make it so src_moz uses the new .lib to provide the jni_util behavior
a. Create ns_util* files that include ../src_share/jni_util* files
appropriately.
The only tricky part was for things in jni_util.h that
Here's the list of files in this change.
cvs -z3 -n update (in directory D:\Projects\mozilla\java\webclient)
cvs server: Updating .
M Makefile.win // added src_share to DIRS
M src_moz/BookmarksImpl.cpp // include ns_util instead of jni_util
M src_moz/CBrowserContainer.cpp // include ns_util instead of jni_util
M src_moz/CBrowserContainer.h // include ns_util instead of jni_util
M src_moz/CurrentPageImpl.cpp // include ns_util instead of jni_util
M src_moz/HistoryImpl.cpp // include ns_util instead of jni_util
M src_moz/Makefile.win // include ns_util instead of jni_util
M src_moz/NativeEventThread.cpp // include ns_util instead of jni_util
M src_moz/NavigationImpl.cpp // include ns_util instead of jni_util
M src_moz/RDFEnumeration.cpp // include ns_util instead of jni_util
M src_moz/RDFTreeNode.cpp // include ns_util instead of jni_util
M src_moz/WindowControlImpl.cpp // include ns_util instead of jni_util
// also use new util_InitShareContext
// function
M src_moz/WrapperFactoryImpl.cpp // include ns_util instead of jni_util
R src_moz/jni_util.cpp // moved to ../src_share
R src_moz/jni_util.h // moved to ../src_share
R src_moz/jni_util_export.cpp // moved to ../src_share
R src_moz/jni_util_export.h // moved to ../src_share
M src_moz/nsActions.cpp // include ns_util instead of jni_util
// also use new
util_DeallocateShareContext
M src_moz/nsActions.h // include ns_util instead of jni_util
A src_moz/ns_util.cpp // include jni_util.h
A src_moz/ns_util.h // include jni_util.h, changes to
// WebshellInitContext struct
A src_moz/ns_util_export.cpp // provide impls for methods in
// jni_util_export.h
A src_share/Makefile.win
A src_share/bal_util.cpp
A src_share/bal_util.h
A src_share/jni_util.cpp
A src_share/jni_util.h
A src_share/jni_util_export.cpp
A src_share/jni_util_export.h
*****CVS exited normally with code 0*****
git-svn-id: svn://10.0.0.236/trunk@75504 18797224-902f-48f8-a5cc-f745e15eee43