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

Issue 300323005: Route selection bounds updates through the compositor (Closed)

Created:
6 years, 6 months ago by jdduke (slow)
Modified:
6 years, 5 months ago
CC:
cc-bugs_chromium.org, chromium-reviews, darin-cc_chromium.org, jam, miu+watch_chromium.org, mlamouri (slow - plz ping), nona+watch_chromium.org, penghuang+watch_chromium.org, piman+watch_chromium.org, James Su, yukishiino+watch_chromium.org, yusukes+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Visibility:
Public.

Description

Route selection bounds updates through the compositor Currently, the selection bounds are queried at the start of each frame on the main thread. If the bounds differ from the previous bounds, an updated notification is sent to the browser. This approach is problematic for many reasons, the chief of which being the inability of such updates to remain in sync with content that is transformed on the compositor thread. Instead, plumb the selection bounds region through the compositor, anchoring each bound to the appropriate composited layer. This allows the compositor to generated transformed bounds synchronized with transformed content, passed to the browser with the CompositorFrameMetdadata. Note that this patch only implements the compositor portion of the plumbing. Enabling the feature in Blink and consuming the handle positions in the browser will be done in https://codereview.chromium.org/359033002. BUG=135959 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=280858

Patch Set 1 #

Patch Set 2 : Cleanup #

Patch Set 3 : Updates #

Total comments: 1

Patch Set 4 : Proper visibility #

Total comments: 4

Patch Set 5 : Use layer id #

Patch Set 6 : Cleanup and removal of handle visibility changes #

Patch Set 7 : Cleanup #

Patch Set 8 : Remove flag #

Patch Set 9 : Defer selection updates until after compositor scheduling #

Total comments: 10

Patch Set 10 : Code review #

Patch Set 11 : Rebase and cleanup #

Patch Set 12 : Add unit tests #

Patch Set 13 : Rebase #

Patch Set 14 : Remove IGNORED bound type #

Patch Set 15 : Rebase #

Total comments: 8

Patch Set 16 : Code review #

Patch Set 17 : Fix tests #

Unified diffs Side-by-side diffs Delta from patch set Stats (+604 lines, -3 lines) Patch
M cc/cc.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +5 lines, -0 lines 0 comments Download
A cc/input/layer_selection_bound.h View 1 2 3 4 5 6 7 8 9 1 chunk +29 lines, -0 lines 0 comments Download
A cc/input/layer_selection_bound.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +27 lines, -0 lines 0 comments Download
A cc/input/selection_bound_type.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +20 lines, -0 lines 0 comments Download
M cc/output/compositor_frame_metadata.h View 1 2 3 4 5 6 7 8 9 2 chunks +6 lines, -0 lines 0 comments Download
A cc/output/viewport_selection_bound.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +31 lines, -0 lines 0 comments Download
A cc/output/viewport_selection_bound.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +27 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host.h View 1 2 3 4 5 3 chunks +7 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host.cc View 1 2 3 4 5 6 7 8 9 10 3 chunks +13 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +3 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +53 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +12 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 5 chunks +60 lines, -3 lines 0 comments Download
M cc/trees/layer_tree_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +249 lines, -0 lines 0 comments Download
M content/common/cc_messages.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 chunks +10 lines, -0 lines 0 comments Download
M content/renderer/gpu/render_widget_compositor.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +4 lines, -0 lines 0 comments Download
M content/renderer/gpu/render_widget_compositor.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +36 lines, -0 lines 0 comments Download
M content/test/web_layer_tree_view_impl_for_testing.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +4 lines, -0 lines 0 comments Download
M content/test/web_layer_tree_view_impl_for_testing.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +8 lines, -0 lines 0 comments Download

Messages

