Commit Graph

418 Commits

Author SHA1 Message Date
Botond Ballo
2c43a0247a Bug 1124452 - Store the widget in ChromeProcessController. r=kats
--HG--
extra : rebase_source : 007affed79a563eee52b25c21f8c1f8eda980542
2015-01-14 18:46:37 -05:00
Ryan VanderMeulen
74b34d85f2 Bug 1042103 - Fix non-unified bustage. r=botond 2015-01-23 17:51:34 -05:00
Kartikaya Gupta
7c4e682123 Bug 1124099 - Make sure that we skip over scrollinfo layers properly with event-regions disabled. r=botond 2015-01-23 15:12:10 -05:00
Botond Ballo
7427a68db9 Bug 1096513 - Follow up to fix an incorrect assertion. r=Cwiiis
--HG--
extra : rebase_source : bab8417ba9133c0f8039251cbc22f3b6d19541fc
2015-01-21 12:35:49 -05:00
Kartikaya Gupta
5b15a36695 Bug 1119942 - Hoist nsDisplayScrollInfoLayer items out of inactive layermanagers into their parent. r=tnikkel,mattwoodrow 2015-01-20 09:49:30 -05:00
Kartikaya Gupta
bcfda0904e Bug 1119942 - Stop generating scrollinfo layers if event-regions are enabled. r=tnikkel,botond 2015-01-20 09:49:30 -05:00
Chris Lord
38d2c659b6 Bug 1042103 - Allow overscroll to be retained between input blocks. r=botond 2015-01-20 00:04:07 +00:00
Chris Lord
1460000399 Bug 1042103 - Don't ignore events during overscroll. r=botond 2015-01-16 16:42:46 +00:00
Chris Lord
df355fe3bb Bug 1096513 - Fix build error on a CLOSED TREE. r=me 2015-01-19 18:06:43 +00:00
Chris Lord
c86dcd22c0 Bug 1096513 - Disallow underscroll in APZC. r=botond 2015-01-19 17:39:20 +00:00
Phil Ringnalda
2cd21e3280 Merge m-c to m-i 2015-01-17 13:11:55 -08:00
Wes Kocher
adad8db983 Merge m-c to b2g-inbound a=merge 2015-01-16 18:07:28 -08:00
Kartikaya Gupta
cf0a0f7cc0 Bug 1122276 - Inline the BuildOverscrollHandoffChain callsite of GetTargetAPZC to avoid re-entering the tree lock and deadlocking. r=botond 2015-01-16 17:34:47 -05:00
Kartikaya Gupta
6665c5f98f Bug 1122276 - Move lock from GetTargetNode to call sites. r=botond 2015-01-16 17:34:47 -05:00
Surabhi Anand
98a481bdeb Bug 1120203 - Transitioning mPresShellResolution field of FrameMetrics to use getters/setters. r=kats 2015-01-16 16:15:52 -05:00
Kartikaya Gupta
277a11f599 Bug 1119497 - Rename the HitTestResult enum values in light of the new hit-test code. rs=botond 2015-01-15 10:37:54 -05:00
Kartikaya Gupta
2c4a8779e8 Bug 1119497 - Don't continue searching if we hit a layer that has no containing APZC. r=botond 2015-01-15 10:37:54 -05:00
Botond Ballo
1d53f9edf6 Bug 1117712 - Update the screen-to-local transform matrix for an input block if the target APZC changes. r=kats 2015-01-14 10:16:26 -05:00
Botond Ballo
472fcf4fe5 Bug 1117712 - Defer application of screen-to-local transform matrix until AsyncPanZoomController::HandleInputEvent(). r=kats 2015-01-12 17:20:15 -05:00
Botond Ballo
475eb0771c Bug 1117712 - Introduce AsyncPanZoomController::GetTransformToThis(). r=kats 2015-01-09 20:15:19 -05:00
Kartikaya Gupta
a57c0aa1f1 Bug 1117712 - Refactor some code to transform input events. r=botond 2015-01-09 13:39:08 -05:00
Kartikaya Gupta
cdac1b867f Back out bug 1119497 and one patch from bug 920036 for causing bug 1121033. r=me 2015-01-13 21:16:51 -05:00
Carsten "Tomcat" Book
830e9e7d40 merge b2g-inbound to mozilla-central a=merge 2015-01-12 14:59:45 +01:00
Wes Kocher
09febf6c77 Merge m-c to inbound a=merge 2015-01-09 21:00:13 -08:00
Chris Peterson
9e23388ca8 Bug 1118076 - Remove MOZ_THIS_IN_INITIALIZER_LIST. r=Waldo 2015-01-06 21:39:46 -08:00
Kartikaya Gupta
1a47ec5608 Bug 1119497 - Rename the HitTestResult enum values in light of the new hit-test code. rs=botond 2015-01-10 10:55:47 -05:00
Kartikaya Gupta
a64136480e Bug 1119497 - Don't continue searching if we hit a layer that has no containing APZC. r=botond 2015-01-10 10:55:47 -05:00
Botond Ballo
c6c1bcd7d8 Bug 1113457 - Improve the approximation used to model spring physics during an overscroll animation, to avoid the approximation from diverging. r=kats
--HG--
extra : rebase_source : 4e26357cd76c7125f5c02529f1ac3b038eec36c2
2015-01-07 16:45:29 -05:00
Kartikaya Gupta
e10f70887c Bug 1119811 - Fold the gonk ParentProcessController into the reusable ChromeProcessController. r=dvander 2015-01-09 13:41:23 -05:00
Kartikaya Gupta
6ad061c59b Bug 973619 - Pick up the zoom from layout when the viewport dimensions change. r=botond 2015-01-09 10:21:50 -05:00
Kartikaya Gupta
266f840884 Bug 1109873 - Follow-up to fix debug logging bustage. r=me and DONTBUILD 2015-01-08 11:29:20 -05:00
Kartikaya Gupta
1eb610400a Bug 1109873 - Implement the expanded HitTestingTree. r=botond 2015-01-08 09:40:01 -05:00
Kartikaya Gupta
ceba82c3a0 Bug 1109873 - Allow the APZC stored in the HitTestingTreeNode to be null. r=botond 2015-01-08 09:40:01 -05:00
Kartikaya Gupta
1bf8a513d0 Bug 1109873 - Rename UpdatePanZoomControllerTree to UpdateHitTestingTree. r=botond 2015-01-08 09:40:01 -05:00
Kartikaya Gupta
ea16e8f553 Bug 1109873 - Rearrange some loops to duplicate less code. r=botond 2015-01-08 09:40:01 -05:00
Kartikaya Gupta
e0077ec0d4 Bug 1109873 - Move hit-testing data into HitTestingTreeNode. r=botond 2015-01-08 09:40:01 -05:00
Kartikaya Gupta
6f37e44194 Bug 1109873 - Extract HitTestResult into a helper header. r=botond 2015-01-08 09:40:01 -05:00
Kartikaya Gupta
66746c1cfb Bug 1109873 - Introduce the HitTestingTreeNode class. r=botond
This patch extracts a HitTestingTreeNode from AsyncPanZoomController. The tree
formed by these nodes is very similar in structure to the APZC tree that we had
previously. The main difference is that we can have multiple HitTestingTreeNode
instances per APZC; each HitTestingTreeNode corresponds to a different layer
with the same metrics.

