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

Issue 1500873002: Implement sequential focus navigation for OOPIF. (Closed)

Created:
5 years ago by alexmos
Modified:
5 years ago
CC:
blink-reviews, blink-reviews-api_chromium.org, blink-reviews-dom_chromium.org, chromium-reviews, creis+watch_chromium.org, darin-cc_chromium.org, dglazkov+blink, eae+blinkwatch, jam, mkwst+moarreviews-renderer_chromium.org, mlamouri+watch-content_chromium.org, nasko+codewatch_chromium.org, rwlbuis, sof, site-isolation-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Implement sequential focus navigation for OOPIF. Pressing <tab> or <shift-tab> traverses through all focusable elements on a page, descending into the content of any frames that it encounters along the way, including cross-origin frames. This behavior is currently broken with out-of-process frames: remote frames are skipped entirely during focus traversal. This CL puts in the initial plumbing to fix this and allow advancing focus across frames in different processes. When the search for focusable elements in FocusController::advanceFocusInDocumentOrder encounters an <iframe> element for a remote frame, it will instruct that frame to continue the search in its process via the new AdvanceFocus IPCs. Once the frame has finished advancing through its focusable elements, it will use the same IPCs to transfer the search for focusable elements to its parent frame. To allow the parent to resume search from the right place, the IPCs include the source frame (from which the search is being transferred). BUG=341918, 339659 Committed: https://crrev.com/401f0abaadb546a25d35c1a35c4557c30d736e06 Cr-Commit-Position: refs/heads/master@{#363362}

Patch Set 1 #

Patch Set 2 : Cleanup #

Patch Set 3 : Cleanup and test fix #

Total comments: 20

Patch Set 4 : Address Charlie's comments #

Total comments: 6

Patch Set 5 : Move WebFocusType enum macro to frame_messages.h #

Total comments: 2

Patch Set 6 : Daniel's comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+246 lines, -14 lines) Patch
M content/browser/frame_host/render_frame_proxy_host.h View 1 2 3 4 5 2 chunks +2 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_frame_proxy_host.cc View 1 2 3 4 5 2 chunks +26 lines, -0 lines 0 comments Download
M content/browser/site_per_process_browsertest.cc View 1 2 3 1 chunk +85 lines, -0 lines 0 comments Download
M content/common/browser_plugin/browser_plugin_messages.h View 1 2 3 4 1 chunk +0 lines, -1 line 0 comments Download
M content/common/frame_messages.h View 1 2 3 4 5 4 chunks +19 lines, -0 lines 0 comments Download
M content/renderer/render_frame_impl.h View 1 2 3 4 5 2 chunks +2 lines, -0 lines 0 comments Download
M content/renderer/render_frame_impl.cc View 1 2 3 4 5 2 chunks +12 lines, -0 lines 0 comments Download
M content/renderer/render_frame_proxy.h View 2 chunks +3 lines, -0 lines 0 comments Download
M content/renderer/render_frame_proxy.cc View 1 1 chunk +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/frame/RemoteFrame.h View 2 chunks +4 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/frame/RemoteFrame.cpp View 2 chunks +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/frame/RemoteFrameClient.h View 1 2 chunks +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/page/FocusController.h View 1 3 chunks +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/page/FocusController.cpp View 1 2 3 4 5 6 chunks +45 lines, -12 lines 0 comments Download
M third_party/WebKit/Source/web/RemoteFrameClientImpl.h View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/web/RemoteFrameClientImpl.cpp View 1 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/web/WebViewImpl.h View 1 2 chunks +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/web/WebViewImpl.cpp View 1 1 chunk +7 lines, -0 lines 0 comments Download
M third_party/WebKit/public/web/WebRemoteFrameClient.h View 1 2 chunks +6 lines, -0 lines 0 comments Download
M third_party/WebKit/public/web/WebView.h View 1 2 3 4 5 3 chunks +8 lines, -0 lines 0 comments Download

Messages

