| 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 05d57a9728fd04e06998f3dd15c490a076796efb..d331cf6973f6859685bdbeb42930be790e97700b 100644
|
| --- a/content/renderer/browser_plugin/browser_plugin_bindings.cc
|
| +++ b/content/renderer/browser_plugin/browser_plugin_bindings.cc
|
| @@ -13,8 +13,10 @@
|
| #include "base/string_number_conversions.h"
|
| #include "base/strings/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_constants.h"
|
| +#include "content/renderer/browser_plugin/browser_plugin_impl.h"
|
| #include "third_party/WebKit/Source/Platform/chromium/public/WebString.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebBindings.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebDOMMessageEvent.h"
|
| @@ -71,6 +73,10 @@ bool StringToNPVariant(const std::string &in, NPVariant *variant) {
|
| return true;
|
| }
|
|
|
| +bool MatchesName(const std::string& value, NPIdentifier name) {
|
| + return WebKit::WebBindings::getStringIdentifier(value.c_str()) == name;
|
| +}
|
| +
|
| //------------------------------------------------------------------------------
|
| // Implementations of NPClass functions. These are here to:
|
| // - Implement src attribute.
|
| @@ -187,44 +193,44 @@ NPClass browser_plugin_message_class = {
|
|
|
| } // namespace
|
|
|
| -// BrowserPluginMethodBinding --------------------------------------------------
|
| +// Method Bindings ------------------------------------------------------------
|
|
|
| -class BrowserPluginMethodBinding {
|
| +class BrowserPluginMethodBindingImpl : public BrowserPluginMethodBinding {
|
| public:
|
| - BrowserPluginMethodBinding(const char name[], uint32 arg_count)
|
| - : name_(name),
|
| + BrowserPluginMethodBindingImpl(BrowserPluginImpl* browser_plugin,
|
| + const char name[],
|
| + uint32 arg_count)
|
| + : browser_plugin_(browser_plugin),
|
| + name_(name),
|
| arg_count_(arg_count) {
|
| }
|
|
|
| - virtual ~BrowserPluginMethodBinding() {}
|
| -
|
| - bool MatchesName(NPIdentifier name) const {
|
| - return WebBindings::getStringIdentifier(name_.c_str()) == name;
|
| - }
|
| + virtual ~BrowserPluginMethodBindingImpl() {}
|
|
|
| - uint32 arg_count() const { return arg_count_; }
|
| + BrowserPluginImpl* browser_plugin() const { return browser_plugin_; }
|
|
|
| - virtual bool Invoke(BrowserPluginBindings* bindings,
|
| - const NPVariant* args,
|
| - NPVariant* result) = 0;
|
| + virtual const std::string& GetName() const OVERRIDE {
|
| + return name_;
|
| + }
|
| + virtual uint32 GetArgCount() const OVERRIDE { return arg_count_; }
|
|
|
| private:
|
| + BrowserPluginImpl* browser_plugin_;
|
| 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(browser_plugin::kMethodBack, 0) {
|
| + BrowserPluginBindingBack(BrowserPluginImpl* browser_plugin)
|
| + : BrowserPluginMethodBindingImpl(browser_plugin,
|
| + browser_plugin::kMethodBack, 0) {
|
| }
|
|
|
| - virtual bool Invoke(BrowserPluginBindings* bindings,
|
| - const NPVariant* args,
|
| - NPVariant* result) OVERRIDE {
|
| - bindings->instance()->Back();
|
| + virtual bool Invoke(const NPVariant* args, NPVariant* result) OVERRIDE {
|
| + browser_plugin()->Back();
|
| return true;
|
| }
|
|
|
| @@ -232,16 +238,15 @@ class BrowserPluginBindingBack : public BrowserPluginMethodBinding {
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingBack);
|
| };
|
|
|
| -class BrowserPluginBindingCanGoBack : public BrowserPluginMethodBinding {
|
| +class BrowserPluginBindingCanGoBack : public BrowserPluginMethodBindingImpl {
|
| public:
|
| - BrowserPluginBindingCanGoBack()
|
| - : BrowserPluginMethodBinding(browser_plugin::kMethodCanGoBack, 0) {
|
| + BrowserPluginBindingCanGoBack(BrowserPluginImpl* browser_plugin)
|
| + : BrowserPluginMethodBindingImpl(browser_plugin,
|
| + browser_plugin::kMethodCanGoBack, 0) {
|
| }
|
|
|
| - virtual bool Invoke(BrowserPluginBindings* bindings,
|
| - const NPVariant* args,
|
| - NPVariant* result) OVERRIDE {
|
| - BOOLEAN_TO_NPVARIANT(bindings->instance()->CanGoBack(), *result);
|
| + virtual bool Invoke(const NPVariant* args, NPVariant* result) OVERRIDE {
|
| + BOOLEAN_TO_NPVARIANT(browser_plugin()->CanGoBack(), *result);
|
| return true;
|
| }
|
|
|
| @@ -249,16 +254,15 @@ class BrowserPluginBindingCanGoBack : public BrowserPluginMethodBinding {
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingCanGoBack);
|
| };
|
|
|
| -class BrowserPluginBindingCanGoForward : public BrowserPluginMethodBinding {
|
| +class BrowserPluginBindingCanGoForward : public BrowserPluginMethodBindingImpl {
|
| public:
|
| - BrowserPluginBindingCanGoForward()
|
| - : BrowserPluginMethodBinding(browser_plugin::kMethodCanGoForward, 0) {
|
| + BrowserPluginBindingCanGoForward(BrowserPluginImpl* browser_plugin)
|
| + : BrowserPluginMethodBindingImpl(browser_plugin,
|
| + browser_plugin::kMethodCanGoForward, 0) {
|
| }
|
|
|
| - virtual bool Invoke(BrowserPluginBindings* bindings,
|
| - const NPVariant* args,
|
| - NPVariant* result) OVERRIDE {
|
| - BOOLEAN_TO_NPVARIANT(bindings->instance()->CanGoForward(), *result);
|
| + virtual bool Invoke(const NPVariant* args, NPVariant* result) OVERRIDE {
|
| + BOOLEAN_TO_NPVARIANT(browser_plugin()->CanGoForward(), *result);
|
| return true;
|
| }
|
|
|
| @@ -266,16 +270,15 @@ class BrowserPluginBindingCanGoForward : public BrowserPluginMethodBinding {
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingCanGoForward);
|
| };
|
|
|
| -class BrowserPluginBindingForward : public BrowserPluginMethodBinding {
|
| +class BrowserPluginBindingForward : public BrowserPluginMethodBindingImpl {
|
| public:
|
| - BrowserPluginBindingForward()
|
| - : BrowserPluginMethodBinding(browser_plugin::kMethodForward, 0) {
|
| + BrowserPluginBindingForward(BrowserPluginImpl* browser_plugin)
|
| + : BrowserPluginMethodBindingImpl(browser_plugin,
|
| + browser_plugin::kMethodForward, 0) {
|
| }
|
|
|
| - virtual bool Invoke(BrowserPluginBindings* bindings,
|
| - const NPVariant* args,
|
| - NPVariant* result) OVERRIDE {
|
| - bindings->instance()->Forward();
|
| + virtual bool Invoke(const NPVariant* args, NPVariant* result) OVERRIDE {
|
| + browser_plugin()->Forward();
|
| return true;
|
| }
|
|
|
| @@ -285,17 +288,15 @@ class BrowserPluginBindingForward : public BrowserPluginMethodBinding {
|
|
|
| // Note: This is a method that is used internally by the <webview> shim only.
|
| // This should not be exposed to developers.
|
| -class BrowserPluginBindingGetRouteID : public BrowserPluginMethodBinding {
|
| +class BrowserPluginBindingGetRouteID : public BrowserPluginMethodBindingImpl {
|
| public:
|
| - BrowserPluginBindingGetRouteID()
|
| - : BrowserPluginMethodBinding(browser_plugin::kMethodGetRouteId, 0) {
|
| + BrowserPluginBindingGetRouteID(BrowserPluginImpl* browser_plugin)
|
| + : BrowserPluginMethodBindingImpl(browser_plugin,
|
| + browser_plugin::kMethodGetRouteId, 0) {
|
| }
|
|
|
| - virtual bool Invoke(BrowserPluginBindings* bindings,
|
| - const NPVariant* args,
|
| - NPVariant* result) OVERRIDE {
|
| - int route_id = bindings->instance()->guest_route_id();
|
| - INT32_TO_NPVARIANT(route_id, *result);
|
| + virtual bool Invoke(const NPVariant* args, NPVariant* result) OVERRIDE {
|
| + INT32_TO_NPVARIANT(browser_plugin()->guest_route_id(), *result);
|
| return true;
|
| }
|
|
|
| @@ -303,17 +304,16 @@ class BrowserPluginBindingGetRouteID : public BrowserPluginMethodBinding {
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingGetRouteID);
|
| };
|
|
|
| -class BrowserPluginBindingGetProcessID : public BrowserPluginMethodBinding {
|
| +class BrowserPluginBindingGetProcessID :
|
| + public BrowserPluginMethodBindingImpl {
|
| public:
|
| - BrowserPluginBindingGetProcessID()
|
| - : BrowserPluginMethodBinding(browser_plugin::kMethodGetProcessId, 0) {
|
| + BrowserPluginBindingGetProcessID(BrowserPluginImpl* browser_plugin)
|
| + : BrowserPluginMethodBindingImpl(browser_plugin,
|
| + browser_plugin::kMethodGetProcessId, 0) {
|
| }
|
|
|
| - virtual bool Invoke(BrowserPluginBindings* bindings,
|
| - const NPVariant* args,
|
| - NPVariant* result) OVERRIDE {
|
| - int process_id = bindings->instance()->guest_process_id();
|
| - INT32_TO_NPVARIANT(process_id, *result);
|
| + virtual bool Invoke(const NPVariant* args, NPVariant* result) OVERRIDE {
|
| + INT32_TO_NPVARIANT(browser_plugin()->guest_process_id(), *result);
|
| return true;
|
| }
|
|
|
| @@ -321,16 +321,15 @@ class BrowserPluginBindingGetProcessID : public BrowserPluginMethodBinding {
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingGetProcessID);
|
| };
|
|
|
| -class BrowserPluginBindingGo : public BrowserPluginMethodBinding {
|
| +class BrowserPluginBindingGo : public BrowserPluginMethodBindingImpl {
|
| public:
|
| - BrowserPluginBindingGo()
|
| - : BrowserPluginMethodBinding(browser_plugin::kMethodGo, 1) {
|
| + BrowserPluginBindingGo(BrowserPluginImpl* browser_plugin)
|
| + : BrowserPluginMethodBindingImpl(browser_plugin,
|
| + browser_plugin::kMethodGo, 1) {
|
| }
|
|
|
| - virtual bool Invoke(BrowserPluginBindings* bindings,
|
| - const NPVariant* args,
|
| - NPVariant* result) OVERRIDE {
|
| - bindings->instance()->Go(Int32FromNPVariant(args[0]));
|
| + virtual bool Invoke(const NPVariant* args, NPVariant* result) OVERRIDE {
|
| + browser_plugin()->Go(Int32FromNPVariant(args[0]));
|
| return true;
|
| }
|
|
|
| @@ -341,17 +340,15 @@ class BrowserPluginBindingGo : public BrowserPluginMethodBinding {
|
| // Note: This is a method that is used internally by the <webview> shim only.
|
| // This should not be exposed to developers.
|
| class BrowserPluginBindingPersistRequestObject
|
| - : public BrowserPluginMethodBinding {
|
| + : public BrowserPluginMethodBindingImpl {
|
| public:
|
| - BrowserPluginBindingPersistRequestObject()
|
| - : BrowserPluginMethodBinding(browser_plugin::kMethodInternalPersistObject,
|
| - 3) {
|
| + BrowserPluginBindingPersistRequestObject(BrowserPluginImpl* browser_plugin)
|
| + : BrowserPluginMethodBindingImpl(
|
| + browser_plugin, browser_plugin::kMethodInternalPersistObject, 3) {
|
| }
|
|
|
| - virtual bool Invoke(BrowserPluginBindings* bindings,
|
| - const NPVariant* args,
|
| - NPVariant* result) OVERRIDE {
|
| - bindings->instance()->PersistRequestObject(
|
| + virtual bool Invoke(const NPVariant* args, NPVariant* result) OVERRIDE {
|
| + browser_plugin()->PersistRequestObject(
|
| args, StringFromNPVariant(args[1]), Int32FromNPVariant(args[2]));
|
| return true;
|
| }
|
| @@ -360,16 +357,15 @@ class BrowserPluginBindingPersistRequestObject
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingPersistRequestObject);
|
| };
|
|
|
| -class BrowserPluginBindingReload : public BrowserPluginMethodBinding {
|
| +class BrowserPluginBindingReload : public BrowserPluginMethodBindingImpl {
|
| public:
|
| - BrowserPluginBindingReload()
|
| - : BrowserPluginMethodBinding(browser_plugin::kMethodReload, 0) {
|
| + BrowserPluginBindingReload(BrowserPluginImpl* browser_plugin)
|
| + : BrowserPluginMethodBindingImpl(browser_plugin,
|
| + browser_plugin::kMethodReload, 0) {
|
| }
|
|
|
| - virtual bool Invoke(BrowserPluginBindings* bindings,
|
| - const NPVariant* args,
|
| - NPVariant* result) OVERRIDE {
|
| - bindings->instance()->Reload();
|
| + virtual bool Invoke(const NPVariant* args, NPVariant* result) OVERRIDE {
|
| + browser_plugin()->Reload();
|
| return true;
|
| }
|
|
|
| @@ -377,16 +373,15 @@ class BrowserPluginBindingReload : public BrowserPluginMethodBinding {
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingReload);
|
| };
|
|
|
| -class BrowserPluginBindingStop : public BrowserPluginMethodBinding {
|
| +class BrowserPluginBindingStop : public BrowserPluginMethodBindingImpl {
|
| public:
|
| - BrowserPluginBindingStop()
|
| - : BrowserPluginMethodBinding(browser_plugin::kMethodStop, 0) {
|
| + BrowserPluginBindingStop(BrowserPluginImpl* browser_plugin)
|
| + : BrowserPluginMethodBindingImpl(browser_plugin,
|
| + browser_plugin::kMethodStop, 0) {
|
| }
|
|
|
| - virtual bool Invoke(BrowserPluginBindings* bindings,
|
| - const NPVariant* args,
|
| - NPVariant* result) OVERRIDE {
|
| - bindings->instance()->Stop();
|
| + virtual bool Invoke(const NPVariant* args, NPVariant* result) OVERRIDE {
|
| + browser_plugin()->Stop();
|
| return true;
|
| }
|
|
|
| @@ -396,19 +391,18 @@ class BrowserPluginBindingStop : public BrowserPluginMethodBinding {
|
|
|
| // Note: This is a method that is used internally by the <webview> shim only.
|
| // This should not be exposed to developers.
|
| -class BrowserPluginBindingSetPermission : public BrowserPluginMethodBinding {
|
| +class BrowserPluginBindingSetPermission
|
| + : public BrowserPluginMethodBindingImpl {
|
| public:
|
| - BrowserPluginBindingSetPermission()
|
| - : BrowserPluginMethodBinding(
|
| - browser_plugin::kMethodInternalSetPermission, 2) {
|
| + BrowserPluginBindingSetPermission(BrowserPluginImpl* browser_plugin)
|
| + : BrowserPluginMethodBindingImpl(
|
| + browser_plugin, browser_plugin::kMethodInternalSetPermission, 2) {
|
| }
|
|
|
| - virtual bool Invoke(BrowserPluginBindings* bindings,
|
| - const NPVariant* args,
|
| - NPVariant* result) OVERRIDE {
|
| + virtual bool Invoke(const NPVariant* args, NPVariant* result) OVERRIDE {
|
| int request_id = Int32FromNPVariant(args[0]);
|
| bool allow = NPVARIANT_TO_BOOLEAN(args[1]);
|
| - bindings->instance()->OnEmbedderDecidedPermission(request_id, allow);
|
| + browser_plugin()->OnEmbedderDecidedPermission(request_id, allow);
|
| return true;
|
| }
|
|
|
| @@ -416,16 +410,15 @@ class BrowserPluginBindingSetPermission : public BrowserPluginMethodBinding {
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingSetPermission);
|
| };
|
|
|
| -class BrowserPluginBindingTerminate : public BrowserPluginMethodBinding {
|
| +class BrowserPluginBindingTerminate : public BrowserPluginMethodBindingImpl {
|
| public:
|
| - BrowserPluginBindingTerminate()
|
| - : BrowserPluginMethodBinding(browser_plugin::kMethodTerminate, 0) {
|
| + BrowserPluginBindingTerminate(BrowserPluginImpl* browser_plugin)
|
| + : BrowserPluginMethodBindingImpl(browser_plugin,
|
| + browser_plugin::kMethodTerminate, 0) {
|
| }
|
|
|
| - virtual bool Invoke(BrowserPluginBindings* bindings,
|
| - const NPVariant* args,
|
| - NPVariant* result) OVERRIDE {
|
| - bindings->instance()->TerminateGuest();
|
| + virtual bool Invoke(const NPVariant* args, NPVariant* result) OVERRIDE {
|
| + browser_plugin()->TerminateGuest();
|
| return true;
|
| }
|
|
|
| @@ -433,27 +426,28 @@ 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) {}
|
| - virtual ~BrowserPluginPropertyBinding() {}
|
| - const std::string& name() const { return name_; }
|
| - bool MatchesName(NPIdentifier name) const {
|
| - return WebBindings::getStringIdentifier(name_.c_str()) == name;
|
| - }
|
| - virtual bool GetProperty(BrowserPluginBindings* bindings,
|
| - NPVariant* result) = 0;
|
| - virtual bool SetProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj,
|
| - const NPVariant* variant) = 0;
|
| - virtual void RemoveProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj) = 0;
|
| + BrowserPluginPropertyBindingImpl(BrowserPluginImpl* browser_plugin,
|
| + const char name[])
|
| + : browser_plugin_(browser_plugin),
|
| + name_(name) {}
|
| +
|
| + virtual ~BrowserPluginPropertyBindingImpl() {}
|
| +
|
| + BrowserPluginImpl* browser_plugin() const {
|
| + return browser_plugin_;
|
| + }
|
| +
|
| + // BrowserPluginPropertyBinding implementation.
|
| + virtual const std::string& GetName() const OVERRIDE {
|
| + return name_;
|
| + }
|
| // Updates the DOM Attribute value with the current property value.
|
| - void UpdateDOMAttribute(BrowserPluginBindings* bindings,
|
| - std::string new_value) {
|
| - bindings->instance()->UpdateDOMAttribute(name(), new_value);
|
| + void UpdateDOMAttribute(std::string new_value) {
|
| + browser_plugin_->UpdateDOMAttribute(name_, new_value);
|
| }
|
| protected:
|
| // Depending on where the attribute comes from it could be a string, int32,
|
| @@ -475,260 +469,240 @@ class BrowserPluginPropertyBinding {
|
| }
|
| return value;
|
| }
|
| +
|
| private:
|
| + BrowserPluginImpl* browser_plugin_;
|
| std::string name_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBinding);
|
| + DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingImpl);
|
| };
|
|
|
| class BrowserPluginPropertyBindingAutoSize
|
| - : public BrowserPluginPropertyBinding {
|
| + : public BrowserPluginPropertyBindingImpl {
|
| public:
|
| - BrowserPluginPropertyBindingAutoSize()
|
| - : BrowserPluginPropertyBinding(browser_plugin::kAttributeAutoSize) {
|
| + BrowserPluginPropertyBindingAutoSize(BrowserPluginImpl* browser_plugin) :
|
| + BrowserPluginPropertyBindingImpl(browser_plugin,
|
| + browser_plugin::kAttributeAutoSize) {
|
| }
|
| - virtual bool GetProperty(BrowserPluginBindings* bindings,
|
| - NPVariant* result) OVERRIDE {
|
| - bool auto_size = bindings->instance()->GetAutoSizeAttribute();
|
| - BOOLEAN_TO_NPVARIANT(auto_size, *result);
|
| + virtual bool GetProperty(NPVariant* result) OVERRIDE {
|
| + BOOLEAN_TO_NPVARIANT(browser_plugin()->GetAutoSizeAttribute(), *result);
|
| return true;
|
| }
|
| - virtual bool SetProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj,
|
| + virtual bool SetProperty(NPObject* np_obj,
|
| const NPVariant* variant) OVERRIDE {
|
| std::string value = StringFromNPVariant(*variant);
|
| - if (!bindings->instance()->HasDOMAttribute(name())) {
|
| - UpdateDOMAttribute(bindings, value);
|
| - bindings->instance()->ParseAutoSizeAttribute();
|
| + if (!browser_plugin()->HasDOMAttribute(GetName())) {
|
| + UpdateDOMAttribute(value);
|
| + browser_plugin()->ParseAutoSizeAttribute();
|
| } else {
|
| - UpdateDOMAttribute(bindings, value);
|
| + UpdateDOMAttribute(value);
|
| }
|
| return true;
|
| }
|
| - virtual void RemoveProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj) OVERRIDE {
|
| - bindings->instance()->RemoveDOMAttribute(name());
|
| - bindings->instance()->ParseAutoSizeAttribute();
|
| + virtual void RemoveProperty(NPObject* np_obj) OVERRIDE {
|
| + browser_plugin()->RemoveDOMAttribute(GetName());
|
| + browser_plugin()->ParseAutoSizeAttribute();
|
| }
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingAutoSize);
|
| };
|
|
|
| class BrowserPluginPropertyBindingContentWindow
|
| - : public BrowserPluginPropertyBinding {
|
| + : public BrowserPluginPropertyBindingImpl {
|
| public:
|
| - BrowserPluginPropertyBindingContentWindow()
|
| - : BrowserPluginPropertyBinding(browser_plugin::kAttributeContentWindow) {
|
| + BrowserPluginPropertyBindingContentWindow(BrowserPluginImpl* browser_plugin) :
|
| + BrowserPluginPropertyBindingImpl(
|
| + browser_plugin,
|
| + browser_plugin::kAttributeContentWindow) {
|
| }
|
| - virtual bool GetProperty(BrowserPluginBindings* bindings,
|
| - NPVariant* result) OVERRIDE {
|
| - NPObject* obj = bindings->instance()->GetContentWindow();
|
| + virtual bool GetProperty(NPVariant* result) OVERRIDE {
|
| + NPObject* obj = browser_plugin()->GetContentWindow();
|
| if (obj) {
|
| result->type = NPVariantType_Object;
|
| result->value.objectValue = WebBindings::retainObject(obj);
|
| }
|
| return true;
|
| }
|
| - virtual bool SetProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj,
|
| + virtual bool SetProperty(NPObject* np_obj,
|
| const NPVariant* variant) OVERRIDE {
|
| return false;
|
| }
|
| - virtual void RemoveProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj) OVERRIDE {}
|
| + virtual void RemoveProperty(NPObject* np_obj) OVERRIDE {}
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingContentWindow);
|
| };
|
|
|
| class BrowserPluginPropertyBindingMaxHeight
|
| - : public BrowserPluginPropertyBinding {
|
| + : public BrowserPluginPropertyBindingImpl {
|
| public:
|
| - BrowserPluginPropertyBindingMaxHeight()
|
| - : BrowserPluginPropertyBinding(browser_plugin::kAttributeMaxHeight) {
|
| + BrowserPluginPropertyBindingMaxHeight(BrowserPluginImpl* browser_plugin) :
|
| + BrowserPluginPropertyBindingImpl(browser_plugin,
|
| + browser_plugin::kAttributeMaxHeight) {
|
| }
|
| - virtual bool GetProperty(BrowserPluginBindings* bindings,
|
| - NPVariant* result) OVERRIDE {
|
| - int max_height = bindings->instance()->GetMaxHeightAttribute();
|
| - INT32_TO_NPVARIANT(max_height, *result);
|
| + virtual bool GetProperty(NPVariant* result) OVERRIDE {
|
| + INT32_TO_NPVARIANT(browser_plugin()->GetMaxHeightAttribute(), *result);
|
| return true;
|
| }
|
| - virtual bool SetProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj,
|
| + virtual bool SetProperty(NPObject* np_obj,
|
| const NPVariant* variant) OVERRIDE {
|
| int new_value = IntFromNPVariant(variant);
|
| - if (bindings->instance()->GetMaxHeightAttribute() != new_value) {
|
| - UpdateDOMAttribute(bindings, base::IntToString(new_value));
|
| - bindings->instance()->ParseSizeContraintsChanged();
|
| + if (browser_plugin()->GetMaxHeightAttribute() != new_value) {
|
| + UpdateDOMAttribute(base::IntToString(new_value));
|
| + browser_plugin()->ParseSizeContraintsChanged();
|
| }
|
| return true;
|
| }
|
| - virtual void RemoveProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj) OVERRIDE {
|
| - bindings->instance()->RemoveDOMAttribute(name());
|
| - bindings->instance()->ParseSizeContraintsChanged();
|
| + virtual void RemoveProperty(NPObject* np_obj) OVERRIDE {
|
| + browser_plugin()->RemoveDOMAttribute(GetName());
|
| + browser_plugin()->ParseSizeContraintsChanged();
|
| }
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingMaxHeight);
|
| };
|
|
|
| class BrowserPluginPropertyBindingMaxWidth
|
| - : public BrowserPluginPropertyBinding {
|
| + : public BrowserPluginPropertyBindingImpl {
|
| public:
|
| - BrowserPluginPropertyBindingMaxWidth()
|
| - : BrowserPluginPropertyBinding(browser_plugin::kAttributeMaxWidth) {
|
| + BrowserPluginPropertyBindingMaxWidth(BrowserPluginImpl* browser_plugin) :
|
| + BrowserPluginPropertyBindingImpl(browser_plugin,
|
| + browser_plugin::kAttributeMaxWidth) {
|
| }
|
| - virtual bool GetProperty(BrowserPluginBindings* bindings,
|
| - NPVariant* result) OVERRIDE {
|
| - int max_width = bindings->instance()->GetMaxWidthAttribute();
|
| - INT32_TO_NPVARIANT(max_width, *result);
|
| + virtual bool GetProperty(NPVariant* result) OVERRIDE {
|
| + INT32_TO_NPVARIANT(browser_plugin()->GetMaxWidthAttribute(), *result);
|
| return true;
|
| }
|
| - virtual bool SetProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj,
|
| + virtual bool SetProperty(NPObject* np_obj,
|
| const NPVariant* variant) OVERRIDE {
|
| int new_value = IntFromNPVariant(variant);
|
| - if (bindings->instance()->GetMaxWidthAttribute() != new_value) {
|
| - UpdateDOMAttribute(bindings, base::IntToString(new_value));
|
| - bindings->instance()->ParseSizeContraintsChanged();
|
| + if (browser_plugin()->GetMaxWidthAttribute() != new_value) {
|
| + UpdateDOMAttribute(base::IntToString(new_value));
|
| + browser_plugin()->ParseSizeContraintsChanged();
|
| }
|
| return true;
|
| }
|
| - virtual void RemoveProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj) OVERRIDE {
|
| - bindings->instance()->RemoveDOMAttribute(name());
|
| - bindings->instance()->ParseSizeContraintsChanged();
|
| + virtual void RemoveProperty(NPObject* np_obj) OVERRIDE {
|
| + browser_plugin()->RemoveDOMAttribute(GetName());
|
| + browser_plugin()->ParseSizeContraintsChanged();
|
| }
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingMaxWidth);
|
| };
|
|
|
| class BrowserPluginPropertyBindingMinHeight
|
| - : public BrowserPluginPropertyBinding {
|
| + : public BrowserPluginPropertyBindingImpl {
|
| public:
|
| - BrowserPluginPropertyBindingMinHeight()
|
| - : BrowserPluginPropertyBinding(browser_plugin::kAttributeMinHeight) {
|
| + BrowserPluginPropertyBindingMinHeight(BrowserPluginImpl* browser_plugin) :
|
| + BrowserPluginPropertyBindingImpl(browser_plugin,
|
| + browser_plugin::kAttributeMinHeight) {
|
| }
|
| - virtual bool GetProperty(BrowserPluginBindings* bindings,
|
| - NPVariant* result) OVERRIDE {
|
| - int min_height = bindings->instance()->GetMinHeightAttribute();
|
| - INT32_TO_NPVARIANT(min_height, *result);
|
| + virtual bool GetProperty(NPVariant* result) OVERRIDE {
|
| + INT32_TO_NPVARIANT(browser_plugin()->GetMinHeightAttribute(), *result);
|
| return true;
|
| }
|
| - virtual bool SetProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj,
|
| + virtual bool SetProperty(NPObject* np_obj,
|
| const NPVariant* variant) OVERRIDE {
|
| int new_value = IntFromNPVariant(variant);
|
| - if (bindings->instance()->GetMinHeightAttribute() != new_value) {
|
| - UpdateDOMAttribute(bindings, base::IntToString(new_value));
|
| - bindings->instance()->ParseSizeContraintsChanged();
|
| + if (browser_plugin()->GetMinHeightAttribute() != new_value) {
|
| + UpdateDOMAttribute(base::IntToString(new_value));
|
| + browser_plugin()->ParseSizeContraintsChanged();
|
| }
|
| return true;
|
| }
|
| - virtual void RemoveProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj) OVERRIDE {
|
| - bindings->instance()->RemoveDOMAttribute(name());
|
| - bindings->instance()->ParseSizeContraintsChanged();
|
| + virtual void RemoveProperty(NPObject* np_obj) OVERRIDE {
|
| + browser_plugin()->RemoveDOMAttribute(GetName());
|
| + browser_plugin()->ParseSizeContraintsChanged();
|
| }
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingMinHeight);
|
| };
|
|
|
| class BrowserPluginPropertyBindingMinWidth
|
| - : public BrowserPluginPropertyBinding {
|
| + : public BrowserPluginPropertyBindingImpl {
|
| public:
|
| - BrowserPluginPropertyBindingMinWidth()
|
| - : BrowserPluginPropertyBinding(browser_plugin::kAttributeMinWidth) {
|
| + BrowserPluginPropertyBindingMinWidth(BrowserPluginImpl* browser_plugin) :
|
| + BrowserPluginPropertyBindingImpl(browser_plugin,
|
| + browser_plugin::kAttributeMinWidth) {
|
| }
|
| - virtual bool GetProperty(BrowserPluginBindings* bindings,
|
| - NPVariant* result) OVERRIDE {
|
| - int min_width = bindings->instance()->GetMinWidthAttribute();
|
| - INT32_TO_NPVARIANT(min_width, *result);
|
| + virtual bool GetProperty(NPVariant* result) OVERRIDE {
|
| + INT32_TO_NPVARIANT(browser_plugin()->GetMinWidthAttribute(), *result);
|
| return true;
|
| }
|
| - virtual bool SetProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj,
|
| + virtual bool SetProperty(NPObject* np_obj,
|
| const NPVariant* variant) OVERRIDE {
|
| int new_value = IntFromNPVariant(variant);
|
| - if (bindings->instance()->GetMinWidthAttribute() != new_value) {
|
| - UpdateDOMAttribute(bindings, base::IntToString(new_value));
|
| - bindings->instance()->ParseSizeContraintsChanged();
|
| + if (browser_plugin()->GetMinWidthAttribute() != new_value) {
|
| + UpdateDOMAttribute(base::IntToString(new_value));
|
| + browser_plugin()->ParseSizeContraintsChanged();
|
| }
|
| return true;
|
| }
|
| - virtual void RemoveProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj) OVERRIDE {
|
| - bindings->instance()->RemoveDOMAttribute(name());
|
| - bindings->instance()->ParseSizeContraintsChanged();
|
| + virtual void RemoveProperty(NPObject* np_obj) OVERRIDE {
|
| + browser_plugin()->RemoveDOMAttribute(GetName());
|
| + browser_plugin()->ParseSizeContraintsChanged();
|
| }
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingMinWidth);
|
| };
|
|
|
| class BrowserPluginPropertyBindingName
|
| - : public BrowserPluginPropertyBinding {
|
| + : public BrowserPluginPropertyBindingImpl {
|
| public:
|
| - BrowserPluginPropertyBindingName()
|
| - : BrowserPluginPropertyBinding(browser_plugin::kAttributeName) {
|
| + BrowserPluginPropertyBindingName(BrowserPluginImpl* browser_plugin) :
|
| + BrowserPluginPropertyBindingImpl(browser_plugin,
|
| + browser_plugin::kAttributeName) {
|
| }
|
| - virtual bool GetProperty(BrowserPluginBindings* bindings,
|
| - NPVariant* result) OVERRIDE {
|
| - std::string name = bindings->instance()->GetNameAttribute();
|
| - return StringToNPVariant(name, result);
|
| + virtual bool GetProperty(NPVariant* result) OVERRIDE {
|
| + StringToNPVariant(browser_plugin()->GetNameAttribute(), result);
|
| return true;
|
| }
|
| - virtual bool SetProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj,
|
| + virtual bool SetProperty(NPObject* np_obj,
|
| const NPVariant* variant) OVERRIDE {
|
| std::string new_value = StringFromNPVariant(*variant);
|
| - if (bindings->instance()->GetNameAttribute() != new_value) {
|
| - UpdateDOMAttribute(bindings, new_value);
|
| - bindings->instance()->ParseNameAttribute();
|
| + if (browser_plugin()->GetNameAttribute() != new_value) {
|
| + UpdateDOMAttribute(new_value);
|
| + browser_plugin()->ParseNameAttribute();
|
| }
|
| return true;
|
| }
|
| - virtual void RemoveProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj) OVERRIDE {
|
| - bindings->instance()->RemoveDOMAttribute(name());
|
| - bindings->instance()->ParseNameAttribute();
|
| + virtual void RemoveProperty(NPObject* np_obj) OVERRIDE {
|
| + browser_plugin()->RemoveDOMAttribute(GetName());
|
| + browser_plugin()->ParseNameAttribute();
|
| }
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingName);
|
| };
|
|
|
| class BrowserPluginPropertyBindingPartition
|
| - : public BrowserPluginPropertyBinding {
|
| + : public BrowserPluginPropertyBindingImpl {
|
| public:
|
| - BrowserPluginPropertyBindingPartition()
|
| - : BrowserPluginPropertyBinding(browser_plugin::kAttributePartition) {
|
| + BrowserPluginPropertyBindingPartition(BrowserPluginImpl* browser_plugin) :
|
| + BrowserPluginPropertyBindingImpl(browser_plugin,
|
| + browser_plugin::kAttributePartition) {
|
| }
|
| - virtual bool GetProperty(BrowserPluginBindings* bindings,
|
| - NPVariant* result) OVERRIDE {
|
| - std::string partition_id = bindings->instance()->GetPartitionAttribute();
|
| - return StringToNPVariant(partition_id, result);
|
| + virtual bool GetProperty(NPVariant* result) OVERRIDE {
|
| + return StringToNPVariant(browser_plugin()->GetPartitionAttribute(), result);
|
| }
|
| - virtual bool SetProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj,
|
| + virtual bool SetProperty(NPObject* np_obj,
|
| const NPVariant* variant) OVERRIDE {
|
| std::string new_value = StringFromNPVariant(*variant);
|
| - std::string old_value = bindings->instance()->GetPartitionAttribute();
|
| + std::string old_value = browser_plugin()->GetPartitionAttribute();
|
| if (old_value != new_value) {
|
| - UpdateDOMAttribute(bindings, new_value);
|
| + UpdateDOMAttribute(new_value);
|
| std::string error_message;
|
| - if (!bindings->instance()->ParsePartitionAttribute(&error_message)) {
|
| + if (!browser_plugin()->ParsePartitionAttribute(&error_message)) {
|
| WebBindings::setException(
|
| np_obj, static_cast<const NPUTF8 *>(error_message.c_str()));
|
| // Reset to old value on error.
|
| - UpdateDOMAttribute(bindings, old_value);
|
| + UpdateDOMAttribute(old_value);
|
| return false;
|
| }
|
| }
|
| return true;
|
| }
|
| - virtual void RemoveProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj) OVERRIDE {
|
| + virtual void RemoveProperty(NPObject* np_obj) OVERRIDE {
|
| std::string error_message;
|
| - if (bindings->instance()->CanRemovePartitionAttribute(&error_message)) {
|
| - bindings->instance()->RemoveDOMAttribute(name());
|
| + if (browser_plugin()->CanRemovePartitionAttribute(&error_message)) {
|
| + browser_plugin()->RemoveDOMAttribute(GetName());
|
| } else {
|
| WebBindings::setException(
|
| np_obj, static_cast<const NPUTF8 *>(error_message.c_str()));
|
| @@ -738,53 +712,51 @@ class BrowserPluginPropertyBindingPartition
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingPartition);
|
| };
|
|
|
| -class BrowserPluginPropertyBindingSrc : public BrowserPluginPropertyBinding {
|
| +class BrowserPluginPropertyBindingSrc :
|
| + public BrowserPluginPropertyBindingImpl {
|
| public:
|
| - BrowserPluginPropertyBindingSrc()
|
| - : BrowserPluginPropertyBinding(browser_plugin::kAttributeSrc) {
|
| + BrowserPluginPropertyBindingSrc(BrowserPluginImpl* browser_plugin) :
|
| + BrowserPluginPropertyBindingImpl(browser_plugin,
|
| + browser_plugin::kAttributeSrc) {
|
| }
|
| - virtual bool GetProperty(BrowserPluginBindings* bindings,
|
| - NPVariant* result) OVERRIDE {
|
| - std::string src = bindings->instance()->GetSrcAttribute();
|
| - return StringToNPVariant(src, result);
|
| + virtual bool GetProperty(NPVariant* result) OVERRIDE {
|
| + return StringToNPVariant(browser_plugin()->GetSrcAttribute(), result);
|
| }
|
| - virtual bool SetProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj,
|
| + virtual bool SetProperty(NPObject* np_obj,
|
| const NPVariant* variant) OVERRIDE {
|
| std::string new_value = StringFromNPVariant(*variant);
|
| // We should not be issuing navigation IPCs if we attempt to set the
|
| // src property to the empty string. Instead, we want to simply restore
|
| // the src attribute back to its old value.
|
| if (new_value.empty()) {
|
| - RemoveProperty(bindings, np_obj);
|
| + RemoveProperty(np_obj);
|
| return true;
|
| }
|
| - std::string old_value = bindings->instance()->GetSrcAttribute();
|
| - bool guest_crashed = bindings->instance()->guest_crashed();
|
| + std::string old_value = browser_plugin()->GetSrcAttribute();
|
| + bool guest_crashed = browser_plugin()->guest_crashed();
|
| if ((old_value != new_value) || guest_crashed) {
|
| // If the new value was empty then we're effectively resetting the
|
| // attribute to the old value here. This will be picked up by <webview>'s
|
| // mutation observer and will restore the src attribute after it has been
|
| // removed.
|
| - UpdateDOMAttribute(bindings, new_value);
|
| + UpdateDOMAttribute(new_value);
|
| std::string error_message;
|
| - if (!bindings->instance()->ParseSrcAttribute(&error_message)) {
|
| + if (!browser_plugin()->ParseSrcAttribute(&error_message)) {
|
| WebBindings::setException(
|
| np_obj, static_cast<const NPUTF8 *>(error_message.c_str()));
|
| // Reset to old value on error.
|
| - UpdateDOMAttribute(bindings, old_value);
|
| + UpdateDOMAttribute(old_value);
|
| return false;
|
| }
|
| }
|
| return true;
|
| }
|
| - virtual void RemoveProperty(BrowserPluginBindings* bindings,
|
| - NPObject* np_obj) OVERRIDE {
|
| - std::string old_value = bindings->instance()->GetSrcAttribute();
|
| + virtual void RemoveProperty(NPObject* np_obj) OVERRIDE {
|
| + std::string old_value = browser_plugin()->GetSrcAttribute();
|
| // Remove the DOM attribute to trigger the mutation observer when it is
|
| // restored to its original value again.
|
| - bindings->instance()->RemoveDOMAttribute(name());
|
| - UpdateDOMAttribute(bindings, old_value);
|
| + browser_plugin()->RemoveDOMAttribute(GetName());
|
| + UpdateDOMAttribute(old_value);
|
| }
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginPropertyBindingSrc);
|
| @@ -799,7 +771,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)) {
|
| @@ -808,28 +780,38 @@ BrowserPluginBindings::BrowserPluginBindings(BrowserPlugin* instance)
|
| np_object_ = static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(obj);
|
| np_object_->message_channel = weak_ptr_factory_.GetWeakPtr();
|
|
|
| - method_bindings_.push_back(new BrowserPluginBindingBack);
|
| - method_bindings_.push_back(new BrowserPluginBindingCanGoBack);
|
| - method_bindings_.push_back(new BrowserPluginBindingCanGoForward);
|
| - method_bindings_.push_back(new BrowserPluginBindingForward);
|
| - method_bindings_.push_back(new BrowserPluginBindingGetProcessID);
|
| - method_bindings_.push_back(new BrowserPluginBindingGetRouteID);
|
| - method_bindings_.push_back(new BrowserPluginBindingGo);
|
| - method_bindings_.push_back(new BrowserPluginBindingPersistRequestObject);
|
| - method_bindings_.push_back(new BrowserPluginBindingReload);
|
| - method_bindings_.push_back(new BrowserPluginBindingSetPermission);
|
| - method_bindings_.push_back(new BrowserPluginBindingStop);
|
| - method_bindings_.push_back(new BrowserPluginBindingTerminate);
|
| -
|
| - property_bindings_.push_back(new BrowserPluginPropertyBindingAutoSize);
|
| - property_bindings_.push_back(new BrowserPluginPropertyBindingContentWindow);
|
| - property_bindings_.push_back(new BrowserPluginPropertyBindingMaxHeight);
|
| - property_bindings_.push_back(new BrowserPluginPropertyBindingMaxWidth);
|
| - property_bindings_.push_back(new BrowserPluginPropertyBindingMinHeight);
|
| - property_bindings_.push_back(new BrowserPluginPropertyBindingMinWidth);
|
| - property_bindings_.push_back(new BrowserPluginPropertyBindingName);
|
| - property_bindings_.push_back(new BrowserPluginPropertyBindingPartition);
|
| - property_bindings_.push_back(new BrowserPluginPropertyBindingSrc);
|
| + method_bindings_.push_back(new BrowserPluginBindingBack(instance));
|
| + method_bindings_.push_back(new BrowserPluginBindingCanGoBack(instance));
|
| + method_bindings_.push_back(new BrowserPluginBindingCanGoForward(instance));
|
| + method_bindings_.push_back(new BrowserPluginBindingForward(instance));
|
| + method_bindings_.push_back(new BrowserPluginBindingGetProcessID(instance));
|
| + method_bindings_.push_back(new BrowserPluginBindingGetRouteID(instance));
|
| + method_bindings_.push_back(new BrowserPluginBindingGo(instance));
|
| + method_bindings_.push_back(
|
| + new BrowserPluginBindingPersistRequestObject(instance));
|
| + method_bindings_.push_back(new BrowserPluginBindingReload(instance));
|
| + method_bindings_.push_back(new BrowserPluginBindingSetPermission(instance));
|
| + method_bindings_.push_back(new BrowserPluginBindingStop(instance));
|
| + method_bindings_.push_back(new BrowserPluginBindingTerminate(instance));
|
| +
|
| + property_bindings_.push_back(
|
| + new BrowserPluginPropertyBindingAutoSize(instance));
|
| + property_bindings_.push_back(
|
| + new BrowserPluginPropertyBindingContentWindow(instance));
|
| + property_bindings_.push_back(
|
| + new BrowserPluginPropertyBindingMaxHeight(instance));
|
| + property_bindings_.push_back(
|
| + new BrowserPluginPropertyBindingMaxWidth(instance));
|
| + property_bindings_.push_back(
|
| + new BrowserPluginPropertyBindingMinHeight(instance));
|
| + property_bindings_.push_back(
|
| + new BrowserPluginPropertyBindingMinWidth(instance));
|
| + property_bindings_.push_back(
|
| + new BrowserPluginPropertyBindingName(instance));
|
| + property_bindings_.push_back(
|
| + new BrowserPluginPropertyBindingPartition(instance));
|
| + property_bindings_.push_back(
|
| + new BrowserPluginPropertyBindingSrc(instance));
|
| }
|
|
|
| BrowserPluginBindings::~BrowserPluginBindings() {
|
| @@ -840,7 +822,8 @@ bool BrowserPluginBindings::HasMethod(NPIdentifier name) const {
|
| for (BindingList::const_iterator iter = method_bindings_.begin();
|
| iter != method_bindings_.end();
|
| ++iter) {
|
| - if ((*iter)->MatchesName(name))
|
| + BrowserPluginMethodBinding* method = *iter;
|
| + if (MatchesName(method->GetName(), name))
|
| return true;
|
| }
|
| return false;
|
| @@ -853,8 +836,10 @@ 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);
|
| + BrowserPluginMethodBinding* method = *iter;
|
| + if (MatchesName(method->GetName(), name) &&
|
| + method->GetArgCount() == arg_count)
|
| + return method->Invoke(args, result);
|
| }
|
| return false;
|
| }
|
| @@ -863,7 +848,8 @@ bool BrowserPluginBindings::HasProperty(NPIdentifier name) const {
|
| for (PropertyBindingList::const_iterator iter = property_bindings_.begin();
|
| iter != property_bindings_.end();
|
| ++iter) {
|
| - if ((*iter)->MatchesName(name))
|
| + BrowserPluginPropertyBinding* property = *iter;
|
| + if (MatchesName(property->GetName(), name))
|
| return true;
|
| }
|
| return false;
|
| @@ -875,10 +861,10 @@ 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)) {
|
| + BrowserPluginPropertyBinding* property = *iter;
|
| + if (MatchesName(property->GetName(), name)) {
|
| + if (property->SetProperty(np_obj, variant))
|
| return true;
|
| - }
|
| break;
|
| }
|
| }
|
| @@ -890,8 +876,9 @@ bool BrowserPluginBindings::RemoveProperty(NPObject* np_obj,
|
| for (PropertyBindingList::iterator iter = property_bindings_.begin();
|
| iter != property_bindings_.end();
|
| ++iter) {
|
| - if ((*iter)->MatchesName(name)) {
|
| - (*iter)->RemoveProperty(this, np_obj);
|
| + BrowserPluginPropertyBinding* property = *iter;
|
| + if (MatchesName(property->GetName(), name)) {
|
| + property->RemoveProperty(np_obj);
|
| return true;
|
| }
|
| }
|
| @@ -902,10 +889,21 @@ bool BrowserPluginBindings::GetProperty(NPIdentifier name, NPVariant* result) {
|
| for (PropertyBindingList::iterator iter = property_bindings_.begin();
|
| iter != property_bindings_.end();
|
| ++iter) {
|
| - if ((*iter)->MatchesName(name))
|
| - return (*iter)->GetProperty(this, result);
|
| + BrowserPluginPropertyBinding* property = *iter;
|
| + if (MatchesName(property->GetName(), name))
|
| + return property->GetProperty(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
|
|
|