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

Unified Diff: content/browser/frame_host/render_widget_host_view_child_frame.cc

Issue 1255483004: Implement surface-based browser process hit testing for Mac and Aura (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Disabled test on Android (not implemented there) Created 5 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/browser/frame_host/render_widget_host_view_child_frame.cc
diff --git a/content/browser/frame_host/render_widget_host_view_child_frame.cc b/content/browser/frame_host/render_widget_host_view_child_frame.cc
index 0d1af8d985fd12bee4d182dc12af935000b5e49f..aa00193c5d5a8a2dc7b92b0c2f491ebb574fc188 100644
--- a/content/browser/frame_host/render_widget_host_view_child_frame.cc
+++ b/content/browser/frame_host/render_widget_host_view_child_frame.cc
@@ -14,7 +14,9 @@
#include "content/browser/frame_host/cross_process_frame_connector.h"
#include "content/browser/gpu/compositor_util.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
+#include "content/browser/renderer_host/render_widget_host_delegate.h"
#include "content/browser/renderer_host/render_widget_host_impl.h"
+#include "content/browser/renderer_host/render_widget_host_input_event_router.h"
#include "content/common/gpu/gpu_messages.h"
#include "content/common/view_messages.h"
#include "content/public/browser/render_process_host.h"
@@ -32,8 +34,13 @@ RenderWidgetHostViewChildFrame::RenderWidgetHostViewChildFrame(
ack_pending_count_(0),
frame_connector_(nullptr),
weak_factory_(this) {
- if (use_surfaces_)
+ if (use_surfaces_) {
id_allocator_ = CreateSurfaceIdAllocator();
+ if (host_->delegate() && host_->delegate()->GetInputEventRouter()) {
+ host_->delegate()->GetInputEventRouter()->AddSurfaceIdNamespaceOwner(
+ GetSurfaceIdNamespace(), this);
+ }
+ }
host_->SetView(this);
}
@@ -187,6 +194,12 @@ void RenderWidgetHostViewChildFrame::Destroy() {
frame_connector_ = NULL;
}
+ if (use_surfaces_ && host_->delegate() &&
+ host_->delegate()->GetInputEventRouter()) {
+ host_->delegate()->GetInputEventRouter()->RemoveSurfaceIdNamespaceOwner(
+ GetSurfaceIdNamespace());
+ }
+
host_->SetView(NULL);
host_ = NULL;
base::MessageLoop::current()->DeleteSoon(FROM_HERE, this);
@@ -338,6 +351,22 @@ uint32_t RenderWidgetHostViewChildFrame::GetSurfaceIdNamespace() {
return id_allocator_->id_namespace();
}
+void RenderWidgetHostViewChildFrame::ProcessKeyboardEvent(
+ const NativeWebKeyboardEvent& event) {
+ host_->ForwardKeyboardEvent(event);
+}
+
+void RenderWidgetHostViewChildFrame::ProcessMouseEvent(
+ const blink::WebMouseEvent& event) {
+ host_->ForwardMouseEvent(event);
+}
+
+void RenderWidgetHostViewChildFrame::ProcessMouseWheelEvent(
+ const blink::WebMouseWheelEvent& event) {
+ if (event.deltaX != 0 || event.deltaY != 0)
+ host_->ForwardWheelEvent(event);
+}
+
#if defined(OS_MACOSX)
void RenderWidgetHostViewChildFrame::SetActive(bool active) {
}

Powered by Google App Engine
This is Rietveld 408576698