Commit Graph

82 Commits

Author SHA1 Message Date
Brian Birtles
2b0a950785 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
7621375179 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
292c410c9e 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
6d1e6271e0 Bug 1019996 - Apply overscroll effect to fixed and sticky layers. r=kats, r=Cwiiis 2014-06-12 20:27:32 -04:00
Botond Ballo
3f3c080e26 Bug 1019996 - Remove an unnecessary call to AlignFixedAndStickyLayers. r=Cwiiis 2014-06-12 16:40:35 -04:00
"Kan-Ru Chen (陳侃如)"
da1abf1e93 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
64c16b9f7a Bug 1013392 - Adjust the search algorithm for async scrollbar thumb shifting. r=kats 2014-06-04 14:44:26 +02:00
Victor Porof
5643294005 Bug 1007203 - Always add categories when pushing to the pseudostack, r=djvj 2014-05-23 17:12:29 -04:00
Brian Birtles
4457eea22f 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
510ffce362 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
f9a1779d4d 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
ae4fac1710 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
2fe00ba5c9 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
2f4369ee5e Bug 1013292 - Fix some using namespace + unified build issues in gfx code. r=kats 2014-05-22 12:11:45 +02:00
Jerry Shih
8d68e90d59 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
65e8605d26 Bug 980500 - Allow scrollbars to be children of the scrollable container layer. r=botond 2014-04-11 19:12:44 -05:00
Kartikaya Gupta
31afc0a194 Bug 948377 - Remove unwanted rounding in CalculateCompositedRectInCssPixels; add a CalculateCompositedSizeInCssPixels also. r=botond 2014-03-28 10:36:47 -04:00
Chadd Williams
1035df8afc 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
c169aeed9c Bug 980493 - Transition FrameMetrics::mScrollOffset to use a getter/setter. r=kats 2014-03-13 02:34:34 -04:00
Brian Birtles
32a6b5d8fd 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
a008f620fb Bug 966679 - Resolve RefLayers during IPDL transactions. r=nical 2014-02-11 17:01:20 +13:00
David Zbarsky
05bdc40a75 Bug 952977: Convert AsyncCompositionManager to gfx::Matrix4x4 r=nical 2014-01-27 15:25:21 -05:00
David Zbarsky
287bef7020 Bug 952977: Convert shadow transforms to gfx::Matrix4x4 r=nical 2014-01-27 10:29:27 -05:00
David Zbarsky
44eeb608e1 Bug 952977: Convert GetTransform to gfx::Matrix4x4 r=nical 2014-01-27 10:28:47 -05:00
David Zbarsky
1e61d187aa Bug 952977: Convert SetBaseTransform to gfx::Matrix4x4 r=nical 2014-01-27 10:28:33 -05:00
David Zbarsky
2cef9a18e8 Bug 952977: Convert GetLocalTransform to gfx::Matrix4x4 r=nical 2014-01-27 10:28:18 -05:00
Chris Lord
381ed51e56 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
173f125b57 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
a98f5ad615 Bug 929513 - Change gfxSize references to gfx::Size r=nical 2013-12-13 18:31:53 +01:00
Kartikaya Gupta
f5fa7a6026 Bug 949310. r=BenWa 2013-12-12 13:34:50 -05:00
Cameron McCormack
6f8dcf77b4 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
0612b4fc6d 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
189805593c 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
56054297a0 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
dfec315ee7 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
5fa50f4b24 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
ca00f294f2 Bug 914656 - Annotate the compositor thread for profiling. r=jrmuizel 2013-09-10 15:56:49 -04:00
Nicholas Cameron
8628de1017 Bug 903816. Include-what-you-use for gfx/layers. r=roc 2013-08-12 11:17:23 +12:00
Kartikaya Gupta
6bf3464260 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
be5f1b23e0 Back out d393cfeb5dbf:9f82224bb8a3 (bug 903816) for Android reftest failures
CLOSED TREE
2013-08-11 19:21:17 -07:00
Nicholas Cameron
59f7f45c1b Bug 903816. Include-what-you-use for gfx/layers. r=roc 2013-08-12 11:17:23 +12:00
Kartikaya Gupta
8792f2231a 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
2ebd22d781 Merge m-c to inbound. 2013-07-30 18:08:18 -04:00
Nicholas Cameron
841a60fca7 Bug 897839. Add some null checks for the compositor map. r=mattwoodrow 2013-07-31 09:45:42 +12:00
Kartikaya Gupta
2435f93954 Bug 866232 - Extract a GetCurrentAsyncTransform method in APZC. r=BenWa 2013-07-30 14:03:41 -04:00
Kartikaya Gupta
5c723f09e5 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
f6b2427db2 Bug 886298 - Convert Layers fixed position margins to typed units. r=kats 2013-07-22 09:50:13 +01:00
Chris Lord
28526bfea8 Bug 886298 - Convert Layers fixed position anchor to typed units. r=kats 2013-07-22 09:50:09 +01:00
Chris Lord
29a13bb097 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
Chris Lord
f84974d92e Bug 876542 - Restore async fixed layer margin animation. r=roc, kats
Restore the reconciliation between content document fixed position margins at
render time and the fixed layer margins as retrieved via SyncViewportInfo
during async panning/zooming.
2013-07-22 09:50:05 +01:00