Bug 978712 - RefreshDriver keeps getting woken up while idling at contact's details page r=cam a=1.3t+
Bug 828173 patch 1:  Add nsLayoutUtils::GetReferenceFrame.  r=mattwoodrow a=1.3t+
Bug 828173 patch 2:  Make Layer::AddAnimation have the caller fill in the data instead of taking parameters.  r=mattwoodrow a=1.3t+

(This is a bigger simplification later in the patch queue, when I add a
variant of AddAnimation called AddAnimationForNextTransaction.)
Bug 828173 patch 3:  Add a concept of pending animations to Layer, like pending transform.  r=mattwoodrow a=1.3t+
Bug 828173 patch 3.5:  Move GetTransformRootFrame to nsLayoutUtils.  r=mattwoodrow a=1.3t+
Bug 828173 patch 4:  Expose AddAnimationsAndTransitionsToLayer and allow it to be called from style change handling.  r=mattwoodrow a=1.3t+
Bug 828173 patch 5:  Call AddAnimationsAndTransitionsToLayer when we choose not to repaint when handling an UpdateTransformLayer hint, so that any new animations resulting from the style change get sent to the layer.  r=mattwoodrow a=1.3t+
Bug 828173 patch 6:  Remove calls to ForceLayerRerendering from the miniflush code (UpdateThrottledStyles, which flushes animations whose main thread updates are throttled without updating any other styles).  r=mattwoodrow a=1.3t+

I've been wanting to remove this code for a while.  I think this code is
problematic for three reasons:

 (1) It's in the middle of code where it doesn't belong, and which ought
     to be handling purely-style-system things.  (This is blocking me
     from reusing that code elsewhere, e.g., in bug 977991 and
     bug 960465, both of which could use it in some form.)

 (2) It defeats the optimization from bug 790505 whenever we do a
     miniflush (in other words, whenever we have any style change,
     whether or not it's related)

 (3) It means the conditions for when we decide to ship a new set of
     animation data to a layer doesn't cover all the cases the layer
     needs it.  In particular, we only run this miniflush code when we
     have a currently running animation or transition that's running on
     the compositor thread.  On the other hand, the UpdateTransformLayer
     style change handling in DoApplyRenderingChangeToTree depends on
     whether the frame currently has a transform layer, which can
     continue to be true for a bit after the animation stops.  So if we
     need to send animations to the layer because of a transform style
     change that happens soon after an animation completes, our style
     change handling will find the existing layer and call its
     SetBaseTransformForNextTransaction method but never do anything
     that triggers layer construction.  The style throttling code, in
     turn, will never stop doing main thread updates because the
     animation generation on the layer is out-of-date, and these main
     thread updates will keep the layer active, but they'll never show
     up because the stale animation data overrides the new transform
     that we've been setting.  (At least, I think that's what was
     happening; it makes sense to me and matches the behavior I was
     observing.  I didn't verify which main thread updates and which
     layer updates were actually happening, though.)

     This shows up, for example, in the animation in attachment 8384813
     just halting at a corner if I'm careful not to disturb it.  (I'm
     testing on Linux, with both accelerated layers and OMT animations
     explicitly enabled.)

I think there are probably some other things that can be removed as
followups to removing this code, because I think we made some boundary
conditions intentionally incorrect so that problem (3) above wouldn't be
as bad as it otherwise would have been.
Bug 828173 bustage fix for non-unified builds:  add using declaration. a=1.3t+