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 166113 9861229c1b150b154dcea5da69dee7dd2e397393
parent 166112 dd7618acdabd7949586dc5e3b3fbb156ed817059
child 166114 c6a4d3416d8776755990e630227d225a81c8310d
push id3066
push userakeybl@mozilla.com
push dateMon, 09 Dec 2013 19:58:46 +0000
treeherdermozilla-beta@a31a0dce83aa [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 =