We will add cases to EnsurePhysicalProperty's switch statement as we
convert the existing shorthand-implemented logical properties to the
new, CSS_PROPERTY_LOGICAL-bearing properties.
We define a new flag CSS_PROPERTY_LOGICAL to be used for logical longhand
properties and a new CSS_PROP_LOGICAL macro in nsCSSPropList.h to
define them.
When using CSS_PROP to capture all properties, includers must now
explicitly indicate whether logical properties are included or not,
by defining CSS_PROP_LIST_EXCLUDE_LOGICAL (to exclude them),
CSS_PROP_LIST_INCLUDE_LOGICAL (to include them), or CSS_PROP_LOGICAL
(to capture them separately from other properties).
This tests a case that is fixed by patch 6. In particular, I tested that:
* with none of the patches in the bug applied, the two added tests
fail, both reporting rgb(255, 255, 0)
* with all patches 1-7 applied, the two added tests pass
* with only patches 4-6 applied, the two added tests pass
* with only patches 4-5 applied, the two added tests fail, both
reporting rgb(255, 255, 0)
Note that this test is structured in a rather particular way (with two
separate restyles triggered by attributes on different elements, queued
in a particular order) to avoid triggering bug 1111451. (Though I ended
up fixing that anyway in the revision of these patches, so it's probably
doesn't require as particular a structure anymore. FIXME: In fact, I
should probably add some additional tests.)
In this patch series we adjust the behavior of animation starting so that the
animation does not actually start until the following refresh driver tick. This
requires some tweaks to tests to ensure they continue to pass.
This patch (finally!) introduces the delayed start behavior. It updates
AnimationPlayer::DoPlay to put animations in the PendingPlayerTracker from
where they are triggered.
This patch also updates nsTransitionManager to set the animation's source
before calling Play as otherwise the AnimationPlayer won't be able to access
the pending player tracker (which it locates by navigating AnimationPlayer ->
Animation (source content) -> target element -> composed doc -> pending player
tracker). In future, when we support setting the AnimationPlayer.source property
we will make this more robust so that the order in which these steps are
performed doesn't matter.
This patch also updates a couple of tests to reflect the fact that
AnimationPlayer will now return the pending state.
This includes removing:
* the box property directional source constants
* the CSS_PROPERTY_DIRECTIONAL_SOURCE property flag
* the CSS_PROPERTY_REPORT_OTHER_NAME property flag
* nsCSSProps::OtherNameFor
* methods on the CSS parser to parse directional box properties and set
the old *-source and *-value properties
* the resolution of logical and physical properties in nsRuleNode during
style computation, since that's now done as part of the cascade in
nsCSSExpandedDataBlock::MapRuleInfoInto
Here we convert the logical padding properties into their new resolved-at-
cascade-time implementations. This involves:
* converting -moz-padding-{start,end} into logical longhand properties
* adding padding-inline-{start,end} aliases for -moz-padding-{start,end}
* converting padding-{left,right} into longhand properties
* removing padding-{left,right}-value and
padding-{left,right}-{ltr,rtl}-source internal properties
The CSS parser and various tests are simplified a bit as a result.
We will add cases to EnsurePhysicalProperty's switch statement as we
convert the existing shorthand-implemented logical properties to the
new, CSS_PROPERTY_LOGICAL-bearing properties.
We define a new flag CSS_PROPERTY_LOGICAL to be used for logical longhand
properties and a new CSS_PROP_LOGICAL macro in nsCSSPropList.h to
define them.
When using CSS_PROP to capture all properties, includers must now
explicitly indicate whether logical properties are included or not,
by defining CSS_PROP_LIST_EXCLUDE_LOGICAL (to exclude them),
CSS_PROP_LIST_INCLUDE_LOGICAL (to include them), or CSS_PROP_LOGICAL
(to capture them separately from other properties).
This patch (finally!) introduces the delayed start behavior. It updates
AnimationPlayer::DoPlay to put animations in the PendingPlayerTracker from
where they are triggered.
This patch also updates nsTransitionManager to set the animation's source
before calling Play as otherwise the AnimationPlayer won't be able to access
the pending player tracker (which it locates by navigating AnimationPlayer ->
Animation (source content) -> target element -> composed doc -> pending player
tracker). In future, when we support setting the AnimationPlayer.source property
we will make this more robust so that the order in which these steps are
performed doesn't matter.
This patch also updates a couple of tests to reflect the fact that
AnimationPlayer will now return the pending state.