Index: webkit/glue/plugins/pepper_var.h |
=================================================================== |
--- webkit/glue/plugins/pepper_var.h (revision 58357) |
+++ webkit/glue/plugins/pepper_var.h (working copy) |
@@ -26,6 +26,10 @@ |
// function multiple times given the same NPObject results in the same PP_Var. |
PP_Var NPObjectToPPVar(NPObject* object); |
+// Returns a PP_Var that corresponds to the given NPVariant. The contents of |
+// the NPVariant will be copied unless the NPVariant corresponds to an object. |
+PP_Var NPVariantToPPVar(const NPVariant* variant); |
+ |
// Returns the NPObject corresponding to the PP_Var. This pointer has not been |
// retained, so you should not call WebBindings::releaseObject unless you first |
// call WebBindings::retainObject. Returns NULL if the PP_Var is not an object |
@@ -42,6 +46,30 @@ |
// a string type. |
String* GetString(PP_Var var); |
+// Instantiate this object on the stack to catch V8 exceptions and pass them |
+// to an optional out parameter supplied by the plugin. |
+class TryCatch { |
+ public: |
+ // The given exception may be NULL if the consumer isn't interested in |
+ // catching exceptions. If non-NULL, the given var will be updated if any |
+ // exception is thrown (so it must outlive the TryCatch object). |
+ TryCatch(PP_Var* exception); |
+ ~TryCatch(); |
+ |
+ // Returns true is an exception has been thrown. This can be true immediately |
+ // after construction if the var passed to the constructor is non-void. |
+ bool HasException() const; |
+ |
+ // Sets the given exception. |
+ void SetException(const char* message); |
+ |
+ private: |
+ static void Catch(void* self, const char* message); |
+ |
+ // May be null if the consumer isn't interesting in catching exceptions. |
+ PP_Var* exception_; |
+}; |
+ |
} // namespace pepper |
#endif // WEBKIT_GLUE_PLUGINS_PEPPER_VAR_H_ |