[Webkit-unassigned] [Bug 13332] List marker not displayed on items with overflow

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Oct 6 12:21:19 PDT 2011


https://bugs.webkit.org/show_bug.cgi?id=13332


Dave Hyatt <hyatt at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #109954|review?, commit-queue?      |review-, commit-queue-
               Flag|                            |




--- Comment #18 from Dave Hyatt <hyatt at apple.com>  2011-10-06 12:21:19 PST ---
(From update of attachment 109954)
View in context: https://bugs.webkit.org/attachment.cgi?id=109954&action=review

> Source/WebCore/rendering/RenderBox.cpp:1160
> +    if (paintInfo.phase == PaintPhaseListMarkers)
> +        for (RenderObject* child = firstChild(); child; child = child->nextSibling())
> +            if (child->isListMarker())
> +                return false;

I don't much like this code and am trying to think of a better approach.

The reason I am minusing though is that whatever test case led you to do this, you didn't patch the RenderLayer version. Find the test case that led you to add this code and then change the overflow:hidden object to also have position:relative. The RenderLayer clips will then be pushed, and since you only paint list markers during the time that the foreground clip is respected in RenderLayer, you'll still have a problem.

Even then, this doesn't seem good enough to me. What about a marker placed inside an overflow:hidden child div that also has a RenderLayer? I'm not even sure we propagate the overflow properly in this case.

As I mentioned before, this bug is hard. :(

Another possible approach that avoids using paint phases would be to change outside list markers completely to have the list item actually do it. You would not need a special paint phase for this if the list item actually paints the marker. Basically figure out the translation, jump right to it and paint it before calling your base class paint. If you do it in the background phase I think it would work with RenderLayers too.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list