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

Issue 1980133002: Implement pointer lock API for out-of-process iframes. (Closed)

Created:
4 years, 7 months ago by lfg
Modified:
4 years, 6 months ago
Reviewers:
scheib, dcheng, nasko
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, mlamouri+watch-blink_chromium.org, nasko+codewatch_chromium.org, rwlbuis, scheib+watch_chromium.org, 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 pointer lock API for out-of-process iframes. This patch moves the MouseLockDispatcher from RenderView to RenderWidget and implements the necessary plumbing to allow pointer locking from out-of-process iframes. TEST=Manual test please: Navigate to http://scheib.github.io/HTMLMisc/PointerLockAndFullscreen-iframes.html and verify that toggling pointer lock from all iframes work as well as exiting* pointer lock. Verify that the mouse movement continues to be tracked in the frame that locked the pointer. * Exiting can be done by ESC key, ALT-TAB (on Mac Command Tab), Windows key to bring up start menu etc. BUG=601926, 419087 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation Committed: https://crrev.com/bee1e0ad56ce6b9def191f6ec6ef5a71a2f5d83e Cr-Commit-Position: refs/heads/master@{#398679}

Patch Set 1 #

Patch Set 2 : remove exposed methods from WebViewClient #

Patch Set 3 : removing one more override #

Total comments: 6

Patch Set 4 : rebase #

Patch Set 5 : addressing comments #

Total comments: 17

Patch Set 6 : rebase #

Patch Set 7 : addressing comments #

Patch Set 8 : rebase #

Total comments: 10

Patch Set 9 : rebase #

Patch Set 10 : addressing comments #

Total comments: 1

Patch Set 11 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+246 lines, -282 lines) Patch
M content/browser/frame_host/cross_process_frame_connector.h View 1 2 3 4 5 1 chunk +3 lines, -0 lines 0 comments Download
M content/browser/frame_host/cross_process_frame_connector.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +7 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_widget_host_view_child_frame.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/frame_host/render_widget_host_view_child_frame.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +15 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_impl.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +3 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +4 lines, -6 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +4 lines, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.cc View 1 2 3 4 5 6 7 8 9 10 4 chunks +25 lines, -10 lines 0 comments Download
M content/content_renderer.gypi View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -2 lines 0 comments Download
M content/renderer/mouse_lock_dispatcher_browsertest.cc View 13 chunks +23 lines, -22 lines 0 comments Download
M content/renderer/render_view_impl.h View 1 2 3 4 5 6 chunks +0 lines, -15 lines 0 comments Download
M content/renderer/render_view_impl.cc View 1 2 3 4 5 6 7 8 9 10 7 chunks +1 line, -55 lines 0 comments Download
D content/renderer/render_view_mouse_lock_dispatcher.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -41 lines 0 comments Download
D content/renderer/render_view_mouse_lock_dispatcher.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -70 lines 0 comments Download
M content/renderer/render_widget.h View 1 2 3 4 5 6 7 8 9 4 chunks +15 lines, -0 lines 0 comments Download
M content/renderer/render_widget.cc View 1 2 3 4 5 6 7 8 9 4 chunks +42 lines, -0 lines 0 comments Download
A content/renderer/render_widget_mouse_lock_dispatcher.h View 1 2 3 4 5 6 7 8 9 1 chunk +42 lines, -0 lines 0 comments Download
A + content/renderer/render_widget_mouse_lock_dispatcher.cc View 1 2 3 4 5 6 7 8 9 10 4 chunks +17 lines, -22 lines 0 comments Download
M third_party/WebKit/Source/core/dom/Document.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/page/ChromeClient.h View 1 2 3 4 5 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/page/PointerLockController.cpp View 1 2 3 4 2 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/web/ChromeClientImpl.h View 1 2 3 4 5 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/web/ChromeClientImpl.cpp View 1 2 3 4 5 1 chunk +6 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/web/WebFrameWidgetImpl.h View 1 2 3 4 5 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp View 1 2 3 4 5 6 7 8 9 2 chunks +16 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/web/WebViewImpl.h View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/web/WebViewImpl.cpp View 1 2 3 4 5 6 7 8 9 10 3 chunks +8 lines, -17 lines 0 comments Download
M third_party/WebKit/public/web/WebViewClient.h View 1 1 chunk +0 lines, -3 lines 0 comments Download

Messages

