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

Issue 454643002: Route selection bounds updates through WebLayerTreeView (Closed)

Created:
6 years, 4 months ago by trchen
Modified:
6 years, 2 months ago
Project:
blink
Visibility:
Public.

Description

Route selection bounds updates through WebLayerTreeView Currently, the selection bounds are pulled from the WebView at the start of each frame. This approach works only if the queried bounds are always in-sync with the visible content, which will not always hold with accelerated compositing. Instead, plumb the selection bounds region through the WebLayerTreeView, providing appropriate composited layers for each endpoint. This allows the compositor to transform the bounds as necessary to provide consistent positioning of visible selection handles. BUG=135959 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=182460

Patch Set 1 #

Patch Set 2 : fix negative composited bounds #

Patch Set 3 : updated to use point based implementation #

Total comments: 2

Patch Set 4 : tests added #

Total comments: 12

Patch Set 5 : rebased & refactored a bit #

Patch Set 6 : rebase again #

Patch Set 7 : fix bug in tests #

Total comments: 9

Patch Set 8 : revised #

Patch Set 9 : revised #

Total comments: 8

Patch Set 10 : revised #

Total comments: 8

Patch Set 11 : rename REF to singular form, added WebREF query function #

Patch Set 12 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+372 lines, -53 lines) Patch
M Source/core/editing/FrameSelection.cpp View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -1 line 0 comments Download
M Source/core/editing/RenderedPosition.h View 1 2 3 4 5 6 7 8 9 2 chunks +3 lines, -0 lines 0 comments Download
M Source/core/editing/RenderedPosition.cpp View 1 2 3 4 5 6 7 8 9 2 chunks +20 lines, -0 lines 0 comments Download
M Source/core/frame/FrameView.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +3 lines, -0 lines 0 comments Download
M Source/core/frame/FrameView.cpp View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +33 lines, -3 lines 0 comments Download
M Source/core/page/ChromeClient.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +2 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderLayer.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -0 lines 0 comments Download
M Source/core/rendering/RenderLayer.cpp View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +23 lines, -8 lines 0 comments Download
M Source/core/rendering/RenderObject.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +3 lines, -3 lines 0 comments Download
M Source/core/rendering/RenderObject.cpp View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +19 lines, -10 lines 0 comments Download
A + Source/core/rendering/compositing/CompositedSelectionBound.h View 1 2 3 4 5 6 7 1 chunk +31 lines, -17 lines 0 comments Download
M Source/platform/RuntimeEnabledFeatures.in View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -1 line 0 comments Download
M Source/web/AssertMatchingEnums.cpp View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +6 lines, -0 lines 0 comments Download
M Source/web/ChromeClientImpl.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -0 lines 0 comments Download
M Source/web/ChromeClientImpl.cpp View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +19 lines, -0 lines 0 comments Download
M Source/web/WebRuntimeFeatures.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +11 lines, -0 lines 0 comments Download
M Source/web/WebViewImpl.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +3 lines, -0 lines 0 comments Download
M Source/web/WebViewImpl.cpp View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +6 lines, -0 lines 0 comments Download
M Source/web/tests/WebFrameTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +80 lines, -2 lines 0 comments Download
M Source/web/tests/WebViewTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -1 line 0 comments Download
M Source/web/tests/data/Ahem.ttf View 1 2 3 Binary file 0 comments Download
A Source/web/tests/data/composited_selection_bounds_basic.html View 1 2 3 4 1 chunk +22 lines, -0 lines 0 comments Download
A Source/web/tests/data/composited_selection_bounds_iframe.html View 1 2 3 1 chunk +15 lines, -0 lines 0 comments Download
A Source/web/tests/data/composited_selection_bounds_none.html View 1 2 3 1 chunk +13 lines, -0 lines 0 comments Download
A Source/web/tests/data/composited_selection_bounds_split_layer.html View 1 2 3 4 1 chunk +29 lines, -0 lines 0 comments Download
A Source/web/tests/data/composited_selection_bounds_transformed.html View 1 2 3 4 1 chunk +23 lines, -0 lines 0 comments Download
M public/platform/WebSelectionBound.h View 1 2 3 2 chunks +0 lines, -7 lines 0 comments Download
M public/web/WebRuntimeFeatures.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +3 lines, -0 lines 0 comments Download