This is a first step in extracting the hit-test data entirely from the
AsyncPanZoomController class and having a 1:1 mapping with the layer tree.
2015-01-08 09:40:01 -05:00
Botond Ballo
17b504d90c Bug 1109873 - Add some explanatory comments to the APZC tree building code. r=kats 2015-01-08 09:40:01 -05:00
Kartikaya Gupta
0e5c141375 Bug 1118784 - Fix typo causing wheel inputs to not get transformed to Gecko coordinate space properly. r=dvander 2015-01-07 13:34:23 -05:00
Botond Ballo
755b86ca3a Bug 1076241 - Get rid of the nontransient async transform. r=kats 2014-12-19 18:53:05 -05:00
Kushan Joshi
94821f46e8 Bug 1116008 - Make FrameMetrics::mCriticalDisplayPort private. r=kats 2014-12-30 14:07:57 -05:00
Leonid V. Fedorenchik
9085b13b1e Bug 1115327 - Changed FrameMetrics.mScrollableRect to be accessible by getter/setter methods. r=kats 2014-12-27 12:48:27 -05:00
Wes Kocher
ab27d8e9b0 Merge inbound to mozilla-central a=merge CLOSED TREE 2014-12-23 16:47:42 -08:00
Kartikaya Gupta
4a6fb0e992 Bug 1113386 - Don't send long-press events if they begin on a fast-motion block. r=botond 2014-12-23 11:05:46 -05:00
Prabhjyot Singh Sodhi
0de35ab99f Bug 1112830 - Changed mCumulativeResolution of FrameMetrics.h to private and all correspondings files using this variable using getters and setters;r=kats 2014-12-18 19:33:18 -05:00
David Anderson
e2f100731e Handle in-process APZ events correctly on Windows. (bug 1111873 part 2, r=kats)
--HG--
extra : rebase_source : 8ca5156392705e3a1806fc6a15154dbaa380f438
2014-12-18 15:25:03 -08:00
Yan Gouts
0e7074b2bd Bug 1113774 - Transitioned FrameMetric mDisplayPort accesses to Get/Set method calls. r=kats 2014-12-23 10:35:58 -05:00
Prabhjyot Singh Sodhi
74d83cd734 Bug 1101620 - Changed mDevPixelsPerCSSPixel of FrameMetrics.h to private and all corresponding files using this variables using getters and setters;r=kats 2014-12-17 17:14:05 -05:00
David Anderson
537e832f5a Forward Windows events to APZ directly from nsWindow. (bug 1109985 part 2, r=kats) 2014-12-15 23:31:12 -08:00
Kartikaya Gupta
d666dd017d Add a helper for forwarding event APZ info to TabParent. (bug 1109985 part 1, r=dvander) 2014-12-15 23:28:19 -08:00
Kartikaya Gupta
47e697b384 Bug 1083818 - Bypass the 10ms delay if the element being activated won't visually change. r=botond 2014-12-15 13:59:02 -05:00
David Anderson
8226f0cd2e Create a common chrome-process GeckoContentController. (bug 1110540 part 2, r=kats) 2014-12-15 01:49:48 -08:00
David Anderson
b3dce254a5 Fix displayport bounds not being computed from the correct origin. (bug 1109949, r=tn) 2014-12-11 21:13:10 -08:00
David Anderson
3f3a7ab1cf Don't reuse input blocks with dead APZCs. (bug 1110038, r=kats)
--HG--
extra : rebase_source : 458816195b9e8e0394bfdf662b7173328015415c
2014-12-11 13:03:27 -08:00
Kartikaya Gupta
0bfb0f2673 Bug 1013432 - Follow-up to fix build bustage when debug logging is enabled. r=me and DONTBUILD 2014-12-11 11:49:17 -05:00
Kartikaya Gupta
140db2dc90 Bug 1109855 - Fix building of APZC instances via the tree manager for gtests. r=botond
In testing scenarios ensure that we always create a TestAsyncPanZoomController
so that we can unconditionally cast to it and use the extra helpers on that
class.
2014-12-11 10:39:19 -05:00
Kartikaya Gupta
c98246307a Bug 1013432 - Follow up to cset 89858cf28204 to remove accidentally added file. r=me
DONTBUILD because NPOTB
2014-12-10 21:15:44 -05:00
Kartikaya Gupta
a40e4d18ab Bug 1013432 - Followup to fix rebase error. r=me 2014-12-10 17:10:24 -05:00
David Anderson
2d2f1f58bd Move APZ handling of wheel events from nsWindow to RenderFrameParent. (bug 1013432 part 7, r=kats)
--HG--
extra : rebase_source : 6ee0db41a21d333deb511a6403f8178b7fe01bb9
2014-12-09 02:42:49 -08:00
David Anderson
a63076d2ee Add scroll listeners to dispatch-to-content regions. (bug 1013432 part 5, r=tn)
--HG--
extra : rebase_source : babd42d9bdae722173821e800bc595fe662ee8f1
2014-12-09 02:38:23 -08:00
David Anderson
498066a4b1 Add wheel events to the APZ input queue. (bug 1013432 part 4, r=kats)
--HG--
extra : rebase_source : beaf39e7ef1eb192e5edd14aa8e55d741f7ffad2
2014-12-09 02:36:13 -08:00
David Anderson
636a716c5b Rename ContentReceivedTouch to ContentReceivedInputBlock. (bug 1013432 part 3, r=kats)
--HG--
extra : rebase_source : ee0d05d4774fac9fb34297953e90e61f1d979d5d
2014-12-09 02:35:12 -08:00
David Anderson
d2831e46f4 Refactor InputQueue to hold more than touch events. (bug 1013432 part 2, r=kats)
--HG--
extra : rebase_source : cd3691a2bda6aaf315cf3b844e4fdd3aa8b30334
2014-12-09 02:34:27 -08:00
David Anderson
fd05150dca Factor out content-handling code from TouchBlockState. (bug 1013432 part 1, r=kats)
--HG--
extra : rebase_source : 12a4f865dda6777c146cfec24184ce45d5d54072
2014-12-09 02:33:29 -08:00
Kartikaya Gupta
b087bbd3b4 Bug 1107606 - Allow smooth-scroll triggering on the same transaction as the creation of a new APZC. r=botond,kip 2014-12-05 00:04:36 -08:00
Kartikaya Gupta
1f58b3cb37 Bug 1105836 - Automatically confirm the target APZC for an input block that arrives during fast-motion. r=botond 2014-11-28 12:25:41 -05:00
Kartikaya Gupta
8050e8e61a Bug 1105836 - Add more logging to the APZ code. r=botond 2014-11-28 12:25:41 -05:00
Kartikaya Gupta
f0cd002422 Bug 1085404 - When interacting with a fast-moving APZC, don't send the events to content. r=botond 2014-11-26 12:41:06 -05:00
Kartikaya Gupta
9ad226a883 Bug 1105295 - Stop using scrollinfo layers when event regions are enabled. r=botond 2014-11-26 12:40:55 -05:00
Kartikaya Gupta
1219436c71 Bug 1104282 - Add missing include. r=botond 2014-11-25 08:45:57 -05:00
Kartikaya Gupta
da1d7035e5 Bug 1056388 - Add assertions as per TODO. r=botond 2014-11-24 13:23:57 -05:00
Kartikaya Gupta
3c73404215 Bug 918288 - Add logging for some of the SetTargetAPZ codepaths. r=botond 2014-11-21 21:36:26 -05:00
Kartikaya Gupta
6b5ac6ea72 Bug 918288 - Modify the SetTargetAPZC API to take an array of targets for multiple touch points. r=botond 2014-11-21 21:36:25 -05:00
Botond Ballo
5864d447d5 Bug 1120566 - Adjust points sent from APZ to Gecko for the 'scale-to-resolution' transform in APZCCallbackHelper::ApplyCallbackTransform. r=kats 2015-01-16 13:48:33 -05:00
David Anderson
397b1a3520 Add inactive subframes to the dispatch-to-content region. (bug 1082594, r=tn,kats) 2014-11-19 20:24:15 -08:00
David Anderson
028b163679 Add APZ handling for desktop scroll wheel events. (bug 1086162 part 1, r=kats) 2014-11-17 20:56:18 -08:00
Botond Ballo
3e52bb8e18 Bug 1093298 - Ignore calls to AsyncPanZoomAnimation::Sample() with a negative time duration. r=kats 2014-11-17 13:18:16 -05:00
David Anderson
607f72a589 Don't overscroll during a fling unless overscrolling is enabled. (bug 1099442, r=botond) 2014-11-14 16:19:00 -08:00
Kartikaya Gupta
861e80bbaf Bug 1090398 - Require APZC target confirmation before input blocks are ready for handling. r=botond
For proper hit-testing we need to deal with situations where the initial touch
input falls on a dispatch-to-content region of an APZC, and the main thread
later tells us that it actually hit another APZC. This patch allows input blocks
to have an "unconfirmed" APZC target for the initially-found target that can
then be replaced with a different target. Input blocks without a confirmed
target are not ready for processing.
2014-11-14 07:40:15 -05:00
Kartikaya Gupta
2163ba0978 Bug 1090398 - Distinguish the various outcomes of APZ hit testing more explicitly. r=botond
Previously we output of APZ hit testing was an APZC instance and an "in
overscroll" flag. Now we need to also distinguish between the hit region and the
dispatch-to-content region for an APZC, so this patch introduces an enum that
makes this more explicit.
2014-11-14 07:40:15 -05:00
Kartikaya Gupta
9a09468407 Bug 1090398 - Workaround for scrollinfo layers not yet having event regions set up correctly. r=botond
Until bug 1082594 is fixed, the area occupied by inactive scrollable subframes
don't get added to their layer's dispatch-to-content region. Therefore the APZ
code doesn't know what area corresponds to the subframe, even though it knows
there is a subframe because of the scrollinfo layer. This change inserts a small
workaround to deal with the scrollinfo layers specially, so that the composition
bounds from the scrollinfo layer is used to obtain the area. Once bug 1082594
is fixed this can probably be removed.
2014-11-14 07:40:15 -05:00
Kartikaya Gupta
aa17d0e26d Bug 1090398 - Small refactoring that adds ParentLayerPixel::ToUntyped. r=botond 2014-11-14 07:40:14 -05:00
Kartikaya Gupta
a4e48972ee Bug 1090398 - Add support for using the layer event regions for hit testing. r=botond
When the event-regions are provided by layout, use them to populate the APZ-side
hit testing regions. The existing code is still used when event-regions are not
provided by layout.
2014-11-14 07:40:14 -05:00
Kartikaya Gupta
52279ea3ee Bug 1090398 - Use EventRegions objects instead of nsIntRegions for tracking APZ hit-test areas. r=botond
This simply swaps out the existing nsIntRegion used in APZ hit-testing for
an EventRegion object. The dispatch-to-content region inside the EventRegions
is kept empty, and there are no functional changes here.
2014-11-14 07:40:14 -05:00
Benoit Girard
aa2eeb8ec1 Bug 1094442 - Part 1: Refactor how tile w/h is queried r=kats
--HG--
extra : rebase_source : 70ef00318a718e2ce3149955d2908615d6125cf3
2014-11-12 17:54:29 -05:00
Botond Ballo
1c1e4448a5 Bug 1055741 - Unify the 'local Screen' and 'ParentLayer' coordinate systems. r=kats 2014-11-10 14:35:11 -05:00
Botond Ballo
751e400ea4 Bug 1076163 - Clean up the resolution-related fields and methods in FrameMetrics. r=kats 2014-10-20 17:12:35 -04:00
Botond Ballo
c854025367 Bug 1076163 - Basic APZ support for css-driven resolution. r=kats,tn
This makes APZ behave nicely with most uses of a css transform:scale.

