Backed out changeset f12d7d68b685 (bug 1022612)
authorCarsten "Tomcat" Book <cbook@mozilla.com>
Tue, 15 Jul 2014 10:29:48 +0200
changeset 214838 2e46ba68c45a4ba082c7048ac5f7b3537505239c
parent 214837 d0676370cba9ee1a0ef3341b19aedce857edb3c8
child 214839 8121cd2778b55c79cc0e2db0d79ac7080ed08fa4
push id3857
push userraliiev@mozilla.com
push dateTue, 02 Sep 2014 16:39:23 +0000
treeherdermozilla-beta@5638b907b505 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1022612
milestone33.0a1
backs outf12d7d68b685bb894d4f23efc6af638c789eb9e6
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 changeset f12d7d68b685 (bug 1022612)
layout/base/FrameLayerBuilder.cpp
layout/base/nsDisplayList.h
--- a/layout/base/FrameLayerBuilder.cpp
+++ b/layout/base/FrameLayerBuilder.cpp
@@ -2595,22 +2595,16 @@ ContainerState::ComputeOpaqueRect(nsDisp
       opaqueClipped.Or(opaqueClipped, aClip.ApproximateIntersectInward(*r));
     }
     if (aAnimatedGeometryRoot == mContainerAnimatedGeometryRoot &&
         aFixedPosFrame == mContainerFixedPosFrame &&
         !aList->IsOpaque() &&
         opaqueClipped.Contains(mContainerBounds)) {
       aList->SetIsOpaque();
     }
-    // Add opaque areas to the "exclude glass" region. Only do this for
-    // ThebesLayers which are direct children of the root layer; this means
-    // they can't have transforms or opacity wrapping them.
-    if (!mContainerLayer->GetParent() && mBuilder->HasGlass()) {
-      mBuilder->AddExcludedGlassRegion(opaqueClipped);
-    }
     opaquePixels = ScaleRegionToInsidePixels(opaqueClipped, snapOpaque);
     if (aFixedPosFrame && ItemCoversScrollableArea(aItem, opaque)) {
       *aHideAllLayersBelow = true;
     }
   }
   return opaquePixels;
 }
 
--- a/layout/base/nsDisplayList.h
+++ b/layout/base/nsDisplayList.h
@@ -662,37 +662,33 @@ public:
     return CurrentPresShellState()->mPresShell->GetPresContext();
   }
 
   /**
    * Accumulates the bounds of box frames that have moz-appearance
    * -moz-win-exclude-glass style. Used in setting glass margins on
    * Windows.
    */  
-  void AddExcludedGlassRegion(const nsRegion& bounds) {
+  void AddExcludedGlassRegion(nsRect &bounds) {
     mExcludedGlassRegion.Or(mExcludedGlassRegion, bounds);
   }
   const nsRegion& GetExcludedGlassRegion() {
     return mExcludedGlassRegion;
   }
   void SetGlassDisplayItem(nsDisplayItem* aItem) {
     if (mGlassDisplayItem) {
       // Web pages or extensions could trigger this by using
       // -moz-appearance:win-borderless-glass etc on their own elements.
       // Keep the first one, since that will be the background of the root
       // window
       NS_WARNING("Multiple glass backgrounds found?");
     } else {
       mGlassDisplayItem = aItem;
     }
   }
-  // Call this only after we've finished building the display list
-  bool HasGlass() {
-    return mGlassDisplayItem != nullptr;
-  }
   bool NeedToForceTransparentSurfaceForItem(nsDisplayItem* aItem) {
     return aItem == mGlassDisplayItem;
   }
 
   void SetContainsPluginItem() { mContainsPluginItem = true; }
   bool ContainsPluginItem() { return mContainsPluginItem; }
 
   /**