Backed out 3 changesets (bug 1535507) wr failures e.g. line_1_wrapped_cue_grow_downwards.html on a CLOSED TREE
authorAndreea Pavel <apavel@mozilla.com>
Wed, 20 Mar 2019 03:32:51 +0200
changeset 465154 1df7ae29b1214757985e5406ecababb9c08b0a9c
parent 465153 94948ac7f019cef011458bdb19d100200ec836b6
child 465155 c51e49873b76b33aa9271c24a0a5214c5342d04e
push id35732
push useropoprus@mozilla.com
push dateWed, 20 Mar 2019 10:52:37 +0000
treeherdermozilla-central@708979f9c3f3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1535507
milestone68.0a1
backs out458563d6a69e9874abd2fafb8889da378a59678b
48726c586c4ffbf25505d117fea5c56172a6e8ce
74d9f16af0bf752632cba2b70d12fcf00b8cbab0
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
Backed out 3 changesets (bug 1535507) wr failures e.g. line_1_wrapped_cue_grow_downwards.html on a CLOSED TREE Backed out changeset 458563d6a69e (bug 1535507) Backed out changeset 48726c586c4f (bug 1535507) Backed out changeset 74d9f16af0bf (bug 1535507)
layout/generic/nsFrame.cpp
layout/painting/ActiveLayerTracker.cpp
layout/reftests/display-list/reftest.list
layout/reftests/display-list/retained-dl-style-change-stacking-context-3-ref.html
layout/reftests/display-list/retained-dl-style-change-stacking-context-3.html
--- a/layout/generic/nsFrame.cpp
+++ b/layout/generic/nsFrame.cpp
@@ -2959,31 +2959,25 @@ void nsIFrame::BuildDisplayListForStacki
     // Restict the building area to the overflow rect for these frames, since
     // RetainedDisplayListBuilder uses it to know if the size of the stacking
     // context changed.
     visibleRect.IntersectRect(visibleRect, GetVisualOverflowRect());
     dirtyRect.IntersectRect(dirtyRect, GetVisualOverflowRect());
   }
 
   bool hasOverrideDirtyRect = false;