Summary of changes:
  - FrameMetrics::mCumulativeResolution now includes the css-driven resolution
    in addition to the pres-shell resolution.
  - Displayports are now stored in Screen pixels rather than Layer pixels.
    This is what we want anyways (as we'd like the displayport size to remain
    constant as a fraction of the screen size), but it was necessary to make
    this change as part of this patch because continuing to store them in
    Layer pixels in the presence of a css-driven resolution would have
    required a bunch of infrastructure to implement correctly.

Remaining work:
  - Layout painting a scrollable layer at a resolution different from the
    scale induced by the css transform causes problems. These will go away
    with bug 1076192.
  - Different resolutions on the x and y axes are not supported. This is
    tracked by bug 1039967.
2014-10-24 15:49:38 -04:00
Carsten "Tomcat" Book
8894f4319e Backed out changeset fbb9dc943109 (bug 1076163) for Android 4.0 Crashes on a CLOSED TREE 2014-11-13 11:47:57 +01:00
Carsten "Tomcat" Book
c247fdb775 Backed out changeset 71fe4233208a (bug 1076163) 2014-11-13 11:47:35 +01:00
Carsten "Tomcat" Book
4b4108a4a9 Backed out changeset a96930f1e26b (bug 1055741) 2014-11-13 11:47:31 +01:00
Botond Ballo
d766d4ca14 Bug 1055741 - Unify the 'local Screen' and 'ParentLayer' coordinate systems. r=kats
--HG--
extra : rebase_source : af7323668fb54079e121755660da2121bec3d76b
2014-11-10 14:35:11 -05:00
Botond Ballo
98ceb86b05 Bug 1076163 - Clean up the resolution-related fields and methods in FrameMetrics. r=kats 2014-10-20 17:12:35 -04:00
Botond Ballo
57adf459d4 Bug 1076163 - Basic APZ support for css-driven resolution. r=kats,tn
This makes APZ behave nicely with most uses of a css transform:scale.

