Commit Graph

383 Commits

Author SHA1 Message Date
Brian Birtles
fb03475f7c Bug 1036287 part 3 - Make GetLocalTimeAt return a nullable time duration; r=dholbert
Once we support arbitrary timelines which can return null current time values,
the local time of an animation can also become null so this patch updates
ElementAnimation::GetLocalTimeAt to return a Nullable<TimeDuration>.
Doing this also allows us to pass the result of GetLocalTimeAt directly to
GetComputedTimingAt.
2014-07-16 09:02:32 +09:00
Brian Birtles
d2db522bc3 Bug 1010067 part 2 - Rename nsStyleAnimation.{h,cpp} to StyleAnimationValue.{h,cpp}; r=dbaron 2014-06-24 15:29:54 +09:00
Brian Birtles
8fe87f4a81 Bug 1010067 part 1 - Rename nsStyleAnimation::Value to mozilla::StyleAnimationValue; r=dbaron
This patch also moves the static methods defined on nsStyleAnimation so that
they are part of StyleAnimationValue class.

Renaming nsStyleAnimation.h to StyleAnimationValue.h is performed in a separate
patch to simplify the diff (since some tools may not handle file renames
elegantly).
2014-06-24 15:29:54 +09:00
Brian Birtles
9a6cacb955 Bug 1025709 part 1 - Move mDelay to AnimationTiming; r=heycam
This patch is the first part in preparing the way to merge ElementTransitions
with CommonElementAnimationData (which we'll eventually rename to something
nicer).

Here we move mTiming from CommonElementAnimationData to the AnimationTiming
struct. While this is not strictly necessary in order to do the later
refactoring it makes it simpler since it:

- Divides time calculation into calculation based on dynamic play state (the
  responsibility of animation players in Web Animations terms) and static
  author-specified timing parameters (a property of animations in Web Animations
  terms).
- In future we will probably put animations on the compositor during their
  delay phase so we will want the delay to be present in the AnimationTiming
  struct then.
- Makes AnimationTiming line up with the dictionary of the same name in Web
  Animations.
2014-06-20 12:39:23 +09:00
Botond Ballo
62686382b3 Bug 1019996 - Apply overscroll effect to fixed and sticky layers. r=kats, r=Cwiiis 2014-06-12 20:27:32 -04:00
Botond Ballo
35cd87d497 Bug 1019996 - Remove an unnecessary call to AlignFixedAndStickyLayers. r=Cwiiis 2014-06-12 16:40:35 -04:00
"Kan-Ru Chen (陳侃如)"
29b63bbf75 Bug 879475 - Part 007. Allow nested remote mozbrowsers to push layer transactions to the compositor r=mattwoodrow
Based on original patch by David Zbarsky <dzbarsky@gmail.com>
2014-06-11 13:44:39 +08:00
Markus Stange
6d04354113 Bug 1013392 - Adjust the search algorithm for async scrollbar thumb shifting. r=kats 2014-06-04 14:44:26 +02:00
Victor Porof
298ca2ed1b Bug 1007203 - Always add categories when pushing to the pseudostack, r=djvj 2014-05-23 17:12:29 -04:00
Brian Birtles
92b5437cf5 Bug 1015803 - Align Layers' Animation.numIterations with AnimationTiming.mIterationCount; r=dholbert
In the IPC Animation struct used in layers code we have a member called
'numIterations' where 'iterate forever' is represented by -1.

In layout/style however we have an AnimationTiming struct with an
mIterationCount member where 'iterate forever' is represented by
NS_IEEEPositiveInfinity().

This patch renames 'numIterations' to 'iterationCount' and uses infinity to
represent 'iterate forever'.
2014-05-28 16:51:50 +09:00
Brian Birtles
666dae6180 Bug 1004871 part 9 - Move ElementAnimations::GetPositionInIteration to ElementAnimation::GetComputedTimingAt; r=dholbert
This patch simply moves the code from ElementAnimations to ElementAnimation so
that it can later be used in transitions code and so we can later move
EnsureStyleRuleFor to ElementAnimation.
2014-05-28 16:51:50 +09:00
Brian Birtles
f05c7326f6 Bug 1004871 part 6 - Make GetPositionInIteration return a ComputedTiming object; r=dholbert
This patch makes ElementAnimations::GetPositionInIteration return
a ComputedTiming object instead of just a time portion (time fraction).

Since the ComputedTiming object includes phase information, we can fix those
parts of EnsureStyleRule and GetEventsAt that were temporarily using the time
portion to guess if the animation might have finished or not.
2014-05-28 16:51:49 +09:00
Brian Birtles
b7323fca5d Bug 1004871 part 3 - Replace parameters to GetPositionInIteration with an AnimationTiming object; r=dholbert
This patch makes use of the AnimationTiming struct introduced in the previous
patch to simplify calls to ElementAnimations::GetPositionInIteration.
2014-05-28 16:51:49 +09:00
Brian Birtles
978ef6050e Bug 1004871 part 1 - Factor event queuing out of EnsureStyleRuleFor; r=dholbert
This patch moves event queuing out of EnsureStyleRuleFor into a separate method.
This is a preparatory step towards making GetPositionInIteration into a more
generic method for calculating the current time fraction.

