gecko/layout/style
L. David Baron a2f97c232b Bug 978712 - Prevent non-running transitions and animations (animations or transitions during their delay period, and animations after they finish) from repeatedly poking layer activity because we think we can run them on the compositor. r=heycam
This changes the behavior of the CanPerformOnCompositorThread methods of
both ElementAnimations and ElementTransitions to check that the
respective animations or transitions are actually running.  This is ok
because:
 - The main caller is nsLayoutUtils::HasAnimationsForCompositor, and all
   of its callers pretty clearly want the more restricted behavior (they're
   concerned with layer activity)
 - The only other callers of these functions are
   nsAnimationManager::FlushAnimations and
   nsTransitionManager::FlushTransitions (determining when to do
   throttling), nsAnimationManager::GetAnimationsForCompositor (whose
   only caller,
   nsDisplayListBuilder::AddAnimationsAndTransitionsToLayer, also checks
   IsRunningAt).  I think these also all want or are fine with having
   the IsRunningAt check.

As to the actual changes:
 - In the animation manager, I think it's a mistake that
   ElementAnimation::IsRunningAt didn't already check
   mIterationDuration, since we throw out animations with a bad
   iteration-duration in ElementAnimations::EnsureStyleRuleFor.  So this
   makes that change as well.
 - In the transition manager, IsRunningAt already checks
   !IsRemovedSentinel().

I've confirmed in gdb on a device that this fixes the repeated
nsIFrame::SchedulePaint calls that were the symptom of this bug.

