merge mozilla-central to mozilla-inbound. r=merge a=merge
authorSebastian Hengst <>
Sat, 29 Jul 2017 11:49:53 +0200
changeset 420599 4b38ba06881ed27254c46dc273663441837edf12
parent 420598 27ac1eee8d2952cfb25b32f71a62dd0dd7f9e05e (current diff)
parent 420450 2fba314d7de77ad8ab693a2ea0112c0cda5dd564 (diff)
child 420600 64bbc26920aad951c81eb28d9b319be92f72aa4b
push id7566
push dateWed, 02 Aug 2017 08:25:16 +0000
treeherdermozilla-beta@86913f512c3c [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(),