In order to achieve this, GetPositionInIteration needs to be able to calculate
the correct time portion for times outside the range [0, 1] even when it is not
passed a ElementAnimation object. Specifically, it needs the fill mode of the
animation to be passed in.

(Rather than using FillForwards/FillBackwards this patch just compares the
NS_STYLE_ANIMATION_FILL_MODE_* values directly but FillForwards/FillBackwards
are restored in a subsequent patch when they are added to the struct used to
lump the timing parameters together.)

There are a number of places where positionInIteration is used to determine if
the current sample occurs in the active phase or after. This is sub-optimal but
is fixed in a subsequent patch in this series.

The actual work of removing event queuing from GetPositionInIteration is
deferred to a subsequent patch in order to keep the changes as small as
possible. This patch simply makes separate calls to GetPositionInIteration for
interpolating and for event queuing.
2014-05-28 16:51:48 +09:00
Nicolas Silva
8a0c258ce9 Bug 1013292 - Fix some using namespace + unified build issues in gfx code. r=kats 2014-05-22 12:11:45 +02:00
Jerry Shih
b4f8ab1ee6 Bug 993019 - [Camera] [Gallery] Orientation response is slow after launching from Camera app. r=kats 2014-04-24 05:43:00 -04:00
Kartikaya Gupta
117aac7861 Bug 980500 - Allow scrollbars to be children of the scrollable container layer. r=botond 2014-04-11 19:12:44 -05:00
Kartikaya Gupta
9870c2a6d0 Bug 948377 - Remove unwanted rounding in CalculateCompositedRectInCssPixels; add a CalculateCompositedSizeInCssPixels also. r=botond 2014-03-28 10:36:47 -04:00
Chadd Williams
2b825153b5 Bug 980493 - Transition FrameMetrics::mScrollId to use a getter/setter. r=botond 2014-03-21 17:48:08 -04:00
Botond Ballo
66174331db Bug 980493 - Transition FrameMetrics::mScrollOffset to use a getter/setter. r=kats 2014-03-13 02:34:34 -04:00
Brian Birtles
576edd2a13 Bug 972199 part 1 - Make SampleAnimations filter out animations that are yet to start; r=nrc
When restoring the refresh driver after testing we can arrive at a situation
where a layer has an animation that has yet to start. However, calling
ElementAnimations::GetPositionInIteration with a negative value from the
compositor thread is an error.

This patch detects animations on the compositor thread that are yet-to-start and
skips them when sampling. It also moves the activeAnimations = true line up as
otherwise we would need special logic to wake up the compositor after the delay
has finished.
2014-03-05 10:19:15 +09:00
Matt Woodrow
85ed01610a Bug 966679 - Resolve RefLayers during IPDL transactions. r=nical 2014-02-11 17:01:20 +13:00
David Zbarsky
5badebe3ba Bug 952977: Convert AsyncCompositionManager to gfx::Matrix4x4 r=nical 2014-01-27 15:25:21 -05:00
David Zbarsky
43cb9f37fb Bug 952977: Convert shadow transforms to gfx::Matrix4x4 r=nical 2014-01-27 10:29:27 -05:00
David Zbarsky
76af03653a Bug 952977: Convert GetTransform to gfx::Matrix4x4 r=nical 2014-01-27 10:28:47 -05:00
David Zbarsky
a76cd8cfcd Bug 952977: Convert SetBaseTransform to gfx::Matrix4x4 r=nical 2014-01-27 10:28:33 -05:00
David Zbarsky
df33ba2acb Bug 952977: Convert GetLocalTransform to gfx::Matrix4x4 r=nical 2014-01-27 10:28:18 -05:00
Chris Lord
201df13530 Bug 958549 - Don't move scroll indicators for empty container layers. r=kats
If we've applied an async transform to an empty container layer (e.g. a layer
that corresponds to an nsDisplayScrollInfo display item), don't use that
transform on the corresponding scrollbar.
2014-01-22 14:25:44 +00:00
Chris Lord
88c321c9c1 Bug 950993 - Fix async scrolling of fixed layers within scrollable sub-layers. r=roc
Fixed layers are relative to their nearest scrollable ancestor, so when we
encounter a scrollable layer in AlignFixedAndStickyLayers, reset the transform
and sub-tree root to start from that scrollable layer.

