Commit Graph

210 Commits

Author SHA1 Message Date
Botond Ballo
b63049a482 Bug 1166301 - When applying an async adjustment to a fixed layer, only adjust its mask layer under the same circumstances as its clip rect. r=mattwoodrow 2015-08-28 13:57:00 -04:00
Botond Ballo
806fe91239 Bug 1166301 - Allow async scrolling to move the clip rects of fixed background layers. r=mattwoodrow 2015-09-04 19:23:19 -04:00
Botond Ballo
33771218f6 Bug 1166301 - Update an old comment in AsyncCompositionManager::AlignFixedAndStickyLayers. r=kats 2015-08-28 15:21:01 -04:00
Kartikaya Gupta
fadc132229 Bug 1201581 - Hook up the syncFrameMetrics call to sync metrics info from the compositor to Java-land on each composite. r=rbarker 2015-09-11 21:58:16 -04:00
Kartikaya Gupta
66878e40f7 Bug 1201581 - Extract a helper method. r=rbarker 2015-09-11 21:58:16 -04:00
Kartikaya Gupta
525477b308 Bug 1201529 - Fall back to rootmost metrics if there is no root content document metrics. r=botond 2015-09-11 21:58:15 -04:00
Kartikaya Gupta
1611f233d3 Bug 1201625 - Special-case B2GDroid since it doesn't have a root content document. r=rbarker 2015-09-03 23:18:52 -04:00
Kartikaya Gupta
ee0b25e833 Bug 1200399 - Only send the RCD's metrics to Java-land for fennec-apz. r=rbarker 2015-09-02 16:31:06 -04:00
Kevin Wern
811c195d21 Bug 1173521 - Properly handle unapplying 3D projective transforms to rectangles in APZ code. r=botond
The untransformation is done using the newly added UntransformTo() functions
which call Matrix4x4::ProjectRectBounds(), which returns an empty rectangle
if the result is not at least partially on the positive side of the w = 0 plane.

UntransformTo() returnis the transformed rectangle if it's not empty, and
Nothing() otherwise, making callers check for this case.

