Index: content/renderer/pepper/plugin_object.cc |
diff --git a/content/renderer/pepper/plugin_object.cc b/content/renderer/pepper/plugin_object.cc |
index 2c1f91cb9aee8f7893b970aee0ca009d1cf4003f..3fb63795de43b5dc1f275b4913cf0ede464b154c 100644 |
--- a/content/renderer/pepper/plugin_object.cc |
+++ b/content/renderer/pepper/plugin_object.cc |
@@ -94,6 +94,12 @@ PP_Var PluginObject::Create(PepperPluginInstanceImpl* instance, |
v8::Local<v8::Value> PluginObject::GetNamedProperty( |
v8::Isolate* isolate, |
const std::string& identifier) { |
+ if (!instance_) { |
+ std::string error = "Property " + identifier + " does not exist."; |
+ isolate->ThrowException( |
+ v8::Exception::ReferenceError(gin::StringToV8(isolate, error))); |
+ return v8::Local<v8::Value>(); |
+ } |
ScopedPPVar identifier_var(ScopedPPVar::PassRef(), |
StringVar::StringToPPVar(identifier)); |
return GetPropertyOrMethod(instance_->GetIsolate(), identifier_var.get()); |
@@ -102,8 +108,12 @@ v8::Local<v8::Value> PluginObject::GetNamedProperty( |
bool PluginObject::SetNamedProperty(v8::Isolate* isolate, |
const std::string& identifier, |
v8::Local<v8::Value> value) { |
- if (!instance_) |
+ if (!instance_) { |
+ std::string error = "Property " + identifier + " does not exist."; |
+ isolate->ThrowException( |
+ v8::Exception::ReferenceError(gin::StringToV8(isolate, error))); |
return false; |
+ } |
ScopedPPVar identifier_var(ScopedPPVar::PassRef(), |
StringVar::StringToPPVar(identifier)); |
V8VarConverter var_converter(instance_->pp_instance(), |