-  // If we're doing a partial build, we're not invalid and we're capable
-  // of having an override building rect (stacking context and fixed pos
-  // containing block), then we should assume we have one.
-  // Either we have an explicit one, or nothing in our subtree changed and
-  // we have an implicit empty rect.
-  if (aBuilder->IsPartialUpdate() && !aBuilder->InInvalidSubtree() &&
-      !IsFrameModified() && IsFixedPosContainingBlock()) {
-    dirtyRect = nsRect();
-    if (HasOverrideDirtyRegion()) {
-      nsDisplayListBuilder::DisplayListBuildingData* data =
-          GetProperty(nsDisplayListBuilder::DisplayListBuildingRect());
-      if (data) {
-        dirtyRect = data->mDirtyRect.Intersect(visibleRect);
-        hasOverrideDirtyRect = true;
-      }
+  // If we have an override dirty region, and neither us nor our ancestors are
+  // modified, then use it.
+  if (HasOverrideDirtyRegion() && !aBuilder->InInvalidSubtree() &&
+      !IsFrameModified()) {
+    nsDisplayListBuilder::DisplayListBuildingData* data =
+        GetProperty(nsDisplayListBuilder::DisplayListBuildingRect());
+    if (data) {
+      dirtyRect = data->mDirtyRect.Intersect(visibleRect);
+      hasOverrideDirtyRect = true;
     }
   }
 
   bool usingFilter = StyleEffects()->HasFilters();
   bool usingMask = nsSVGIntegrationUtils::UsingMaskOrClipPathForFrame(this);
   bool usingSVGEffects = usingFilter || usingMask;
 
   nsRect visibleRectOutsideSVGEffects = visibleRect;
@@ -7100,17 +7094,17 @@ Layer* nsIFrame::InvalidateLayer(Display
                                  const nsIntRect* aDamageRect,
                                  const nsRect* aFrameDamageRect,
                                  uint32_t aFlags /* = 0 */) {
   NS_ASSERTION(aDisplayItemKey > DisplayItemType::TYPE_ZERO, "Need a key");
 
   Layer* layer = FrameLayerBuilder::GetDedicatedLayer(this, aDisplayItemKey);
 
   nsIFrame* displayRoot = nsLayoutUtils::GetDisplayRootFrame(this);
-  InvalidateRenderingObservers(displayRoot, this, false);
+  InvalidateRenderingObservers(displayRoot, this);
 
   // Check if frame supports WebRender's async update
   if ((aFlags & UPDATE_IS_ASYNC) &&
       WebRenderUserData::SupportsAsyncUpdate(this)) {
     // WebRender does not use layer, then return nullptr.
     return nullptr;
   }
 
--- a/layout/painting/ActiveLayerTracker.cpp
+++ b/layout/painting/ActiveLayerTracker.cpp
@@ -187,17 +187,17 @@ void LayerActivityTracker::NotifyExpired
   MOZ_ASSERT((f == nullptr) != (c == nullptr),
              "A LayerActivity object should always have a reference to either "
              "its frame or its content");
 
   if (f) {
     // The pres context might have been detached during the delay -
     // that's fine, just skip the paint.
     if (f->PresContext()->GetContainerWeak()) {
-      f->SchedulePaint(nsIFrame::PAINT_DEFAULT, false);
+      f->SchedulePaint();
     }
     f->RemoveStateBits(NS_FRAME_HAS_LAYER_ACTIVITY_PROPERTY);
     f->DeleteProperty(LayerActivityProperty());
   } else {
     c->DeleteProperty(nsGkAtoms::LayerActivity);
   }
 }
 
--- a/layout/reftests/display-list/reftest.list
+++ b/layout/reftests/display-list/reftest.list
@@ -1,14 +1,13 @@
 skip-if(!retainedDisplayList) == retained-dl-style-change-1.html retained-dl-style-change-1-ref.html
 skip-if(!retainedDisplayList) == retained-dl-frame-deleted-1.html retained-dl-style-change-1-ref.html
 skip-if(!retainedDisplayList) == retained-dl-frame-created-1.html retained-dl-style-change-1-ref.html
 skip-if(!retainedDisplayList) == retained-dl-style-change-stacking-context-1.html retained-dl-style-change-stacking-context-1-ref.html
 skip-if(!retainedDisplayList) == retained-dl-style-change-stacking-context-2.html retained-dl-style-change-stacking-context-2-ref.html
-skip-if(!retainedDisplayList) == retained-dl-style-change-stacking-context-3.html retained-dl-style-change-stacking-context-3-ref.html
 skip-if(!retainedDisplayList||!asyncPan) == retained-dl-async-scrolled-1.html retained-dl-async-scrolled-1-ref.html
 skip-if(!retainedDisplayList) == retained-dl-remove-for-ancestor-change-1.html retained-dl-remove-for-ancestor-change-1-ref.html
 skip-if(!retainedDisplayList) == retained-dl-scroll-out-of-view-1.html retained-dl-scroll-out-of-view-1-ref.html
 skip-if(!retainedDisplayList) == retained-dl-displayport-1.html retained-dl-displayport-1-ref.html
 skip-if(!retainedDisplayList) == retained-dl-prerender-transform-1.html retained-dl-prerender-transform-1-ref.html
 skip-if(!retainedDisplayList) == retained-dl-animation-on-pseudo.html retained-dl-animation-on-pseudo-ref.html
 skip-if(!retainedDisplayList) == retained-dl-opacity-animation-on-ib-split.html retained-dl-opacity-animation-on-ib-split-ref.html
 == retained-dl-wrap-list.html retained-dl-wrap-list-ref.html
deleted file mode 100644
--- a/layout/reftests/display-list/retained-dl-style-change-stacking-context-3-ref.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<html>
-<head>
-<style>
-  body {
-    margin: 0px;
-  }
-  div {
-    width:100px;
-    height:100px;
-    display: inline-block;
-    position:absolute;
-    background-color: green;
-  }
-</style>
-</head>
-<body>
-  <div></div>
-  <div style="top: 110px;"></div>
-</body>
-</html>
deleted file mode 100644
--- a/layout/reftests/display-list/retained-dl-style-change-stacking-context-3.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<html class="reftest-wait">
-<head>
-<style>
-  body {
-    margin: 0px;
-  }
-  div {
-    width:100px;
-    height:100px;
-    display: inline-block;
-    position:absolute;
-  }
-</style>
-</head>
-<body>
-  <div style="position:fixed;" class="reftest-display-list">
-    <div style="background-color:green;" class="reftest-no-display-list">
-  </div>
-  <div id="second" style="background-color:red; top: 110px;"></div>
-</body>
-<script>
-function doTest() {
-  document.getElementById("second").style.backgroundColor = "green";
-  document.documentElement.removeAttribute("class");
-}
-
-window.addEventListener("MozReftestInvalidate", doTest);
-</script>
-</html>