Commit Graph

156 Commits

Author SHA1 Message Date
Timothy Nikkel
3431dac145 Bug 1346109. Call NotifyApproximateFrameVisibilityUpdate after we set a display port base rect. r=botond
NotifyApproximateFrameVisibilityUpdate gets the displayport so we want the base rect set before calling it.

We also don't want to record the displayport if we ignored it in the actual visibility pass.
2017-04-05 00:18:11 -05:00
Timothy Nikkel
23f72f0990 Bug 1346109. Allow asking an nsIScrollableFrame if it is the root scroll frame. r=botond 2017-03-11 01:00:46 -06:00
Botond Ballo
c65e635354 Bug 1328658 - Notify main thread of a failed attempt to start an APZ scrollbar drag. r=kats,tnikkel
MozReview-Commit-ID: ERm1sVNfoKL
2017-01-27 18:02:22 -05:00
Markus Stange
a27b6fe220 Bug 1298218 - Back out bug 1284586. r=tnikkel
MozReview-Commit-ID: FGNKyDcoEyF
2016-08-19 18:17:36 -04:00
Neil Deakin
3ac562a5b9 Bug 41708, support scrolling when hovering over the edge of a scrollframe while dragging, r=smaug 2016-12-20 13:39:30 -05:00
Kartikaya Gupta
c3b617b547 Bug 1304689 - Ensure frame reconstructions don't clobber a 'stronger' scroll origin with a 'weaker' one. r=tnikkel
If, within a single refresh driver tick, the scroll position is updated by JS
explicitly, and then subsequently also updated by a frame reconstruction, the
scroll origin from the former (nsGkAtoms::other) can get clobbered by the latter
(to nsGkAtoms::restore). The restore scroll origin is "weaker" in that it can
be ignored by the APZ code in some circumstances. This is undesirable because
it means the JS scroll update also gets ignored. This patch ensures that when
setting the scroll origin we don't do this clobbering of stronger origins with
weaker origins.

MozReview-Commit-ID: DA4EHp1Debu
2016-10-11 09:36:22 -04:00
Kartikaya Gupta
352c02a130 Bug 1284586 - Disable paint-skipping for scrollframes that we detect as having a CSS-clipped descendant. r=mstange
MozReview-Commit-ID: AvjokFZMwdd
2016-07-13 16:05:53 -04:00
Kartikaya Gupta
830f272650 Bug 1269539 - Ensure that the scroll position is restored properly on reloading a page which loads incrementally. r=tnikkel
MozReview-Commit-ID: 1qVA5yU7a7g
2016-05-03 10:40:20 -04:00
Kartikaya Gupta
ec78701cab Bug 1268195 - When restoring a scroll position outside of incremental load, don't keep trying in a loop - just do it once and stop. r=tnikkel
It may be that when the frame is reconstructed after load, the frame gets shorter,
and the old scroll position cannot be restored, because it is out of bounds. In
such a case, we don't want to keep mRestorePos tracking the old scroll position,
because it can get incorrectly applied on a future frame reconstruction. Instead,
for scroll position restorations during frame reconstructions, we just try the
restore once and then clear mRestorePos.

MozReview-Commit-ID: BHoJHz0mGmf
2016-04-29 23:06:18 -04:00
Botond Ballo
6ca089f738 Bug 1259296 - Do not scroll snap on the main thread for wheel events handled by APZ. r=kats
MozReview-Commit-ID: DudrJuO4pFM
2016-04-04 17:46:12 -04:00
Botond Ballo
f09f766e68 Bug 1259301 - Remove GeckoContentController::RequestFlingSnap(). r=kats
MozReview-Commit-ID: DRntzo1hohv
2016-03-30 21:11:00 -04:00
Botond Ballo
51c46f3ee4 Bug 1219296 - Ship scroll snap information to the compositor. r=kats
MozReview-Commit-ID: 2aCaAEC5Csu
2016-03-11 22:04:53 -05:00
Botond Ballo
aa2fd58a6a Bug 1219296 - Split fields not needed for repaints out from FrameMetrics. r=kats
MozReview-Commit-ID: DymHOSI6yYK
2016-03-28 19:14:52 -04:00
Seth Fowler
0f24c44100 Bug 1157546 - Replace the image visibility API with a more general API that tracks visibility for any kind of frame. r=mstange 2016-03-25 14:49:43 -07:00
Benoit Girard
958bd77f36 Bug 1259235 - Add IsScrollFrameWithSnapping to speed up event regions. r=mstange
MozReview-Commit-ID: KdWCkXHjHzZ
2016-03-23 17:16:38 -04:00
Kartikaya Gupta
344813f69a Bug 1253860 - Add a flag on scroll frames indicating if they have an APZ counterpart. r=mstange
MozReview-Commit-ID: EEmdmjrbG3O
2016-03-09 22:57:14 -05:00
Kartikaya Gupta
ba4a7c0c09 Bug 990916 - When setting a displayport, schedule a timer to remove it as well. r=tnikkel 2016-02-03 19:13:35 -05:00
Timothy Nikkel
ec740ce090 Bug 1241371. Don't schedule an image visibility update every time display port margins change. r=kats
Displayport margins change by small amounts on almost every single scroll. We do not want to update image visibility nearly that often.

