Backout bug 894773 on Aurora since it hurts jQuery animation performance and we have a better solution on central. r=benwa,a=akeybl
authorRobert O'Callahan <robert@ocallahan.org>
Thu, 05 Sep 2013 10:10:33 +1200
changeset 149272 8cbb2d018c670de48db24f25737dc9ee07821d8c
parent 149271 b0bc9c628c80172053320dedfa0d71a7af29133f
child 149273 4265c72971672bfc7218a78ed1b23c83403fb02e
push id4218
push userrocallahan@mozilla.com
push dateFri, 06 Sep 2013 04:16:00 +0000
treeherdermozilla-aurora@8cbb2d018c67 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbenwa, akeybl
bugs894773
milestone25.0a2
Backout bug 894773 on Aurora since it hurts jQuery animation performance and we have a better solution on central. r=benwa,a=akeybl
layout/generic/nsFrame.cpp
layout/reftests/bugs/reftest.list
--- a/layout/generic/nsFrame.cpp
+++ b/layout/generic/nsFrame.cpp
@@ -4487,33 +4487,27 @@ nsFrame::GetType() const
 bool
 nsIFrame::IsLeaf() const
 {
   return true;
 }
 
 class LayerActivity {
 public:
-  LayerActivity(nsIFrame* aFrame)
-    : mFrame(aFrame)
-    , mChangeHint(nsChangeHint(0))
-    , mMutationCount(0)
-  {}
+  LayerActivity(nsIFrame* aFrame) : mFrame(aFrame), mChangeHint(nsChangeHint(0)) {}
   ~LayerActivity();
   nsExpirationState* GetExpirationState() { return &mState; }
-  uint32_t GetMutationCount() { return mMutationCount; }
 
   nsIFrame* mFrame;
   nsExpirationState mState;
   // mChangeHint can be some combination of nsChangeHint_UpdateOpacityLayer and
   // nsChangeHint_UpdateTransformLayer (or neither)
   // The presence of those bits indicates whether opacity or transform
   // changes have been detected.
   nsChangeHint mChangeHint;
-  uint32_t mMutationCount;
 };
 
 class LayerActivityTracker MOZ_FINAL : public nsExpirationTracker<LayerActivity,4> {
 public:
   // 75-100ms is a good timeout period. We use 4 generations of 25ms each.
   enum { GENERATION_MS = 100 };
   LayerActivityTracker()
     : nsExpirationTracker<LayerActivity,4>(GENERATION_MS) {}
@@ -4566,17 +4560,16 @@ LayerActivityTracker::NotifyExpired(Laye
 void
 nsIFrame::MarkLayersActive(nsChangeHint aChangeHint)
 {
   FrameProperties properties = Properties();
   LayerActivity* layerActivity =
     static_cast<LayerActivity*>(properties.Get(LayerActivityProperty()));
   if (layerActivity) {
     gLayerActivityTracker->MarkUsed(layerActivity);
-    layerActivity->mMutationCount++;
   } else {
     if (!gLayerActivityTracker) {
       gLayerActivityTracker = new LayerActivityTracker();
     }
     layerActivity = new LayerActivity(this);
     gLayerActivityTracker->AddObject(layerActivity);
     properties.Set(LayerActivityProperty(), layerActivity);
   }
@@ -4590,19 +4583,16 @@ nsIFrame::AreLayersMarkedActive()
 }
 
 bool
 nsIFrame::AreLayersMarkedActive(nsChangeHint aChangeHint)
 {
   LayerActivity* layerActivity =
     static_cast<LayerActivity*>(Properties().Get(LayerActivityProperty()));
   if (layerActivity && (layerActivity->mChangeHint & aChangeHint)) {
-    if (aChangeHint & nsChangeHint_UpdateOpacityLayer) {
-      return layerActivity->GetMutationCount() > 1;
-    }
     return true;
   }
   if (aChangeHint & nsChangeHint_UpdateTransformLayer &&
       Preserves3D()) {
     return GetParent()->AreLayersMarkedActive(nsChangeHint_UpdateTransformLayer);
   }
   return false;
 }
--- a/layout/reftests/bugs/reftest.list
+++ b/layout/reftests/bugs/reftest.list
@@ -1556,17 +1556,17 @@ random-if(!winWidget) == 574907-2.html 5
 # 574907-3 only worked under directwrite, and even there it now depends on the rendering mode; marking as random for now
 random-if(!winWidget) fails-if(winWidget&&!d2d) random-if(winWidget&&d2d) != 574907-3.html 574907-3-notref.html
 == 577838-1.html 577838-1-ref.html
 == 577838-2.html 577838-2-ref.html
 fails-if(Android) == 579323-1.html 579323-1-ref.html
 == 579349-1.html 579349-1-ref.html
 == 579655-1.html 579655-1-ref.html
 skip-if(B2G) fails-if(Android) == 579808-1.html 579808-1-ref.html
-skip-if(B2G) fails-if(Android) random-if(layersGPUAccelerated) == 579985-1.html 579985-1-ref.html # bug 623452 for WinXP; this bug was only for a regression in BasicLayers anyway
+skip-if(B2G) fails-if(Android) random-if(layersGPUAccelerated) fails-if(/^Windows\x20NT\x205\.1/.test(http.oscpu))  == 579985-1.html 579985-1-ref.html # bug 623452 for WinXP; this bug was only for a regression in BasicLayers anyway
 skip-if(B2G) fails-if(Android) == 580160-1.html 580160-1-ref.html
 HTTP(..) == 580863-1.html 580863-1-ref.html
 skip-if(B2G) fails-if(Android) random-if(layersGPUAccelerated) fails-if(/^Windows\x20NT\x205\.1/.test(http.oscpu))  == 581317-1.html 581317-1-ref.html # bug 623456 for WinXP
 == 581579-1.html 581579-1-ref.html
 == 582037-1a.html 582037-1-ref.html
 == 582037-1b.html 582037-1-ref.html
 skip-if(B2G) == 582037-2a.html 582037-2-ref.html
 skip-if(B2G) == 582037-2b.html 582037-2-ref.html
@@ -1654,17 +1654,17 @@ HTTP(..) == 635639-2.html 635639-2-ref.h
 random == 637597-1.html 637597-1-ref.html # bug 637597 was never really fixed!
 skip-if(B2G) fuzzy-if(Android&&AndroidVersion>=15,8,500) == 637852-1.html 637852-1-ref.html # bug 839735
 == 637852-2.html 637852-2-ref.html
 fuzzy-if(Android&&AndroidVersion>=15,8,500) == 637852-3.html 637852-3-ref.html
 skip-if(B2G) == 641770-1.html 641770-1-ref.html
 == 641856-1.html 641856-1-ref.html
 == 645491-1.html 645491-1-ref.html
 == 645768-1.html 645768-1-ref.html
-== 650228-1.html 650228-1-ref.html
+fails-if(layersGPUAccelerated&&cocoaWidget) fails-if(Android) == 650228-1.html 650228-1-ref.html # Quartz alpha blending doesn't match GL alpha blending
 needs-focus == 652301-1a.html 652301-1-ref.html
 needs-focus == 652301-1b.html 652301-1-ref.html
 == 652775-1.html 652775-1-ref.html
 == 653930-1.html 653930-1-ref.html
 HTTP(..) == 654057-1.html 654057-1-ref.html
 fails-if(layersGPUAccelerated&&cocoaWidget) fails-if(Android) == 654950-1.html 654950-1-ref.html # Quartz alpha blending doesn't match GL alpha blending
 == 655549-1.html 655549-1-ref.html
 == 655836-1.html 655836-1-ref.html