Index: public/web/WebPlugin.h |
diff --git a/public/web/WebPlugin.h b/public/web/WebPlugin.h |
index a99c3ee217b53642dc33c5c876f58a212d95e6af..2bfde2aa8863b46c9026ca87d90aa56f51cd8837 100644 |
--- a/public/web/WebPlugin.h |
+++ b/public/web/WebPlugin.h |
@@ -1,5 +1,6 @@ |
/* |
* Copyright (C) 2009, 2012 Google Inc. All rights reserved. |
+ * Copyright (C) 2014 Opera Software ASA. All rights reserved. |
* |
* Redistribution and use in source and binary forms, with or without |
* modification, are permitted provided that the following conditions are |
@@ -37,6 +38,7 @@ |
#include "WebDragOperation.h" |
#include "WebDragStatus.h" |
#include "WebWidget.h" |
+#include <v8.h> |
struct NPObject; |
struct _NPP; |
@@ -66,9 +68,14 @@ public: |
virtual WebPluginContainer* container() const { return 0; } |
virtual void containerDidDetachFromParent() { } |
- virtual NPObject* scriptableObject() = 0; |
+ virtual NPObject* scriptableObject() { return 0; } |
virtual struct _NPP* pluginNPP() { return 0; } |
+ // The same as scriptableObject() but allows to expose scriptable interface |
+ // through plain v8 object instead of NPObject. |
+ // If you override this function, you must return nullptr in scriptableObject(). |
+ virtual v8::Local<v8::Object> v8ScriptableObject(v8::Isolate*) { return v8::Local<v8::Object>(); } |
+ |
// Returns true if the form submission value is successfully obtained |
// from the plugin. The value would be associated with the name attribute |
// of the corresponding object element. |