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

Unified Diff: content/renderer/pepper/ppb_var_deprecated_impl.cc

Issue 635593004: PPAPI: Make V8VarConverter longer-lived (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge Created 6 years, 2 months 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 | « content/renderer/pepper/plugin_object.cc ('k') | content/renderer/pepper/resource_converter.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/pepper/ppb_var_deprecated_impl.cc
diff --git a/content/renderer/pepper/ppb_var_deprecated_impl.cc b/content/renderer/pepper/ppb_var_deprecated_impl.cc
index 9f86e6b5141fe09806ba98d806a93cff88f6991a..def6a8d50069d7fecf783f86a97067f7d32b795d 100644
--- a/content/renderer/pepper/ppb_var_deprecated_impl.cc
+++ b/content/renderer/pepper/ppb_var_deprecated_impl.cc
@@ -42,6 +42,10 @@ class ObjectAccessor {
ObjectAccessor(PP_Var var)
: object_var_(V8ObjectVar::FromPPVar(var).get()),
instance_(object_var_ ? object_var_->instance() : NULL) {
+ if (instance_) {
+ converter_.reset(new V8VarConverter(instance_->pp_instance(),
+ V8VarConverter::kAllowObjectVars));
+ }
}
// Check if the object is valid. If it isn't, set an exception and return
@@ -61,10 +65,12 @@ class ObjectAccessor {
// scope.
v8::Handle<v8::Object> GetObject() { return object_var_->GetHandle(); }
PepperPluginInstanceImpl* instance() { return instance_; }
+ V8VarConverter* converter() { return converter_.get(); }
private:
V8ObjectVar* object_var_;
PepperPluginInstanceImpl* instance_;
+ scoped_ptr<V8VarConverter> converter_;
};
bool IsValidIdentifer(PP_Var identifier, PP_Var* exception) {
@@ -82,7 +88,8 @@ bool HasPropertyDeprecated(PP_Var var, PP_Var name, PP_Var* exception) {
if (!accessor.IsValid(exception) || !IsValidIdentifer(name, exception))
return false;
- PepperTryCatchVar try_catch(accessor.instance(), exception);
+ PepperTryCatchVar try_catch(accessor.instance(), accessor.converter(),
+ exception);
v8::Handle<v8::Value> v8_name = try_catch.ToV8(name);
if (try_catch.HasException())
return false;
@@ -98,7 +105,8 @@ bool HasMethodDeprecated(PP_Var var, PP_Var name, PP_Var* exception) {
if (!accessor.IsValid(exception) || !IsValidIdentifer(name, exception))
return false;
- PepperTryCatchVar try_catch(accessor.instance(), exception);
+ PepperTryCatchVar try_catch(accessor.instance(), accessor.converter(),
+ exception);
v8::Handle<v8::Value> v8_name = try_catch.ToV8(name);
if (try_catch.HasException())
return false;
@@ -115,7 +123,8 @@ PP_Var GetProperty(PP_Var var, PP_Var name, PP_Var* exception) {
if (!accessor.IsValid(exception) || !IsValidIdentifer(name, exception))
return PP_MakeUndefined();
- PepperTryCatchVar try_catch(accessor.instance(), exception);
+ PepperTryCatchVar try_catch(accessor.instance(), accessor.converter(),
+ exception);
v8::Handle<v8::Value> v8_name = try_catch.ToV8(name);
if (try_catch.HasException())
return PP_MakeUndefined();
@@ -135,7 +144,8 @@ void EnumerateProperties(PP_Var var,
if (!accessor.IsValid(exception))
return;
- PepperTryCatchVar try_catch(accessor.instance(), exception);
+ PepperTryCatchVar try_catch(accessor.instance(), accessor.converter(),
+ exception);
*properties = NULL;
*property_count = 0;
@@ -165,7 +175,8 @@ void SetPropertyDeprecated(PP_Var var,
if (!accessor.IsValid(exception) || !IsValidIdentifer(name, exception))
return;
- PepperTryCatchVar try_catch(accessor.instance(), exception);
+ PepperTryCatchVar try_catch(accessor.instance(), accessor.converter(),
+ exception);
v8::Handle<v8::Value> v8_name = try_catch.ToV8(name);
v8::Handle<v8::Value> v8_value = try_catch.ToV8(value);
@@ -181,7 +192,8 @@ void DeletePropertyDeprecated(PP_Var var, PP_Var name, PP_Var* exception) {
if (!accessor.IsValid(exception) || !IsValidIdentifer(name, exception))
return;
- PepperTryCatchVar try_catch(accessor.instance(), exception);
+ PepperTryCatchVar try_catch(accessor.instance(), accessor.converter(),
+ exception);
v8::Handle<v8::Value> v8_name = try_catch.ToV8(name);
if (try_catch.HasException())
@@ -208,7 +220,8 @@ PP_Var CallDeprecatedInternal(PP_Var var,
StringVar::StringToPPVar(""));
}
- PepperTryCatchVar try_catch(accessor.instance(), exception);
+ PepperTryCatchVar try_catch(accessor.instance(), accessor.converter(),
+ exception);
v8::Handle<v8::Value> v8_method_name = try_catch.ToV8(scoped_name.get());
if (try_catch.HasException())
return PP_MakeUndefined();
« no previous file with comments | « content/renderer/pepper/plugin_object.cc ('k') | content/renderer/pepper/resource_converter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698