| Index: content/browser/renderer_host/render_widget_host_impl.cc
|
| diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
|
| index 9d06bf85897644240749b468c293b5321ee01985..e22b0432aba31b7b1e5c1b63eaf8354d39f294cb 100644
|
| --- a/content/browser/renderer_host/render_widget_host_impl.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_impl.cc
|
| @@ -23,6 +23,7 @@
|
| #include "content/browser/renderer_host/render_process_host_impl.h"
|
| #include "content/browser/renderer_host/render_view_host_impl.h"
|
| #include "content/browser/renderer_host/render_widget_helper.h"
|
| +#include "content/browser/renderer_host/render_widget_host_delegate.h"
|
| #include "content/browser/renderer_host/tap_suppression_controller.h"
|
| #include "content/common/accessibility_messages.h"
|
| #include "content/common/gpu/gpu_messages.h"
|
| @@ -98,11 +99,13 @@ size_t RenderWidgetHost::BackingStoreMemorySize() {
|
| ///////////////////////////////////////////////////////////////////////////////
|
| // RenderWidgetHostImpl
|
|
|
| -RenderWidgetHostImpl::RenderWidgetHostImpl(RenderProcessHost* process,
|
| +RenderWidgetHostImpl::RenderWidgetHostImpl(RenderWidgetHostDelegate* delegate,
|
| + RenderProcessHost* process,
|
| int routing_id)
|
| : view_(NULL),
|
| renderer_initialized_(false),
|
| hung_renderer_delay_ms_(kHungRendererDelayMs),
|
| + delegate_(delegate),
|
| process_(process),
|
| routing_id_(routing_id),
|
| surface_id_(0),
|
| @@ -130,6 +133,7 @@ RenderWidgetHostImpl::RenderWidgetHostImpl(RenderProcessHost* process,
|
| has_touch_handler_(false),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
|
| tap_suppression_controller_(new TapSuppressionController(this)) {
|
| + CHECK(delegate_);
|
| if (routing_id_ == MSG_ROUTING_NONE) {
|
| routing_id_ = process_->GetNextRoutingID();
|
| surface_id_ = GpuSurfaceTracker::Get()->AddSurfaceForRenderer(
|
| @@ -215,12 +219,6 @@ void RenderWidgetHostImpl::CompositingSurfaceUpdated() {
|
| process_->SurfaceUpdated(surface_id_);
|
| }
|
|
|
| -bool RenderWidgetHostImpl::PreHandleKeyboardEvent(
|
| - const NativeWebKeyboardEvent& event,
|
| - bool* is_keyboard_shortcut) {
|
| - return false;
|
| -}
|
| -
|
| void RenderWidgetHostImpl::Init() {
|
| DCHECK(process_->HasConnection());
|
|
|
| @@ -854,7 +852,7 @@ void RenderWidgetHostImpl::ForwardKeyboardEvent(
|
|
|
| // Tab switching/closing accelerators aren't sent to the renderer to avoid
|
| // a hung/malicious renderer from interfering.
|
| - if (PreHandleKeyboardEvent(key_event, &is_keyboard_shortcut))
|
| + if (delegate_->PreHandleKeyboardEvent(key_event, &is_keyboard_shortcut))
|
| return;
|
|
|
| if (key_event.type == WebKeyboardEvent::RawKeyDown)
|
| @@ -866,7 +864,7 @@ void RenderWidgetHostImpl::ForwardKeyboardEvent(
|
| return;
|
|
|
| // Put all WebKeyboardEvent objects in a queue since we can't trust the
|
| - // renderer and we need to give something to the UnhandledInputEvent
|
| + // renderer and we need to give something to the HandleKeyboardEvent
|
| // handler.
|
| key_queue_.push_back(key_event);
|
| HISTOGRAM_COUNTS_100("Renderer.KeyboardQueueSize", key_queue_.size());
|
| @@ -1599,11 +1597,11 @@ void RenderWidgetHostImpl::ProcessKeyboardEventAck(int type, bool processed) {
|
| // because the user has moved away from us and no longer expect any effect
|
| // of this key event.
|
| if (!processed && !is_hidden_ && !front_item.skip_in_browser) {
|
| - UnhandledKeyboardEvent(front_item);
|
| + delegate_->HandleKeyboardEvent(front_item);
|
|
|
| // WARNING: This RenderWidgetHostImpl can be deallocated at this point
|
| // (i.e. in the case of Ctrl+W, where the call to
|
| - // UnhandledKeyboardEvent destroys this RenderWidgetHostImpl).
|
| + // HandleKeyboardEvent destroys this RenderWidgetHostImpl).
|
| }
|
| }
|
| }
|
|
|