[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