This checkin enables the StartDocumentLoadEvent. Now adding the rest of
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
This commit is contained in:
@@ -338,15 +338,14 @@ void util_ThrowExceptionToJava (JNIEnv * env, const char * message)
|
||||
}
|
||||
} // ThrowExceptionToJava()
|
||||
|
||||
void util_SendEventToJava(JNIEnv *yourEnv, jobject nativeEventThread,
|
||||
jobject webclientEventListener,
|
||||
void util_SendEventToJava(JNIEnv *yourEnv, jobject eventRegistrationImpl,
|
||||
jstring eventListenerClassName,
|
||||
jlong eventType, jobject eventData)
|
||||
{
|
||||
#ifdef BAL_INTERFACE
|
||||
if (nsnull != externalEventOccurred) {
|
||||
externalEventOccurred(yourEnv, nativeEventThread,
|
||||
webclientEventListener, eventType, eventData);
|
||||
externalEventOccurred(yourEnv, eventRegistrationImpl,
|
||||
eventType, eventData);
|
||||
}
|
||||
#else
|
||||
if (nsnull == gVm) {
|
||||
@@ -365,11 +364,11 @@ void util_SendEventToJava(JNIEnv *yourEnv, jobject nativeEventThread,
|
||||
env->ExceptionDescribe();
|
||||
}
|
||||
|
||||
jclass clazz = env->GetObjectClass(nativeEventThread);
|
||||
jclass clazz = env->GetObjectClass(eventRegistrationImpl);
|
||||
jmethodID mid = env->GetMethodID(clazz, "nativeEventOccurred",
|
||||
"(Lorg/mozilla/webclient/WebclientEventListener;Ljava/lang/String;JLjava/lang/Object;)V");
|
||||
"(Ljava/lang/String;JLjava/lang/Object;)V");
|
||||
if ( mid != nsnull) {
|
||||
env->CallVoidMethod(nativeEventThread, mid, webclientEventListener,
|
||||
env->CallVoidMethod(eventRegistrationImpl, mid,
|
||||
eventListenerClassName,
|
||||
eventType, eventData);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user