This checkin has the basic functionality of NewWindowListener
re-implemented using the new event model. It's a bit cleaner.
Next step is to uncomment the selection check at the end of
WindowCreatorTest.java. This code currently causes the VM to crash. I
also plan to do some testing on the chrome flags.
M classes_spec/org/mozilla/webclient/EventRegistration2.java
- deprecate {add,remove}NewWindowListener(), replace with
setNewWindowListener().
M classes_spec/org/mozilla/webclient/NewWindowEvent.java
- added BrowserControl property, which the user sets into the event.
M classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
- change newWindowListeners List ivar to newWindowListener ivar.
- fix {add,remove}NewWindowListener() to leverage setNewWindowListener()
- change nativeEventOccurred() to return an int instead of void.
- add boolean property nativeSetNewWindowListenerAttached()
M classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeEventThread.java
- modify pushBlockingWCRunnable() to execute the runnable right away if
we're already on the NativeEventThread. This is necessary to allow
re-entrancy.
M src_moz/EmbedEventListener.cpp
M src_moz/EmbedEventListener.h
- expose the mEventRegistration ivar via a getter.
M src_moz/EventRegistrationImpl.cpp
M src_moz/NativeBrowserControl.cpp
M src_moz/NativeBrowserControl.h
- add nativeSetNewWindowListenerAttached(), which calls through and sets
it on the NativeBrowserControl.
M src_moz/WindowCreator.cpp
- implement CreateChromeWindow2, which is called when the browser needs
a new window.
M src_share/jni_util.cpp
M src_share/jni_util.h
- change util_SendEventToJava() to return int.
M test/automated/src/classes/org/mozilla/webclient/WindowCreatorTest.java
git-svn-id: svn://10.0.0.236/trunk@167943 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -60,6 +60,7 @@ NativeBrowserControl::NativeBrowserControl(void)
|
||||
mChromeLoaded = PR_FALSE;
|
||||
mIsDestroyed = PR_FALSE;
|
||||
mListenersAttached = PR_FALSE;
|
||||
mNewWindowListenerAttached = PR_FALSE;
|
||||
}
|
||||
|
||||
NativeBrowserControl::~NativeBrowserControl()
|
||||
@@ -344,8 +345,25 @@ NativeBrowserControl::ContentStateChange(void)
|
||||
|
||||
AttachListeners();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
nsresult
|
||||
NativeBrowserControl::SetNewWindowListenerAttached(PRBool newState)
|
||||
{
|
||||
mNewWindowListenerAttached = newState;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
NativeBrowserControl::GetNewWindowListenerAttached(PRBool *_retval) {
|
||||
nsresult result = NS_ERROR_NULL_POINTER;
|
||||
if (nsnull != _retval) {
|
||||
*_retval = mNewWindowListenerAttached;
|
||||
result = NS_OK;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void
|
||||
NativeBrowserControl::GetListener()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user