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 18406610e6da786500b38a2ecc81e283ae1f72f9..e29a7bce3518a6f0754787a10ecbf481ca34cfc3 100644 |
--- a/content/renderer/browser_plugin/browser_plugin_bindings.cc |
+++ b/content/renderer/browser_plugin/browser_plugin_bindings.cc |
@@ -51,27 +51,6 @@ std::string StringFromNPVariant(const NPVariant& variant) { |
return std::string(np_string.UTF8Characters, np_string.UTF8Length); |
} |
-// Depending on where the attribute comes from it could be a string, int32, |
-// or a double. Javascript tends to produce an int32 or a string, but setting |
-// the value from the developer tools console may also produce a double. |
-int IntFromNPVariant(const NPVariant& variant) { |
- int value = 0; |
- switch (variant.type) { |
- case NPVariantType_Double: |
- value = NPVARIANT_TO_DOUBLE(variant); |
- break; |
- case NPVariantType_Int32: |
- value = NPVARIANT_TO_INT32(variant); |
- break; |
- case NPVariantType_String: |
- base::StringToInt(StringFromNPVariant(variant), &value); |
- break; |
- default: |
- break; |
- } |
- return value; |
-} |
- |
//------------------------------------------------------------------------------ |
// Implementations of NPClass functions. These are here to: |
// - Implement src attribute. |
@@ -87,27 +66,7 @@ void BrowserPluginBindingsDeallocate(NPObject* object) { |
} |
bool BrowserPluginBindingsHasMethod(NPObject* np_obj, NPIdentifier name) { |
- if (!np_obj) |
- return false; |
- |
- BrowserPluginBindings* bindings = GetBindings(np_obj); |
- if (!bindings) |
- return false; |
- |
- return bindings->HasMethod(name); |
-} |
- |
-bool BrowserPluginBindingsInvoke(NPObject* np_obj, NPIdentifier name, |
- const NPVariant* args, uint32 arg_count, |
- NPVariant* result) { |
- if (!np_obj) |
- return false; |
- |
- BrowserPluginBindings* bindings = GetBindings(np_obj); |
- if (!bindings) |
- return false; |
- |
- return bindings->InvokeMethod(name, args, arg_count, result); |
+ return false; |
} |
bool BrowserPluginBindingsInvokeDefault(NPObject* np_obj, |
@@ -177,7 +136,7 @@ NPClass browser_plugin_message_class = { |
&BrowserPluginBindingsDeallocate, |
NULL, |
&BrowserPluginBindingsHasMethod, |
- &BrowserPluginBindingsInvoke, |
+ NULL, |
&BrowserPluginBindingsInvokeDefault, |
&BrowserPluginBindingsHasProperty, |
&BrowserPluginBindingsGetProperty, |
@@ -188,75 +147,6 @@ NPClass browser_plugin_message_class = { |
} // namespace |
-// BrowserPluginMethodBinding -------------------------------------------------- |
- |
-class BrowserPluginMethodBinding { |
- public: |
- BrowserPluginMethodBinding(const char name[], uint32 arg_count) |
- : name_(name), |
- arg_count_(arg_count) { |
- } |
- |
- virtual ~BrowserPluginMethodBinding() {} |
- |
- bool MatchesName(NPIdentifier name) const { |
- return WebBindings::getStringIdentifier(name_.c_str()) == name; |
- } |
- |
- uint32 arg_count() const { return arg_count_; } |
- |
- virtual bool Invoke(BrowserPluginBindings* bindings, |
- const NPVariant* args, |
- NPVariant* result) = 0; |
- |
- private: |
- std::string name_; |
- uint32 arg_count_; |
- |
- DISALLOW_COPY_AND_ASSIGN(BrowserPluginMethodBinding); |
-}; |
- |
-class BrowserPluginBindingAttach: public BrowserPluginMethodBinding { |
- public: |
- BrowserPluginBindingAttach() |
- : BrowserPluginMethodBinding(browser_plugin::kMethodInternalAttach, 2) {} |
- |
- virtual bool Invoke(BrowserPluginBindings* bindings, |
- const NPVariant* args, |
- NPVariant* result) OVERRIDE { |
- bool attached = InvokeHelper(bindings, args); |
- BOOLEAN_TO_NPVARIANT(attached, *result); |
- return true; |
- } |
- |
- private: |
- bool InvokeHelper(BrowserPluginBindings* bindings, const NPVariant* args) { |
- if (!bindings->instance()->render_view()) |
- return false; |
- |
- int instance_id = IntFromNPVariant(args[0]); |
- if (!instance_id) |
- return false; |
- |
- scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create()); |
- v8::Handle<v8::Value> obj(blink::WebBindings::toV8Value(&args[1])); |
- scoped_ptr<base::Value> value( |
- converter->FromV8Value(obj, bindings->instance()->render_view()-> |
- GetWebView()->mainFrame()->mainWorldScriptContext())); |
- if (!value) |
- return false; |
- |
- if (!value->IsType(base::Value::TYPE_DICTIONARY)) |
- return false; |
- |
- scoped_ptr<base::DictionaryValue> extra_params( |
- static_cast<base::DictionaryValue*>(value.release())); |
- bindings->instance()->Attach(instance_id, extra_params.Pass()); |
- return true; |
- } |
- DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingAttach); |
-}; |
- |
// BrowserPluginPropertyBinding ------------------------------------------------ |
class BrowserPluginPropertyBinding { |
@@ -365,8 +255,6 @@ BrowserPluginBindings::BrowserPluginBindings(BrowserPlugin* instance) |
np_object_ = static_cast<BrowserPluginBindings::BrowserPluginNPObject*>(obj); |
np_object_->message_channel = weak_ptr_factory_.GetWeakPtr(); |
- method_bindings_.push_back(new BrowserPluginBindingAttach); |
- |
property_bindings_.push_back( |
new BrowserPluginPropertyBindingAllowTransparency); |
property_bindings_.push_back(new BrowserPluginPropertyBindingContentWindow); |
@@ -376,29 +264,6 @@ BrowserPluginBindings::~BrowserPluginBindings() { |
WebBindings::releaseObject(np_object_); |
} |
-bool BrowserPluginBindings::HasMethod(NPIdentifier name) const { |
- for (BindingList::const_iterator iter = method_bindings_.begin(); |
- iter != method_bindings_.end(); |
- ++iter) { |
- if ((*iter)->MatchesName(name)) |
- return true; |
- } |
- return false; |
-} |
- |
-bool BrowserPluginBindings::InvokeMethod(NPIdentifier name, |
- const NPVariant* args, |
- uint32 arg_count, |
- NPVariant* result) { |
- 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); |
- } |
- return false; |
-} |
- |
bool BrowserPluginBindings::HasProperty(NPIdentifier name) const { |
for (PropertyBindingList::const_iterator iter = property_bindings_.begin(); |
iter != property_bindings_.end(); |