[Webkit-unassigned] [Bug 100507] Progress bar shadow tree sometimes is not relayouted.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Oct 29 02:16:46 PDT 2012


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


Takashi Sakamoto <tasak at google.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |DUPLICATE
                 CC|                            |tasak at google.com




--- Comment #1 from Takashi Sakamoto <tasak at google.com>  2012-10-29 02:18:01 PST ---
The reason why progress bar is not re-layouted is:
- HTMLProgressElement updates inline styles, i.e. setWidthPercentage, in HTMLProgressElement::attach().
- Element::recalcStyle updates HTMLProgressElement's style by using "reattach()".

Element::reaclcStyle()
...
            // FIXME: The style gets computed twice by calling attach. We could do better if we passed the style along.
            reattach();
            // attach recalculates the style for all children. No need to do it twice.
            clearNeedsStyleRecalc();
            clearChildNeedsStyleRecalc();
...

So after reattach(), clearNeedsStyleRecalc() and clearChildNeedsStyleRecalc() reset update flags set by setWidthPercentage. Now ProgressValueElement has had "InlineStyleChange" style change type, but its relayout flag is cleared. This disables "setNeedsStyleRecalc" to relayout:

void Node::setNeedsStyleRecalc(...)
...
    if (existingChangeType == NoStyleChange)
        markAncestorsWithChildNeedsStyleRecalc();
...

I will fix this issue by bug 83664.

Best regards,
Takashi Sakamoto

*** This bug has been marked as a duplicate of bug 83664 ***

-- 
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