I believe this patch also makes it so that a short animation of a
property that can't be animated on the compositor doesn't prevent the
entire duration of the animation of a property that can from being
throttled (having the main thread style updates suppressed).
2014-03-06 22:08:57 -08:00
..
crashtests Bug 972199 part 2 - Add a crashtest for restoring the refresh driver after an advance; r=nrc 2014-03-05 10:19:15 +09:00
test Bug 971132 - B2G mochitests should use the new manifest format; r=jmaher 2014-03-06 13:42:43 -05:00
xbl-marquee Bug 774572 - Part 2: Define JAR_MANIFESTS in moz.build files; r=glandium 2013-12-10 16:18:11 +09:00
AnimationCommon.cpp Bug 979557: CanAnimatePropertyOnCompositor should return early when there's no OMT compositing, whether or not logging is enabled. r=dzbarsky 2014-03-04 20:13:22 -08:00
AnimationCommon.h Bug 914847. Mini-flush for animations. r=dbaron 2013-10-22 14:14:41 +02:00
arrow.gif
arrowd.gif
contenteditable.css
CSS.cpp
CSS.h Bug 968643 - Part 1: Stop using [PrefControlled]; r=bzbarsky 2014-02-06 13:28:14 -05:00
CSSCalc.h
CSSValue.h
CSSVariableDeclarations.cpp Bug 773296 - Part 27: Support 'unset' in CSS variables. r=dbaron 2013-12-12 13:09:47 +11:00
CSSVariableDeclarations.h Bug 773296 - Part 27: Support 'unset' in CSS variables. r=dbaron 2013-12-12 13:09:47 +11:00
CSSVariableResolver.cpp Bug 950497 - Make self-referencing CSS variables invalid even if they have fallback. r=dbaron 2013-12-17 16:16:42 +11:00
CSSVariableResolver.h Bug 773296 - Part 8: Resolve and compute CSS variables. r=dbaron 2013-12-12 13:09:41 +11:00
CSSVariableValues.cpp Bug 773296 - Part 22: Expose variables through the nsComputedDOMStyle indexed getter. r=dbaron 2013-12-12 13:09:45 +11:00
CSSVariableValues.h Bug 773296 - Part 22: Expose variables through the nsComputedDOMStyle indexed getter. r=dbaron 2013-12-12 13:09:45 +11:00
Declaration.cpp Backed out changesets d65a803d2b9a, 9456495d6121, and 73c710ddf3d8 (bug 977757) for Gaia UI test failures. 2014-03-06 13:10:20 -05:00
Declaration.h Bug 731271 - Part 4: Add ability for nsCSSValues to serialize themselves in their original syntactic form. r=dbaron 2013-09-16 09:35:49 +10:00
designmode.css
ErrorReporter.cpp Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc 2014-01-04 10:02:17 -05:00
ErrorReporter.h Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc 2014-01-04 10:02:17 -05:00
forms.css Bug 971955 - Make overflow-clip-box:content-box the default for all <input> @type values except type=file/button/reset/submit. r=roc 2014-03-06 10:03:38 +00:00
full-screen-override.css
generate-stylestructlist.py Bug 773296 - Part 8: Resolve and compute CSS variables. r=dbaron 2013-12-12 13:09:41 +11:00
GroupRule.h Bug 938123 - Build layout/style in unified mode; r=roc 2013-11-14 21:42:57 -05:00
html.css Bug 865407 - Part 9: Remove border-box and padding CSS on the caption overlay. r=rillian 2014-02-21 22:14:22 -05:00
ImageDocument.css
ImageLoader.cpp Bug 957391 - Call nsIFrame::SchedulePaint() in ImageLoader::DoRedraw(). r=mattwoodrow 2014-02-10 09:34:11 -05:00
ImageLoader.h
ImportRule.h
jar.mn Bug 974430 - Put the |input[type=number]| rule in forms.css into a separate sheet so we can make it respect the dom.forms.number pref. r=dbaron 2014-02-26 12:26:14 +00:00
Loader.cpp Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc 2014-01-04 10:02:17 -05:00
Loader.h Bug 923251 - Part b: Make Loader::PrepareSheet return void; r=heycam 2013-11-11 08:57:53 +01:00
Makefile.in Bug 772828 - Part b: use RESOURCE_FILES in moz.build instead of manual rules in Makefile.in; r=mshal 2013-11-05 13:37:54 -05:00
MediaQueryList.cpp Bug 950659 - Remove nsIDOMMediaQueryList and nsIDOMMediaQueryListListener; r=bzbarsky 2013-12-17 08:40:06 -05:00
MediaQueryList.h Bug 950659 - Remove nsIDOMMediaQueryList and nsIDOMMediaQueryListListener; r=bzbarsky 2013-12-17 08:40:06 -05:00
moz.build Bug 772828 - Part b: use RESOURCE_FILES in moz.build instead of manual rules in Makefile.in; r=mshal 2013-11-05 13:37:54 -05:00
NameSpaceRule.h
nsAnimationManager.cpp Bug 978712 - Prevent non-running transitions and animations (animations or transitions during their delay period, and animations after they finish) from repeatedly poking layer activity because we think we can run them on the compositor. r=heycam 2014-03-06 22:08:57 -08:00
nsAnimationManager.h Bug 978712 - Prevent non-running transitions and animations (animations or transitions during their delay period, and animations after they finish) from repeatedly poking layer activity because we think we can run them on the compositor. r=heycam 2014-03-06 22:08:57 -08:00
nsComputedDOMStyle.cpp Backed out changesets d65a803d2b9a, 9456495d6121, and 73c710ddf3d8 (bug 977757) for Gaia UI test failures. 2014-03-06 13:10:20 -05:00
nsComputedDOMStyle.h Bug 966992 - Implement the overflow-clip-box property in the style system. r=cam 2014-02-22 01:18:23 +00:00
nsComputedDOMStylePropertyList.h Bug 966992 - Implement the overflow-clip-box property in the style system. r=cam 2014-02-22 01:18:23 +00:00
nsCSSAnonBoxes.cpp Bug 713082 - Part 2: Rename Util.h to ArrayUtils.h. r=Waldo 2013-12-08 21:52:54 -05:00
nsCSSAnonBoxes.h
nsCSSAnonBoxList.h
nsCSSDataBlock.cpp Bug 773296 - Part 17: Resolve property values that have variable references at computed value time. r=dbaron 2013-12-12 13:09:44 +11:00
nsCSSDataBlock.h Bug 773296 - Part 17: Resolve property values that have variable references at computed value time. r=dbaron 2013-12-12 13:09:44 +11:00
nsCSSFontDescList.h
nsCSSKeywordList.h Bug 970079 - Native theming for MacOS X help buttons, widget part. r=mstange, roc. 2014-02-27 18:12:16 +01:00
nsCSSKeywords.cpp Bug 938123 - Build layout/style in unified mode; r=roc 2013-11-14 21:42:57 -05:00
nsCSSKeywords.h
nsCSSParser.cpp Backed out changesets d65a803d2b9a, 9456495d6121, and 73c710ddf3d8 (bug 977757) for Gaia UI test failures. 2014-03-06 13:10:20 -05:00
nsCSSParser.h Bug 773296 - Part 23: Support variables in CSSStyleDelcaration methods. r=dbaron 2013-12-12 13:09:46 +11:00
nsCSSPropAliasList.h Bug 243412: Add box-sizing preference to control the vendor prefix; r=dbaron 2014-02-04 18:06:18 -08:00
nsCSSProperty.h Bug 773296 - Part 2: Parse CSS variable declarations and store them on Declaration objects. p=ebassi,heycam r=dbaron 2013-12-12 13:09:40 +11:00
nsCSSPropertySet.h Bug 713082 - Part 2: Rename Util.h to ArrayUtils.h. r=Waldo 2013-12-08 21:52:54 -05:00
nsCSSPropList.h Backed out changesets d65a803d2b9a, 9456495d6121, and 73c710ddf3d8 (bug 977757) for Gaia UI test failures. 2014-03-06 13:10:20 -05:00
nsCSSProps.cpp Backed out changesets d65a803d2b9a, 9456495d6121, and 73c710ddf3d8 (bug 977757) for Gaia UI test failures. 2014-03-06 13:10:20 -05:00
nsCSSProps.h Backed out changesets d65a803d2b9a, 9456495d6121, and 73c710ddf3d8 (bug 977757) for Gaia UI test failures. 2014-03-06 13:10:20 -05:00
nsCSSPseudoClasses.cpp Bug 713082 - Part 2: Rename Util.h to ArrayUtils.h. r=Waldo 2013-12-08 21:52:54 -05:00
nsCSSPseudoClasses.h Bug 922669 - Part 1: Parse selectors with user action pseudo-classes after pseudo-elements. r=bz 2013-11-28 17:46:38 +11:00
nsCSSPseudoClassList.h
nsCSSPseudoElementList.h Bug 930020 - Part 2: Use flag to hide <input type=number> pseudo-elements from content. r=bz 2013-11-28 18:03:16 +11:00
nsCSSPseudoElements.cpp Bug 713082 - Part 2: Rename Util.h to ArrayUtils.h. r=Waldo 2013-12-08 21:52:54 -05:00
nsCSSPseudoElements.h Bug 938334 - Use PseudoElementSupportsStyleAttribute(Type) when it makes sense to do so and remove now unnecessary nsCSSPseudoElements functions. r=dbaron 2013-12-02 22:38:45 +01:00
nsCSSRuleProcessor.cpp Bug 962608 - Make PL_DHashTableInit infallible by default. r=briansmith,bsmedberg,ehsan,froydnj,jduell,jfkthame,roc,smaug 2014-02-27 10:04:09 -08:00
nsCSSRuleProcessor.h Bug 922669 - Part 7: Add nsStyleSet::HasStateDependentStyle and nsCSSRuleProcessor:HasStateDependentStyle overrides that work on pseudo-elements. r=bz 2013-11-28 17:46:39 +11:00
nsCSSRules.cpp Bug 978648: Handle dynamic changes to @keyframes rules and keyframe rules better. r=heycam 2014-03-04 20:13:20 -08:00
nsCSSRules.h
nsCSSScanner.cpp Bug 976350 patch 1: Move the contents of nsTraceRefcnt.h into nsISupportsImpl.h. r=bsmedberg 2014-02-26 13:36:35 -08:00
nsCSSScanner.h Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc 2014-01-04 10:02:17 -05:00
nsCSSStyleSheet.cpp Bug 458300 - Rename nsINameSpaceManager.h to nsNameSpaceManager.h. r=jst r=hsivonen 2014-02-27 20:04:46 -03:00
nsCSSStyleSheet.h Bug 921718 - Part b: Move MediaList to WebIDL; r=bz 2013-11-11 09:03:17 +01:00
nsCSSValue.cpp Bug 969756. r=cam 2014-02-15 17:40:38 +00:00
nsCSSValue.h Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc 2014-01-04 10:02:17 -05:00
nsDOMCSSAttrDeclaration.cpp Backout changeset 3fb9ea77d858 for bug 876321 due to test failures (CLOSED TREE) 2013-11-03 23:14:26 -08:00
nsDOMCSSAttrDeclaration.h Bug 974687 - Part 1: Add about 300 MOZ_OVERRIDE in layout/. r=dholbert 2014-02-24 09:41:56 -05:00
nsDOMCSSDeclaration.cpp Backed out changesets d65a803d2b9a, 9456495d6121, and 73c710ddf3d8 (bug 977757) for Gaia UI test failures. 2014-03-06 13:10:20 -05:00
nsDOMCSSDeclaration.h Backed out changesets d65a803d2b9a, 9456495d6121, and 73c710ddf3d8 (bug 977757) for Gaia UI test failures. 2014-03-06 13:10:20 -05:00
nsDOMCSSRect.cpp
nsDOMCSSRect.h
nsDOMCSSRGBColor.cpp
nsDOMCSSRGBColor.h
nsDOMCSSValueList.cpp Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc 2014-01-04 10:02:17 -05:00
nsDOMCSSValueList.h
nsFontFaceLoader.cpp bug 939049 - get rid of useless QIs r=smaug 2013-11-15 11:32:12 -05:00
nsFontFaceLoader.h Bug 974687 - Part 1: Add about 300 MOZ_OVERRIDE in layout/. r=dholbert 2014-02-24 09:41:56 -05:00
nsHTMLCSSStyleSheet.cpp Bug 922669 - Part 7: Add nsStyleSet::HasStateDependentStyle and nsCSSRuleProcessor:HasStateDependentStyle overrides that work on pseudo-elements. r=bz 2013-11-28 17:46:39 +11:00
nsHTMLCSSStyleSheet.h Bug 922669 - Part 7: Add nsStyleSet::HasStateDependentStyle and nsCSSRuleProcessor:HasStateDependentStyle overrides that work on pseudo-elements. r=bz 2013-11-28 17:46:39 +11:00
nsHTMLStyleSheet.cpp Bug 962608 - Make PL_DHashTableInit infallible by default. r=briansmith,bsmedberg,ehsan,froydnj,jduell,jfkthame,roc,smaug 2014-02-27 10:04:09 -08:00
nsHTMLStyleSheet.h Bug 922669 - Part 7: Add nsStyleSet::HasStateDependentStyle and nsCSSRuleProcessor:HasStateDependentStyle overrides that work on pseudo-elements. r=bz 2013-11-28 17:46:39 +11:00
nsICSSDeclaration.h Bug 731271 - Part 6: Add a chrome-only CSSDeclaration.getAuthoredPropertyValue() method to expose a property value in its original syntactic form. r=dbaron 2013-09-16 09:35:49 +10:00
nsICSSLoaderObserver.h
nsICSSPseudoComparator.h
nsICSSRuleList.h
nsICSSStyleRuleDOMWrapper.h
nsIMediaList.h Bug 921718 - Part b: Move MediaList to WebIDL; r=bz 2013-11-11 09:03:17 +01:00
nsIStyleRule.h
nsIStyleRuleProcessor.h Bug 922669 - Part 7: Add nsStyleSet::HasStateDependentStyle and nsCSSRuleProcessor:HasStateDependentStyle overrides that work on pseudo-elements. r=bz 2013-11-28 17:46:39 +11:00
nsIStyleSheet.h
nsLayoutStylesheetCache.cpp Bug 974430 - Put the |input[type=number]| rule in forms.css into a separate sheet so we can make it respect the dom.forms.number pref. r=dbaron 2014-02-26 12:26:14 +00:00
nsLayoutStylesheetCache.h Bug 974430 - Put the |input[type=number]| rule in forms.css into a separate sheet so we can make it respect the dom.forms.number pref. r=dbaron 2014-02-26 12:26:14 +00:00
nsMediaFeatures.cpp Bug 968118. Make nsCSSProps keyword tables be int16_t instead of int32_t for a small space win. r=heycam 2014-02-06 00:10:44 +13:00
nsMediaFeatures.h Bug 968118. Make nsCSSProps keyword tables be int16_t instead of int32_t for a small space win. r=heycam 2014-02-06 00:10:44 +13:00
nsNthIndexCache.cpp Bug 940033 - js::HashMapEntry::{key,value} fields should be private, with accessors, and the former should expose a const reference. r=jimb 2013-11-25 17:35:09 -08:00
nsNthIndexCache.h
nsROCSSPrimitiveValue.cpp Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc 2014-01-04 10:02:17 -05:00
nsROCSSPrimitiveValue.h Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc 2014-01-04 10:02:17 -05:00
nsRuleData.cpp
nsRuleData.h Bug 773296 - Part 5: Map variables on a Declaration to nsRuleData. r=dbaron 2013-12-12 13:09:41 +11:00
nsRuleNode.cpp Backed out changesets d65a803d2b9a, 9456495d6121, and 73c710ddf3d8 (bug 977757) for Gaia UI test failures. 2014-03-06 13:10:20 -05:00
nsRuleNode.h Bug 969460 part 1: Give EnsureBlockDisplay a second parameter, to determine whether it converts 'display:list-item' to block. r=bz 2014-02-15 10:42:35 -08:00
nsRuleProcessorData.h Bug 922669 - Part 7: Add nsStyleSet::HasStateDependentStyle and nsCSSRuleProcessor:HasStateDependentStyle overrides that work on pseudo-elements. r=bz 2013-11-28 17:46:39 +11:00
nsRuleWalker.h
nsStyleAnimation.cpp Bug 731271 - Part 4: Add ability for nsCSSValues to serialize themselves in their original syntactic form. r=dbaron 2013-09-16 09:35:49 +10:00
nsStyleAnimation.h Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc 2014-01-04 10:02:17 -05:00
nsStyleConsts.h Bug 978443 - Rename NS_STYLE_CLEAR_LEFT_AND_RIGHT to NS_STYLE_CLEAR_BOTH. r=dholbert 2014-03-02 17:42:16 +00:00
nsStyleContext.cpp Bug 975501 part 2: Add display:{inline-,}grid behind a pref, and a stub nsGridContainerFrame. r=dholbert 2014-02-26 23:45:29 -08:00
nsStyleContext.h Bug 91419 patch 9: Fix comments and debugging output referring to "special" frames. r=mats 2014-02-06 17:45:33 -08:00
nsStyleCoord.cpp
nsStyleCoord.h
nsStyleSet.cpp Bug 828300 - Replace NS_ARRAY_LENGTH with mozilla::ArrayLength/MOZ_ARRAY_LENGTH. r=ehsan 2014-01-30 13:26:54 -05:00
nsStyleSet.h Bug 922669 - Part 7: Add nsStyleSet::HasStateDependentStyle and nsCSSRuleProcessor:HasStateDependentStyle overrides that work on pseudo-elements. r=bz 2013-11-28 17:46:39 +11:00
nsStyleStruct.cpp Backed out changesets d65a803d2b9a, 9456495d6121, and 73c710ddf3d8 (bug 977757) for Gaia UI test failures. 2014-03-06 13:10:20 -05:00
nsStyleStruct.h Bug 975501 part 2: Add display:{inline-,}grid behind a pref, and a stub nsGridContainerFrame. r=dholbert 2014-02-26 23:45:29 -08:00
nsStyleStructFwd.h Bug 773296 - Part 3: Allow more than 27 style structs. r=dbaron 2013-12-12 13:09:40 +11:00
nsStyleStructInlines.h Bug 700926. Use nsStyleImage and nsRenderingContext to draw border-images. r=roc 2014-01-31 16:36:41 +13:00
nsStyleTransformMatrix.cpp Bug 938123 - Build layout/style in unified mode; r=roc 2013-11-14 21:42:57 -05:00
nsStyleTransformMatrix.h
nsStyleUtil.cpp Bug 883975 - CSP 1.1 hash-source. r=sstamm, r=dholbert, r=mrbkap 2014-01-02 11:14:06 -08:00
nsStyleUtil.h Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc 2014-01-04 10:02:17 -05:00
nsTransitionManager.cpp Bug 978712 - Prevent non-running transitions and animations (animations or transitions during their delay period, and animations after they finish) from repeatedly poking layer activity because we think we can run them on the compositor. r=heycam 2014-03-06 22:08:57 -08:00
nsTransitionManager.h Bug 978712 - Prevent non-running transitions and animations (animations or transitions during their delay period, and animations after they finish) from repeatedly poking layer activity because we think we can run them on the compositor. r=heycam 2014-03-06 22:08:57 -08:00
number-control.css Bug 971955 - Make overflow-clip-box:content-box the default for all <input> @type values except type=file/button/reset/submit. r=roc 2014-03-06 10:03:38 +00:00
plaintext.css Bug 947588. Part 4: Set -moz-text-discard:none in devtools, XUL, text inputs, plaintext documents, view-source documents. r=heycam 2014-02-05 23:23:08 +13:00
quirk.css Bug 977248: Remove quirk.css rule that selects on an attribute that was only set by the old HTML parser. r=mrbkap 2014-02-26 23:00:13 -08:00
Rule.h Bug 784739 - Switch from NULL to nullptr in layout/; r=ehsan 2013-10-08 14:47:21 -04:00
StyleRule.cpp Bug 458300 - Rename nsINameSpaceManager.h to nsNameSpaceManager.h. r=jst r=hsivonen 2014-02-27 20:04:46 -03:00
StyleRule.h Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc 2014-01-04 10:02:17 -05:00
TopLevelImageDocument.css
TopLevelVideoDocument.css
ua.css Bug 965237 - Make overflow-clip-box:content-box be the default for <input type=text/password/number> and <textarea>. r=roc 2014-02-22 01:18:24 +00:00
viewsource.css Bug 947588. Part 4: Set -moz-text-discard:none in devtools, XUL, text inputs, plaintext documents, view-source documents. r=heycam 2014-02-05 23:23:08 +13:00