Bug 1463605 - Check continuation or IB split sibling frames in nsDOMWindowUtils::CheckAndClearPaintedState. r=mstange
authorHiroyuki Ikezoe <hikezoe@mozilla.com>
Wed, 23 May 2018 18:18:43 +0900
changeset 419633 c411ccb6bb4a46265eaffc89f9bf897e469197d0
parent 419632 fe67559663ef45cc8b49e3092ada88677f6540e5
child 419659 043e4ab6e72469ed8121f4da98dcdfef983a49d9
child 419660 a90972d695291bea4560ee5a8da77398ca9b42b1
push id34040
push userebalazs@mozilla.com
push dateThu, 24 May 2018 09:37:05 +0000
treeherdermozilla-central@c411ccb6bb4a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmstange
bugs1463605
milestone62.0a1
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
Bug 1463605 - Check continuation or IB split sibling frames in nsDOMWindowUtils::CheckAndClearPaintedState. r=mstange MozReview-Commit-ID: CgyErEGeZJS
dom/base/nsDOMWindowUtils.cpp
--- a/dom/base/nsDOMWindowUtils.cpp
+++ b/dom/base/nsDOMWindowUtils.cpp
@@ -2902,17 +2902,24 @@ nsDOMWindowUtils::CheckAndClearPaintedSt
     nsIFrame* parentFrame = frame->GetParent();
     if (parentFrame && parentFrame->GetContent() == aElement) {
       frame = parentFrame;
     } else {
       break;
     }
   }
 
-  *aResult = frame->CheckAndClearPaintedState();
+  while (frame) {
+    if (!frame->CheckAndClearPaintedState()) {
+      *aResult = false;
+      return NS_OK;
+    }
+    frame = nsLayoutUtils::GetNextContinuationOrIBSplitSibling(frame);
+  }
+  *aResult = true;
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsDOMWindowUtils::CheckAndClearDisplayListState(Element* aElement, bool* aResult)
 {
   if (!aElement) {
     return NS_ERROR_INVALID_ARG;