Commit Graph

83 Commits

Author SHA1 Message Date
Brian Birtles
8a61f8ccfa 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
6bc9caf270 Bug 1010067 part 2 - Rename nsStyleAnimation.{h,cpp} to StyleAnimationValue.{h,cpp}; r=dbaron
--HG--
rename : layout/style/nsStyleAnimation.cpp => layout/style/StyleAnimationValue.cpp
rename : layout/style/nsStyleAnimation.h => layout/style/StyleAnimationValue.h
2014-06-24 15:29:54 +09:00
Brian Birtles
65c7f861cb 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
5bb2caab0a 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
5c89783761 Bug 1019996 - Apply overscroll effect to fixed and sticky layers. r=kats, r=Cwiiis 2014-06-12 20:27:32 -04:00
Botond Ballo
49f6e7af7c Bug 1019996 - Remove an unnecessary call to AlignFixedAndStickyLayers. r=Cwiiis 2014-06-12 16:40:35 -04:00
"Kan-Ru Chen (陳侃如)"
cb1a5a5562 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
0a84c7f233 Bug 1013392 - Adjust the search algorithm for async scrollbar thumb shifting. r=kats 2014-06-04 14:44:26 +02:00
Victor Porof
9ce7e9c089 Bug 1007203 - Always add categories when pushing to the pseudostack, r=djvj 2014-05-23 17:12:29 -04:00
Brian Birtles
f3593b3f8a 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
7265fd639b 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
efbd693128 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
25641302e6 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
b4d589de64 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
69c73e6b6b Bug 1013292 - Fix some using namespace + unified build issues in gfx code. r=kats 2014-05-22 12:11:45 +02:00
Jerry Shih
8b3783f335 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
8bb4473b9c Bug 980500 - Allow scrollbars to be children of the scrollable container layer. r=botond 2014-04-11 19:12:44 -05:00
Kartikaya Gupta
98665d1e19 Bug 948377 - Remove unwanted rounding in CalculateCompositedRectInCssPixels; add a CalculateCompositedSizeInCssPixels also. r=botond 2014-03-28 10:36:47 -04:00
Chadd Williams
29c628c5eb Bug 980493 - Transition FrameMetrics::mScrollId to use a getter/setter. r=botond
--HG--
extra : histedit_source : 1c84496d4b61f019e6e6cc24591ee3a10434e4cc
2014-03-21 17:48:08 -04:00
Botond Ballo
fb8f0cf40a Bug 980493 - Transition FrameMetrics::mScrollOffset to use a getter/setter. r=kats 2014-03-13 02:34:34 -04:00
Brian Birtles
9ee5e63199 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
fb1c8410a8 Bug 966679 - Resolve RefLayers during IPDL transactions. r=nical 2014-02-11 17:01:20 +13:00
David Zbarsky
f1c8f2f60c Bug 952977: Convert AsyncCompositionManager to gfx::Matrix4x4 r=nical 2014-01-27 15:25:21 -05:00
David Zbarsky
353734771e Bug 952977: Convert shadow transforms to gfx::Matrix4x4 r=nical 2014-01-27 10:29:27 -05:00
David Zbarsky
9bdd10281d Bug 952977: Convert GetTransform to gfx::Matrix4x4 r=nical 2014-01-27 10:28:47 -05:00
David Zbarsky
bab894b2de Bug 952977: Convert SetBaseTransform to gfx::Matrix4x4 r=nical 2014-01-27 10:28:33 -05:00
David Zbarsky
9288df6e4d Bug 952977: Convert GetLocalTransform to gfx::Matrix4x4 r=nical 2014-01-27 10:28:18 -05:00
Chris Lord
237ed2864e 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
9123b70f17 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
eaa77f044b Bug 929513 - Change gfxSize references to gfx::Size r=nical 2013-12-13 18:31:53 +01:00
Kartikaya Gupta
6c7c9a5200 Bug 949310. r=BenWa 2013-12-12 13:34:50 -05:00
Cameron McCormack
ae655160b2 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
316a75b934 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
b6add35df3 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
340c09d983 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
5eef149568 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
0f2c4e94ea 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
f11fc41386 Bug 914656 - Annotate the compositor thread for profiling. r=jrmuizel 2013-09-10 15:56:49 -04:00
Nicholas Cameron
73aeda1397 Bug 903816. Include-what-you-use for gfx/layers. r=roc 2013-08-12 11:17:23 +12:00
Kartikaya Gupta
61f8f7022b 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
d2099e030b Back out d393cfeb5dbf:9f82224bb8a3 (bug 903816) for Android reftest failures
CLOSED TREE
2013-08-11 19:21:17 -07:00
Nicholas Cameron
5cd4425728 Bug 903816. Include-what-you-use for gfx/layers. r=roc 2013-08-12 11:17:23 +12:00
Kartikaya Gupta
9a898e566b 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
fd758076bd Merge m-c to inbound. 2013-07-30 18:08:18 -04:00
Nicholas Cameron
c95487f8eb Bug 897839. Add some null checks for the compositor map. r=mattwoodrow 2013-07-31 09:45:42 +12:00
Kartikaya Gupta
be119cfa6c Bug 866232 - Extract a GetCurrentAsyncTransform method in APZC. r=BenWa 2013-07-30 14:03:41 -04:00
Kartikaya Gupta
2c0ffd470e 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
10605e0e62 Bug 886298 - Convert Layers fixed position margins to typed units. r=kats 2013-07-22 09:50:13 +01:00
Chris Lord
baaed043f6 Bug 886298 - Convert Layers fixed position anchor to typed units. r=kats 2013-07-22 09:50:09 +01:00
Chris Lord
a19367ac49 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