Bug 1463605 - Check continuation or IB split sibling frames in nsDOMWindowUtils::CheckAndClearDisplayListState. r=mattwoodrow
authorHiroyuki Ikezoe <hikezoe@mozilla.com>
Wed, 23 May 2018 18:15:12 +0900
changeset 419648 fb535bef1dd0b9bbf704354a364293d051d5e9d6
parent 419647 abf79f352837374a27211f78c1b934bb898ee9c9
child 419649 fe67559663ef45cc8b49e3092ada88677f6540e5
push id64375
push userhikezoe@mozilla.com
push dateThu, 24 May 2018 04:45:24 +0000
treeherderautoland@c411ccb6bb4a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmattwoodrow
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::CheckAndClearDisplayListState. r=mattwoodrow MozReview-Commit-ID: 6PjC5INFyym
dom/base/nsDOMWindowUtils.cpp
--- a/dom/base/nsDOMWindowUtils.cpp
+++ b/dom/base/nsDOMWindowUtils.cpp
@@ -2931,17 +2931,24 @@ nsDOMWindowUtils::CheckAndClearDisplayLi
     nsIFrame* parentFrame = frame->GetParent();
     if (parentFrame && parentFrame->GetContent() == aElement) {
       frame = parentFrame;
     } else {
       break;
     }
   }
 
-  *aResult = frame->CheckAndClearDisplayListState();
+  while (frame) {
+    if (!frame->CheckAndClearDisplayListState()) {
+      *aResult = false;
+      return NS_OK;
+    }
+    frame = nsLayoutUtils::GetNextContinuationOrIBSplitSibling(frame);
+  }
+  *aResult = true;
   return NS_OK;
 
 }
 
 NS_IMETHODIMP
 nsDOMWindowUtils::IsPartOfOpaqueLayer(Element* aElement, bool* aResult)
 {
   if (!aElement) {