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

Issue 1736893002: Update drag images to paint from the nearest self painting layer (Closed)

Created:
4 years, 10 months ago by pdr.
Modified:
4 years, 9 months ago
Reviewers:
chrishtr
CC:
blink-reviews, chromium-reviews, fukino, hyunjunekim2
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Update drag images to paint from the nearest self painting layer Before this patch there were two codepaths for painting drag images: 1) Boxes were drawn using paintAsPseudoStackingContext which would fail to paint composited children (https://crbug.com/585611). 2) Everything else was drawn using paintIntoDragImage which paints starting at the view so any transparent regions of the drag element would be filled in with the content behind the drag element. This patch unifies drag image rendering under a single approach where painting begins at the nearest self painting layer to the dragged element. This has two nice properties: 1) self painting children are painted. 2) transparency is supported as long as the drag element has a layer. Neither Safari nor Firefox really support these usecases so this approach is a best-effort at supporting common usecases without invasive surgery on the paint code. Some behavior is different such as not including the dragged element's transform. As part of this patch, paintIntoDragImage has been merged into dragImageForSelection which is now the only caller. BUG=585611 Committed: https://crrev.com/d1e45374111c047fc69c8719434bf14417f74d2e Cr-Commit-Position: refs/heads/master@{#378021}

Patch Set 1 #

Patch Set 2 : Fix test failures, add a test #

Total comments: 16

Patch Set 3 : Rebase and address reviewer comments #

Total comments: 2

Patch Set 4 : Add a performance note and prepare this ship for landing. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+49 lines, -38 lines) Patch
M third_party/WebKit/Source/core/frame/LocalFrame.h View 1 chunk +0 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/frame/LocalFrame.cpp View 1 2 5 chunks +21 lines, -32 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.h View 1 2 3 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.cpp View 1 2 1 chunk +8 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/web/tests/WebFrameTest.cpp View 1 2 2 chunks +10 lines, -1 line 0 comments Download
M third_party/WebKit/Source/web/tests/data/nodeimage.html View 1 1 chunk +7 lines, -0 lines 0 comments Download

Messages

Total messages: 33 (16 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1736893002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1736893002/1
4 years, 10 months ago (2016-02-25 05:29:31 UTC) #4
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/186698)
4 years, 10 months ago (2016-02-25 06:35:24 UTC) #7
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1736893002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1736893002/20001
4 years, 10 months ago (2016-02-26 04:35:45 UTC) #9
pdr.
4 years, 10 months ago (2016-02-26 05:39:14 UTC) #12
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 10 months ago (2016-02-26 07:41:35 UTC) #14
chrishtr
https://codereview.chromium.org/1736893002/diff/20001/third_party/WebKit/Source/core/frame/LocalFrame.cpp File third_party/WebKit/Source/core/frame/LocalFrame.cpp (right): https://codereview.chromium.org/1736893002/diff/20001/third_party/WebKit/Source/core/frame/LocalFrame.cpp#newcode641 third_party/WebKit/Source/core/frame/LocalFrame.cpp:641: // Paint starting at the nearest painting layer, clipped ...
4 years, 9 months ago (2016-02-26 18:31:05 UTC) #15
pdr.
https://codereview.chromium.org/1736893002/diff/20001/third_party/WebKit/Source/core/frame/LocalFrame.cpp File third_party/WebKit/Source/core/frame/LocalFrame.cpp (right): https://codereview.chromium.org/1736893002/diff/20001/third_party/WebKit/Source/core/frame/LocalFrame.cpp#newcode641 third_party/WebKit/Source/core/frame/LocalFrame.cpp:641: // Paint starting at the nearest painting layer, clipped ...
4 years, 9 months ago (2016-02-26 18:41:38 UTC) #16
chrishtr
https://codereview.chromium.org/1736893002/diff/20001/third_party/WebKit/Source/core/frame/LocalFrame.cpp File third_party/WebKit/Source/core/frame/LocalFrame.cpp (right): https://codereview.chromium.org/1736893002/diff/20001/third_party/WebKit/Source/core/frame/LocalFrame.cpp#newcode641 third_party/WebKit/Source/core/frame/LocalFrame.cpp:641: // Paint starting at the nearest painting layer, clipped ...
4 years, 9 months ago (2016-02-26 18:58:53 UTC) #17
pdr.
Thx. PTAL https://codereview.chromium.org/1736893002/diff/20001/third_party/WebKit/Source/core/frame/LocalFrame.cpp File third_party/WebKit/Source/core/frame/LocalFrame.cpp (right): https://codereview.chromium.org/1736893002/diff/20001/third_party/WebKit/Source/core/frame/LocalFrame.cpp#newcode641 third_party/WebKit/Source/core/frame/LocalFrame.cpp:641: // Paint starting at the nearest painting ...
4 years, 9 months ago (2016-02-26 19:28:02 UTC) #19
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1736893002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1736893002/40001
4 years, 9 months ago (2016-02-26 19:28:56 UTC) #21
chrishtr
lgtm https://codereview.chromium.org/1736893002/diff/20001/third_party/WebKit/Source/core/frame/LocalFrame.cpp File third_party/WebKit/Source/core/frame/LocalFrame.cpp (right): https://codereview.chromium.org/1736893002/diff/20001/third_party/WebKit/Source/core/frame/LocalFrame.cpp#newcode650 third_party/WebKit/Source/core/frame/LocalFrame.cpp:650: IntRect absoluteBoundingBox = layoutObject->absoluteBoundingBoxRectIncludingDescendants(); On 2016/02/26 at 19:28:02, ...
4 years, 9 months ago (2016-02-26 19:36:27 UTC) #22
pdr.
Off to the CQ, and we made M50! https://codereview.chromium.org/1736893002/diff/40001/third_party/WebKit/Source/core/paint/PaintLayer.h File third_party/WebKit/Source/core/paint/PaintLayer.h (right): https://codereview.chromium.org/1736893002/diff/40001/third_party/WebKit/Source/core/paint/PaintLayer.h#newcode613 third_party/WebKit/Source/core/paint/PaintLayer.h:613: PaintLayer* ...
4 years, 9 months ago (2016-02-26 19:46:09 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1736893002/50001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1736893002/50001
4 years, 9 months ago (2016-02-26 19:53:18 UTC) #26
commit-bot: I haz the power
Try jobs failed on following builders: android_compile_dbg on tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_compile_dbg/builds/28154) cast_shell_android on tryserver.chromium.android (JOB_FAILED, ...
4 years, 9 months ago (2016-02-26 20:35:27 UTC) #28
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1736893002/50001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1736893002/50001
4 years, 9 months ago (2016-02-26 20:53:28 UTC) #30
commit-bot: I haz the power
Committed patchset #4 (id:50001)
4 years, 9 months ago (2016-02-26 23:24:13 UTC) #31
commit-bot: I haz the power
4 years, 9 months ago (2016-02-26 23:25:45 UTC) #33
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/d1e45374111c047fc69c8719434bf14417f74d2e
Cr-Commit-Position: refs/heads/master@{#378021}

Powered by Google App Engine
This is Rietveld 408576698