Index: Source/web/ChromeClientImpl.cpp |
diff --git a/Source/web/ChromeClientImpl.cpp b/Source/web/ChromeClientImpl.cpp |
index 399dd660372e119fe49755e988a70de34208f5a2..fda3326d4afc14152dfad36fa04e4ea61c370fbe 100644 |
--- a/Source/web/ChromeClientImpl.cpp |
+++ b/Source/web/ChromeClientImpl.cpp |
@@ -44,6 +44,8 @@ |
#include "core/events/WheelEvent.h" |
#include "core/frame/Console.h" |
#include "core/frame/FrameView.h" |
+#include "core/frame/RemoteFrame.h" |
+#include "core/frame/RemoteFrameView.h" |
#include "core/frame/Settings.h" |
#include "core/html/HTMLInputElement.h" |
#include "core/html/forms/ColorChooser.h" |
@@ -103,6 +105,7 @@ |
#include "web/WebLocalFrameImpl.h" |
#include "web/WebPluginContainerImpl.h" |
#include "web/WebPopupMenuImpl.h" |
+#include "web/WebRemoteFrameImpl.h" |
#include "web/WebSettingsImpl.h" |
#include "web/WebViewImpl.h" |
#include "wtf/text/CString.h" |
@@ -845,14 +848,9 @@ void ChromeClientImpl::handleKeyboardEventOnTextField(HTMLInputElement& inputEle |
// FIXME: Remove this code once we have input routing in the browser |
// process. See http://crbug.com/339659. |
void ChromeClientImpl::forwardInputEvent( |
- Frame* frame, Event* event) |
+ RemoteFrame* frame, Event* event) |
{ |
- // FIXME: Input event forwarding to out-of-process frames is broken until |
- // WebRemoteFrameImpl has a WebFrameClient. |
- if (frame->isRemoteFrame()) |
- return; |
- |
- WebLocalFrameImpl* webFrame = WebLocalFrameImpl::fromFrame(toLocalFrame(frame)); |
+ WebRemoteFrameImpl* webFrame = WebRemoteFrameImpl::fromFrame(*frame); |
// This is only called when we have out-of-process iframes, which |
// need to forward input events across processes. |
@@ -861,14 +859,13 @@ void ChromeClientImpl::forwardInputEvent( |
WebKeyboardEventBuilder webEvent(*static_cast<KeyboardEvent*>(event)); |
webFrame->client()->forwardInputEvent(&webEvent); |
} else if (event->isMouseEvent()) { |
- WebMouseEventBuilder webEvent(webFrame->frameView(), frame->ownerRenderer(), *static_cast<MouseEvent*>(event)); |
+ WebMouseEventBuilder webEvent(webFrame->frame()->view(), frame->ownerRenderer(), *static_cast<MouseEvent*>(event)); |
// Internal Blink events should not be forwarded. |
if (webEvent.type == WebInputEvent::Undefined) |
return; |
- |
webFrame->client()->forwardInputEvent(&webEvent); |
} else if (event->isWheelEvent()) { |
- WebMouseWheelEventBuilder webEvent(webFrame->frameView(), frame->ownerRenderer(), *static_cast<WheelEvent*>(event)); |
+ WebMouseWheelEventBuilder webEvent(webFrame->frame()->view(), frame->ownerRenderer(), *static_cast<WheelEvent*>(event)); |
if (webEvent.type == WebInputEvent::Undefined) |
return; |
webFrame->client()->forwardInputEvent(&webEvent); |