This fixes async scrolling of the fixed header in the Firefox marketplace on
B2G.
2014-01-15 12:15:50 +00:00
Tor Arvid Lund
fc7a6a4c53 Bug 929513 - Change gfxSize references to gfx::Size r=nical 2013-12-13 18:31:53 +01:00
Kartikaya Gupta
09f426db94 Bug 949310. r=BenWa 2013-12-12 13:34:50 -05:00
Cameron McCormack
2d29cdbe6b Bug 773296 - Part 16: Add a ref-counted list nsCSSValue unit and use it for tranform lists; hold a strong reference to one on nsStyleDisplay. r=dbaron
This adds a new eCSSUnit_SharedList type for nsCSSValue, which is a
reference counted object that contains an nsCSSValueList.  We need this
so that nsStyleDisplay::mSpecifiedTransform can hold a strong reference
to a specified transform list value.  When 'transform' is specified
using a variable reference, the resulting nsCSSValue does not stick
around in the Declaration object, so we wouldn't be guaranteed that
it lives long enough for nsStyleDisplay to keep referencing it.
2013-12-12 13:09:44 +11:00
Kartikaya Gupta
4ddfee7e99 Bug 814435 - Apply a shadow transform to scrollbar layers to keep them in sync with async transforms. r=BenWa 2013-12-09 22:14:54 -05:00
Kartikaya Gupta
1832b8e388 Bug 732971 - For Fennec move the resolution from the top-level presShell to the content presShell. r=BenWa
The bulk of this patch is fixing up pieces of code that infer the resolution
as the inverse of the scaling transform on the root layer. This used to be
how various bits of gfx code obtained the resolution, but now that we can set
the resolution on the actual presShell that contains the content, we can also
just read the resolution from the FrameMetrics directly.
2013-10-29 09:27:50 -04:00
L. David Baron
3d03a55f86 Bug 929673 Patch 1: Rename mozOrigin to transformOrigin to avoid use of deprecated CSS prefixes in variable names. r=dzbarsky 2013-10-24 14:46:00 +02:00
Corey Ford
ecb209513d Bug 897105 - Part 3: Keep sticky position layers fixed during async panning, within certain scroll ranges. r=roc 2013-09-11 21:24:32 -07:00
Botond Ballo
bfb2b57106 Bug 912806 - Store both cumulative and non-cumulative resolutions in FrameMetrics and use whichever is appropriate. r=kats 2013-09-05 18:26:59 -04:00
Benoit Girard
9397d1cdc5 Bug 914656 - Annotate the compositor thread for profiling. r=jrmuizel 2013-09-10 15:56:49 -04:00
Nicholas Cameron
6ff5d55180 Bug 903816. Include-what-you-use for gfx/layers. r=roc 2013-08-12 11:17:23 +12:00
Kartikaya Gupta
35d7054d6c Bug 903460 - Back out cset 9813b854b713 because it regresses panning behaviour on Android. r=me 2013-08-12 08:32:11 -04:00
Phil Ringnalda
06a2cbfa32 Back out d393cfeb5dbf:9f82224bb8a3 (bug 903816) for Android reftest failures
CLOSED TREE
2013-08-11 19:21:17 -07:00
Nicholas Cameron
b2b3fa4f0b Bug 903816. Include-what-you-use for gfx/layers. r=roc 2013-08-12 11:17:23 +12:00
Kartikaya Gupta
a2a46d3ffb Bug 903460 - Apply the async transform after the CSS transform for a given layer. r=BenWa
Since the CSS transform includes a 1/resolution scaling factor, the translation
amount in the async transform is now in LayoutDevicePixels instead of LayerPixels.
The shadow tree transform is now effectively:
(1/resolution * rest of CSS transform * async translation * async resolution)
Whereas before it was
(async translation * async resolution * 1/resolution * rest of CSS transform)
2013-08-10 11:19:47 -04:00
Ryan VanderMeulen
002dc21ed5 Merge m-c to inbound. 2013-07-30 18:08:18 -04:00
Nicholas Cameron
40a1357579 Bug 897839. Add some null checks for the compositor map. r=mattwoodrow 2013-07-31 09:45:42 +12:00
Kartikaya Gupta
aad8b5b400 Bug 866232 - Extract a GetCurrentAsyncTransform method in APZC. r=BenWa 2013-07-30 14:03:41 -04:00
Kartikaya Gupta
49c90b2de0 Bug 866232 - Add an APZCTreeManager to encapsulate the multiple APZCs corresponding to a given layer tree. r=BenWa, mattwoodrow 2013-07-30 14:03:40 -04:00
Chris Lord
408b2db986 Bug 886298 - Convert Layers fixed position margins to typed units. r=kats 2013-07-22 09:50:13 +01:00
Chris Lord
323edc6e00 Bug 886298 - Convert Layers fixed position anchor to typed units. r=kats 2013-07-22 09:50:09 +01:00
Chris Lord
0b899a4586 Bug 876542 - Restore async pan/zoom compensation behaviour during overscroll. r=roc
Bug 876542 introduces a patch that reworks how we maintain the position of
fixed position layers, but didn't handle overscroll/zoom. This restores the old
behaviour in this situation.
2013-07-22 09:50:07 +01:00