It is already checked in nsLayoutUtils::AreAsyncAnimationsEnabled.
And nsLayoutUtils::AreAsyncAnimationsEnabled check is moved at the first of CanAnimatePropertyOnCompositor.
The assertion added in patch 1 caught a separate bug, which is that we
were computing whether we were affected by scriptMinSize too soon.
Prior to patch 1, this bug meant doing extra work (taking the slow
path). With patch 1, this changes in documents without MathML to
hitting the assertion instead of taking the slow path.
--HG--
extra : commitid : JD1GY8VL4F0
This isn't needed today, but it makes more sense, and if we ever gave
the cache a longer lifetime, it would be needed, since the
nsCSSKeyframeRule can maintain its identity across style changes whereas
a matched Declaration cannot.
--HG--
extra : commitid : LPoMlq8m1TH
This change needs to happen before future work that would get rid of the
DeclarationChanged dance in which we make a new StyleRule, but I've
postponed that work to a later bug. Without this, those changes would
cause a regression, because we'd only call SetImmutable on a StyleRule's
first mDeclaration. However, we may as well do this now, as it makes
patch 17 and patch 18 possible.
--HG--
extra : commitid : GcyBFi1AWHy
This inheritance was previously needed only by a subset of the classes
derived from css::Rule (css::StyleRule, nsCSSKeyframeRule,
nsCSSPageRule). After patch 12, it is now needed by none.
--HG--
extra : commitid : CEFVRbS42w6
This is the key change in this patch series; it changes the object we
use for style data (currently nsIStyleRule) identity. It allows
removing some hacks we have to deal with that for StyleRule, and avoids
having to write similar hacks for nsCSSKeyframeRule and nsCSSPageRule
(which are broken without this).
I confirmed locally that it is this patch that fixes both of the todo_is
mochitests, by building and testing with the patch queue through patch
11, and again through patch 12.
--HG--
extra : commitid : AzgBp6KfPhJ
Patch 12 changes nsRuleWalker.h from including StyleRule.h to including
Declaration.h; this fixes other headers to deal with that change based
on the include-what-you-use principle.
--HG--
extra : commitid : 5z9LIJ2QKCn
Prior to patch 12, rule destruction for rules that were matched doesn't
happen until rule tree GC. This means that GetCSSDeclaration is less
likely to return null, but then GetCSSParsingEnvironment might fail.
With StyleRule no longer participating in the rule tree, they're more
likely to be destroyed quickly, leading to the !olddecl failure case
instead of the !env.mPrincipal failure case.
This is needed to avoid patch 12 causing:
TEST-UNEXPECTED-FAIL | layout/inspector/tests/chrome/test_bug727834.xul | original rule is not available for modification anymore - got "NS_ERROR_FAILURE", expected "NS_ERROR_NOT_AVAILABLE"
--HG--
extra : commitid : K8f1NS4DX9F
The current location of the assertion will stop being called in patch 12
and will go away in patch 15; the new location is valid both before and
after patch 12.
--HG--
extra : commitid : 8wH1hXHKWU5
This probably should have been done before, but prior to this patch
series, dynamic changes of the declarations on these rules were broken
due to rule immutability violations; now that is no longer the case, but
to benefit from that, I believe we actually need to mark the
declarations as immutable once matched so that dynamic changes will
trigger construction of a new declaration (which thus has a new
nsIStyleRule identity).
--HG--
extra : commitid : 8IsYBd67qQr
Note that this adds a new public API to css::Declaration; the equivalent
API is removed from css::StyleRule and nsCSSPageRule in patch 13. But
the removal and addition need to be on opposite sides of patch 12.
This fused allocation is no larger than having a pointer, and it removes
having to worry about cycles.
--HG--
extra : commitid : EOrsMKswNMP
(This is part of a longer term plan to rename nsIStyleRule to StyleData
and nsIStyleRuleProcessor to StyleDataSource. I'm not doing all of that
here, though.)
--HG--
extra : commitid : DZGpUQO2Fey
We switch to using this implementation instead of the one in
css::StyleRule in patch 12.
(Yes, implementing QueryInterface for a CID is ugly, but it's the same
thing StyleRule does. Unfortunately now we'll need to have it in both
places.)
--HG--
extra : commitid : 9O6Z3E868cq
This is done in preparation for making it implement nsIStyleRule, which
happens in patch 3, and which is used in patch 12.
--HG--
extra : commitid : 56cV7yfXq59
Specifically, this adds the following alias mappings:
-webkit-box-flex --> flex-grow
-webkit-box-ordinal-group --> order
-webkit-box-align --> align-items
-webkit-box-pack --> justify-content
Specifically, this patch adds support for these longhand properties:
-webkit-border-image-outset
-webkit-border-image-repeat
-webkit-border-image-slice
-webkit-border-image-source
-webkit-border-image-width