Total messages: 53 (23 generated)
alexmos
Charlie, Daniel - please take a look. This would have a couple of follow-up work ...
5 years ago (2015-12-04 18:20:37 UTC) #3
Charlie Reis
Nice. content/ LGTM with nits. https://codereview.chromium.org/1500873002/diff/40001/content/browser/frame_host/render_frame_proxy_host.cc File content/browser/frame_host/render_frame_proxy_host.cc (right): https://codereview.chromium.org/1500873002/diff/40001/content/browser/frame_host/render_frame_proxy_host.cc#newcode334 content/browser/frame_host/render_frame_proxy_host.cc:334: RenderFrameHostImpl* source_rfh = nit: ...
5 years ago (2015-12-04 21:44:50 UTC) #4
alexmos
Thanks! Comments addressed. Daniel, would you be able to look at the Blink side today? ...
5 years ago (2015-12-04 22:21:18 UTC) #5
Charlie Reis
https://codereview.chromium.org/1500873002/diff/40001/content/common/frame_messages.h File content/common/frame_messages.h (right): https://codereview.chromium.org/1500873002/diff/40001/content/common/frame_messages.h#newcode48 content/common/frame_messages.h:48: IPC_ENUM_TRAITS_MIN_MAX_VALUE(AccessibilityMode, On 2015/12/04 22:21:18, alexmos wrote: > On 2015/12/04 ...
5 years ago (2015-12-04 22:27:04 UTC) #6
alexmos
https://codereview.chromium.org/1500873002/diff/40001/content/common/frame_messages.h File content/common/frame_messages.h (right): https://codereview.chromium.org/1500873002/diff/40001/content/common/frame_messages.h#newcode48 content/common/frame_messages.h:48: IPC_ENUM_TRAITS_MIN_MAX_VALUE(AccessibilityMode, On 2015/12/04 22:27:04, Charlie Reis wrote: > On ...
5 years ago (2015-12-04 22:33:53 UTC) #7
dcheng
https://codereview.chromium.org/1500873002/diff/40001/content/browser/frame_host/render_frame_proxy_host.cc File content/browser/frame_host/render_frame_proxy_host.cc (right): https://codereview.chromium.org/1500873002/diff/40001/content/browser/frame_host/render_frame_proxy_host.cc#newcode330 content/browser/frame_host/render_frame_proxy_host.cc:330: int32 source_routing_id) { Nit: int32_t https://codereview.chromium.org/1500873002/diff/40001/content/common/frame_messages.h File content/common/frame_messages.h (right): ...
5 years ago (2015-12-04 23:11:01 UTC) #8
dcheng
https://codereview.chromium.org/1500873002/diff/80001/third_party/WebKit/Source/web/WebViewImpl.cpp File third_party/WebKit/Source/web/WebViewImpl.cpp (right): https://codereview.chromium.org/1500873002/diff/80001/third_party/WebKit/Source/web/WebViewImpl.cpp#newcode2966 third_party/WebKit/Source/web/WebViewImpl.cpp:2966: } Also, another thought (this can wait until a ...
5 years ago (2015-12-04 23:16:37 UTC) #9
alexmos
Thanks! https://codereview.chromium.org/1500873002/diff/40001/content/browser/frame_host/render_frame_proxy_host.cc File content/browser/frame_host/render_frame_proxy_host.cc (right): https://codereview.chromium.org/1500873002/diff/40001/content/browser/frame_host/render_frame_proxy_host.cc#newcode330 content/browser/frame_host/render_frame_proxy_host.cc:330: int32 source_routing_id) { On 2015/12/04 23:11:01, dcheng wrote: ...
5 years ago (2015-12-05 00:07:45 UTC) #10
dcheng
lgtm
5 years ago (2015-12-05 00:17:37 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1500873002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1500873002/100001
5 years ago (2015-12-05 00:25:03 UTC) #14
commit-bot: I haz the power
Try jobs failed on following builders: win8_chromium_ng on tryserver.chromium.win (JOB_TIMED_OUT, no build URL) win_chromium_compile_dbg_ng on ...
5 years ago (2015-12-05 02:08:03 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1500873002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1500873002/100001
5 years ago (2015-12-05 02:19:28 UTC) #18
commit-bot: I haz the power
Try jobs failed on following builders: win8_chromium_ng on tryserver.chromium.win (JOB_TIMED_OUT, no build URL) win_chromium_compile_dbg_ng on ...
5 years ago (2015-12-05 04:23:48 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1500873002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1500873002/100001
5 years ago (2015-12-05 04:33:35 UTC) #22
commit-bot: I haz the power
Try jobs failed on following builders: win8_chromium_ng on tryserver.chromium.win (JOB_TIMED_OUT, no build URL) win_chromium_compile_dbg_ng on ...
5 years ago (2015-12-05 06:35:51 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1500873002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1500873002/100001
5 years ago (2015-12-05 06:49:04 UTC) #26
commit-bot: I haz the power
Try jobs failed on following builders: win8_chromium_ng on tryserver.chromium.win (JOB_TIMED_OUT, no build URL) win_chromium_compile_dbg_ng on ...
5 years ago (2015-12-05 08:51:13 UTC) #28
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1500873002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1500873002/100001
5 years ago (2015-12-05 15:28:51 UTC) #30
commit-bot: I haz the power
Try jobs failed on following builders: win8_chromium_ng on tryserver.chromium.win (JOB_TIMED_OUT, no build URL) win_chromium_compile_dbg_ng on ...
5 years ago (2015-12-05 17:31:06 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1500873002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1500873002/100001
5 years ago (2015-12-05 23:04:06 UTC) #34
commit-bot: I haz the power
Exceeded global retry quota
5 years ago (2015-12-06 00:07:36 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1500873002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1500873002/100001
5 years ago (2015-12-06 00:14:56 UTC) #38
commit-bot: I haz the power
Exceeded global retry quota
5 years ago (2015-12-06 01:05:30 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1500873002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1500873002/100001
5 years ago (2015-12-06 01:07:54 UTC) #42
commit-bot: I haz the power
Exceeded global retry quota
5 years ago (2015-12-06 01:41:57 UTC) #44
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1500873002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1500873002/100001
5 years ago (2015-12-06 01:42:49 UTC) #46
commit-bot: I haz the power
Exceeded global retry quota
5 years ago (2015-12-06 02:33:25 UTC) #48
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1500873002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1500873002/100001
5 years ago (2015-12-06 07:11:09 UTC) #50
commit-bot: I haz the power
Committed patchset #6 (id:100001)
5 years ago (2015-12-06 10:07:50 UTC) #51
commit-bot: I haz the power
5 years ago (2015-12-06 10:09:34 UTC) #53
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/401f0abaadb546a25d35c1a35c4557c30d736e06
Cr-Commit-Position: refs/heads/master@{#363362}

Powered by Google App Engine
This is Rietveld 408576698