Summary of changes:
  - FrameMetrics::mCumulativeResolution now includes the css-driven resolution
    in addition to the pres-shell resolution.
  - Displayports are now stored in Screen pixels rather than Layer pixels.
    This is what we want anyways (as we'd like the displayport size to remain
    constant as a fraction of the screen size), but it was necessary to make
    this change as part of this patch because continuing to store them in
    Layer pixels in the presence of a css-driven resolution would have
    required a bunch of infrastructure to implement correctly.

Remaining work:
  - Layout painting a scrollable layer at a resolution different from the
    scale induced by the css transform causes problems. These will go away
    with bug 1076192.
  - Different resolutions on the x and y axes are not supported. This is
    tracked by bug 1039967.
2014-10-24 15:49:38 -04:00
Kartikaya Gupta
e230d54989 Bug 1072093 - Support progressive-paint on OS X 10.7 or later. r=BenWa 2014-11-07 14:17:14 -05:00
Milan Sreckovic
ab5bc2240d Bug 1092262 - Doxygen docs for APZ prefs. r=kats 2014-11-05 11:04:32 -05:00
Kartikaya Gupta
8b027fe00d Bug 1091283 - Ensure that pinch gesture events actually get processed. r=botond
Currently only pinch gesture events getting created in the GestureEventListener
code will make it to AsyncPanZoomController::HandleGestureEvent. Any pinch
gesture events that the widget code dispatches into the APZCTreeManager get
ignored, which shouldn't be happening. We don't have any production code that
exercises these code paths at the moment, but fixing it up also reduces the
APIs exposed into the testing code.
2014-10-31 15:29:36 -04:00
Botond Ballo
b51aa7454f Bug 1066888 - Documentation tweaks for overscroll physics improvements. r=kats. DONTBUILD for doc changes
--HG--
extra : rebase_source : 08df59b26c6ce334c96c5ec5b635c940c8548f08
extra : amend_source : 7c1c0799b0fcc747134cad8b56a202f830b50ae3
2014-10-31 14:10:36 -04:00
Botond Ballo
84f4ed3fa8 Bug 1066888 - Overscroll physics improvements. r=kats
This patch unifies the physics governing the overscroll phase of a fling
with the snap-back animation. The unified physics are spring-based, like the
physics governing the snap-back animation before, except we allow for
oscillations.
2014-10-31 12:06:31 -04:00