author | Carsten "Tomcat" Book <cbook@mozilla.com> |
Wed, 04 Mar 2015 13:28:31 +0100 | |
changeset 231859 | 69e80cc9576380c71f612fda10158223fe1ede0c |
parent 231858 | cf2a5c5edfdf306d05937765acf7a4be002c9bf4 |
child 231860 | db7e1eae0a005e2148f17c75ee463bd6f97afda4 |
push id | 28362 |
push user | ryanvm@gmail.com |
push date | Wed, 04 Mar 2015 21:35:51 +0000 |
treeherder | mozilla-central@56492f7244a9 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
bugs | 1136010 |
milestone | 39.0a1 |
backs out | bc9e6089b8e18c415753510a7ee2a6bf0944d039 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/base/RestyleManager.cpp +++ b/layout/base/RestyleManager.cpp @@ -2876,19 +2876,30 @@ ElementRestyler::Restyle(nsRestyleHint a // structs that were swapped out. // // Much of the time we will not get in here; we do for example when the // style context is shared with a later IB split sibling (which we won't // restyle until a bit later) or if other code is holding a strong reference // to the style context (as is done by nsTransformedTextRun objects, which // can be referenced by a text frame's mTextRun longer than the frame's // mStyleContext). - ContextToClear* toClear = mContextsToClear.AppendElement(); - toClear->mStyleContext = Move(oldContext); - toClear->mStructs = swappedStructs; + // + // We coalesce entries in mContextsToClear when we detect that the last + // style context appended has oldContext as its parent, as + // ClearCachedInheritedStyleDataOnDescendants handles a whole subtree + // of style contexts. + if (!mContextsToClear.IsEmpty() && + mContextsToClear.LastElement().mStyleContext->GetParent() == oldContext && + mContextsToClear.LastElement().mStructs == swappedStructs) { + mContextsToClear.LastElement().mStyleContext = Move(oldContext); + } else { + ContextToClear* toClear = mContextsToClear.AppendElement(); + toClear->mStyleContext = Move(oldContext); + toClear->mStructs = swappedStructs; + } } mRestyleTracker.AddRestyleRootsIfAwaitingRestyle(descendants); } /** * Depending on the details of the frame we are restyling or its old style * context, we may or may not be able to stop restyling after this frame if
--- a/layout/generic/crashtests/crashtests.list +++ b/layout/generic/crashtests/crashtests.list @@ -567,15 +567,15 @@ load outline-on-frameset.xhtml pref(font.size.inflation.minTwips,200) load 1032450.html load 1037903.html load 1039454-1.html load 1042489.html load 1054010-1.html load 1058954-1.html load 1134531.html load 1134667.html -asserts(3-4) load 1137723-1.html # bug 1019192 +asserts(3) load 1137723-1.html # bug 1019192 asserts(3-6) load 1137723-2.html # bug 1019192, bug 1138133 # The tests for bug 1137723 above causes delayed assertions too, # the next 3 lines can be removed once that is fixed. asserts(0-3) load 1134667.html asserts(0-3) load 1134667.html asserts(0-3) load 1134667.html
deleted file mode 100644 --- a/layout/style/crashtests/1136010-1.html +++ /dev/null @@ -1,16 +0,0 @@ -<!DOCTYPE html> -<style> -body { text-transform: uppercase; width: 200px; height: 200px; background-color: white; } -#a, #b { font-size: 24px; } -</style> -<div id=a><div id=b><span>x</span><span>y</span></div></div> -<script> -document.body.offsetTop; -var a = document.getElementById("a"); -var b = document.getElementById("b"); -a.style.fontSize = "24px"; -b.style.fontSize = "24px"; -document.body.offsetTop; -b.style.fontSize = "36px"; -document.body.offsetTop; -</script>
--- a/layout/style/crashtests/crashtests.list +++ b/layout/style/crashtests/crashtests.list @@ -106,11 +106,10 @@ load 945048-1.html pref(layers.offmainthreadcomposition.async-animations,true) load 972199-1.html load 989965-1.html load 992333-1.html pref(dom.webcomponents.enabled,true) load 1017798-1.html load 1028514-1.html load 1066089-1.html load 1074651-1.html pref(dom.webcomponents.enabled,true) load 1089463-1.html -load 1136010-1.html load large_border_image_width.html load border-image-visited-link.html