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

Unified Diff: content/renderer/pepper/pepper_try_catch.h

Issue 596523002: Make PepperTryCatch hold a reference on PepperPluginInstanceImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix for review comment Created 6 years, 3 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/pepper/pepper_try_catch.h
diff --git a/content/renderer/pepper/pepper_try_catch.h b/content/renderer/pepper/pepper_try_catch.h
index dba90aa780a8be427c47900f42ab5af304a4e9a3..819d26926e33ec9cf932e909b7440bbbab2c4f14 100644
--- a/content/renderer/pepper/pepper_try_catch.h
+++ b/content/renderer/pepper/pepper_try_catch.h
@@ -19,6 +19,8 @@ class PepperPluginInstanceImpl;
// Base class for scripting TryCatch helpers.
class CONTENT_EXPORT PepperTryCatch {
public:
+ // PepperTryCatch objects should only be used as stack variables. This object
+ // takes a reference on the given PepperPluginInstanceImpl.
PepperTryCatch(PepperPluginInstanceImpl* instance,
V8VarConverter::AllowObjectVars convert_objects);
virtual ~PepperTryCatch();
@@ -34,7 +36,14 @@ class CONTENT_EXPORT PepperTryCatch {
ppapi::ScopedPPVar FromV8(v8::Handle<v8::Value> v8_value);
protected:
- PepperPluginInstanceImpl* instance_;
+ // Make sure that |instance_| is alive for the lifetime of PepperTryCatch.
+ // PepperTryCatch is used mostly in Pepper scripting code, where it can be
+ // possible to enter JavaScript synchronously which can cause the plugin to
+ // be deleted.
+ //
+ // Note that PepperTryCatch objects should only ever be on the stack, so this
+ // shouldn't keep the instance around for too long.
+ scoped_refptr<PepperPluginInstanceImpl> instance_;
// Whether To/FromV8 should convert object vars. If set to
// kDisallowObjectVars, an exception should be set if they are encountered
« 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