Backed out 2 changesets (bug 1411860, bug 1411886) for failing reftests layout/reftests/bugs/409084-1{a,b}.html on OS X. r=backout on a CLOSED TREE
authorSebastian Hengst <archaeopteryx@coole-files.de>
Thu, 26 Oct 2017 17:35:16 +0200
changeset 388589 a402f6926b4b5aa6777282d604a903126ee2610c
parent 388588 817727beee91be77dec6f11791b6f126d3cdf17c
child 388590 29e0b65615c7945a62dd7e856f2413fa3dea987e
push id32754
push userarchaeopteryx@coole-files.de
push dateFri, 27 Oct 2017 09:46:43 +0000
treeherdermozilla-central@ecef003d8367 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbackout
bugs1411860, 1411886, 409084
milestone58.0a1
backs outbe44e8cd8503ba234372f7fe3d120607f1f00aea
8c6307a06e78bdb416e984e57e4b48f1677f5057
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 2 changesets (bug 1411860, bug 1411886) for failing reftests layout/reftests/bugs/409084-1{a,b}.html on OS X. r=backout on a CLOSED TREE Backed out changeset be44e8cd8503 (bug 1411886) Backed out changeset 8c6307a06e78 (bug 1411860)
layout/generic/nsSubDocumentFrame.cpp
layout/painting/RetainedDisplayListBuilder.cpp
layout/painting/nsDisplayList.cpp
layout/painting/nsDisplayList.h
--- a/layout/generic/nsSubDocumentFrame.cpp
+++ b/layout/generic/nsSubDocumentFrame.cpp
@@ -571,23 +571,23 @@ nsSubDocumentFrame::BuildDisplayList(nsD
   }
   if (constructResolutionItem) {
     nsDisplayResolution* resolutionItem =
       new (aBuilder) nsDisplayResolution(aBuilder, subdocRootFrame, &childItems,
                                          flags);
     childItems.AppendToTop(resolutionItem);
     needsOwnLayer = false;
   }
-
-  // We always want top level content documents to be in their own layer.
-  nsDisplaySubDocument* layerItem = new (aBuilder) nsDisplaySubDocument(
-    aBuilder, subdocRootFrame ? subdocRootFrame : this, this,
-    &childItems, flags);
-  childItems.AppendToTop(layerItem);
-  layerItem->SetShouldFlattenAway(!needsOwnLayer);
+  if (needsOwnLayer) {
+    // We always want top level content documents to be in their own layer.
+    nsDisplaySubDocument* layerItem = new (aBuilder) nsDisplaySubDocument(
+      aBuilder, subdocRootFrame ? subdocRootFrame : this, this,
+      &childItems, flags);
+    childItems.AppendToTop(layerItem);
+  }
 
   // If we're using containers for root frames, then the earlier call
   // to AddCanvasBackgroundColorItem won't have been able to add an
   // unscrolled color item for overscroll. Try again now that we're
   // outside the scrolled ContainerLayer.
   if (!aBuilder->IsForEventDelivery() &&
       gfxPrefs::LayoutUseContainersForRootFrames() &&
       !nsLayoutUtils::NeedsPrintPreviewBackground(presContext)) {
--- a/layout/painting/RetainedDisplayListBuilder.cpp
+++ b/layout/painting/RetainedDisplayListBuilder.cpp
@@ -48,19 +48,16 @@ void MarkFramesWithItemsAndImagesModifie
           data->GetGeometry()) {
         invalidate = data->GetGeometry()->InvalidateForSyncDecodeImages();
       } else if (!(i->GetFlags() & TYPE_RENDERS_NO_IMAGES)) {
         invalidate = true;
       }
 
       if (invalidate) {
         i->FrameForInvalidation()->MarkNeedsDisplayItemRebuild();
-        if (i->GetDependentFrame()) {
-          i->GetDependentFrame()->MarkNeedsDisplayItemRebuild();
-        }
       }
     }
     if (i->GetChildren()) {
       MarkFramesWithItemsAndImagesModified(i->GetChildren());
     }
   }
 }
 
--- a/layout/painting/nsDisplayList.cpp
+++ b/layout/painting/nsDisplayList.cpp
@@ -6842,17 +6842,16 @@ nsDisplayOwnLayer::UpdateScrollData(mozi
 }
 
 nsDisplaySubDocument::nsDisplaySubDocument(nsDisplayListBuilder* aBuilder,
                                            nsIFrame* aFrame,
                                            nsSubDocumentFrame* aSubDocFrame,
                                            nsDisplayList* aList, uint32_t aFlags)
     : nsDisplayOwnLayer(aBuilder, aFrame, aList, aBuilder->CurrentActiveScrolledRoot(), aFlags)
     , mScrollParentId(aBuilder->GetCurrentScrollParentId())
-    , mShouldFlatten(false)
     , mSubDocFrame(aSubDocFrame)
 {
   MOZ_COUNT_CTOR(nsDisplaySubDocument);
   mForceDispatchToContentRegion =
     aBuilder->IsBuildingLayerEventRegions() &&
     nsLayoutUtils::HasDocumentLevelListenersForApzAwareEvents(aFrame->PresContext()->PresShell());
 
   // The SubDocument display item is conceptually outside the viewport frame,
--- a/layout/painting/nsDisplayList.h
+++ b/layout/painting/nsDisplayList.h
@@ -5091,38 +5091,27 @@ public:
 
   virtual nsSubDocumentFrame* SubDocumentFrame() { return mSubDocFrame; }
 
   virtual bool ComputeVisibility(nsDisplayListBuilder* aBuilder,
                                  nsRegion* aVisibleRegion) override;
 
   virtual bool ShouldBuildLayerEvenIfInvisible(nsDisplayListBuilder* aBuilder) const override;
 
-  virtual bool ShouldFlattenAway(nsDisplayListBuilder* aBuilder) override
-  {
-    return mShouldFlatten;
-  }
-
-  void SetShouldFlattenAway(bool aShouldFlatten)
-  {
-    mShouldFlatten = aShouldFlatten;
-  }
-
   virtual nsRegion GetOpaqueRegion(nsDisplayListBuilder* aBuilder,
                                    bool* aSnap) const override;
 
   NS_DISPLAY_DECL_NAME("SubDocument", TYPE_SUBDOCUMENT)
 
   mozilla::UniquePtr<ScrollMetadata> ComputeScrollMetadata(LayerManager* aLayerManager,
                                                            const ContainerLayerParameters& aContainerParameters);
 
 protected:
   ViewID mScrollParentId;
   bool mForceDispatchToContentRegion;
-  bool mShouldFlatten;
   nsSubDocumentFrame* mSubDocFrame;
 };
 
 /**
  * A display item for subdocuments to capture the resolution from the presShell
  * and ensure that it gets applied to all the right elements. This item creates
  * a container layer.
  */