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

Unified Diff: content/renderer/browser_plugin/browser_plugin_bindings.cc

Issue 11826005: Browser Plugin: Implement BrowserPluginObserver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 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
Index: content/renderer/browser_plugin/browser_plugin_bindings.cc
diff --git a/content/renderer/browser_plugin/browser_plugin_bindings.cc b/content/renderer/browser_plugin/browser_plugin_bindings.cc
index 2bf0387fe1f25c8b4d64758759bdc5ca61564800..682a80e3f7fc1a3d14a8b5c835f4f1a7bfde26a9 100644
--- a/content/renderer/browser_plugin/browser_plugin_bindings.cc
+++ b/content/renderer/browser_plugin/browser_plugin_bindings.cc
@@ -13,7 +13,9 @@
#include "base/string_number_conversions.h"
#include "base/string_split.h"
#include "base/utf_string_conversions.h"
-#include "content/renderer/browser_plugin/browser_plugin.h"
+#include "content/public/renderer/browser_plugin/browser_plugin_method_binding.h"
+#include "content/public/renderer/browser_plugin/browser_plugin_property_binding.h"
+#include "content/renderer/browser_plugin/browser_plugin_impl.h"
#include "third_party/npapi/bindings/npapi.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebBindings.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
@@ -204,44 +206,40 @@ NPClass browser_plugin_message_class = {
} // namespace
-// BrowserPluginMethodBinding --------------------------------------------------
+// Method Bindings ------------------------------------------------------------
-class BrowserPluginMethodBinding {
+class BrowserPluginMethodBindingImpl : public BrowserPluginMethodBinding {
public:
- BrowserPluginMethodBinding(const char name[], uint32 arg_count)
+ BrowserPluginMethodBindingImpl(const char name[], uint32 arg_count)
: name_(name),
arg_count_(arg_count) {
}
- virtual ~BrowserPluginMethodBinding() {}
+ virtual ~BrowserPluginMethodBindingImpl() {}
- bool MatchesName(NPIdentifier name) const {
- return WebBindings::getStringIdentifier(name_.c_str()) == name;
+ virtual bool MatchesName(const NPIdentifier& name) const OVERRIDE {
+ return WebKit::WebBindings::getStringIdentifier(name_.c_str()) == name;
}
- uint32 arg_count() const { return arg_count_; }
-
- virtual bool Invoke(BrowserPluginBindings* bindings,
- const NPVariant* args,
- NPVariant* result) = 0;
+ virtual uint32 GetArgCount() const OVERRIDE { return arg_count_; }
private:
std::string name_;
uint32 arg_count_;
- DISALLOW_COPY_AND_ASSIGN(BrowserPluginMethodBinding);
+ DISALLOW_COPY_AND_ASSIGN(BrowserPluginMethodBindingImpl);
};
-class BrowserPluginBindingBack : public BrowserPluginMethodBinding {
+class BrowserPluginBindingBack : public BrowserPluginMethodBindingImpl {
public:
BrowserPluginBindingBack()
- : BrowserPluginMethodBinding(kMethodBack, 0) {
+ : BrowserPluginMethodBindingImpl(kMethodBack, 0) {
}
- virtual bool Invoke(BrowserPluginBindings* bindings,
+ virtual bool Invoke(BrowserPlugin* browser_plugin,
const NPVariant* args,
NPVariant* result) OVERRIDE {
- bindings->instance()->Back();
+ static_cast<BrowserPluginImpl*>(browser_plugin)->Back();
return true;
}
@@ -249,16 +247,17 @@ class BrowserPluginBindingBack : public BrowserPluginMethodBinding {
DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingBack);
};
-class BrowserPluginBindingCanGoBack : public BrowserPluginMethodBinding {
+class BrowserPluginBindingCanGoBack : public BrowserPluginMethodBindingImpl {
public:
BrowserPluginBindingCanGoBack()
- : BrowserPluginMethodBinding(kMethodCanGoBack, 0) {
+ : BrowserPluginMethodBindingImpl(kMethodCanGoBack, 0) {
}
- virtual bool Invoke(BrowserPluginBindings* bindings,
+ virtual bool Invoke(BrowserPlugin* browser_plugin,
const NPVariant* args,
NPVariant* result) OVERRIDE {
- BOOLEAN_TO_NPVARIANT(bindings->instance()->CanGoBack(), *result);
+ BOOLEAN_TO_NPVARIANT(
+ static_cast<BrowserPluginImpl*>(browser_plugin)->CanGoBack(), *result);
return true;
}
@@ -266,16 +265,18 @@ class BrowserPluginBindingCanGoBack : public BrowserPluginMethodBinding {
DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingCanGoBack);
};
-class BrowserPluginBindingCanGoForward : public BrowserPluginMethodBinding {
+class BrowserPluginBindingCanGoForward : public BrowserPluginMethodBindingImpl {
public:
BrowserPluginBindingCanGoForward()
- : BrowserPluginMethodBinding(kMethodCanGoForward, 0) {
+ : BrowserPluginMethodBindingImpl(kMethodCanGoForward, 0) {
}
- virtual bool Invoke(BrowserPluginBindings* bindings,
+ virtual bool Invoke(BrowserPlugin* browser_plugin,
const NPVariant* args,
NPVariant* result) OVERRIDE {
- BOOLEAN_TO_NPVARIANT(bindings->instance()->CanGoForward(), *result);
+ BOOLEAN_TO_NPVARIANT(
+ static_cast<BrowserPluginImpl*>(browser_plugin)->CanGoForward(),
+ *result);
return true;
}
@@ -283,16 +284,16 @@ class BrowserPluginBindingCanGoForward : public BrowserPluginMethodBinding {
DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingCanGoForward);
};
-class BrowserPluginBindingForward : public BrowserPluginMethodBinding {
+class BrowserPluginBindingForward : public BrowserPluginMethodBindingImpl {
public:
BrowserPluginBindingForward()
- : BrowserPluginMethodBinding(kMethodForward, 0) {
+ : BrowserPluginMethodBindingImpl(kMethodForward, 0) {
}
- virtual bool Invoke(BrowserPluginBindings* bindings,
+ virtual bool Invoke(BrowserPlugin* browser_plugin,
const NPVariant* args,
NPVariant* result) OVERRIDE {
- bindings->instance()->Forward();
+ static_cast<BrowserPluginImpl*>(browser_plugin)->Forward();
return true;
}
@@ -300,16 +301,17 @@ class BrowserPluginBindingForward : public BrowserPluginMethodBinding {
DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingForward);
};
-class BrowserPluginBindingGetProcessID : public BrowserPluginMethodBinding {
+class BrowserPluginBindingGetProcessID : public BrowserPluginMethodBindingImpl {
public:
BrowserPluginBindingGetProcessID()
- : BrowserPluginMethodBinding(kMethodGetProcessId, 0) {
+ : BrowserPluginMethodBindingImpl(kMethodGetProcessId, 0) {
}
- virtual bool Invoke(BrowserPluginBindings* bindings,
+ virtual bool Invoke(BrowserPlugin* browser_plugin,
const NPVariant* args,
NPVariant* result) OVERRIDE {
- int process_id = bindings->instance()->process_id();
+ int process_id = static_cast<BrowserPluginImpl*>(
+ browser_plugin)->process_id();
INT32_TO_NPVARIANT(process_id, *result);
return true;
}
@@ -318,16 +320,17 @@ class BrowserPluginBindingGetProcessID : public BrowserPluginMethodBinding {
DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingGetProcessID);
};
-class BrowserPluginBindingGo : public BrowserPluginMethodBinding {
+class BrowserPluginBindingGo : public BrowserPluginMethodBindingImpl {
public:
BrowserPluginBindingGo()
- : BrowserPluginMethodBinding(kMethodGo, 1) {
+ : BrowserPluginMethodBindingImpl(kMethodGo, 1) {
}
- virtual bool Invoke(BrowserPluginBindings* bindings,
+ virtual bool Invoke(BrowserPlugin* browser_plugin,
const NPVariant* args,
NPVariant* result) OVERRIDE {
- bindings->instance()->Go(Int32FromNPVariant(args[0]));
+ static_cast<BrowserPluginImpl*>(browser_plugin)->Go(
+ Int32FromNPVariant(args[0]));
return true;
}
@@ -335,16 +338,16 @@ class BrowserPluginBindingGo : public BrowserPluginMethodBinding {
DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingGo);
};
-class BrowserPluginBindingReload : public BrowserPluginMethodBinding {
+class BrowserPluginBindingReload : public BrowserPluginMethodBindingImpl {
public:
BrowserPluginBindingReload()
- : BrowserPluginMethodBinding(kMethodReload, 0) {
+ : BrowserPluginMethodBindingImpl(kMethodReload, 0) {
}
- virtual bool Invoke(BrowserPluginBindings* bindings,
+ virtual bool Invoke(BrowserPlugin* browser_plugin,
const NPVariant* args,
NPVariant* result) OVERRIDE {
- bindings->instance()->Reload();
+ static_cast<BrowserPluginImpl*>(browser_plugin)->Reload();
return true;
}
@@ -352,16 +355,16 @@ class BrowserPluginBindingReload : public BrowserPluginMethodBinding {
DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingReload);
};
-class BrowserPluginBindingStop : public BrowserPluginMethodBinding {
+class BrowserPluginBindingStop : public BrowserPluginMethodBindingImpl {
public:
BrowserPluginBindingStop()
- : BrowserPluginMethodBinding(kMethodStop, 0) {
+ : BrowserPluginMethodBindingImpl(kMethodStop, 0) {
}
- virtual bool Invoke(BrowserPluginBindings* bindings,
+ virtual bool Invoke(BrowserPlugin* browser_plugin,
const NPVariant* args,
NPVariant* result) OVERRIDE {
- bindings->instance()->Stop();
+ static_cast<BrowserPluginImpl*>(browser_plugin)->Stop();
return true;
}
@@ -369,16 +372,16 @@ class BrowserPluginBindingStop : public BrowserPluginMethodBinding {
DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingStop);
};
-class BrowserPluginBindingTerminate : public BrowserPluginMethodBinding {
+class BrowserPluginBindingTerminate : public BrowserPluginMethodBindingImpl {
public:
BrowserPluginBindingTerminate()
- : BrowserPluginMethodBinding(kMethodTerminate, 0) {
+ : BrowserPluginMethodBindingImpl(kMethodTerminate, 0) {
}
- virtual bool Invoke(BrowserPluginBindings* bindings,
+ virtual bool Invoke(BrowserPlugin* browser_plugin,
const NPVariant* args,
NPVariant* result) OVERRIDE {
- bindings->instance()->TerminateGuest();
+ static_cast<BrowserPluginImpl*>(browser_plugin)->TerminateGuest();
sadrul 2013/01/09 15:21:54 no-op comment: All these static_casts seem a bit a
Fady Samuel 2013/01/09 17:41:24 Sigh, neither can I :-(
return true;
}
@@ -386,77 +389,76 @@ class BrowserPluginBindingTerminate : public BrowserPluginMethodBinding {
DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingTerminate);
};
-// BrowserPluginPropertyBinding ------------------------------------------------
+// Property Bindings ----------------------------------------------------------
-class BrowserPluginPropertyBinding {
+class BrowserPluginPropertyBindingImpl : public BrowserPluginPropertyBinding {
public:
- explicit BrowserPluginPropertyBinding(const char name[]) : name_(name) {
+ explicit BrowserPluginPropertyBindingImpl(const char name[]) : name_(name) {
}
- virtual ~BrowserPluginPropertyBinding() {}
- const std::string& name() const { return name_; }
- bool MatchesName(NPIdentifier name) const {
- return WebBindings::getStringIdentifier(name_.c_str()) == name;
+
+ virtual ~BrowserPluginPropertyBindingImpl() {}
+
+ virtual const std::string& GetName() const OVERRIDE {
+ return name_;
}
- virtual bool GetProperty(BrowserPluginBindings* bindings,
- NPVariant* result) = 0;
- virtual bool SetProperty(BrowserPluginBindings* bindings,
- NPObject* np_obj,
- const NPVariant* variant) = 0;
- virtual std::string GetDOMAttributeValue(BrowserPlugin* browser_plugin) = 0;
- // Updates the DOM Attribute value with the current property value.
- void UpdateDOMAttribute(BrowserPluginBindings* bindings) {
- bindings->instance()->UpdateDOMAttribute(name(),
- GetDOMAttributeValue(bindings->instance()));
+
+ virtual bool MatchesName(NPIdentifier name) const OVERRIDE {
+ return WebKit::WebBindings::getStringIdentifier(name_.c_str()) == name;
}
+
private:
std::string name_;
- DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBinding);
+ DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingImpl);
};
class BrowserPluginPropertyBindingAutoSize
- : public BrowserPluginPropertyBinding {
+ : public BrowserPluginPropertyBindingImpl {
public:
BrowserPluginPropertyBindingAutoSize() :
- BrowserPluginPropertyBinding(kAttributeAutoSize) {
+ BrowserPluginPropertyBindingImpl(kAttributeAutoSize) {
}
- virtual bool GetProperty(BrowserPluginBindings* bindings,
+ virtual bool GetProperty(BrowserPlugin* browser_plugin,
NPVariant* result) OVERRIDE {
- bool auto_size = bindings->instance()->auto_size_attribute();
+ bool auto_size = static_cast<BrowserPluginImpl*>(
+ browser_plugin)->auto_size_attribute();
BOOLEAN_TO_NPVARIANT(auto_size, *result);
return true;
}
- virtual bool SetProperty(BrowserPluginBindings* bindings,
+ virtual bool SetProperty(BrowserPlugin* browser_plugin,
NPObject* np_obj,
const NPVariant* variant) OVERRIDE {
bool auto_size = NPVARIANT_TO_BOOLEAN(*variant);
- bindings->instance()->SetAutoSizeAttribute(auto_size);
+ static_cast<BrowserPluginImpl*>(browser_plugin)->
+ SetAutoSizeAttribute(auto_size);
return true;
}
virtual std::string GetDOMAttributeValue(
BrowserPlugin* browser_plugin) OVERRIDE {
- return browser_plugin->auto_size_attribute() ? "true" : "false";
+ return static_cast<BrowserPluginImpl*>(browser_plugin)->
+ auto_size_attribute() ? "true" : "false";
}
private:
DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingAutoSize);
};
class BrowserPluginPropertyBindingContentWindow
- : public BrowserPluginPropertyBinding {
+ : public BrowserPluginPropertyBindingImpl {
public:
BrowserPluginPropertyBindingContentWindow() :
- BrowserPluginPropertyBinding(kAttributeContentWindow) {
+ BrowserPluginPropertyBindingImpl(kAttributeContentWindow) {
}
- virtual bool GetProperty(BrowserPluginBindings* bindings,
+ virtual bool GetProperty(BrowserPlugin* browser_plugin,
NPVariant* result) OVERRIDE {
- NPObject* obj = bindings->instance()->GetContentWindow();
+ NPObject* obj = static_cast<BrowserPluginImpl*>(
+ browser_plugin)->GetContentWindow();
if (obj) {
result->type = NPVariantType_Object;
result->value.objectValue = WebBindings::retainObject(obj);
}
return true;
}
- virtual bool SetProperty(BrowserPluginBindings* bindings,
+ virtual bool SetProperty(BrowserPlugin* browser_plugin,
NPObject* np_obj,
const NPVariant* variant) OVERRIDE {
return false;
@@ -469,131 +471,144 @@ class BrowserPluginPropertyBindingContentWindow
};
class BrowserPluginPropertyBindingMaxHeight
- : public BrowserPluginPropertyBinding {
+ : public BrowserPluginPropertyBindingImpl {
public:
BrowserPluginPropertyBindingMaxHeight() :
- BrowserPluginPropertyBinding(kAttributeMaxHeight) {
+ BrowserPluginPropertyBindingImpl(kAttributeMaxHeight) {
}
- virtual bool GetProperty(BrowserPluginBindings* bindings,
+ virtual bool GetProperty(BrowserPlugin* browser_plugin,
NPVariant* result) OVERRIDE {
- int max_height = bindings->instance()->max_height_attribute();
+ int max_height = static_cast<BrowserPluginImpl*>(
+ browser_plugin)->max_height_attribute();
INT32_TO_NPVARIANT(max_height, *result);
return true;
}
- virtual bool SetProperty(BrowserPluginBindings* bindings,
+ virtual bool SetProperty(BrowserPlugin* browser_plugin,
NPObject* np_obj,
const NPVariant* variant) OVERRIDE {
int max_height = Int32FromNPVariant(*variant);
- bindings->instance()->SetMaxHeightAttribute(max_height);
+ static_cast<BrowserPluginImpl*>(browser_plugin)->
+ SetMaxHeightAttribute(max_height);
return true;
}
virtual std::string GetDOMAttributeValue(
BrowserPlugin* browser_plugin) OVERRIDE {
- return base::IntToString(browser_plugin->max_height_attribute());
+ return base::IntToString(static_cast<BrowserPluginImpl*>(browser_plugin)->
+ max_height_attribute());
}
private:
DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingMaxHeight);
};
class BrowserPluginPropertyBindingMaxWidth
- : public BrowserPluginPropertyBinding {
+ : public BrowserPluginPropertyBindingImpl {
public:
BrowserPluginPropertyBindingMaxWidth() :
- BrowserPluginPropertyBinding(kAttributeMaxWidth) {
+ BrowserPluginPropertyBindingImpl(kAttributeMaxWidth) {
}
- virtual bool GetProperty(BrowserPluginBindings* bindings,
+ virtual bool GetProperty(BrowserPlugin* browser_plugin,
NPVariant* result) OVERRIDE {
- int max_width = bindings->instance()->max_width_attribute();
+ int max_width = static_cast<BrowserPluginImpl*>(
+ browser_plugin)->max_width_attribute();
INT32_TO_NPVARIANT(max_width, *result);
return true;
}
- virtual bool SetProperty(BrowserPluginBindings* bindings,
+ virtual bool SetProperty(BrowserPlugin* browser_plugin,
NPObject* np_obj,
const NPVariant* variant) OVERRIDE {
int max_width = Int32FromNPVariant(*variant);
- bindings->instance()->SetMaxWidthAttribute(max_width);
+ static_cast<BrowserPluginImpl*>(browser_plugin)->
+ SetMaxWidthAttribute(max_width);
return true;
}
virtual std::string GetDOMAttributeValue(
BrowserPlugin* browser_plugin) OVERRIDE {
- return base::IntToString(browser_plugin->max_width_attribute());
+ return base::IntToString(static_cast<BrowserPluginImpl*>(browser_plugin)->
+ max_width_attribute());
}
private:
DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingMaxWidth);
};
class BrowserPluginPropertyBindingMinHeight
- : public BrowserPluginPropertyBinding {
+ : public BrowserPluginPropertyBindingImpl {
public:
BrowserPluginPropertyBindingMinHeight() :
- BrowserPluginPropertyBinding(kAttributeMinHeight) {
+ BrowserPluginPropertyBindingImpl(kAttributeMinHeight) {
}
- virtual bool GetProperty(BrowserPluginBindings* bindings,
+ virtual bool GetProperty(BrowserPlugin* browser_plugin,
NPVariant* result) OVERRIDE {
- int min_height = bindings->instance()->min_height_attribute();
+ int min_height = static_cast<BrowserPluginImpl*>(
+ browser_plugin)->min_height_attribute();
INT32_TO_NPVARIANT(min_height, *result);
return true;
}
- virtual bool SetProperty(BrowserPluginBindings* bindings,
+ virtual bool SetProperty(BrowserPlugin* browser_plugin,
NPObject* np_obj,
const NPVariant* variant) OVERRIDE {
int min_height = Int32FromNPVariant(*variant);
- bindings->instance()->SetMinHeightAttribute(min_height);
+ static_cast<BrowserPluginImpl*>(browser_plugin)->
+ SetMinHeightAttribute(min_height);
return true;
}
virtual std::string GetDOMAttributeValue(
BrowserPlugin* browser_plugin) OVERRIDE {
- return base::IntToString(browser_plugin->min_height_attribute());
+ return base::IntToString(static_cast<BrowserPluginImpl*>(
+ browser_plugin)->min_height_attribute());
}
private:
DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingMinHeight);
};
class BrowserPluginPropertyBindingMinWidth
- : public BrowserPluginPropertyBinding {
+ : public BrowserPluginPropertyBindingImpl {
public:
BrowserPluginPropertyBindingMinWidth() :
- BrowserPluginPropertyBinding(kAttributeMinWidth) {
+ BrowserPluginPropertyBindingImpl(kAttributeMinWidth) {
}
- virtual bool GetProperty(BrowserPluginBindings* bindings,
+ virtual bool GetProperty(BrowserPlugin* browser_plugin,
NPVariant* result) OVERRIDE {
- int min_width = bindings->instance()->min_width_attribute();
+ int min_width = static_cast<BrowserPluginImpl*>(
+ browser_plugin)->min_width_attribute();
INT32_TO_NPVARIANT(min_width, *result);
return true;
}
- virtual bool SetProperty(BrowserPluginBindings* bindings,
+ virtual bool SetProperty(BrowserPlugin* browser_plugin,
NPObject* np_obj,
const NPVariant* variant) OVERRIDE {
int min_width = Int32FromNPVariant(*variant);
- bindings->instance()->SetMinWidthAttribute(min_width);
+ static_cast<BrowserPluginImpl*>(browser_plugin)->
+ SetMinWidthAttribute(min_width);
return true;
}
virtual std::string GetDOMAttributeValue(
BrowserPlugin* browser_plugin) OVERRIDE {
- return base::IntToString(browser_plugin->min_width_attribute());
+ return base::IntToString(static_cast<BrowserPluginImpl*>(
+ browser_plugin)->min_width_attribute());
}
private:
DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingMinWidth);
};
class BrowserPluginPropertyBindingPartition
- : public BrowserPluginPropertyBinding {
+ : public BrowserPluginPropertyBindingImpl {
public:
BrowserPluginPropertyBindingPartition() :
- BrowserPluginPropertyBinding(kAttributePartition) {
+ BrowserPluginPropertyBindingImpl(kAttributePartition) {
}
- virtual bool GetProperty(BrowserPluginBindings* bindings,
+ virtual bool GetProperty(BrowserPlugin* browser_plugin,
NPVariant* result) OVERRIDE {
- std::string partition_id = bindings->instance()->GetPartitionAttribute();
+ std::string partition_id = static_cast<BrowserPluginImpl*>(
+ browser_plugin)->GetPartitionAttribute();
return StringToNPVariant(partition_id, result);
}
- virtual bool SetProperty(BrowserPluginBindings* bindings,
+ virtual bool SetProperty(BrowserPlugin* browser_plugin,
NPObject* np_obj,
const NPVariant* variant) OVERRIDE {
std::string partition_id = StringFromNPVariant(*variant);
std::string error_message;
- if (!bindings->instance()->SetPartitionAttribute(partition_id,
- &error_message)) {
+ if (!static_cast<BrowserPluginImpl*>(browser_plugin)->
+ SetPartitionAttribute(partition_id, &error_message)) {
WebBindings::setException(
np_obj, static_cast<const NPUTF8 *>(error_message.c_str()));
return false;
@@ -602,28 +617,32 @@ class BrowserPluginPropertyBindingPartition
}
virtual std::string GetDOMAttributeValue(
BrowserPlugin* browser_plugin) OVERRIDE {
- return browser_plugin->GetPartitionAttribute();
+ return static_cast<BrowserPluginImpl*>(browser_plugin)->
+ GetPartitionAttribute();
}
private:
DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingPartition);
};
-class BrowserPluginPropertyBindingSrc : public BrowserPluginPropertyBinding {
+class BrowserPluginPropertyBindingSrc :
+ public BrowserPluginPropertyBindingImpl {
public:
BrowserPluginPropertyBindingSrc() :
- BrowserPluginPropertyBinding(kAttributeSrc) {
+ BrowserPluginPropertyBindingImpl(kAttributeSrc) {
}
- virtual bool GetProperty(BrowserPluginBindings* bindings,
+ virtual bool GetProperty(BrowserPlugin* browser_plugin,
NPVariant* result) OVERRIDE {
- std::string src = bindings->instance()->src_attribute();
+ std::string src = static_cast<BrowserPluginImpl*>(
+ browser_plugin)->src_attribute();
return StringToNPVariant(src, result);
}
- virtual bool SetProperty(BrowserPluginBindings* bindings,
+ virtual bool SetProperty(BrowserPlugin* browser_plugin,
NPObject* np_obj,
const NPVariant* variant) OVERRIDE {
std::string src = StringFromNPVariant(*variant);
std::string error_message;
- if (!bindings->instance()->SetSrcAttribute(src, &error_message)) {
+ if (!static_cast<BrowserPluginImpl*>(browser_plugin)->
+ SetSrcAttribute(src, &error_message)) {
WebBindings::setException(
np_obj, static_cast<const NPUTF8 *>(error_message.c_str()));
return false;
@@ -632,7 +651,7 @@ class BrowserPluginPropertyBindingSrc : public BrowserPluginPropertyBinding {
}
virtual std::string GetDOMAttributeValue(
BrowserPlugin* browser_plugin) OVERRIDE {
- return browser_plugin->src_attribute();
+ return static_cast<BrowserPluginImpl*>(browser_plugin)->src_attribute();
}
private:
DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingSrc);
@@ -647,7 +666,7 @@ BrowserPluginBindings::BrowserPluginNPObject::BrowserPluginNPObject() {
BrowserPluginBindings::BrowserPluginNPObject::~BrowserPluginNPObject() {
}
-BrowserPluginBindings::BrowserPluginBindings(BrowserPlugin* instance)
+BrowserPluginBindings::BrowserPluginBindings(BrowserPluginImpl* instance)
: instance_(instance),
np_object_(NULL),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) {
@@ -697,8 +716,8 @@ bool BrowserPluginBindings::InvokeMethod(NPIdentifier name,
for (BindingList::iterator iter = method_bindings_.begin();
iter != method_bindings_.end();
++iter) {
- if ((*iter)->MatchesName(name) && (*iter)->arg_count() == arg_count)
- return (*iter)->Invoke(this, args, result);
+ if ((*iter)->MatchesName(name) && (*iter)->GetArgCount() == arg_count)
+ return (*iter)->Invoke(instance(), args, result);
}
return false;
}
@@ -719,9 +738,11 @@ bool BrowserPluginBindings::SetProperty(NPObject* np_obj,
for (PropertyBindingList::iterator iter = property_bindings_.begin();
iter != property_bindings_.end();
++iter) {
- if ((*iter)->MatchesName(name)) {
- if ((*iter)->SetProperty(this, np_obj, variant)) {
- (*iter)->UpdateDOMAttribute(this);
+ BrowserPluginPropertyBinding* property = *iter;
+ if (property->MatchesName(name)) {
+ if (property->SetProperty(instance(), np_obj, variant)) {
+ instance()->UpdateDOMAttribute(
+ property->GetName(), property->GetDOMAttributeValue(instance()));
return true;
}
break;
@@ -735,9 +756,19 @@ bool BrowserPluginBindings::GetProperty(NPIdentifier name, NPVariant* result) {
iter != property_bindings_.end();
++iter) {
if ((*iter)->MatchesName(name))
- return (*iter)->GetProperty(this, result);
+ return (*iter)->GetProperty(instance(), result);
}
return false;
}
+void BrowserPluginBindings::AddMethodBinding(
+ BrowserPluginMethodBinding* method_binding) {
+ method_bindings_.push_back(method_binding);
+}
+
+void BrowserPluginBindings::AddPropertyBinding(
+ BrowserPluginPropertyBinding* property_binding) {
+ property_bindings_.push_back(property_binding);
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698