merge mozilla-central to mozilla-inbound. r=merge a=merge
authorSebastian Hengst <>
Sat, 29 Jul 2017 11:49:53 +0200
changeset 371893 4b38ba06881ed27254c46dc273663441837edf12
parent 371892 27ac1eee8d2952cfb25b32f71a62dd0dd7f9e05e (current diff)
parent 371815 2fba314d7de77ad8ab693a2ea0112c0cda5dd564 (diff)
child 371894 64bbc26920aad951c81eb28d9b319be92f72aa4b
push id47611
push dateSun, 30 Jul 2017 09:20:48 +0000
treeherderautoland@8b577b152383 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge, merge
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
merge mozilla-central to mozilla-inbound. r=merge a=merge
--- a/layout/base/GeckoRestyleManager.cpp
+++ b/layout/base/GeckoRestyleManager.cpp
@@ -1818,16 +1818,17 @@ ElementRestyler::Restyle(nsRestyleHint a
       // up the hint for one of the ancestors that we hit first, then
       // we'll fail to do the restyling we need to do.
       // Likewise, if we're restyling something with two nested frames,
       // and we post a restyle from the transition manager while
       // computing style for the outer frame (to be computed after the
       // descendants have been resolved), we don't want to consume it
       // for the inner frame.
       mContent->GetPrimaryFrame() == mFrame) {
+    mContent->OwnerDoc()->FlushPendingLinkUpdates();
     nsAutoPtr<RestyleTracker::RestyleData> restyleData;
     if (mRestyleTracker.GetRestyleData(mContent->AsElement(), restyleData)) {
       nsChangeHint changeToAppend =
       // See the comment in CaptureChange about why we use NS_IsHintSubset here.
       if (!NS_IsHintSubset(changeToAppend, mHintsHandledBySelf)) {
         mHintsHandledBySelf |= changeToAppend;
--- a/layout/base/nsCSSFrameConstructor.cpp
+++ b/layout/base/nsCSSFrameConstructor.cpp
@@ -5151,16 +5151,17 @@ nsCSSFrameConstructor::ResolveStyleConte
 nsCSSFrameConstructor::ResolveStyleContext(nsStyleContext* aParentStyleContext,
                                            nsIContent* aContent,
                                            nsFrameConstructorState* aState,
                                            Element* aOriginatingElementOrNull)
   StyleSetHandle styleSet = mPresShell->StyleSet();
+  aContent->OwnerDoc()->FlushPendingLinkUpdates();
   RefPtr<nsStyleContext> result;
   if (aContent->IsElement()) {
     auto pseudoType = aContent->AsElement()->GetPseudoElementType();
     if (pseudoType == CSSPseudoElementType::NotPseudo) {
       if (aState) {
         result = styleSet->ResolveStyleFor(aContent->AsElement(),