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

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

Issue 250063002: Browser Plugin: Simplified guest attachment (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed New Window API test Created 6 years, 8 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 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);
« no previous file with comments | « content/renderer/browser_plugin/browser_plugin.cc ('k') | content/renderer/browser_plugin/mock_browser_plugin_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698