summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/bridge/jni/v8/JavaInstanceJobjectV8.cpp
diff options
context:
space:
mode:
authorSelim Gurun <sgurun@google.com>2012-09-04 16:31:02 -0700
committerSelim Gurun <sgurun@google.com>2012-09-10 16:39:35 -0700
commitf2d8c5bed31609d7d6e3ae77f33e90ea7f888eb3 (patch)
treef0eaf8dc0c087e6961ef36fc9250bdda15ee17f5 /Source/WebCore/bridge/jni/v8/JavaInstanceJobjectV8.cpp
parent61df0147f508e20bd22fab568b7c8b3c405cfad5 (diff)
downloadexternal_webkit-f2d8c5bed31609d7d6e3ae77f33e90ea7f888eb3.zip
external_webkit-f2d8c5bed31609d7d6e3ae77f33e90ea7f888eb3.tar.gz
external_webkit-f2d8c5bed31609d7d6e3ae77f33e90ea7f888eb3.tar.bz2
Control access to inherited methods of jsinterface objects
Bug: 7073422 Use a flag and annotation for allowing access to inherited methods of jsinterface objects. When flag is false, no annotation is needed. When flag is true, annotation is needed for allowing access to inherited methods. Change-Id: I610119dc5410d8df1962fa9dbea09866f81d374c
Diffstat (limited to 'Source/WebCore/bridge/jni/v8/JavaInstanceJobjectV8.cpp')
-rw-r--r--Source/WebCore/bridge/jni/v8/JavaInstanceJobjectV8.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/Source/WebCore/bridge/jni/v8/JavaInstanceJobjectV8.cpp b/Source/WebCore/bridge/jni/v8/JavaInstanceJobjectV8.cpp
index e7b854d..c97a67f 100644
--- a/Source/WebCore/bridge/jni/v8/JavaInstanceJobjectV8.cpp
+++ b/Source/WebCore/bridge/jni/v8/JavaInstanceJobjectV8.cpp
@@ -41,8 +41,15 @@
using namespace JSC::Bindings;
+#if PLATFORM(ANDROID)
+JavaInstanceJobject::JavaInstanceJobject(jobject instance, bool requireAnnotation)
+#else
JavaInstanceJobject::JavaInstanceJobject(jobject instance)
+#endif
: m_instance(new JobjectWrapper(instance))
+#if PLATFORM(ANDROID)
+ , m_requireAnnotation(requireAnnotation)
+#endif
{
}
@@ -61,7 +68,11 @@ void JavaInstanceJobject::end()
JavaClass* JavaInstanceJobject::getClass() const
{
if (!m_class)
+#if PLATFORM(ANDROID)
+ m_class = adoptPtr(new JavaClassJobject(javaInstance(), m_requireAnnotation));
+#else
m_class = adoptPtr(new JavaClassJobject(javaInstance()));
+#endif
return m_class.get();
}
@@ -86,7 +97,7 @@ JavaValue JavaInstanceJobject::invokeMethod(const JavaMethod* method, JavaValue*
return JavaValue();
}
- return jvalueToJavaValue(result, method->returnType());
+ return jvalueToJavaValue(result, method->returnType(), m_requireAnnotation);
// END ANDROID
}
@@ -113,7 +124,11 @@ JavaValue JavaInstanceJobject::getField(const JavaField* field)
appendClassName(signature, field->typeClassName());
signature.append(';');
}
+#if PLATFORM(ANDROID)
+ return jvalueToJavaValue(getJNIField(javaInstance(), field->type(), field->name().utf8().data(), signature.toString().utf8().data()), field->type(), m_requireAnnotation);
+#else
return jvalueToJavaValue(getJNIField(javaInstance(), field->type(), field->name().utf8().data(), signature.toString().utf8().data()), field->type());
+#endif
}
#endif // ENABLE(JAVA_BRIDGE)