Messages

Total messages: 55 (7 generated)
trchen
Just made a new version of Jared's composited selection bound without the coordinate translation clutter. ...
6 years, 4 months ago (2014-08-08 00:03:35 UTC) #1
jdduke (slow)
On 2014/08/08 00:03:35, trchen wrote: > Just made a new version of Jared's composited selection ...
6 years, 4 months ago (2014-08-08 00:45:16 UTC) #2
trchen
The second patchset includes a fix in RenderLayer::mapRectToPaintInvalidationBacking() to handle negative composited bound correctly. Not ...
6 years, 4 months ago (2014-08-08 01:26:00 UTC) #3
jdduke (slow)
On 2014/08/08 01:26:00, trchen wrote: > The second patchset includes a fix in > RenderLayer::mapRectToPaintInvalidationBacking() ...
6 years, 4 months ago (2014-08-08 18:02:23 UTC) #4
trchen
On 2014/08/08 18:02:23, jdduke wrote: > On 2014/08/08 01:26:00, trchen wrote: > > The second ...
6 years, 4 months ago (2014-08-08 19:57:18 UTC) #5
trchen
(Adding original reviewer abarth@, and chrishtr@ for the change in RenderLayer) Hello reviewers, This is ...
6 years, 3 months ago (2014-09-03 00:33:01 UTC) #7
jdduke (slow)
https://codereview.chromium.org/454643002/diff/40001/Source/web/ChromeClientImpl.cpp File Source/web/ChromeClientImpl.cpp (right): https://codereview.chromium.org/454643002/diff/40001/Source/web/ChromeClientImpl.cpp#newcode129 Source/web/ChromeClientImpl.cpp:129: result.edgeRectInLayer = bound.edgeRectInLayer; I think you need to assign ...
6 years, 3 months ago (2014-09-03 16:51:41 UTC) #8
aelias_OOO_until_Jul13
Adam, does this address all the concerns you had on the first pass? https://codereview.chromium.org/454643002/diff/40001/Source/core/frame/FrameView.cpp File ...
6 years, 3 months ago (2014-09-03 21:13:48 UTC) #9
trchen
On 2014/09/03 16:51:41, jdduke wrote: > https://codereview.chromium.org/454643002/diff/40001/Source/web/ChromeClientImpl.cpp > File Source/web/ChromeClientImpl.cpp (right): > > https://codereview.chromium.org/454643002/diff/40001/Source/web/ChromeClientImpl.cpp#newcode129 > ...
6 years, 3 months ago (2014-09-05 02:09:27 UTC) #10
chrishtr
https://codereview.chromium.org/454643002/diff/60001/Source/core/editing/RenderedPosition.cpp File Source/core/editing/RenderedPosition.cpp (right): https://codereview.chromium.org/454643002/diff/60001/Source/core/editing/RenderedPosition.cpp#newcode235 Source/core/editing/RenderedPosition.cpp:235: void RenderedPosition::layerPoints(GraphicsLayer*& layerBacking, FloatPoint& edgeTop, FloatPoint& edgeBottom) const Instead ...
6 years, 3 months ago (2014-09-05 22:14:56 UTC) #11
jdduke (slow)
https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/compositing/CompositedSelectionBound.h File Source/core/rendering/compositing/CompositedSelectionBound.h (right): https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/compositing/CompositedSelectionBound.h#newcode54 Source/core/rendering/compositing/CompositedSelectionBound.h:54: FloatPoint edgeTopInLayer; On 2014/09/05 22:14:56, chrishtr wrote: > Why ...
6 years, 3 months ago (2014-09-05 22:18:33 UTC) #12
chrishtr
https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/compositing/CompositedSelectionBound.h File Source/core/rendering/compositing/CompositedSelectionBound.h (right): https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/compositing/CompositedSelectionBound.h#newcode54 Source/core/rendering/compositing/CompositedSelectionBound.h:54: FloatPoint edgeTopInLayer; On 2014/09/05 22:18:33, jdduke wrote: > On ...
6 years, 3 months ago (2014-09-05 22:39:26 UTC) #13
jdduke (slow)
https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/compositing/CompositedSelectionBound.h File Source/core/rendering/compositing/CompositedSelectionBound.h (right): https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/compositing/CompositedSelectionBound.h#newcode54 Source/core/rendering/compositing/CompositedSelectionBound.h:54: FloatPoint edgeTopInLayer; On 2014/09/05 22:39:26, chrishtr wrote: > On ...
6 years, 3 months ago (2014-09-05 23:30:45 UTC) #14
chrishtr
https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/compositing/CompositedSelectionBound.h File Source/core/rendering/compositing/CompositedSelectionBound.h (right): https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/compositing/CompositedSelectionBound.h#newcode54 Source/core/rendering/compositing/CompositedSelectionBound.h:54: FloatPoint edgeTopInLayer; On 2014/09/05 23:30:45, jdduke wrote: > On ...
6 years, 3 months ago (2014-09-05 23:45:29 UTC) #15
trchen
On 2014/09/05 23:45:29, chrishtr wrote: > https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/compositing/CompositedSelectionBound.h > File Source/core/rendering/compositing/CompositedSelectionBound.h (right): > > https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/compositing/CompositedSelectionBound.h#newcode54 > ...
6 years, 3 months ago (2014-09-05 23:52:29 UTC) #16
chrishtr
On 2014/09/05 at 23:52:29, trchen wrote: > On 2014/09/05 23:45:29, chrishtr wrote: > > https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/compositing/CompositedSelectionBound.h ...
6 years, 3 months ago (2014-09-05 23:54:23 UTC) #17
trchen
https://codereview.chromium.org/454643002/diff/60001/Source/core/editing/RenderedPosition.cpp File Source/core/editing/RenderedPosition.cpp (right): https://codereview.chromium.org/454643002/diff/60001/Source/core/editing/RenderedPosition.cpp#newcode235 Source/core/editing/RenderedPosition.cpp:235: void RenderedPosition::layerPoints(GraphicsLayer*& layerBacking, FloatPoint& edgeTop, FloatPoint& edgeBottom) const On ...
6 years, 3 months ago (2014-09-06 00:06:26 UTC) #18
jdduke (slow)
On 2014/09/05 23:52:29, trchen wrote: > Currently I don't think we use edgeTop for anything, ...
6 years, 3 months ago (2014-09-06 00:10:02 UTC) #19
chrishtr
https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/RenderLayer.cpp#newcode547 Source/core/rendering/RenderLayer.cpp:547: void RenderLayer::mapPointToPaintBackingCoordinates(const RenderLayerModelObject* paintInvalidationContainer, FloatPoint& point) On 2014/09/06 00:06:26, ...
6 years, 3 months ago (2014-09-06 00:12:20 UTC) #20
trchen
On 2014/09/06 00:12:20, chrishtr wrote: > https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/RenderLayer.cpp > File Source/core/rendering/RenderLayer.cpp (right): > > https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/RenderLayer.cpp#newcode547 > ...
6 years, 3 months ago (2014-09-06 00:18:11 UTC) #21
chrishtr
On 2014/09/06 at 00:18:11, trchen wrote: > On 2014/09/06 00:12:20, chrishtr wrote: > > https://codereview.chromium.org/454643002/diff/60001/Source/core/rendering/RenderLayer.cpp ...
6 years, 3 months ago (2014-09-06 00:56:30 UTC) #22
chrishtr
6 years, 3 months ago (2014-09-06 00:57:00 UTC) #23
trchen
On 2014/09/06 00:56:30, chrishtr wrote: > On 2014/09/06 at 00:18:11, trchen wrote: > > On ...
6 years, 3 months ago (2014-09-16 02:47:48 UTC) #24
trchen
By the way, although in Gmail it still shows the old [WIP] subject, this CL ...
6 years, 3 months ago (2014-09-16 21:52:48 UTC) #25
trchen
Hello reviewers, I uploaded a new CL that fixed the test failures. PTAL. Thanks! https://codereview.chromium.org/454643002/diff/120001/Source/web/tests/WebFrameTest.cpp ...
6 years, 3 months ago (2014-09-17 07:02:57 UTC) #26
chrishtr
https://codereview.chromium.org/454643002/diff/120001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/454643002/diff/120001/Source/core/rendering/RenderLayer.cpp#newcode531 Source/core/rendering/RenderLayer.cpp:531: if (!transformedAncestor) mapPontToPaintBackingCoordinates(paintInvalidationContainer, point); return point; This gets rid ...
6 years, 3 months ago (2014-09-17 16:41:34 UTC) #27
trchen
New CL uploaded. https://codereview.chromium.org/454643002/diff/120001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/454643002/diff/120001/Source/core/rendering/RenderLayer.cpp#newcode531 Source/core/rendering/RenderLayer.cpp:531: if (!transformedAncestor) On 2014/09/17 16:41:33, chrishtr ...
6 years, 3 months ago (2014-09-17 19:34:16 UTC) #28
chrishtr
https://codereview.chromium.org/454643002/diff/120001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/454643002/diff/120001/Source/core/rendering/RenderObject.cpp#newcode2452 Source/core/rendering/RenderObject.cpp:2452: FloatPoint RenderObject::localToInvalidationBackingPoint(const LayoutPoint& localPoint, RenderLayer** backingLayer) On 2014/09/17 19:34:16, ...
6 years, 3 months ago (2014-09-18 04:06:00 UTC) #29
trchen
New CL uploaded. On 2014/09/18 04:06:00, chrishtr wrote: > https://codereview.chromium.org/454643002/diff/120001/Source/core/rendering/RenderObject.cpp > File Source/core/rendering/RenderObject.cpp (right): > ...
6 years, 3 months ago (2014-09-18 23:18:41 UTC) #30
chrishtr
https://codereview.chromium.org/454643002/diff/160001/Source/core/editing/RenderedPosition.h File Source/core/editing/RenderedPosition.h (right): https://codereview.chromium.org/454643002/diff/160001/Source/core/editing/RenderedPosition.h#newcode72 Source/core/editing/RenderedPosition.h:72: void layerPoints(GraphicsLayer*&, FloatPoint& edgeTop, FloatPoint& edgeBottom) const; layerPoints is ...
6 years, 3 months ago (2014-09-18 23:30:55 UTC) #31
trchen
New CL uploaded. https://codereview.chromium.org/454643002/diff/160001/Source/core/editing/RenderedPosition.h File Source/core/editing/RenderedPosition.h (right): https://codereview.chromium.org/454643002/diff/160001/Source/core/editing/RenderedPosition.h#newcode72 Source/core/editing/RenderedPosition.h:72: void layerPoints(GraphicsLayer*&, FloatPoint& edgeTop, FloatPoint& edgeBottom) ...
6 years, 3 months ago (2014-09-19 00:10:02 UTC) #32
chrishtr
https://codereview.chromium.org/454643002/diff/180001/Source/web/tests/WebViewTest.cpp File Source/web/tests/WebViewTest.cpp (right): https://codereview.chromium.org/454643002/diff/180001/Source/web/tests/WebViewTest.cpp#newcode1652 Source/web/tests/WebViewTest.cpp:1652: WebRect cropRect(300, 125, 152, 50); Why this change? https://codereview.chromium.org/454643002/diff/180001/Source/web/tests/data/composited_selection_bounds_transformed.html ...
6 years, 3 months ago (2014-09-19 00:17:43 UTC) #33
trchen
https://codereview.chromium.org/454643002/diff/180001/Source/web/tests/WebViewTest.cpp File Source/web/tests/WebViewTest.cpp (right): https://codereview.chromium.org/454643002/diff/180001/Source/web/tests/WebViewTest.cpp#newcode1652 Source/web/tests/WebViewTest.cpp:1652: WebRect cropRect(300, 125, 152, 50); On 2014/09/19 00:17:42, chrishtr ...
6 years, 3 months ago (2014-09-19 00:28:12 UTC) #34
chrishtr
lgtm https://codereview.chromium.org/454643002/diff/180001/Source/web/tests/data/composited_selection_bounds_transformed.html File Source/web/tests/data/composited_selection_bounds_transformed.html (right): https://codereview.chromium.org/454643002/diff/180001/Source/web/tests/data/composited_selection_bounds_transformed.html#newcode10 Source/web/tests/data/composited_selection_bounds_transformed.html:10: transform: rotate(30deg); On 2014/09/19 00:28:12, trchen wrote: > ...
6 years, 3 months ago (2014-09-19 00:47:42 UTC) #35
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patchset/454643002/180001
6 years, 3 months ago (2014-09-19 00:50:19 UTC) #37
commit-bot: I haz the power
Try jobs failed on following builders: blink_presubmit on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/blink_presubmit/builds/15504)
6 years, 3 months ago (2014-09-19 01:00:32 UTC) #39
trchen
Oops, we still need approval from abarth@. Do you have a few minutes to take ...
6 years, 3 months ago (2014-09-19 01:03:38 UTC) #40
jdduke (slow)
https://codereview.chromium.org/454643002/diff/180001/public/web/WebRuntimeFeatures.h File public/web/WebRuntimeFeatures.h (right): https://codereview.chromium.org/454643002/diff/180001/public/web/WebRuntimeFeatures.h#newcode49 public/web/WebRuntimeFeatures.h:49: BLINK_EXPORT static void enableCompositedSelectionUpdates(bool); Could we also add a ...
6 years, 3 months ago (2014-09-19 15:09:22 UTC) #41
jdduke (slow)
https://codereview.chromium.org/454643002/diff/180001/public/web/WebRuntimeFeatures.h File public/web/WebRuntimeFeatures.h (right): https://codereview.chromium.org/454643002/diff/180001/public/web/WebRuntimeFeatures.h#newcode49 public/web/WebRuntimeFeatures.h:49: BLINK_EXPORT static void enableCompositedSelectionUpdates(bool); On 2014/09/19 15:09:22, jdduke wrote: ...
6 years, 3 months ago (2014-09-19 15:14:01 UTC) #42
trchen
https://codereview.chromium.org/454643002/diff/180001/public/web/WebRuntimeFeatures.h File public/web/WebRuntimeFeatures.h (right): https://codereview.chromium.org/454643002/diff/180001/public/web/WebRuntimeFeatures.h#newcode49 public/web/WebRuntimeFeatures.h:49: BLINK_EXPORT static void enableCompositedSelectionUpdates(bool); On 2014/09/19 15:14:01, jdduke wrote: ...
6 years, 3 months ago (2014-09-19 21:08:42 UTC) #43
jdduke (slow)
On 2014/09/19 01:03:38, trchen wrote: > Oops, we still need approval from abarth@. Do you ...
6 years, 2 months ago (2014-09-22 17:43:28 UTC) #44
aelias_OOO_until_Jul13
Source/web lgtm, but still needs OWNERS review for public/
6 years, 2 months ago (2014-09-22 20:55:55 UTC) #45
jdduke (slow)
jamesr@: Could you take a look for owner review of Source/platform and public/? abarth@ mentioned ...
6 years, 2 months ago (2014-09-22 23:42:31 UTC) #47
jamesr
lgtm
6 years, 2 months ago (2014-09-22 23:55:01 UTC) #48
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/454643002/200001
6 years, 2 months ago (2014-09-22 23:59:13 UTC) #50
commit-bot: I haz the power
Try jobs failed on following builders: android_blink_compile_dbg on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/android_blink_compile_dbg/builds/13501) android_blink_compile_rel on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/android_blink_compile_rel/builds/13519) mac_blink_rel ...
6 years, 2 months ago (2014-09-23 00:03:59 UTC) #52
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/454643002/220001
6 years, 2 months ago (2014-09-23 00:35:18 UTC) #54
commit-bot: I haz the power
6 years, 2 months ago (2014-09-23 01:45:35 UTC) #55
Message was sent while issue was closed.
Committed patchset #12 (id:220001) as 182460

Powered by Google App Engine
This is Rietveld 408576698