Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(370)

Unified Diff: content/browser/renderer_host/java/java_bound_object.cc

Issue 8726005: Fix an incorrect comment in the Java Bridge when calling array methods (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Clarifies existing comments Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/java/java_bound_object.cc
diff --git a/content/browser/renderer_host/java/java_bound_object.cc b/content/browser/renderer_host/java/java_bound_object.cc
index ff113d43513ed3f92143973a43e6a5d3d27c6cd1..2a48f608c2e3588284759f2d68e94ebbbf758452 100644
--- a/content/browser/renderer_host/java/java_bound_object.cc
+++ b/content/browser/renderer_host/java/java_bound_object.cc
@@ -100,16 +100,16 @@ bool JavaNPObject::Invoke(NPObject* np_object, NPIdentifier np_identifier,
bool JavaNPObject::HasProperty(NPObject* np_object,
NPIdentifier np_identifier) {
- // LIVECONNECT_COMPLIANCE: Return false to indicate that the property is not
- // present. We should support this correctly.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to return false to indicate
+ // that the property is not present. Spec requires supporting this correctly.
return false;
}
bool JavaNPObject::GetProperty(NPObject* np_object,
NPIdentifier np_identifier,
NPVariant* result) {
- // LIVECONNECT_COMPLIANCE: Return false to indicate that the property is
- // undefined. We should support this correctly.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to return false to indicate
+ // that the property is undefined. Spec requires supporting this correctly.
return false;
}
@@ -153,15 +153,17 @@ NPVariant CallJNIMethod(jobject object, JavaType::Type return_type,
VOID_TO_NPVARIANT(result);
break;
case JavaType::TypeArray:
- // TODO(steveblock): Handle arrays
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to not call methods that
+ // return arrays. Spec requires calling the method and converting the
+ // result to a JavaScript array.
VOID_TO_NPVARIANT(result);
break;
case JavaType::TypeString: {
ScopedJavaLocalRef<jstring> java_string(env, static_cast<jstring>(
env->CallObjectMethodA(object, id, parameters)));
if (!java_string.obj()) {
- // LIVECONNECT_COMPLIANCE: Return undefined to maintain existing
- // behavior. We should return a null string.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to return undefined.
+ // Spec requires returning a null string.
VOID_TO_NPVARIANT(result);
break;
}
@@ -203,8 +205,8 @@ jvalue CoerceJavaScriptNumberToJavaValue(const NPVariant& variant,
static_cast<jbyte>(NPVARIANT_TO_INT32(variant));
break;
case JavaType::TypeChar:
- // LIVECONNECT_COMPLIANCE: Convert double to 0 to maintain existing
- // behavior.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert double to 0.
+ // Spec requires converting doubles the same as int32.
result.c = is_double ? 0 :
static_cast<jchar>(NPVARIANT_TO_INT32(variant));
break;
@@ -229,8 +231,8 @@ jvalue CoerceJavaScriptNumberToJavaValue(const NPVariant& variant,
NPVARIANT_TO_INT32(variant);
break;
case JavaType::TypeObject:
- // LIVECONNECT_COMPLIANCE: Convert to null to maintain existing behavior.
- // We should handle object equivalents of primitive types.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to null. Spec
+ // requires handling object equivalents of primitive types.
result.l = NULL;
break;
case JavaType::TypeString:
@@ -240,13 +242,13 @@ jvalue CoerceJavaScriptNumberToJavaValue(const NPVariant& variant,
base::IntToString(NPVARIANT_TO_INT32(variant)));
break;
case JavaType::TypeBoolean:
- // LIVECONNECT_COMPLIANCE: Convert to false to maintain existing behavior.
- // We should convert to false for o or NaN, true otherwise.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to false. Spec
+ // requires converting to false for 0 or NaN, true otherwise.
result.z = JNI_FALSE;
break;
case JavaType::TypeArray:
- // LIVECONNECT_COMPLIANCE: Convert to null to maintain existing behavior.
- // We should raise a JavaScript exception.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to null. Spec
+ // requires raising a JavaScript exception.
result.l = NULL;
break;
case JavaType::TypeVoid:
@@ -268,8 +270,8 @@ jvalue CoerceJavaScriptBooleanToJavaValue(const NPVariant& variant,
result.z = boolean_value ? JNI_TRUE : JNI_FALSE;
break;
case JavaType::TypeObject:
- // LIVECONNECT_COMPLIANCE: Convert to NULL to maintain existing behavior.
- // We should handle java.lang.Boolean and java.lang.Object.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to NULL. Spec
+ // requires handling java.lang.Boolean and java.lang.Object.
result.l = NULL;
break;
case JavaType::TypeString:
@@ -283,15 +285,15 @@ jvalue CoerceJavaScriptBooleanToJavaValue(const NPVariant& variant,
case JavaType::TypeLong:
case JavaType::TypeFloat:
case JavaType::TypeDouble: {
- // LIVECONNECT_COMPLIANCE: Convert to 0 to maintain existing behavior. We
- // should convert to 0 or 1.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to 0. Spec
+ // requires converting to 0 or 1.
jvalue null_value = {0};
result = null_value;
break;
}
case JavaType::TypeArray:
- // LIVECONNECT_COMPLIANCE: Convert to NULL to maintain existing behavior.
- // We should raise a JavaScript exception.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to NULL. Spec
+ // requires raising a JavaScript exception.
result.l = NULL;
break;
case JavaType::TypeVoid:
@@ -315,8 +317,8 @@ jvalue CoerceJavaScriptStringToJavaValue(const NPVariant& variant,
NPVARIANT_TO_STRING(variant).UTF8Length));
break;
case JavaType::TypeObject:
- // LIVECONNECT_COMPLIANCE: Convert to NULL to maintain existing behavior.
- // We should handle java.lang.Object.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to NULL. Spec
+ // requires handling java.lang.Object.
result.l = NULL;
break;
case JavaType::TypeByte:
@@ -325,25 +327,25 @@ jvalue CoerceJavaScriptStringToJavaValue(const NPVariant& variant,
case JavaType::TypeLong:
case JavaType::TypeFloat:
case JavaType::TypeDouble: {
- // LIVECONNECT_COMPLIANCE: Convert to 0 to maintain existing behavior. we
- // should use valueOf() method of corresponding object type.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to 0. Spec
+ // requires using valueOf() method of corresponding object type.
jvalue null_value = {0};
result = null_value;
break;
}
case JavaType::TypeChar:
- // LIVECONNECT_COMPLIANCE: Convert to 0 to maintain existing behavior. we
- // should use java.lang.Short.decode().
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to 0. Spec
+ // requires using java.lang.Short.decode().
result.c = 0;
break;
case JavaType::TypeBoolean:
- // LIVECONNECT_COMPLIANCE: Convert to false to maintain existing behavior.
- // We should convert the empty string to false, otherwise true.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to false. Spec
+ // requires converting the empty string to false, otherwise true.
result.z = JNI_FALSE;
break;
case JavaType::TypeArray:
- // LIVECONNECT_COMPLIANCE: Convert to NULL to maintain existing behavior.
- // We should raise a JavaScript exception.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to NULL. Spec
+ // requires raising a JavaScript exception.
result.l = NULL;
break;
case JavaType::TypeVoid:
@@ -373,15 +375,15 @@ jvalue CoerceJavaScriptObjectToJavaValue(const NPVariant& variant,
jvalue result;
switch (target_type) {
case JavaType::TypeObject:
- // LIVECONNECT_COMPLIANCE: Pass all Java objects to maintain existing
- // behavior. We should pass only Java objects which are
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to pass all Java objects.
+ // Spec requires passing only Java objects which are
// assignment-compatibile.
result.l = AttachCurrentThread()->NewLocalRef(
JavaBoundObject::GetJavaObject(object));
break;
case JavaType::TypeString:
- // LIVECONNECT_COMPLIANCE: Convert to "undefined" to maintain existing
- // behavior. We should call toString() on the Java object.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to
+ // "undefined". Spec requires calling toString() on the Java object.
result.l = ConvertUTF8ToJavaString(AttachCurrentThread(), "undefined");
break;
case JavaType::TypeByte:
@@ -391,20 +393,20 @@ jvalue CoerceJavaScriptObjectToJavaValue(const NPVariant& variant,
case JavaType::TypeFloat:
case JavaType::TypeDouble:
case JavaType::TypeChar: {
- // LIVECONNECT_COMPLIANCE: Convert to 0 to maintain existing behavior. We
- // should raise a JavaScript exception.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to 0. Spec
+ // requires raising a JavaScript exception.
jvalue null_value = {0};
result = null_value;
break;
}
case JavaType::TypeBoolean:
- // LIVECONNECT_COMPLIANCE: Convert to false to maintain existing behavior.
- // We should raise a JavaScript exception.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to false. Spec
+ // requires raising a JavaScript exception.
result.z = JNI_FALSE;
break;
case JavaType::TypeArray:
- // LIVECONNECT_COMPLIANCE: Convert to NULL to maintain existing behavior.
- // We should raise a JavaScript exception.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to NULL. Spec
+ // requires raising a JavaScript exception.
result.l = NULL;
break;
case JavaType::TypeVoid:
@@ -427,8 +429,8 @@ jvalue CoerceJavaScriptNullOrUndefinedToJavaValue(const NPVariant& variant,
break;
case JavaType::TypeString:
if (variant.type == NPVariantType_Void) {
- // LIVECONNECT_COMPLIANCE: Convert undefined to "undefined" to maintain
- // existing behavior. We should convert undefined to NULL.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert undefined to
+ // "undefined". Spec requires converting undefined to NULL.
result.l = ConvertUTF8ToJavaString(AttachCurrentThread(), "undefined");
} else {
result.l = NULL;
@@ -449,8 +451,8 @@ jvalue CoerceJavaScriptNullOrUndefinedToJavaValue(const NPVariant& variant,
result.z = JNI_FALSE;
break;
case JavaType::TypeArray:
- // LIVECONNECT_COMPLIANCE: Convert to NULL to maintain existing behavior.
- // We should raise a JavaScript exception.
+ // LIVECONNECT_COMPLIANCE: Existing behavior is to convert to NULL. Spec
+ // requires raising a JavaScript exception.
result.l = NULL;
break;
case JavaType::TypeVoid:
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698