Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / public / web / WebPlugin.h
index a99c3ee..7738d1e 100644 (file)
@@ -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.
@@ -114,6 +121,8 @@ public:
     // Returns true if the printed content should not be scaled to
     // the printer's printable area.
     virtual bool isPrintScalingDisabled() { return false; }
+    // Returns number of copies to be printed.
+    virtual int getCopiesToPrint() { return 1; }
 
     // Sets up printing with the specified printParams. Returns the number of
     // pages to be printed at these settings.