Bug 31656

Summary: -webkit-user-drag: element Drag images include overflow decorations from incorrect nodes
Product: WebKit Reporter: Oliver Hunt <oliver>
Component: Layout and RenderingAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: mitz
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: OS X 10.5   
Attachments:
Description Flags
Patch
none
Patch hyatt: review+

Description Oliver Hunt 2009-11-18 18:22:06 PST
Drag images should not include overflow decorations from nodes that are not children
Comment 1 Oliver Hunt 2009-11-18 21:32:36 PST
Created attachment 43484 [details]
Patch
Comment 2 mitz 2009-11-18 22:46:54 PST
Comment on attachment 43484 [details]
Patch

> +    if (hasOverflowClip() && style()->visibility() == VISIBLE && (phase == PaintPhaseBlockBackground || phase == PaintPhaseChildBlockBackground)) {
> +        if (!paintInfo.paintingRoot || isDescendantOf(paintInfo.paintingRoot))
> +            layer()->paintOverflowControls(paintInfo.context, tx, ty, paintInfo.rect);
> +    }

Can’t use use shouldPaintWithinRoot? You are never supposed to be a proper descendant of the painting root.

You should just add the test to the first if’s condition instead of nesting like that.

It would be good to have a manual test case for this. I don’t think it necessarily has to be checked in, but at least attach it to the bug, if possible, for future reference.

r- because I think you don’t need to call isDescendantOf().
Comment 3 Oliver Hunt 2009-11-19 12:00:20 PST
Created attachment 43516 [details]
Patch
Comment 4 Dave Hyatt 2009-11-19 12:43:39 PST
Comment on attachment 43516 [details]
Patch

r=me
Comment 5 Oliver Hunt 2009-11-19 14:05:24 PST
Committed r51205