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

Unified Diff: content/browser/web_contents/web_contents_view_child_frame.cc

Issue 2474323002: Implement WebContentsViewChildFrame::TakeFocus. (Closed)
Patch Set: Conflicted with my own cl https://codereview.chromium.org/2455133005/ Created 4 years, 1 month 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/web_contents/web_contents_view_child_frame.cc
diff --git a/content/browser/web_contents/web_contents_view_child_frame.cc b/content/browser/web_contents/web_contents_view_child_frame.cc
index 9b17012781b3864279b2473a25ca08ae97a6c877..a7923ac4c999fa7723cbf68907a2018a38786fae 100644
--- a/content/browser/web_contents/web_contents_view_child_frame.cc
+++ b/content/browser/web_contents/web_contents_view_child_frame.cc
@@ -5,6 +5,7 @@
#include "content/browser/web_contents/web_contents_view_child_frame.h"
#include "build/build_config.h"
+#include "content/browser/frame_host/render_frame_proxy_host.h"
#include "content/browser/frame_host/render_widget_host_view_child_frame.h"
#include "content/browser/web_contents/web_contents_impl.h"
#include "content/public/browser/web_contents_view_delegate.h"
@@ -152,8 +153,15 @@ void WebContentsViewChildFrame::GotFocus() {
}
void WebContentsViewChildFrame::TakeFocus(bool reverse) {
alexmos 2016/11/22 02:45:27 Could we also update the documentation on ViewHost
alexmos 2016/11/22 02:45:27 How does the other part of tab traversal work, whe
avallee 2016/11/25 19:39:54 The problem here I think is that tabbing into the
avallee 2016/11/25 19:39:54 Done.
alexmos 2016/11/28 23:52:23 Yes, this is indeed strange, since the early out y
avallee 2016/12/09 21:16:51 On further investigation, this is what happens. Od
alexmos 2016/12/12 22:41:15 Wow, good find, thanks for the investigation. Ind
avallee 2017/01/11 00:48:49 Done. Filed: https://bugs.chromium.org/p/chromium/
- // TODO(avallee): http://crbug.com/610819 Advance focus to next element in
- // outer WebContents.
+ RenderFrameProxyHost* rfp =
+ web_contents_->GetRenderManager()->GetProxyToOuterDelegate();
alexmos 2016/11/22 02:45:27 It seems you can avoid making GetRenderManager pub
avallee 2016/11/25 19:39:54 I'll use the detour for now. There's already a com
+ FrameTreeNode* outer_node = FrameTreeNode::GloballyFindByID(
+ web_contents_->GetOuterDelegateFrameTreeNodeId());
+ RenderFrameHostImpl* rfhi =
+ outer_node->parent()->render_manager()->current_frame_host();
+
+ rfhi->AdvanceFocus(
+ reverse ? blink::WebFocusTypeBackward : blink::WebFocusTypeForward, rfp);
}
void WebContentsViewChildFrame::ShowContextMenu(

Powered by Google App Engine
This is Rietveld 408576698