Bug 1032613 part 2: Make RestyleManager::AddSubtreeToOverflowTracker skip frames that don't maintain overflow areas. r=dbaron

This commit is contained in:
Daniel Holbert 2015-10-01 20:05:26 -07:00
parent a4dc509a63
commit ca711b4bfc
4 changed files with 33 additions and 3 deletions

View File

@ -630,9 +630,10 @@ RestyleManager::StyleChangeReflow(nsIFrame* aFrame, nsChangeHint aHint)
void
RestyleManager::AddSubtreeToOverflowTracker(nsIFrame* aFrame)
{
mOverflowChangedTracker.AddFrame(
aFrame,
OverflowChangedTracker::CHILDREN_CHANGED);
if (aFrame->FrameMaintainsOverflow()) {
mOverflowChangedTracker.AddFrame(aFrame,
OverflowChangedTracker::CHILDREN_CHANGED);
}
nsIFrame::ChildListIterator lists(aFrame);
for (; !lists.IsDone(); lists.Next()) {
for (nsIFrame* child : lists.CurrentList()) {

View File

@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" onload="tweak()">
<pattern>
<rect id="r" />
</pattern>
<script>
function tweak() {
document.getElementById("r").style.textDecoration = "underline";
}
</script>
</svg>

After

Width:  |  Height:  |  Size: 251 B

View File

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<script>
function tweak() {
document.getElementById("c").style.textShadow = "3px 3px gray";
}
</script>
<body onload="tweak()">
<div id="c">hello
<svg height="0">
<clipPath>
<path d=""/>
</clipPath>
</svg>
</div>
</body>
</html>

View File

@ -566,6 +566,8 @@ asserts(1-2) load 1015563-2.html
asserts(0-300) load 1015844.html # bug 574889
load outline-on-frameset.xhtml
pref(font.size.inflation.minTwips,200) load 1032450.html
load 1032613-1.svg
load 1032613-2.html
load 1037903.html
load 1039454-1.html
load 1042489.html