I just sent a proposal to www-style about having css3-transitions
describe a clearer model for how transitions and animations interact
and how transitions are started:
http://lists.w3.org/Archives/Public/www-style/2013Mar/0297.html
This would hopefully clear up a bunch of areas where there's
significant lack of interoperability between implementations of
transitions and animations, and where the spec is very unclear.

I wanted to write a bit more here about how I see this being
implemented in Gecko.  I think the big pieces would be:

 (1) Removing the concepts of "style with animation" and "style
 without animation" that we have, which I think has proven not to
 meet the goals I originally intended them to meet (providing sane
 behavior for requirements (3) and (5) in the above message).  This
 would be replaced with what I propose in item (A) in that message,
 which is essentially the miniflush concept that we have implemented
 for suppressing the main thread style updates for animations that
 are running on the compositor, but which we don't currently use
 beyond that code.  I think this removal will end up being a pretty
 substantial code simplification, and the performance cost of the
 miniflush will be roughly the same as the performance cost of the
 current dual-style setup.

 (2) Changing how animations and transitions work in the cascade.
 Note that currently compositor-driven animations have different
 cascading behavior than animations not running on the compositor,
 which is a relatively serious bug (847287).  I admit I don't have a
 completely concrete idea about how to do this, but I think it's not
 going to be all that hard; at a concrete level it might come down
 to having nsIStyleRules in the cascade at two different places
 (both at the top of the cascade and at the official location) in
 order to let the rule safely record which properties the animation
 or transition is the winning rule for, and then recording that
 information so that we can use it for the compositor-driven
 animations.  I don't think this is too hard, though; I just haven't
 implemented it yet.

I wanted to call this out both because it implies some somewhat
significant changes coming in code that we're depending on pretty
heavily, and to encourage others to comment either here about the
Gecko-specific parts or on www-style about the standard bits.

-David

-- 
𝄞   L. David Baron                         http://dbaron.org/   𝄂
𝄢   Mozilla                           http://www.mozilla.org/   𝄂
_______________________________________________
dev-tech-layout mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-layout

Reply via email to