As the comment, and the original bug (bug 1169881) suggest this is only meant to catch rather large changes in display ports as we already have means to trigger an image visibility update via a scroll position change and via any style or layout flush.
2016-01-22 00:29:17 -06:00
Timothy Nikkel
39e95d6ca1 Bug 1241371. Properly update mLastUpdateImagesPos on scrollframes when the image visibility pass encounters them. r=mats
This is a regression from bug 1002992 where we switch from the display list builder to the frame tree walker and didn't update mLastUpdateImagesPos in the frame walker.
2016-01-21 19:09:04 -06:00
Markus Stange
55bb4c2297 Bug 1147673 - Make display items know about their scroll clips. r=tn, r=roc 2015-12-22 16:54:19 +01:00
Carsten "Tomcat" Book
791f2a3ca3 Backed out changeset 68b33692bed3 (bug 1147673) 2015-12-16 11:52:37 +01:00
Markus Stange
7ce6f2aca9 Bug 1147673 - Make display items know about their scroll clips. r=tn, r=roc 2015-12-12 10:58:37 -05:00
Kartikaya Gupta
a58e442256 Bug 1226872 - Stop keeping a copy of the resolution in the root scrollframe. r=roc
The only reason we had this in the scrollframe at all was so that it could be
saved/restored as part of the frame state when leaving a page and then going
back to it. However we can accomplish this by just reading/writing the resolution
from/to the presshell instead, so there's no need to keep a second copy of it.
2015-11-23 09:14:15 -05:00
Timothy Nikkel
ee64435e14 Bug 1210578. Part 3. Create DecideScrollableLayer that encapsulates all logic to create display ports and build scrollable layers. r=mstange
For root scroll frames we need information about the async scrolling (or lack thereof) of the scroll frame before we get to ScrollFrameHelper::BuildDisplayList for the scroll frame. We need it in nsLayoutUtils::PaintFrame and nsSubdocumentFrame::BuildDisplayList. So we factor out all the code responsible for async scrolling decisions into one function we can call from all three places.
2015-10-12 15:21:49 -05:00
Kartikaya Gupta
17d6ba4cbf Bug 1201529 - Ensure that zoomable scrollframes return true from WantAsyncScroll(). r=botond 2015-09-11 21:58:16 -04:00
Markus Stange
236500b79f Bug 1181135 - Copy DisplayItemClips in order to avoid dangling pointers. r=tn 2015-09-09 19:08:03 -04:00
Jonathan Kew
f461fbbfda Bug 1172450 - Size and position the dropdown arrow properly in vertical writing modes. r=smontagu 2015-07-27 16:52:12 +01:00
Birunthan Mohanathas
a29151dc87 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Markus Stange
33793d8676 Bug 1178745 - Add an nsIScrollableFrame API for getting the scroll clip. r=roc 2015-07-02 16:42:10 -04:00
Markus Stange
13dceaa237 Bug 990974 - Add a flag to ComputeFrameMetrics so that a different clip can be returned for the caret and non-caret content. r=roc 2015-07-02 13:42:34 -04:00
David Anderson
2511c6ca59 Bug 1148582 - Add mask layers to FrameMetrics for ancestor scroll frame clips. r=mattwoodrow 2015-06-21 12:27:31 -04:00
Markus Stange
3000f6c8eb Back out bug 1148582 for static analysis bustage. 2015-07-01 01:20:59 -04:00
David Anderson
38a60e1411 Bug 1148582 - Add mask layers to FrameMetrics for ancestor scroll frame clips. r=mattwoodrow 2015-06-21 12:27:31 -04: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
fb219f8256 Move the APZ scroll frame clip onto FrameMetrics. (bug 1148582 part 3, r=mstange,tn) 2015-05-26 12:40:24 -07:00
David Anderson
6383725210 Use Maybe to communicate the APZ scrollframe clip. (bug 1148582 part 1, r=mstange) 2015-05-26 12:39:29 -07:00
Kearwood (Kip) Gilbert
e20ff29bf9 Bug 969250 - Part 1: Implement scroll snapping for scrollbars (v7 Patch),r=roc 2015-03-25 11:40:31 -07:00
Wes Kocher
b24a6dd7bc Backed out 2 changesets (bug 969250) on the other theory that it broke lots of tests, forcing a prolonged CLOSED TREE
Backed out changeset 3c1005c81e52 (bug 969250)
Backed out changeset 3ed9d5170d13 (bug 969250)
2015-03-25 14:46:47 -07:00
Kearwood (Kip) Gilbert
53c1d882e8 Bug 969250 - Part 1: Implement scroll snapping for scrollbars (v7 Patch),r=roc 2015-03-25 11:40:31 -07:00
Botond Ballo
c2cac95e8c Bug 1139675 - Simplify the APIs for getting and setting the pres shell resolution. r=mstange,mattwoodrow 2015-03-06 18:07:59 -05:00
Carsten "Tomcat" Book
084dc455f3 Backed out changeset fdd33ef9606e (bug 969250) for m5 test failures 2015-03-11 10:33:52 +01:00
Kearwood (Kip) Gilbert
c1456fb0f3 Bug 969250 - Part 1: Implement scroll snapping for scrollbars (v5 Patch). r=roc 2015-03-03 17:40:00 +01:00
Kearwood (Kip) Gilbert
89a2c1a5a1 Bug 945584: Part 6 - Implementation of scroll snapping (v10 Patch), r=roc, r=kats
- Implemented CSS scroll snapping (http://dev.w3.org/csswg/css-snappoints/)
2015-02-19 15:53:30 -08:00
Kearwood (Kip) Gilbert
b8c03249f1 Bug 945584: Part 3 - Enable cancellation of OSX synthesized mousewheel scrolling events (v2 Patch),r=roc
- Mouse wheel events synthesized by OSX for momentum scrolling can now
  be interrupted by DOM triggered and CSS scroll snapping triggered scroll
  events for consistent behavior with the scrolling and fling gestures
  in the APZC.
2014-02-04 14:54:22 +13:00
Kartikaya Gupta
a47b517f92 Bug 990907 - Add a flag on nsIScrollableFrame to indicate if it is actively being scrolled by APZ. r=tn 2015-02-25 09:32:09 -05:00
Botond Ballo
70e324a117 Bug 1076241 - Add an API for setting a resolution on a document and scaling it by that amount. r=kats,tn 2015-01-02 20:06:14 -05:00
Benoit Girard
8ad6049025 Bug 961871 - Part 2: Refactor will-change scroll, pass through a nsDisplayListBuilder. r=mattwoodrow 2014-10-21 21:54:06 -04:00
Kartikaya Gupta
85de5eb65b Bug 1078316 - Tweaks for root-frame overlay scrollbars so they don't oscillate while panning around. r=botond,tn 2014-10-08 22:56:38 -04:00
Mason Chang
f8946471c5 Bug 1056340 - Clip viewport fixed position overflow to scroll frame. r=roc 2014-09-23 09:44:00 -04:00
Kearwood (Kip) Gilbert
322449b9e8 Bug 1022825 - Implement Asynchronous Smooth Scrolling on Compositor Thread. r=kats
- Extended nsIScrollableFrame and nsGfxScrollFrame to return destination
  of smooth scrolls which are to be animated on the compositor thread.
- Added apz.smooth_scroll_repaint_interval preference.
- Implemented AsyncPanZoomController::PanZoomState::SMOOTH_MSD_SCROLL state
  and AsyncPanZoomController::SmoothScrollAnimation class to animate smooth
  scroll animations on the compositor thread.
- Extended FrameMetrics to report requests for smooth scrolls to be animated
  on the compositor thread and their corresponding destination positions.
- AsyncPanZoomController now checks FrameMetrics for requests to perform
  smooth scrolling on the compositor thread.  It will ensure that they
  are cancelled as needed by mousewheel, touchpanel, keyboard, and
  CSSOM-View instant scrolling DOM methods.
- The layout/generic/test/test_scroll_behavior.html mochitest has been
  commented as depending on Bug 1062609 before being enabled for APZ.
2014-07-10 11:52:40 -07:00