Index: webkit/glue/plugins/pepper_var.cc |
=================================================================== |
--- webkit/glue/plugins/pepper_var.cc (revision 65116) |
+++ webkit/glue/plugins/pepper_var.cc (working copy) |
@@ -13,6 +13,7 @@ |
#include "ppapi/c/ppb_var.h" |
#include "ppapi/c/pp_var.h" |
#include "third_party/WebKit/WebKit/chromium/public/WebBindings.h" |
+#include "webkit/glue/plugins/pepper_common.h" |
#include "webkit/glue/plugins/pepper_plugin_instance.h" |
#include "webkit/glue/plugins/pepper_plugin_module.h" |
#include "webkit/glue/plugins/pepper_plugin_object.h" |
@@ -297,20 +298,24 @@ |
return result; |
} |
+PP_Var BoolToPPVar(bool value) { |
+ return PP_MakeBool(BoolToPPBool(value)); |
+} |
+ |
void DefineProperty(struct PP_Var object, |
struct PP_ObjectProperty property, |
PP_Var* exception) { |
PP_Var params[] = { |
object, property.name, |
- PP_MakeBool(!!(property.modifiers & PP_OBJECTPROPERTY_MODIFIER_HASVALUE)), |
+ BoolToPPVar(!!(property.modifiers & PP_OBJECTPROPERTY_MODIFIER_HASVALUE)), |
property.value, |
- PP_MakeBool(property.getter.type == PP_VARTYPE_OBJECT), |
+ BoolToPPVar(property.getter.type == PP_VARTYPE_OBJECT), |
property.getter, |
- PP_MakeBool(property.setter.type == PP_VARTYPE_OBJECT), |
+ BoolToPPVar(property.setter.type == PP_VARTYPE_OBJECT), |
property.setter, |
- PP_MakeBool(!!(property.modifiers & PP_OBJECTPROPERTY_MODIFIER_READONLY)), |
- PP_MakeBool(!!(property.modifiers & PP_OBJECTPROPERTY_MODIFIER_DONTDELETE)), |
- PP_MakeBool(!!(property.modifiers & PP_OBJECTPROPERTY_MODIFIER_DONTENUM)) |
+ BoolToPPVar(!!(property.modifiers & PP_OBJECTPROPERTY_MODIFIER_READONLY)), |
+ BoolToPPVar(!!(property.modifiers & PP_OBJECTPROPERTY_MODIFIER_DONTDELETE)), |
+ BoolToPPVar(!!(property.modifiers & PP_OBJECTPROPERTY_MODIFIER_DONTENUM)) |
}; |
RunJSFunction(object, |
@@ -329,16 +334,23 @@ |
params, sizeof(params) / sizeof(PP_Var), exception); |
} |
-bool HasProperty(PP_Var var, |
- PP_Var name, |
- PP_Var* exception) { |
+PP_Bool HasProperty(PP_Var var, |
+ PP_Var name, |
+ PP_Var* exception) { |
ObjectAccessorWithIdentifierTryCatch accessor(var, name, exception); |
if (accessor.has_exception()) |
- return false; |
- return WebBindings::hasProperty(NULL, accessor.object()->np_object(), |
- accessor.identifier()); |
+ return PP_FALSE; |
+ return BoolToPPBool(WebBindings::hasProperty(NULL, |
+ accessor.object()->np_object(), |
+ accessor.identifier())); |
} |
+bool HasPropertyDeprecated(PP_Var var, |
+ PP_Var name, |
+ PP_Var* exception) { |
+ return PPBoolToBool(HasProperty(var, name, exception)); |
+} |
+ |
bool HasMethodDeprecated(PP_Var var, |
PP_Var name, |
PP_Var* exception) { |
@@ -418,15 +430,17 @@ |
accessor.SetException(kUnableToSetPropertyException); |
} |
-bool DeleteProperty(PP_Var var, |
- PP_Var name, |
- PP_Var* exception) { |
+PP_Bool DeleteProperty(PP_Var var, |
+ PP_Var name, |
+ PP_Var* exception) { |
ObjectAccessorWithIdentifierTryCatch accessor(var, name, exception); |
if (accessor.has_exception()) |
- return false; |
+ return PP_FALSE; |
- return WebBindings::removeProperty(NULL, accessor.object()->np_object(), |
- accessor.identifier()); |
+ return BoolToPPBool( |
+ WebBindings::removeProperty(NULL, |
+ accessor.object()->np_object(), |
+ accessor.identifier())); |
} |
void DeletePropertyDeprecated(PP_Var var, |
@@ -441,10 +455,12 @@ |
accessor.SetException(kUnableToRemovePropertyException); |
} |
-bool IsCallable(struct PP_Var object) { |
+PP_Bool IsCallable(struct PP_Var object) { |
PP_Var result = RunJSFunction(object, |
"(function() { return typeof(this) == 'function' })", NULL, 0, NULL); |
- return result.type == PP_VARTYPE_BOOL && result.value.as_bool; |
+ if (result.type == PP_VARTYPE_BOOL) |
+ return result.value.as_bool; |
+ return PP_FALSE; |
} |
struct PP_Var Call(struct PP_Var object, |
@@ -597,7 +613,7 @@ |
&Var::PluginReleasePPVar, |
&VarFromUtf8, |
&VarToUtf8, |
- &HasProperty, |
+ &HasPropertyDeprecated, |
&HasMethodDeprecated, |
&GetProperty, |
&EnumerateProperties, |
@@ -644,7 +660,7 @@ |
case NPVariantType_Null: |
return PP_MakeNull(); |
case NPVariantType_Bool: |
- return PP_MakeBool(NPVARIANT_TO_BOOLEAN(*variant)); |
+ return BoolToPPVar(NPVARIANT_TO_BOOLEAN(*variant)); |
case NPVariantType_Int32: |
return PP_MakeInt32(NPVARIANT_TO_INT32(*variant)); |
case NPVariantType_Double: |