/* static */ void ActiveLayerTracker::NotifyRestyle(nsIFrame* aFrame, nsCSSProperty aProperty) { LayerActivity* layerActivity = GetLayerActivityForUpdate(aFrame); uint8_t& mutationCount = layerActivity->RestyleCountForProperty(aProperty); IncrementMutationCount(&mutationCount); }
/* static */ void ActiveLayerTracker::NotifyAnimated(nsIFrame* aFrame, nsCSSProperty aProperty) { LayerActivity* layerActivity = GetLayerActivityForUpdate(aFrame); uint8_t& mutationCount = layerActivity->RestyleCountForProperty(aProperty); // We know this is animated, so just hack the mutation count. mutationCount = 0xFF; }
/* static */ void ActiveLayerTracker::NotifyOffsetRestyle(nsIFrame* aFrame) { LayerActivity* layerActivity = GetLayerActivityForUpdate(aFrame); IncrementMutationCount(&layerActivity->mLeftRestyleCount); IncrementMutationCount(&layerActivity->mTopRestyleCount); IncrementMutationCount(&layerActivity->mRightRestyleCount); IncrementMutationCount(&layerActivity->mBottomRestyleCount); }
/* static */ void ActiveLayerTracker::NotifyOffsetRestyle(nsIFrame* aFrame) { LayerActivity* layerActivity = GetLayerActivityForUpdate(aFrame); IncrementMutationCount(&layerActivity->mRestyleCounts[LayerActivity::ACTIVITY_LEFT]); IncrementMutationCount(&layerActivity->mRestyleCounts[LayerActivity::ACTIVITY_TOP]); IncrementMutationCount(&layerActivity->mRestyleCounts[LayerActivity::ACTIVITY_RIGHT]); IncrementMutationCount(&layerActivity->mRestyleCounts[LayerActivity::ACTIVITY_BOTTOM]); }
/* static */ void ActiveLayerTracker::NotifyRestyle(nsIFrame* aFrame, nsCSSProperty aProperty) { LayerActivity* layerActivity = GetLayerActivityForUpdate(aFrame); uint8_t& mutationCount = layerActivity->RestyleCountForProperty(aProperty); IncrementMutationCount(&mutationCount); if (aProperty == eCSSProperty_transform) { IncrementScaleRestyleCountIfNeeded(aFrame, layerActivity); } }
/* static */ void ActiveLayerTracker::NotifyAnimatedFromScrollHandler(nsIFrame* aFrame, nsCSSProperty aProperty, nsIFrame* aScrollFrame) { if (aFrame->PresContext() != aScrollFrame->PresContext()) { // Don't allow cross-document dependencies. return; } LayerActivity* layerActivity = GetLayerActivityForUpdate(aFrame); LayerActivity::ActivityIndex activityIndex = LayerActivity::GetActivityIndexForProperty(aProperty); if (layerActivity->mAnimatingScrollHandlerFrame.GetFrame() != aScrollFrame) { // Discard any activity of a different scroll frame. We only track the // most recent scroll handler induced activity. layerActivity->mScrollHandlerInducedActivity.clear(); layerActivity->mAnimatingScrollHandlerFrame = aScrollFrame; } layerActivity->mScrollHandlerInducedActivity += activityIndex; }
/* static */ void ActiveLayerTracker::NotifyContentChange(nsIFrame* aFrame) { LayerActivity* layerActivity = GetLayerActivityForUpdate(aFrame); layerActivity->mContentActive = true; }