Chromium Code Reviews| Index: content/renderer/render_view_impl.cc |
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
| index 3a40ebe1e6011855c3a74eae94b41ec501998fff..f7eceb40b41dbfd2475a932d42a23114fceaf883 100644 |
| --- a/content/renderer/render_view_impl.cc |
| +++ b/content/renderer/render_view_impl.cc |
| @@ -381,6 +381,8 @@ static const size_t kContentIntentDelayMilliseconds = 700; |
| static RenderViewImpl* (*g_create_render_view_impl)(RenderViewImplParams*) = |
| NULL; |
| +static bool g_require_user_gesture_for_focus = true; |
|
piman
2013/02/26 21:11:35
nit: could we move this to RenderThreadImpl to avo
jochen (gone - plz use gerrit)
2013/02/27 16:24:14
Done.
|
| + |
| static WebKit::WebFrame* FindFrameByID(WebKit::WebFrame* root, int frame_id) { |
| for (WebFrame* frame = root; frame; frame = frame->traverseNext(false)) { |
| if (frame->identifier() == frame_id) |
| @@ -921,6 +923,11 @@ void RenderViewImpl::InstallCreateHook( |
| g_create_render_view_impl = create_render_view_impl; |
| } |
| +// static |
| +void RenderViewImpl::DoNotRequireUserGestureForFocusChangesForTesting() { |
| + g_require_user_gesture_for_focus = false; |
| +} |
| + |
| void RenderViewImpl::AddObserver(RenderViewObserver* observer) { |
| observers_.AddObserver(observer); |
| } |
| @@ -2519,17 +2526,21 @@ void RenderViewImpl::didFocus() { |
| // TODO(jcivelli): when https://bugs.webkit.org/show_bug.cgi?id=33389 is fixed |
| // we won't have to test for user gesture anymore and we can |
| // move that code back to render_widget.cc |
| - if (webview() && webview()->mainFrame() && |
| - webview()->mainFrame()->isProcessingUserGesture()) { |
| - Send(new ViewHostMsg_Focus(routing_id_)); |
| + if (webview() && webview()->mainFrame()) { |
| + if (webview()->mainFrame()->isProcessingUserGesture() || |
| + !g_require_user_gesture_for_focus) { |
| + Send(new ViewHostMsg_Focus(routing_id_)); |
| + } |
| } |
| } |
| void RenderViewImpl::didBlur() { |
| // TODO(jcivelli): see TODO above in didFocus(). |
| - if (webview() && webview()->mainFrame() && |
| - webview()->mainFrame()->isProcessingUserGesture()) { |
| - Send(new ViewHostMsg_Blur(routing_id_)); |
| + if (webview() && webview()->mainFrame()) { |
| + if (webview()->mainFrame()->isProcessingUserGesture() || |
| + !g_require_user_gesture_for_focus) { |
| + Send(new ViewHostMsg_Blur(routing_id_)); |
| + } |
| } |
| } |