Bug 931082 - LayerActivityTracker shouldn't force invalidate. r=roc
☠☠ backed out by 0ed5ed086741 ☠ ☠
authorBenoit Girard <b56girard@gmail.com>
Fri, 25 Oct 2013 22:45:51 +0200
changeset 167065 9861229c1b150b154dcea5da69dee7dd2e397393
parent 167064 dd7618acdabd7949586dc5e3b3fbb156ed817059
child 167066 c6a4d3416d8776755990e630227d225a81c8310d
push id428
push userbbajaj@mozilla.com
push dateTue, 28 Jan 2014 00:16:25 +0000
treeherdermozilla-release@cd72a7ff3a75 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersroc
bugs931082
milestone27.0a1
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
Bug 931082 - LayerActivityTracker shouldn't force invalidate. r=roc
layout/generic/nsFrame.cpp
--- a/layout/generic/nsFrame.cpp
+++ b/layout/generic/nsFrame.cpp
@@ -4616,27 +4616,17 @@ NS_DECLARE_FRAME_PROPERTY(LayerActivityP
 void
 LayerActivityTracker::NotifyExpired(LayerActivity* aObject)
 {
   RemoveObject(aObject);
 
   nsIFrame* f = aObject->mFrame;
   aObject->mFrame = nullptr;
 
-  // if there are hints other than transform/opacity, invalidate, since we don't know what else to do.
-  if (aObject->mChangeHint & ~(nsChangeHint_UpdateOpacityLayer|nsChangeHint_UpdateTransformLayer)) {
-    f->InvalidateFrameSubtree();
-  } else {
-    if (aObject->mChangeHint & nsChangeHint_UpdateOpacityLayer) {
-      f->InvalidateFrameSubtree(nsDisplayItem::TYPE_OPACITY);
-    } 
-    if (aObject->mChangeHint & nsChangeHint_UpdateTransformLayer) {
-      f->InvalidateFrameSubtree(nsDisplayItem::TYPE_TRANSFORM);
-    }
-  } 
+  f->SchedulePaint();
   f->Properties().Delete(LayerActivityProperty());
 }
 
 void
 nsIFrame::MarkLayersActive(nsChangeHint aChangeHint)
 {
   FrameProperties properties = Properties();
   LayerActivity* layerActivity =