Total messages: 20 (0 generated)
jdduke (slow)
aelias@: Could you take a high-level look at this and the linked Blink patch? (there's ...
6 years, 6 months ago (2014-06-02 19:43:13 UTC) #1
jdduke (slow)
https://codereview.chromium.org/300323005/diff/40001/cc/trees/layer_tree_impl.cc File cc/trees/layer_tree_impl.cc (right): https://codereview.chromium.org/300323005/diff/40001/cc/trees/layer_tree_impl.cc#newcode1321 cc/trees/layer_tree_impl.cc:1321: result.visible = !handle_clipped && Bah, figured it out, need ...
6 years, 6 months ago (2014-06-02 20:06:01 UTC) #2
aelias_OOO_until_Jul13
I think adding them to LTH is fine as it's sort of global state anyway. ...
6 years, 6 months ago (2014-06-03 05:30:26 UTC) #3
jdduke (slow)
https://codereview.chromium.org/300323005/diff/60001/cc/output/selection_handle.h File cc/output/selection_handle.h (right): https://codereview.chromium.org/300323005/diff/60001/cc/output/selection_handle.h#newcode21 cc/output/selection_handle.h:21: bool visible; On 2014/06/03 05:30:27, aelias wrote: > This ...
6 years, 6 months ago (2014-06-03 15:12:50 UTC) #4
jdduke (slow)
On 2014/06/03 05:30:26, aelias wrote: > Not sure I fully understand the pepper issue, is ...
6 years, 6 months ago (2014-06-03 15:30:59 UTC) #5
jdduke (slow)
OK, I've removed the experimental visibility toggling for the handles (but the visibility test remains). ...
6 years, 6 months ago (2014-06-04 23:58:22 UTC) #6
jdduke (slow)
aelias@: OK, I think this is ready for preliminary review, thanks!
6 years, 6 months ago (2014-06-09 15:56:36 UTC) #7
aelias_OOO_until_Jul13
Pretty clean overall, my only substantive concern is about the pepper workaround. https://codereview.chromium.org/300323005/diff/200001/cc/input/layer_selection_bound.h File cc/input/layer_selection_bound.h ...
6 years, 6 months ago (2014-06-12 06:22:43 UTC) #8
jdduke (slow)
https://codereview.chromium.org/300323005/diff/200001/cc/input/layer_selection_bound.h File cc/input/layer_selection_bound.h (right): https://codereview.chromium.org/300323005/diff/200001/cc/input/layer_selection_bound.h#newcode24 cc/input/layer_selection_bound.h:24: inline bool operator==(const LayerSelectionBound& lhs, On 2014/06/12 06:22:42, aelias ...
6 years, 6 months ago (2014-06-12 18:32:44 UTC) #9
jdduke (slow)
aelias@: Now that the public Blink interface for selection bounds has landed (https://codereview.chromium.org/352173002/), I'd like ...
6 years, 5 months ago (2014-06-27 18:30:05 UTC) #10
aelias_OOO_until_Jul13
https://codereview.chromium.org/300323005/diff/340001/cc/trees/layer_tree_impl.cc File cc/trees/layer_tree_impl.cc (right): https://codereview.chromium.org/300323005/diff/340001/cc/trees/layer_tree_impl.cc#newcode124 cc/trees/layer_tree_impl.cc:124: ClearSelection(); I suggest removing this call. We may eventually ...
6 years, 5 months ago (2014-06-28 00:02:17 UTC) #11
jdduke (slow)
https://codereview.chromium.org/300323005/diff/340001/cc/trees/layer_tree_impl.cc File cc/trees/layer_tree_impl.cc (right): https://codereview.chromium.org/300323005/diff/340001/cc/trees/layer_tree_impl.cc#newcode124 cc/trees/layer_tree_impl.cc:124: ClearSelection(); On 2014/06/28 00:02:17, aelias_OOO_until_July_9 wrote: > I suggest ...
6 years, 5 months ago (2014-06-28 00:29:10 UTC) #12
aelias_OOO_until_Jul13
lgtm
6 years, 5 months ago (2014-06-28 01:36:48 UTC) #13
jdduke (slow)
PTAL, thanks! palmer@: Security review for content/common/cc_messages.h. jam@: Owner review for content/renderer and content/test.
6 years, 5 months ago (2014-06-28 02:07:33 UTC) #14
jam
lgtm
6 years, 5 months ago (2014-06-30 16:13:12 UTC) #15
jdduke (slow)
tsepez@: Security review for content/common/cc_messages.h? Thanks.
6 years, 5 months ago (2014-07-01 17:37:16 UTC) #16
Tom Sepez
messages LGTM.
6 years, 5 months ago (2014-07-01 17:50:07 UTC) #17
jdduke (slow)
The CQ bit was checked by jdduke@chromium.org
6 years, 5 months ago (2014-07-01 18:03:43 UTC) #18
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/jdduke@chromium.org/300323005/400001
6 years, 5 months ago (2014-07-01 18:04:33 UTC) #19
commit-bot: I haz the power
6 years, 5 months ago (2014-07-01 19:08:54 UTC) #20
Message was sent while issue was closed.
Change committed as 280858

Powered by Google App Engine
This is Rietveld 408576698