Total messages: 41 (14 generated)
lfg
Daniel, please take a look.
4 years, 7 months ago (2016-05-16 20:19:20 UTC) #3
dcheng
On 2016/05/16 at 20:19:20, lfg wrote: > Daniel, please take a look. Is there anyone ...
4 years, 7 months ago (2016-05-16 20:24:40 UTC) #4
lfg
On 2016/05/16 20:24:40, dcheng wrote: > On 2016/05/16 at 20:19:20, lfg wrote: > > Daniel, ...
4 years, 7 months ago (2016-05-16 20:47:05 UTC) #7
scheib
I'll look.
4 years, 7 months ago (2016-05-17 20:26:44 UTC) #8
scheib
Thanks, looking forward to this working. There's quite an array of components involved, so inspection ...
4 years, 7 months ago (2016-05-19 00:38:58 UTC) #9
lfg
On 2016/05/19 00:38:58, scheib wrote: > Thanks, looking forward to this working. There's quite an ...
4 years, 7 months ago (2016-05-19 23:53:56 UTC) #10
lfg
https://codereview.chromium.org/1980133002/diff/40001/content/renderer/render_widget.h File content/renderer/render_widget.h (right): https://codereview.chromium.org/1980133002/diff/40001/content/renderer/render_widget.h#newcode411 content/renderer/render_widget.h:411: bool should_add_route); On 2016/05/19 00:38:58, scheib wrote: > Is ...
4 years, 7 months ago (2016-05-19 23:54:07 UTC) #11
scheib
LGTM with a TEST= plan (response follows)
4 years, 7 months ago (2016-05-21 05:14:52 UTC) #12
scheib
> > Many pointer lock bugs are systematic, needing integration testing. The > browser > ...
4 years, 7 months ago (2016-05-21 05:27:15 UTC) #13
lfg
On 2016/05/21 05:27:15, scheib wrote: > We should have something better. It just hasn't been ...
4 years, 7 months ago (2016-05-25 18:52:33 UTC) #14
lfg
+nasko@ for content/ review.
4 years, 7 months ago (2016-05-25 18:53:40 UTC) #16
nasko
Mostly nits. https://codereview.chromium.org/1980133002/diff/80001/content/browser/frame_host/render_widget_host_view_child_frame.cc File content/browser/frame_host/render_widget_host_view_child_frame.cc (right): https://codereview.chromium.org/1980133002/diff/80001/content/browser/frame_host/render_widget_host_view_child_frame.cc#newcode489 content/browser/frame_host/render_widget_host_view_child_frame.cc:489: if (frame_connector_) { Why not early return ...
4 years, 7 months ago (2016-05-25 21:12:01 UTC) #17
scheib
On 2016/05/25 18:52:33, lfg wrote: > On 2016/05/21 05:27:15, scheib wrote: > > We should ...
4 years, 7 months ago (2016-05-26 20:49:27 UTC) #18
scheib
On 2016/05/26 20:49:27, scheib wrote: > On 2016/05/25 18:52:33, lfg wrote: > > On 2016/05/21 ...
4 years, 7 months ago (2016-05-26 21:33:11 UTC) #19
lfg
On 2016/05/26 21:33:11, scheib wrote: > On 2016/05/26 20:49:27, scheib wrote: > > On 2016/05/25 ...
4 years, 6 months ago (2016-05-31 21:13:10 UTC) #22
lfg
PTAL. https://codereview.chromium.org/1980133002/diff/80001/content/browser/frame_host/render_widget_host_view_child_frame.cc File content/browser/frame_host/render_widget_host_view_child_frame.cc (right): https://codereview.chromium.org/1980133002/diff/80001/content/browser/frame_host/render_widget_host_view_child_frame.cc#newcode489 content/browser/frame_host/render_widget_host_view_child_frame.cc:489: if (frame_connector_) { On 2016/05/25 21:12:01, nasko (slow) ...
4 years, 6 months ago (2016-05-31 21:13:20 UTC) #23
scheib
Thanks, TEST= LGTM
4 years, 6 months ago (2016-06-01 00:57:00 UTC) #24
nasko
LGTM https://codereview.chromium.org/1980133002/diff/80001/content/renderer/render_widget_mouse_lock_dispatcher.cc File content/renderer/render_widget_mouse_lock_dispatcher.cc (right): https://codereview.chromium.org/1980133002/diff/80001/content/renderer/render_widget_mouse_lock_dispatcher.cc#newcode1 content/renderer/render_widget_mouse_lock_dispatcher.cc:1: // Copyright (c) 2012 The Chromium Authors. All ...
4 years, 6 months ago (2016-06-01 16:31:03 UTC) #25
lfg
+dcheng: Daniel, can you do a blink owners review?
4 years, 6 months ago (2016-06-01 18:31:14 UTC) #26
dcheng
https://codereview.chromium.org/1980133002/diff/140001/content/renderer/render_widget.cc File content/renderer/render_widget.cc (right): https://codereview.chromium.org/1980133002/diff/140001/content/renderer/render_widget.cc#newcode393 content/renderer/render_widget.cc:393: bool should_add_route) { Can we just make RenderView::Initialize() not ...
4 years, 6 months ago (2016-06-04 05:28:56 UTC) #27
lfg
https://codereview.chromium.org/1980133002/diff/140001/content/renderer/render_widget.cc File content/renderer/render_widget.cc (right): https://codereview.chromium.org/1980133002/diff/140001/content/renderer/render_widget.cc#newcode393 content/renderer/render_widget.cc:393: bool should_add_route) { On 2016/06/04 05:28:56, dcheng wrote: > ...
4 years, 6 months ago (2016-06-06 20:09:43 UTC) #28
dcheng
LGTM https://codereview.chromium.org/1980133002/diff/180001/third_party/WebKit/Source/web/WebViewImpl.cpp File third_party/WebKit/Source/web/WebViewImpl.cpp (right): https://codereview.chromium.org/1980133002/diff/180001/third_party/WebKit/Source/web/WebViewImpl.cpp#newcode2174 third_party/WebKit/Source/web/WebViewImpl.cpp:2174: bool isPointerLocked = false; Sigh. One day we ...
4 years, 6 months ago (2016-06-07 05:07:55 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1980133002/180001
4 years, 6 months ago (2016-06-07 19:01:49 UTC) #32
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/235090)
4 years, 6 months ago (2016-06-08 00:44:03 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1980133002/200001
4 years, 6 months ago (2016-06-08 20:01:56 UTC) #37
commit-bot: I haz the power
Committed patchset #11 (id:200001)
4 years, 6 months ago (2016-06-08 21:24:47 UTC) #39
commit-bot: I haz the power
4 years, 6 months ago (2016-06-08 21:26:02 UTC) #41
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/bee1e0ad56ce6b9def191f6ec6ef5a71a2f5d83e
Cr-Commit-Position: refs/heads/master@{#398679}

Powered by Google App Engine
This is Rietveld 408576698