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 509ace278428444cfd7c37a62aed318108fa552f..4284e2b0c0431a0d3a2d279c31755149be7622b7 100644 |
--- a/content/renderer/browser_plugin/browser_plugin_bindings.cc |
+++ b/content/renderer/browser_plugin/browser_plugin_bindings.cc |
@@ -231,9 +231,7 @@ class BrowserPluginMethodBinding { |
class BrowserPluginBindingAttach: public BrowserPluginMethodBinding { |
public: |
BrowserPluginBindingAttach() |
- : BrowserPluginMethodBinding( |
- browser_plugin::kMethodInternalAttach, 1) { |
- } |
+ : BrowserPluginMethodBinding(browser_plugin::kMethodInternalAttach, 2) {} |
virtual bool Invoke(BrowserPluginBindings* bindings, |
const NPVariant* args, |
@@ -241,8 +239,12 @@ class BrowserPluginBindingAttach: public BrowserPluginMethodBinding { |
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[0])); |
+ 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())); |
@@ -254,7 +256,7 @@ class BrowserPluginBindingAttach: public BrowserPluginMethodBinding { |
scoped_ptr<base::DictionaryValue> extra_params( |
static_cast<base::DictionaryValue*>(value.release())); |
- bindings->instance()->Attach(extra_params.Pass()); |
+ bindings->instance()->Attach(instance_id, extra_params.Pass()); |
return true; |
} |
@@ -262,28 +264,6 @@ class BrowserPluginBindingAttach: public BrowserPluginMethodBinding { |
DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingAttach); |
}; |
-class BrowserPluginBindingAttachWindowTo : public BrowserPluginMethodBinding { |
- public: |
- BrowserPluginBindingAttachWindowTo() |
- : BrowserPluginMethodBinding( |
- browser_plugin::kMethodInternalAttachWindowTo, 2) { |
- } |
- |
- virtual bool Invoke(BrowserPluginBindings* bindings, |
- const NPVariant* args, |
- NPVariant* result) OVERRIDE { |
- blink::WebNode node; |
- WebBindings::getNode(NPVARIANT_TO_OBJECT(args[0]), &node); |
- int window_id = IntFromNPVariant(args[1]); |
- BOOLEAN_TO_NPVARIANT(BrowserPlugin::AttachWindowTo(node, window_id), |
- *result); |
- return true; |
- } |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(BrowserPluginBindingAttachWindowTo); |
-}; |
- |
// BrowserPluginPropertyBinding ------------------------------------------------ |
class BrowserPluginPropertyBinding { |
@@ -671,7 +651,6 @@ BrowserPluginBindings::BrowserPluginBindings(BrowserPlugin* instance) |
np_object_->message_channel = weak_ptr_factory_.GetWeakPtr(); |
method_bindings_.push_back(new BrowserPluginBindingAttach); |
- method_bindings_.push_back(new BrowserPluginBindingAttachWindowTo); |
property_bindings_.push_back( |
new BrowserPluginPropertyBindingAllowTransparency); |