bug 728614 - Refactor viewport implementation to remove js parts of the implementation r=dougt
This commit is contained in:
@@ -76,6 +76,8 @@ jfieldID AndroidGeckoEvent::jLocationField = 0;
|
||||
jfieldID AndroidGeckoEvent::jAddressField = 0;
|
||||
jfieldID AndroidGeckoEvent::jBandwidthField = 0;
|
||||
jfieldID AndroidGeckoEvent::jCanBeMeteredField = 0;
|
||||
jfieldID AndroidGeckoEvent::jTabIdField = 0;
|
||||
jmethodID AndroidGeckoEvent::jDoCallbackMethod = 0;
|
||||
|
||||
jclass AndroidPoint::jPointClass = 0;
|
||||
jfieldID AndroidPoint::jXField = 0;
|
||||
@@ -208,6 +210,9 @@ AndroidGeckoEvent::InitGeckoEventClass(JNIEnv *jEnv)
|
||||
jAddressField = getField("mAddress", "Landroid/location/Address;");
|
||||
jBandwidthField = getField("mBandwidth", "D");
|
||||
jCanBeMeteredField = getField("mCanBeMetered", "Z");
|
||||
|
||||
jTabIdField = getField("mTabId", "I");
|
||||
jDoCallbackMethod = getMethod("doCallback", "(Ljava/lang/String;)V");
|
||||
}
|
||||
|
||||
void
|
||||
@@ -495,6 +500,16 @@ AndroidGeckoEvent::Init(int aType, nsIntRect const& aRect)
|
||||
mRect = aRect;
|
||||
}
|
||||
|
||||
AndroidGeckoEvent::~AndroidGeckoEvent() {
|
||||
if (!wrapped_obj)
|
||||
return;
|
||||
|
||||
JNIEnv *jenv = GetJNIForThread();
|
||||
if (!jenv)
|
||||
return;
|
||||
jenv->DeleteGlobalRef(wrapped_obj);
|
||||
}
|
||||
|
||||
void
|
||||
AndroidGeckoEvent::Init(JNIEnv *jenv, jobject jobj)
|
||||
{
|
||||
@@ -505,6 +520,8 @@ AndroidGeckoEvent::Init(JNIEnv *jenv, jobject jobj)
|
||||
if (!jobj)
|
||||
return;
|
||||
|
||||
jenv->NewGlobalRef(jobj);
|
||||
|
||||
mAction = jenv->GetIntField(jobj, jActionField);
|
||||
mType = jenv->GetIntField(jobj, jTypeField);
|
||||
|
||||
@@ -585,6 +602,10 @@ AndroidGeckoEvent::Init(JNIEnv *jenv, jobject jobj)
|
||||
break;
|
||||
}
|
||||
|
||||
case META_VIEWPORT_QUERY:
|
||||
mTabId = jenv->GetIntField(jobj, jTabIdField);
|
||||
break;
|
||||
|
||||
case VIEWPORT:
|
||||
case BROADCAST: {
|
||||
ReadCharactersField(jenv);
|
||||
@@ -665,6 +686,15 @@ AndroidPoint::Init(JNIEnv *jenv, jobject jobj)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
AndroidGeckoEvent::DoCallback(const nsAString& data) {
|
||||
JNIEnv* env = AndroidBridge::GetJNIEnv();
|
||||
if (!env)
|
||||
return;
|
||||
jstring jData = env->NewString(nsPromiseFlatString(data).get(), data.Length());
|
||||
env->CallVoidMethod(wrapped_obj, jDoCallbackMethod, jData);
|
||||
}
|
||||
|
||||
void
|
||||
AndroidGeckoGLLayerClient::Init(jobject jobj)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user