Bug 1463605 - Check continuation or IB split sibling frames in nsDOMWindowUtils::CheckAndClearDisplayListState. r?mattwoodrow draft
authorHiroyuki Ikezoe <hikezoe@mozilla.com>
Wed, 23 May 2018 18:15:12 +0900
changeset 798673 b2f1641c766de7fb167c8523b9b439e762376a50
parent 798672 e1a3cb72c379c24b25ae5aacaa4ae97af6ea76a4
child 798674 49948347df7b1a2d85de44d61ca35488d02be2a5
push id110818
push userbmo:hikezoe@mozilla.com
push dateWed, 23 May 2018 09:17:42 +0000
reviewersmattwoodrow
bugs1463605
milestone62.0a1
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) {