gecko-dev/dom/smil
Hiroyuki Ikezoe 9bf9d338f9 Bug 1385089 - Set restyle subtree restyle hint if the element animates display style from 'none' to other. r=emilio
When display style is changed from 'none' to other in animation-only restyle
we need to resolve descendant elements' style that were in the display:none
subtree.

Three possible ways to resolve the descendant elements' style;

1) Traversing unstyled elements in animation-only restyle
   We can't simply traverse unstyled elements in the animation-only restyle
   since when we decided to traverse the unstyled elements we don't know yet
   the elements will be initially styled or are in display:none subtree. It
   will result that the new elements are styled in animation-only restyle,
   it's undesirable.

2) Creating a SequentialTask and resolve the descendants' style with
   ServoStyleSet::StyleNewSubtree()
   We can't resolve the descendants' styles with ServoStyleSet::StyleNewSubtree()
   in SequentialTask since at the moment we are still in servo traversal (i.e.
   sInServoTraversal is true). That means AutoSetInServoTraversal fails
   in PrepareAndTraverseSubtree().

3) Creating a SequentialTask and set restyle subtree hint and defer descendants'
   restyle in a subsequent normal traversal
   Note that, when we process throttled animations flush, we don't process
   normal traversal so the descendants will not be traversed until normal
   restyle happens but it will not be a big problem since it's really rare
   that user clicks display animation element just at the right moment when
   display property changes from none to other.  Also, if it will be really
   a problem, we should process *only* transform animations on the compositor,
   it's ideally right thing to do. Display property never runs on the
   compositor.

This patch takes the third approach.

MozReview-Commit-ID: Krxa3kkdIq4

--HG--
extra : rebase_source : 33e9db953f21168c76716329568191625bd15896
2017-08-02 20:01:08 +09:00
..
crashtests Bug 1385089 - Set restyle subtree restyle hint if the element animates display style from 'none' to other. r=emilio 2017-08-02 20:01:08 +09:00
test Bug 1383980 - Enable animation mochitests in mochitest-style task. r=birtles 2017-07-25 14:17:04 +10:00
SMILBoolType.cpp
SMILBoolType.h
SMILEnumType.cpp
SMILEnumType.h
SMILIntegerType.cpp
SMILIntegerType.h
SMILStringType.cpp
SMILStringType.h
TimeEvent.cpp Bug 1313943 - Legacy event initializers should all do nothing during dispatch; r=bkelly 2016-11-01 17:19:59 +02:00
TimeEvent.h
moz.build Bug 1062106 part 3 - Remove SMIL MappedAttribute mechanism. r=birtles 2017-03-21 15:45:58 +09:00
nsISMILAttr.h
nsISMILType.h
nsSMILAnimationController.cpp Bug 1368889 - Post animation restyle hint againt pseudo element instead of its parent. r=birtles 2017-06-08 10:22:25 +09:00
nsSMILAnimationController.h Bug 1355348 - Add SMIL restyles in the stylo pretraverse; r=heycam 2017-04-26 13:00:11 +09:00
nsSMILAnimationFunction.cpp
nsSMILAnimationFunction.h Bug 1297306 - part5:create enum constructors for EnumTable. r=baku 2016-09-07 10:20:17 +08:00
nsSMILCSSProperty.cpp Bug 1381844: Be more explicit about the kind of style context we handle all the time. r=bholley 2017-07-22 18:02:57 +02:00
nsSMILCSSProperty.h Bug 1355349 - Treat properties that can't be animated by the Servo backend as unanimatable; r=hiro 2017-06-02 15:14:43 +09:00
nsSMILCSSValueType.cpp Bug 1381844: Be more explicit about the kind of style context we handle all the time. r=bholley 2017-07-22 18:02:57 +02:00
nsSMILCSSValueType.h Bug 1355349 - Call Servo's add and accumulate methods for SMIL animations; r=hiro 2017-06-02 15:18:47 +09:00
nsSMILCompositor.cpp Bug 1355349 - Treat properties that can't be animated by the Servo backend as unanimatable; r=hiro 2017-06-02 15:14:43 +09:00
nsSMILCompositor.h Bug 1315874 - Pass a base style context to nsSMILCSSProperty; r=heycam 2017-04-03 16:49:10 +09:00
nsSMILCompositorTable.h
nsSMILFloatType.cpp
nsSMILFloatType.h
nsSMILInstanceTime.cpp Bug 1339591 - Rearrange construction order of RAII objects in SMIL code; r=mccr8 2017-02-16 15:36:04 +09:00
nsSMILInstanceTime.h
nsSMILInterval.cpp
nsSMILInterval.h
nsSMILKeySpline.cpp
nsSMILKeySpline.h
nsSMILMilestone.h
nsSMILNullType.cpp
nsSMILNullType.h
nsSMILParserUtils.cpp Bug 1378712 - Remove all trailing whitespaces r=Ehsan 2017-07-06 14:00:35 +02:00
nsSMILParserUtils.h
nsSMILRepeatCount.cpp
nsSMILRepeatCount.h
nsSMILSetAnimationFunction.cpp
nsSMILSetAnimationFunction.h
nsSMILTargetIdentifier.h Bug 1062106 part 1 - Remove special handling of attributeType='XML'. r=birtles,longsonr+218550 2017-03-21 15:42:17 +09:00
nsSMILTimeContainer.cpp Bug 1062106 part 3 - Remove SMIL MappedAttribute mechanism. r=birtles 2017-03-21 15:45:58 +09:00
nsSMILTimeContainer.h Bug 1321357 part 2 - Make nsSMILTimeContainer::mHoldingEntries debug-only; r=dholbert 2016-12-02 11:22:40 +09:00
nsSMILTimeValue.cpp Bug 1374861 - add const keyword where appropriate. r=birtles 2017-07-01 10:55:27 +01:00
nsSMILTimeValue.h Bug 1374861 - add const keyword where appropriate. r=birtles 2017-07-01 10:55:27 +01:00
nsSMILTimeValueSpec.cpp
nsSMILTimeValueSpec.h
nsSMILTimeValueSpecParams.h
nsSMILTimedElement.cpp Bug 1378930 - Part 2: Remove the aName parameter from SchedulerGroup/DocGroup/DispatcherTrait. r=billm 2017-07-26 16:13:35 +08:00
nsSMILTimedElement.h Bug 1374861 - add const keyword where appropriate. r=birtles 2017-07-01 10:55:27 +01:00
nsSMILTypes.h
nsSMILValue.cpp Bug 1378712 - Remove all trailing whitespaces r=Ehsan 2017-07-06 14:00:35 +02:00
nsSMILValue.h