The patch also adds some assertions to places where we apply transforms we
know should be 2D (and thus didn't switch to use UntransformTo()), checking
that the transforms are in fact 2D.
2015-08-28 12:00:29 -04:00
William Chen
ecf84fcf22 Bug 1131470 - Part 1: Rename existing use of ScreenOrientation to ScreenOrientationInternal. r=baku 2015-08-18 14:55:09 -07:00
Kartikaya Gupta
f5ed3a019f Bug 1180295 - Implement seamless snapping to the stable state. r=rbarker 2015-08-18 14:27:20 -04:00
Kartikaya Gupta
3766fb3084 Bug 1180295 - Stop clipping the content while the toolbar is in the process of sliding off. r=rbarker 2015-08-18 14:27:19 -04:00
Kartikaya Gupta
f8cac5f8c4 Bug 1180295 - Rip out the Fennec code to set the screen render offset. r=rbarker 2015-08-18 14:27:18 -04:00
Kartikaya Gupta
d6bfe53b6e Bug 1180295 - Rip out call to setContentDocumentFixedPositionMargins. r=rbarker 2015-08-18 14:27:18 -04:00
Botond Ballo
01508d9a52 Bug 1187804 - When a layer is scrolled by multiple scroll frames, do an AlignFixedAndStickyLayers pass on its subtree for each of the scroll frames. r=kats 2015-08-14 20:26:59 -04:00
Botond Ballo
4e10db3172 Bug 1187804 - Un-adjust fixed layers by the async transform of the scroll frame that they're fixed with respect to, not of the nearest ancestor scroll frame. r=kats 2015-08-14 16:11:28 -04:00
Botond Ballo
6e8cbd67b1 Bug 1131359 - Fix an include-what-you-use error in AsyncCompositionManager.cpp. r=kats 2015-07-27 18:48:54 -04:00
Matt Woodrow
a20bd93cc8 Bug 1180326 - Part 6: Use SingleTiledContentClient for non-scrollable layers on b2g and OSX. r=jrmuizel 2015-07-29 12:03:01 -04:00
Kearwood (Kip) Gilbert
a92527b792 Bug 1181240 - Part 2: Replace gfx3DMatrix with Matrix4x4 in layout,r=vlad
- Refactored code to use Matrix4x4 instead of gfx3DMatrix.
- There is not expected to be any functional effect.
2015-07-10 17:05:47 -07:00
Hiroyuki Ikezoe
69ab73575e Bug 1175751 - Apply playback rate to compositor animations. r=bbirtles 2015-07-06 19:05:00 +02:00
David Anderson
9935437575 Bug 1148582 - Apply async transforms to (ancestor) mask layers correctly. r=botond 2015-06-30 21:07:09 -04:00
Markus Stange
3000f6c8eb Back out bug 1148582 for static analysis bustage. 2015-07-01 01:20:59 -04:00
David Anderson
7a9c672fdc Bug 1148582 - Apply async transforms to (ancestor) mask layers correctly. r=botond 2015-06-30 21:07:09 -04:00
Kartikaya Gupta
a6b9fe6b1c Bug 1153841 - Remove the 'it must be 2D' restriction for transforms on fixed-pos layers. r=BenWa,mattwoodrow 2015-06-19 22:57:37 -04:00
Botond Ballo
6792300e9d Bug 1158424 - Remove FrameMetrics::IsRootScrollable() (it just duplicated IsRootContent()). r=kats 2015-05-27 19:40:40 -04:00
Mason Chang
0f9745b97a Bug 1077651 Measure frame uniformity by synthesizing native events. r=kats,mrbkap 2015-06-08 09:53:41 -07:00
David Anderson
f4ad77bc5b Fix asynchronously scrolling containerful subframes. (bug 1148582 part 6.1, r=tn) 2015-06-02 16:34:46 -07:00
David Anderson
5db350a434 Use the correct scrollframe clips with nested scrollframes in APZ. (bug 1148582 part 6, r=botond) 2015-06-02 16:34:33 -07:00
David Anderson
fb219f8256 Move the APZ scroll frame clip onto FrameMetrics. (bug 1148582 part 3, r=mstange,tn) 2015-05-26 12:40:24 -07:00
Brian Birtles
700ef02e9e Bug 1164330 - Rename time fraction to (iteration) progress; r=jwatt 2015-05-13 13:57:35 +09:00
Timothy Nikkel
1140676fd4 Bug 1165536. Don't include resolution compensation when adjusting the cliprect of ancestors of scrollbars. r=botond
We are trying to adjust for the async transform that gets applied to the scrollable container layer by applying a transform to the scrollbar layer. That means we also need to adjust our clip rect. The resolution compensation is not done for this reason (compensating for a transform on an ancestor layer), hence we don't need to adjust the clip rect for the resolution compensation.
2015-05-17 02:00:10 -05:00
Timothy Nikkel
e3990d7938 Bug 1164767. Modify async scrollbar positioning code to deal with containerless root scrollables. r=botond
The root scrollbars will no longer be a descendant of the layer with their corresponding frame metrics. But scrollbars for root scrollables still need adjustment for the resolution.

We still use the descendant check for the code which needs to be run if the scrollbars are a descendant of the layer with their corresponding frame metrics so that non-containerless root scrolling still works the same way.
2015-05-15 20:01:32 -05:00
Timothy Nikkel
134362212a Bug 1164340. Fix up some scrollbar related comments in AsyncCompositionManager. r=botond 2015-05-13 19:15:39 -05:00
Timothy Nikkel
d6b8f8b755 Bug 1164340. Convert the scrollbar thumb ratio to a unitless ratio properly for non-zoomable scrollframes. r=botond 2015-05-13 19:15:38 -05:00
Timothy Nikkel
db9bd74f96 Bug 1163259. Make sure we don't look at the parent ref layer when looking for a layer with the frame metrics for a scrollbar. r=kats
The ref layer comes from the parent process, and hence a different scrollid space. If the scrollid on it's metrics happen to match a scrollbar from the child process we have a problem.
2015-05-12 00:13:04 -05:00
Kartikaya Gupta
cb5c22758d Bug 1160566 - Make FrameMetrics.mCompositionBounds private and add a getter/setter for it. r=botond 2015-05-07 14:44:03 -04:00
Thibaud Backenstrass
253b857733 Bug 1158122 - Remove all occurences of nsIntRect in gfx/layers/composite. r=nical 2015-05-07 11:07:42 +02:00
Danilo Cesar Lemes de Paula
2f7f4ebf4f Bug 1156401 - Fix painting when building fennec with apzc. r=kats, r=botond
Since SetFirstPaintViewport wasn't being called on
Fennec with APZ, none of the painted content was being displayed.
2015-04-30 06:08:00 -04:00
Brian Birtles
67c6bec9aa Bug 1159082 - Rename *Readonly animation interfaces to *ReadOnly. r=smaug 2015-04-30 09:06:43 -04:00
Carsten "Tomcat" Book
49dcd0d63c Backed out changeset 1b5fc672f0d4 (bug 1159082) for B2G ICS Emulator opt R6 test failures on a CLOSED TREE 2015-04-30 13:15:04 +02:00
Brian Birtles
e3179b0530 Bug 1159082 - Rename *Readonly animation interfaces to *ReadOnly; r=smaug 2015-04-28 10:16:45 +09:00
Kartikaya Gupta
f4dd5374f4 Bug 1158933 - Replace the compositedHeight/scrollableHeight (and width) term with the adjusted scrollThumbRatio. r=botond 2015-04-29 07:22:27 -04:00
Kartikaya Gupta
6661eab85d Bug 1158933 - Prevent scrollbars from jumping while zoomed in the B2G browser. r=botond 2015-04-29 07:22:27 -04:00
Timothy Nikkel
3a8b15b000 Bug 1157066. When reading back the OMTA transfrom of a layer don't include transforms from async panning or zooming. r=kats,birtles
Containerless scrolling means that the pan zoom controller applies it's transforms (to compensate for differences between the state of layout the last time we painted and the current state as composited to the screen) to the layers that are scrolled instead of the container layer that contains the layers that scroll.

When running test_animations_omta.html there is a zoom of 1.306122 applied, and the page is scrolled down to 67 screen pixels (before the test starts, not sure why exactly). Gecko scrolls as close to 67 screen pixels as it can: 67/1.306122 = 51.29689 css pixels, which is 3077.813 appunits. Gecko scrolls to 3078 app units. When AsyncCompositionManager::TransformScrollableLayer runs we calculate the scroll position of gecko and the current scroll position that the pan zoom controller is using. Since there are no async pan or zoom operations taking place these should match. However when the gecko scroll position is calculated we get 3078/60*1.306122 = 67.0040586. So it applies a transform of 0.0040586 to the container layer for the transform that test_animations_omta.html is animating off main thread. When test_animations_omta.html reads the transform of this layer it fails because it's expecting 0 and 0.0040586 is outside of it's epsilon for considering it to be close enough.
2015-04-24 19:05:52 -05:00
Wes Kocher
d068b7e113 Backed out changeset 517b9b831685 (bug 1157066) for build bustage 2015-04-24 14:56:55 -07:00
Timothy Nikkel
29c16525f7 Bug 1157066. When reading back the OMTA transfrom of a layer don't include transforms from async panning or zooming. r=kats,birtles
Containerless scrolling means that the pan zoom controller applies it's transforms (to compensate for differences between the state of layout the last time we painted and the current state as composited to the screen) to the layers that are scrolled instead of the container layer that contains the layers that scroll.

When running test_animations_omta.html there is a zoom of 1.306122 applied, and the page is scrolled down to 67 screen pixels (before the test starts, not sure why exactly). Gecko scrolls as close to 67 screen pixels as it can: 67/1.306122 = 51.29689 css pixels, which is 3077.813 appunits. Gecko scrolls to 3078 app units. When AsyncCompositionManager::TransformScrollableLayer runs we calculate the scroll position of gecko and the current scroll position that the pan zoom controller is using. Since there are no async pan or zoom operations taking place these should match. However when the gecko scroll position is calculated we get 3078/60*1.306122 = 67.0040586. So it applies a transform of 0.0040586 to the container layer for the transform that test_animations_omta.html is animating off main thread. When test_animations_omta.html reads the transform of this layer it fails because it's expecting 0 and 0.0040586 is outside of it's epsilon for considering it to be close enough.
2015-04-24 16:41:56 -05:00
L. David Baron
99cf80cc3c Bug 1156456 patch 3 - Send transform origin and perspective origin to layer in device pixels rather than CSS pixels. r=birtles 2015-04-22 19:37:04 -07:00
L. David Baron
5527a278a1 Bug 1156456 patch 2 - Transform the z component just like the x and y. r=birtles
I confirmed locally that this patch fixes the reftest (per reftest.list
change).
2015-04-22 19:37:04 -07:00
Brian Birtles
245d56b34b Bug 1154615 part 1 - Rename AnimationPlayer to Animation in WebIDL; r=smaug
This patch is a fairly minimal rename of the AnimationPlayer interface. It
leaves a bunch of local variables and helper classes still using the word
"player". These will be addressed in subsequent patches that don't require DOM
peer review.
2015-04-21 10:22:09 +09:00
Brian Birtles
b23bc79d92 Bug 1153734 part 2 - Rename Animation to KeyframeEffectReadonly; r=smaug
We define KeyframeEffectReadonly in KeyframeEffect.cpp since Web Animations also
defines KeyframeEffect and when we come to implement that I expect we'll define
it in the same class, maybe even using the same object.

This patch also adds a few missing includes in places where
KeyframeEffectReadonly is used so that we're not just cargo-culting it in.
2015-04-15 08:48:21 +09:00