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

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

Issue 584713002: Browser Plugin: Remove dependency on NPAPI (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@move_content_window
Patch Set: Updated histograms.xml Created 6 years, 3 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.cc
diff --git a/content/renderer/browser_plugin/browser_plugin.cc b/content/renderer/browser_plugin/browser_plugin.cc
index 661816c45093c33e465bf9f80bc2ee4f3b2e69b1..2fdd343913c7c5df8f7e87dce5c6d7a72d76404a 100644
--- a/content/renderer/browser_plugin/browser_plugin.cc
+++ b/content/renderer/browser_plugin/browser_plugin.cc
@@ -15,7 +15,6 @@
#include "content/public/common/content_switches.h"
#include "content/public/renderer/browser_plugin_delegate.h"
#include "content/public/renderer/content_renderer_client.h"
-#include "content/renderer/browser_plugin/browser_plugin_bindings.h"
#include "content/renderer/browser_plugin/browser_plugin_manager.h"
#include "content/renderer/child_frame_compositing_helper.h"
#include "content/renderer/cursor_utils.h"
@@ -23,8 +22,6 @@
#include "content/renderer/render_thread_impl.h"
#include "content/renderer/sad_plugin.h"
#include "third_party/WebKit/public/platform/WebRect.h"
-#include "third_party/WebKit/public/web/WebBindings.h"
-#include "third_party/WebKit/public/web/WebDocument.h"
#include "third_party/WebKit/public/web/WebElement.h"
#include "third_party/WebKit/public/web/WebInputEvent.h"
#include "third_party/WebKit/public/web/WebPluginContainer.h"
@@ -72,12 +69,12 @@ BrowserPlugin::BrowserPlugin(RenderViewImpl* render_view,
last_device_scale_factor_(GetDeviceScaleFactor()),
sad_guest_(NULL),
guest_crashed_(false),
- content_window_routing_id_(MSG_ROUTING_NONE),
plugin_focused_(false),
visible_(true),
mouse_locked_(false),
browser_plugin_manager_(render_view->GetBrowserPluginManager()),
browser_plugin_instance_id_(browser_plugin::kInstanceIDNone),
+ contents_opaque_(true),
delegate_(delegate.Pass()),
weak_ptr_factory_(this) {
browser_plugin_instance_id_ = browser_plugin_manager()->GetNextInstanceID();
@@ -107,6 +104,7 @@ bool BrowserPlugin::OnMessageReceived(const IPC::Message& message) {
IPC_MESSAGE_HANDLER(BrowserPluginMsg_CopyFromCompositingSurface,
OnCopyFromCompositingSurface)
IPC_MESSAGE_HANDLER(BrowserPluginMsg_GuestGone, OnGuestGone)
+ IPC_MESSAGE_HANDLER(BrowserPluginMsg_SetContentsOpaque, OnSetContentsOpaque)
IPC_MESSAGE_HANDLER(BrowserPluginMsg_SetCursor, OnSetCursor)
IPC_MESSAGE_HANDLER(BrowserPluginMsg_SetMouseLock, OnSetMouseLock)
IPC_MESSAGE_HANDLER(BrowserPluginMsg_ShouldAcceptTouchEvents,
@@ -124,56 +122,8 @@ void BrowserPlugin::UpdateDOMAttribute(const std::string& attribute_name,
blink::WebElement element = container()->element();
blink::WebString web_attribute_name =
blink::WebString::fromUTF8(attribute_name);
- if (!HasDOMAttribute(attribute_name) ||
- (std::string(element.getAttribute(web_attribute_name).utf8()) !=
- attribute_value)) {
- element.setAttribute(web_attribute_name,
- blink::WebString::fromUTF8(attribute_value));
- }
-}
-
-void BrowserPlugin::RemoveDOMAttribute(const std::string& attribute_name) {
- if (!container())
- return;
-
- container()->element().removeAttribute(
- blink::WebString::fromUTF8(attribute_name));
-}
-
-std::string BrowserPlugin::GetDOMAttributeValue(
- const std::string& attribute_name) const {
- if (!container())
- return std::string();
-
- return container()->element().getAttribute(
- blink::WebString::fromUTF8(attribute_name)).utf8();
-}
-
-bool BrowserPlugin::HasDOMAttribute(const std::string& attribute_name) const {
- if (!container())
- return false;
-
- return container()->element().hasAttribute(
- blink::WebString::fromUTF8(attribute_name));
-}
-
-bool BrowserPlugin::GetAllowTransparencyAttribute() const {
- return HasDOMAttribute(browser_plugin::kAttributeAllowTransparency);
-}
-
-void BrowserPlugin::ParseAllowTransparencyAttribute() {
- if (!ready())
- return;
-
- bool opaque = !GetAllowTransparencyAttribute();
-
- if (compositing_helper_.get())
- compositing_helper_->SetContentsOpaque(opaque);
-
- browser_plugin_manager()->Send(new BrowserPluginHostMsg_SetContentsOpaque(
- render_view_routing_id_,
- browser_plugin_instance_id_,
- opaque));
+ element.setAttribute(web_attribute_name,
+ blink::WebString::fromUTF8(attribute_value));
}
void BrowserPlugin::Attach() {
@@ -191,7 +141,6 @@ void BrowserPlugin::Attach() {
BrowserPluginHostMsg_Attach_Params attach_params;
attach_params.focused = ShouldGuestBeFocused();
attach_params.visible = visible_;
- attach_params.opaque = !GetAllowTransparencyAttribute();
attach_params.origin = plugin_rect().origin();
gfx::Size view_size(width(), height());
if (!view_size.IsEmpty()) {
@@ -277,6 +226,15 @@ void BrowserPlugin::OnGuestGone(int browser_plugin_instance_id) {
weak_ptr_factory_.GetWeakPtr()));
}
+void BrowserPlugin::OnSetContentsOpaque(int browser_plugin_instance_id,
+ bool opaque) {
+ if (contents_opaque_ == opaque)
+ return;
+ contents_opaque_ = opaque;
+ if (compositing_helper_.get())
+ compositing_helper_->SetContentsOpaque(opaque);
+}
+
void BrowserPlugin::OnSetCursor(int browser_plugin_instance_id,
const WebCursor& cursor) {
cursor_ = cursor;
@@ -356,11 +314,6 @@ bool BrowserPlugin::initialize(WebPluginContainer* container) {
if (!container)
return false;
- // Tell |container| to allow this plugin to use script objects.
- npp_.reset(new NPP_t);
- container->allowScriptObjects();
-
- bindings_.reset(new BrowserPluginBindings(this));
container_ = container;
container_->setWantsWheelEvents(true);
@@ -390,7 +343,7 @@ void BrowserPlugin::EnableCompositing(bool enable) {
}
}
compositing_helper_->EnableCompositing(enable);
- compositing_helper_->SetContentsOpaque(!GetAllowTransparencyAttribute());
+ compositing_helper_->SetContentsOpaque(contents_opaque_);
if (!enable) {
DCHECK(compositing_helper_.get());
@@ -400,11 +353,8 @@ void BrowserPlugin::EnableCompositing(bool enable) {
}
void BrowserPlugin::destroy() {
- // If the plugin was initialized then it has a valid |npp_| identifier, and
- // the |container_| must clear references to the plugin's script objects.
- DCHECK(!npp_ || container_);
if (container_) {
- container_->clearScriptObjects();
+ //container_->clearScriptObjects();
// The BrowserPlugin's WebPluginContainer is deleted immediately after this
// call returns, so let's not keep a reference to it around.
@@ -420,20 +370,6 @@ void BrowserPlugin::destroy() {
base::MessageLoop::current()->DeleteSoon(FROM_HERE, this);
}
-NPObject* BrowserPlugin::scriptableObject() {
- if (!bindings_)
- return NULL;
-
- NPObject* browser_plugin_np_object(bindings_->np_object());
- // The object is expected to be retained before it is returned.
- blink::WebBindings::retainObject(browser_plugin_np_object);
- return browser_plugin_np_object;
-}
-
-NPP BrowserPlugin::pluginNPP() {
- return npp_.get();
-}
-
bool BrowserPlugin::supportsKeyboardFocus() const {
return true;
}
@@ -487,6 +423,7 @@ bool BrowserPlugin::ShouldForwardToBrowserPlugin(
case BrowserPluginMsg_CompositorFrameSwapped::ID:
case BrowserPluginMsg_CopyFromCompositingSurface::ID:
case BrowserPluginMsg_GuestGone::ID:
+ case BrowserPluginMsg_SetContentsOpaque::ID:
case BrowserPluginMsg_SetCursor::ID:
case BrowserPluginMsg_SetMouseLock::ID:
case BrowserPluginMsg_ShouldAcceptTouchEvents::ID:
« no previous file with comments | « content/renderer/browser_plugin/browser_plugin.h ('k') | content/renderer/browser_plugin/browser_plugin_bindings.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698