searching for reviewer(botond)
14743da36853e6b1d745418e128030b89bbb6fe2: Bug 1552089 - Don't tweak snapport position even in the case of RTL scroll containers. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Fri, 17 May 2019 20:36:57 +0000 - rev 474462
Push 85820 by hikezoe@mozilla.com at Sat, 18 May 2019 23:47:53 +0000
Bug 1552089 - Don't tweak snapport position even in the case of RTL scroll containers. r=botond In RTL scroll containers, the right most x-axis scroll position is 0 and leftward scroll positions are negative values. And also nsLayoutUtils::TransformFrameRectToAncestor, which is used to tell whether the snap target element is inside the destination snapport or not [1], returns negative x-axis positions for elements in RTL scroll containers if the element is positioned at places where the elements are outside of the initial scroll position (0, 0). So we don't need to tweak snapport postion even in the case of RTL scroll containers. Instead, what we needed in the first place is that we choose a proper x-axis scroll position that the targe element appears inside the snapport. [1] https://searchfox.org/mozilla-central/rev/11cfa0462a6b5d8c5e2111b8cfddcf78098f0141/layout/generic/nsGfxScrollFrame.cpp#6604-6605,6616-6617 Depends on D31409 Differential Revision: https://phabricator.services.mozilla.com/D31410
ef3c6d8bb498bfdae4c53cc9eec12f70bb9284ed: Bug 1551806 - Don't try to snap if there is no valid snap positions for the scroll-snap v1 implementation. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Fri, 17 May 2019 20:50:24 +0000 - rev 474461
Push 85820 by hikezoe@mozilla.com at Sat, 18 May 2019 23:47:53 +0000
Bug 1551806 - Don't try to snap if there is no valid snap positions for the scroll-snap v1 implementation. r=botond From the spec [1]; If a valid snap position exists then the scroll container must snap at the termination of a scroll (if none exist then no snapping occurs). Both of test cases in this commit fail without this change. [1] https://drafts.csswg.org/css-scroll-snap-1/#valdef-scroll-snap-type-mandatory Differential Revision: https://phabricator.services.mozilla.com/D31409
c0a07a2c5d0263b35ceb271c668a41256b959630: Bug 1550510 - Stop hoisting scrollinfo items inside filters when WR is enabled. r=botond
Kartikaya Gupta <kgupta@mozilla.com> - Sat, 18 May 2019 00:17:50 +0000 - rev 474426
Push 85802 by kgupta@mozilla.com at Sat, 18 May 2019 00:18:24 +0000
Bug 1550510 - Stop hoisting scrollinfo items inside filters when WR is enabled. r=botond In bug 1527182 we made it so that APZ can directly drag-scroll scrollframes that are inside SVG effects, because that's possible with WR on the compositor. However the code changed in that bug was meant to be kept in sync with a second piece of code. The second piece of code controls the generation of ScrollInfo items for scrollframes inside SVG effects - since we can APZ-scroll them with WR, we don't need the scrollinfo item anymore. Producing the scrollinfo item was changing the structure of the APZ tree in terms of where the transform ended up, and was causing badness with untransforming the drag mouse events. This patch adds a test that covers the scenario and also corrects the defect by bringing the two bits of code back in sync. Differential Revision: https://phabricator.services.mozilla.com/D31647
0eff48265098e8bac99128577b2baccde799611e: Bug 1548896 Part 1: Prevent MobileViewportManager::GetCompositionSize from returning negative sizes. r=botond
Brad Werth <bwerth@mozilla.com> - Mon, 13 May 2019 17:26:34 +0000 - rev 473661
Push 85371 by bwerth@mozilla.com at Mon, 13 May 2019 19:50:33 +0000
Bug 1548896 Part 1: Prevent MobileViewportManager::GetCompositionSize from returning negative sizes. r=botond Differential Revision: https://phabricator.services.mozilla.com/D30736
220720dbc492807edbcc203d1dab95b632ec4a00: Bug 1549206. Fix the Eclipse CDT index deletion glob pattern to only match the project name. r=botond
Jonathan Watt <jwatt@jwatt.org> - Tue, 23 Apr 2019 09:37:09 +0100 - rev 473146
Push 85060 by opoprus@mozilla.com at Wed, 08 May 2019 21:59:36 +0000
Bug 1549206. Fix the Eclipse CDT index deletion glob pattern to only match the project name. r=botond Differential Revision: https://phabricator.services.mozilla.com/D30281
7748746bf2feda8edd0cabfdaff88b7faf059ad5: Bug 1548568 - Cleanup to remove unused guid parameter in callback. r=botond
Kartikaya Gupta <kgupta@mozilla.com> - Mon, 06 May 2019 22:14:40 +0000 - rev 472841
Push 84856 by kgupta@mozilla.com at Tue, 07 May 2019 02:19:51 +0000
Bug 1548568 - Cleanup to remove unused guid parameter in callback. r=botond Differential Revision: https://phabricator.services.mozilla.com/D29688
a51bea90b88626322cbee00108436736ad09f024: Bug 1548568 - Cleanup to stop passing around a guid when we only need a layers id. r=botond
Kartikaya Gupta <kgupta@mozilla.com> - Mon, 06 May 2019 22:14:42 +0000 - rev 472840
Push 84856 by kgupta@mozilla.com at Tue, 07 May 2019 02:19:51 +0000
Bug 1548568 - Cleanup to stop passing around a guid when we only need a layers id. r=botond Differential Revision: https://phabricator.services.mozilla.com/D29687
b7d27dc874dfc46fcd4455bd4ad2ccddf3e5e754: Bug 1548568 - Cleanup to remove unused guid parameter in callback. r=botond
Kartikaya Gupta <kgupta@mozilla.com> - Mon, 06 May 2019 21:03:55 +0000 - rev 472779
Push 84835 by kgupta@mozilla.com at Mon, 06 May 2019 21:08:16 +0000
Bug 1548568 - Cleanup to remove unused guid parameter in callback. r=botond Differential Revision: https://phabricator.services.mozilla.com/D29688
dadb3b3dad5f2906d88dbf6661e1edb9514c0c91: Bug 1548568 - Cleanup to stop passing around a guid when we only need a layers id. r=botond
Kartikaya Gupta <kgupta@mozilla.com> - Mon, 06 May 2019 21:03:49 +0000 - rev 472778
Push 84835 by kgupta@mozilla.com at Mon, 06 May 2019 21:08:16 +0000
Bug 1548568 - Cleanup to stop passing around a guid when we only need a layers id. r=botond Differential Revision: https://phabricator.services.mozilla.com/D29687
c705a64ce83c3e320529baf9527e7060ff2c7bcd: Bug 1062609 - Make scroll-behaviour test work with APZ enabled. r=botond
Kartikaya Gupta <kgupta@mozilla.com> - Mon, 06 May 2019 17:50:14 +0000 - rev 472743
Push 84813 by kgupta@mozilla.com at Mon, 06 May 2019 18:27:35 +0000
Bug 1062609 - Make scroll-behaviour test work with APZ enabled. r=botond The test itself is reasonable, except that it reads scroll positions from the main thread. With APZ enabled we need to flush any pending APZ repaints before reading these scroll positions. So changing the waitForAllPaints to the APZ-flushing variant makes that happen, and the test passes. Depends on D29921 Differential Revision: https://phabricator.services.mozilla.com/D29922
dc4761caa7d426bfcb76dfff7844129f13854ad9: Bug 1062609 - Ensure that APZCTreeManager::GetFrameTime respects the test sample time. r=botond
Kartikaya Gupta <kgupta@mozilla.com> - Mon, 06 May 2019 17:48:54 +0000 - rev 472742
Push 84813 by kgupta@mozilla.com at Mon, 06 May 2019 18:27:35 +0000
Bug 1062609 - Ensure that APZCTreeManager::GetFrameTime respects the test sample time. r=botond Differential Revision: https://phabricator.services.mozilla.com/D29921
5cb37293574991dc095d46f7bea8fadb08dbfe91: Bug 1549206. Fix Eclipse CDT project generation to automatically run the indexer on first run. r=botond
Jonathan Watt <jwatt@jwatt.org> - Sun, 21 Apr 2019 15:59:31 +0100 - rev 472679
Push 84777 by malexandru@mozilla.com at Mon, 06 May 2019 09:56:36 +0000
Bug 1549206. Fix Eclipse CDT project generation to automatically run the indexer on first run. r=botond Differential Revision: https://phabricator.services.mozilla.com/D29965
b758384a42e27280c1b11f2a60ff2a378949583e: Bug 1477832 - Acquire AsyncPanZoomController::mRecursiveMutex in more places to make sure it's held whenever Metrics() is accessed. r=botond
Srujana Peddinti <srujana.htt121@gmail.com> - Fri, 26 Apr 2019 18:57:48 -0400 - rev 472482
Push 84680 by dluca@mozilla.com at Fri, 03 May 2019 13:10:26 +0000
Bug 1477832 - Acquire AsyncPanZoomController::mRecursiveMutex in more places to make sure it's held whenever Metrics() is accessed. r=botond Differential Revision: https://phabricator.services.mozilla.com/D29084
9b357ff266758e6826c3addf13916697b8f131be: Bug 1538681 Part 2: Add a perma-fail test that scrollbars appear in proper location after resizing viewport. r=botond,gl
Brad Werth <bwerth@mozilla.com> - Mon, 29 Apr 2019 17:54:52 +0000 - rev 471799
Push 84279 by bwerth@mozilla.com at Mon, 29 Apr 2019 17:56:02 +0000
Bug 1538681 Part 2: Add a perma-fail test that scrollbars appear in proper location after resizing viewport. r=botond,gl The test is marked as perma-fail because there are complications with getting RDM and WindowSnapshot.js to work together. 4 approaches are discussed in the test itself, and one is attempted, which perma-fails. The approach that is attempted is the most likely to be turned into an unexpected pass in the future, so the test is being added as perma-fail. Differential Revision: https://phabricator.services.mozilla.com/D28900
f70b79b66592bb21d63eca163efefdf69a2b0433: Bug 1538681 Part 1: Backout a change that added an early-exit in MobileViewportManager::UpdateResolution. r=botond
Brad Werth <bwerth@mozilla.com> - Mon, 29 Apr 2019 17:54:19 +0000 - rev 471798
Push 84279 by bwerth@mozilla.com at Mon, 29 Apr 2019 17:56:02 +0000
Bug 1538681 Part 1: Backout a change that added an early-exit in MobileViewportManager::UpdateResolution. r=botond This change was originally added as a drive-by optimization in Bug 1501665. The early-exit apparently routes around a needed side effect in the case where resolution is re-set to its current value. Differential Revision: https://phabricator.services.mozilla.com/D28566
8754c7d0d1167eb3e47d36a616e570ed8188ae96: Bug 1547242 - Specify nsIScrollableFrame::LINES for scroll-snap on flinging. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Sat, 27 Apr 2019 01:40:09 +0000 - rev 471637
Push 84206 by hikezoe@mozilla.com at Sat, 27 Apr 2019 01:42:33 +0000
Bug 1547242 - Specify nsIScrollableFrame::LINES for scroll-snap on flinging. r=botond Flinging has a direction of its movement, so unlike releasing a drag gesture, we want to ignore snap positions in the opposite direction. See the comment how/why we ignore the snap positions in the opposite direction at the top of CalcSnapPoints::AddEdge(). Differential Revision: https://phabricator.services.mozilla.com/D28989
2ee0a3c1e93985cd4f4eed2ab87b90aedd87e9cb: Bug 1547242 - Factor out AsyncPanZoomController::MaybeAdjustDeltaForScrollSnapping. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Sat, 27 Apr 2019 01:41:31 +0000 - rev 471636
Push 84206 by hikezoe@mozilla.com at Sat, 27 Apr 2019 01:42:33 +0000
Bug 1547242 - Factor out AsyncPanZoomController::MaybeAdjustDeltaForScrollSnapping. r=botond Differential Revision: https://phabricator.services.mozilla.com/D28988
eee8812d61a27fc79a3274edfe8e104ba59055ea: Bug 1547242 - Early return from AsyncPanZoomController::ScrollSnapToDestination. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Sat, 27 Apr 2019 01:39:31 +0000 - rev 471635
Push 84206 by hikezoe@mozilla.com at Sat, 27 Apr 2019 01:42:33 +0000
Bug 1547242 - Early return from AsyncPanZoomController::ScrollSnapToDestination. r=botond Differential Revision: https://phabricator.services.mozilla.com/D28987
eda47278259fdd88b27f573b1d848435f7acc4b4: Bug 1546057 - Use the clamped destination position for overflow checks. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Wed, 24 Apr 2019 21:56:26 +0000 - rev 471236
Push 83969 by hikezoe@mozilla.com at Wed, 24 Apr 2019 22:52:03 +0000
Bug 1546057 - Use the clamped destination position for overflow checks. r=botond Differential Revision: https://phabricator.services.mozilla.com/D28578
6c313c54c73bde1d13f594058dd2dea5e563401a: Bug 1544966 - Add a mochitest. r=botond
Kartikaya Gupta <kgupta@mozilla.com> - Wed, 24 Apr 2019 17:40:52 +0000 - rev 470720
Push 83935 by kgupta@mozilla.com at Wed, 24 Apr 2019 17:41:49 +0000
Bug 1544966 - Add a mochitest. r=botond Differential Revision: https://phabricator.services.mozilla.com/D28435
51d8b82f8fbe29087af175d1dd762da4e92d41be: Bug 1544966 - Don't schedule a main-thread wait if the APZCTM provided the touch behaviours already. r=botond
Kartikaya Gupta <kgupta@mozilla.com> - Wed, 24 Apr 2019 17:40:32 +0000 - rev 470719
Push 83935 by kgupta@mozilla.com at Wed, 24 Apr 2019 17:41:49 +0000
Bug 1544966 - Don't schedule a main-thread wait if the APZCTM provided the touch behaviours already. r=botond Differential Revision: https://phabricator.services.mozilla.com/D28434
d3ab16a95b9ceb70e0f4527c3e57885724c89428: Bug 1544966 - Put the touch behavior flags on the TouchBlockState earlier. r=botond
Kartikaya Gupta <kgupta@mozilla.com> - Wed, 24 Apr 2019 17:40:28 +0000 - rev 470718
Push 83935 by kgupta@mozilla.com at Wed, 24 Apr 2019 17:41:49 +0000
Bug 1544966 - Put the touch behavior flags on the TouchBlockState earlier. r=botond Differential Revision: https://phabricator.services.mozilla.com/D28433
0b0a2b12bd0502a0743917abdd29109c2b2cdbfd: Bug 1528052 - Suppress resize events until the initial paint has finished on mobile. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Tue, 23 Apr 2019 04:14:55 +0000 - rev 470457
Push 83744 by hikezoe@mozilla.com at Tue, 23 Apr 2019 05:20:23 +0000
Bug 1528052 - Suppress resize events until the initial paint has finished on mobile. r=botond Differential Revision: https://phabricator.services.mozilla.com/D28172
6f0320a8555580db1b9c8cc7e2c7452b30bc157b: Bug 1546038 - Include scroll-margin areas into snap area. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Tue, 23 Apr 2019 03:58:57 +0000 - rev 470453
Push 83741 by hikezoe@mozilla.com at Tue, 23 Apr 2019 04:05:35 +0000
Bug 1546038 - Include scroll-margin areas into snap area. r=botond This patch also renames `targetRect` to `snapArea` to represent it more accurately. Differential Revision: https://phabricator.services.mozilla.com/D28307
52410914b543300394f6b98c8dd6e3d73fb84780: Bug 1544198 - Use the proper frame to get scroll-snap-type value on the root element. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Tue, 23 Apr 2019 01:16:02 +0000 - rev 470448
Push 83738 by hikezoe@mozilla.com at Tue, 23 Apr 2019 01:17:33 +0000
Bug 1544198 - Use the proper frame to get scroll-snap-type value on the root element. r=botond Now scroll-snap-type property on body element doesn't affect scroll position so that scrollTo-scrollBy-snaps.html is needed to be modified to specify scroll-snap-type on html. Differential Revision: https://phabricator.services.mozilla.com/D27987
5b413410d2c5f93ca4240a3c4608a1182d53a2d2: Bug 1544198 - Split ScrolLFrameHelper::ComputeScrollSnapInto into two functions. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Tue, 23 Apr 2019 01:12:38 +0000 - rev 470447
Push 83738 by hikezoe@mozilla.com at Tue, 23 Apr 2019 01:17:33 +0000
Bug 1544198 - Split ScrolLFrameHelper::ComputeScrollSnapInto into two functions. r=botond The one is for the scroll snap module v1 implementation, the other is for the old scroll snap implementation. Now both functions have the same pieces of code to get scroll-snap-type values, but for v1 implemention in the next commit we will use GetFrameForScrollSnap() to get the value instead. Differential Revision: https://phabricator.services.mozilla.com/D27986
530a3f39ecbd096436a8cf38d1d73068ff1fbcb8: Bug 1544198 - Factor out the function to get the frame for scroll-snap-type and scroll-padding. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Tue, 23 Apr 2019 01:12:24 +0000 - rev 470446
Push 83738 by hikezoe@mozilla.com at Tue, 23 Apr 2019 01:17:33 +0000
Bug 1544198 - Factor out the function to get the frame for scroll-snap-type and scroll-padding. r=botond Differential Revision: https://phabricator.services.mozilla.com/D27985
bd2261f7465814875436e794313a4fa525d8e69d: Bug 1544136 - Ship the scroll snap snap on betas and releases. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Mon, 22 Apr 2019 22:38:18 +0000 - rev 470436
Push 83729 by hikezoe@mozilla.com at Mon, 22 Apr 2019 22:39:15 +0000
Bug 1544136 - Ship the scroll snap snap on betas and releases. r=botond Differential Revision: https://phabricator.services.mozilla.com/D27989
32552726554321d35a8c18224343fe73ece324c2: Bug 1544325 - Clamp the app units' scroll position to the current position if the given scroll position is the same as the current scroll position in CSS pixels. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Wed, 17 Apr 2019 16:41:11 +0000 - rev 469969
Push 83463 by hikezoe@mozilla.com at Thu, 18 Apr 2019 00:35:21 +0000
Bug 1544325 - Clamp the app units' scroll position to the current position if the given scroll position is the same as the current scroll position in CSS pixels. r=botond There are conditions that the given scroll position in app units differs from the current position in app units even if those values are the same in CSS pixels. Setting Element.scrollTop with Element.scrollTop in a callback of scroll event is one of such cases. The change here looks messy, but I am totally unsure that we can clamp the values before initializing the range for the DISABLE_SNAP case, so I'd like to preserve the behavior there. Once we ship the new scroll snap, we can drop the DISABLE_SNAP case there so that it could be less messy at the time. Differential Revision: https://phabricator.services.mozilla.com/D27638
2df4f2b12f9a5e5aecdd748b790928e969f60fad: Bug 1535140 - Slow down a bit if injecting touch inputs too fast for Windows to digest. r=botond
Kartikaya Gupta <kgupta@mozilla.com> - Wed, 17 Apr 2019 16:53:29 +0000 - rev 469933
Push 83440 by kgupta@mozilla.com at Wed, 17 Apr 2019 20:59:28 +0000
Bug 1535140 - Slow down a bit if injecting touch inputs too fast for Windows to digest. r=botond Differential Revision: https://phabricator.services.mozilla.com/D27598
a7c8897aea6fe0a302e0e32b931b5190850b9a9f: Bug 1544060 - Bail out from ScrollFrameHelper::GetScrollPadding in the case where no corresponding frame exists. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Mon, 15 Apr 2019 21:15:53 +0000 - rev 469589
Push 83238 by hikezoe@mozilla.com at Mon, 15 Apr 2019 21:17:05 +0000
Bug 1544060 - Bail out from ScrollFrameHelper::GetScrollPadding in the case where no corresponding frame exists. r=botond Differential Revision: https://phabricator.services.mozilla.com/D27423
9bf188c86f9c422d4f09b35268eed50d22495679: Bug 1544060 - Use the root element's primary frame to get scroll-padding value. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Mon, 15 Apr 2019 21:15:58 +0000 - rev 469588
Push 83238 by hikezoe@mozilla.com at Mon, 15 Apr 2019 21:17:05 +0000
Bug 1544060 - Use the root element's primary frame to get scroll-padding value. r=botond Now the spec cleary says that we don't need to propagate body's scroll-padding value to the document viewport since https://github.com/w3c/csswg-drafts/issues/3740, so we don't need to care about GetViewportScrollStylesOverrideElement() at all. This change fixes the crash test case in this commit, but it's not sufficient. In the next patch, we will fix another crash case. Differential Revision: https://phabricator.services.mozilla.com/D27422
7d6cd4e207055a667e1136ba200603f2420c671c: Bug 1543482 - Add the irregular-area flag for frames with masks and clip paths. r=mattwoodrow,botond
Kartikaya Gupta <kgupta@mozilla.com> - Mon, 15 Apr 2019 16:02:02 +0000 - rev 469537
Push 83203 by kgupta@mozilla.com at Mon, 15 Apr 2019 17:18:45 +0000
Bug 1543482 - Add the irregular-area flag for frames with masks and clip paths. r=mattwoodrow,botond This will force APZ to do a main-thread hit-test for the cases where the shapes are too complex to easily send to the compositor. Differential Revision: https://phabricator.services.mozilla.com/D27455
a5fe792348ed187dd06b3047d18e731f4dd4b227: Bug 1542019 - Split the dispatch-to-content flag into three. r=botond,hsivonen
Kartikaya Gupta <kgupta@mozilla.com> - Thu, 11 Apr 2019 13:31:53 +0000 - rev 469018
Push 82920 by kgupta@mozilla.com at Thu, 11 Apr 2019 13:34:19 +0000
Bug 1542019 - Split the dispatch-to-content flag into three. r=botond,hsivonen This patch extracts two additional CompositorHitTestInfo flags from the eDispatchToContent flag; eApzAwareListeners for elements that have APZ-aware listeners, and eInactiveScrollframe for inactive scrollframe or unlayerized scrollthumbs. The eDispatchToContent is then renamed to eIrregularArea to reflect the fact that it is used for irregular-shaped areas that require main-thread hit-testing. Additionally, it is important to note that when using the non-WebRender codepath, all three of these flags still end up gettings squashed into the "dispatch to content" region on the EventRegions; when APZ reconstructs a CompositorHitTestInfo it will turn anything in this region back into an eIrregularArea. So this is a lossy round-trip conversion for the non-WebRender case. However it should still result in correct behaviour because the semantics of eIrregularArea result in APZ relying on the main-thread to do hit-testing and so any APZ-aware listeners and inactive scrollframes are also handled by the main-thread. Differential Revision: https://phabricator.services.mozilla.com/D26440
c5898e18dedf71cc3189151d053874d3235886e5: Bug 1535232 - Take account the scroll-snap-margin and scroll-snap-padding into the position where we scroll to on Element.focus() call. r=masayuki,botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:22:38 +0000 - rev 468971
Push 82886 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:42:59 +0000
Bug 1535232 - Take account the scroll-snap-margin and scroll-snap-padding into the position where we scroll to on Element.focus() call. r=masayuki,botond We also take account those values in the case of `Find in page`. The corresponding web platform tests will be coming from this PR. https://github.com/web-platform-tests/wpt/pull/8575 Though some of them will not be passed, the failure reason is not related to this change, I will take a look when the PR gets merged into mozilla-central. Differential Revision: https://phabricator.services.mozilla.com/D25915
fb721c0cbc98cd77934548bf9a5162a45a292fa8: Bug 1534070 - Factor scroll-margin into the position calculation where nsIPresShell::ScrollFrameRectIntoView() is going to scroll. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:22:31 +0000 - rev 468970
Push 82885 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:42:14 +0000
Bug 1534070 - Factor scroll-margin into the position calculation where nsIPresShell::ScrollFrameRectIntoView() is going to scroll. r=botond Depends on D23084 Differential Revision: https://phabricator.services.mozilla.com/D23085
b723c3a2cae2c8d0b6aa94200afe36c0b6b9acfd: Bug 1534070 - Factor scroll-padding into the position calculation where nsIPresShell::ScrollContentIntoView() is going to scroll if necessary. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:22:14 +0000 - rev 468969
Push 82885 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:42:14 +0000
Bug 1534070 - Factor scroll-padding into the position calculation where nsIPresShell::ScrollContentIntoView() is going to scroll if necessary. r=botond In the case where scroll-snap-type is specified for the scroll container, the scroll-padding is also factored into in ScrollFrameHelper::ComputeScrollSnapInfo which is called via ScrollFrameHelper::ScrollToWithOrigin. It doesn't double the scroll-padding value, but it's actually redundant, we should avoid it. We could separate the functionality of ScrollToWithOrigin, one is to scroll to a given element, the other is to scroll to a given position. The former will be used for Element.scrollIntoElement and relevant stuff, the latter will be used for Element.scrollTo and relevant stuff. That's being said, as of now, we have still the old scroll snap implementation, so the separation will introduce complexity, the separation should be done once after the old implementation removed. There are 9 call sites of nsIPresShell::ScrollContentIntoView: nsIPresShell::GoToAnchor nsIPresShell::ScrollToAnchor Element::ScrollIntoView We definitely needs scroll-padding and scroll-margin for these functions. nsCoreUtils::ScrollTo This is used for Accesible::ScrollTo which scrolls to a given accesible node, probably we should behave as what Element::ScrollIntoView does. Accessible::DispatchClickEvent Similar to the above, similated various mouse events on a given target node. PresShell::EventHandler::PrepareToUseCaretPosition PresShell::EventHandler::GetCurrentItemAndPositionForElement Both are for context menu, we shouldn't consider scroll-padding and scroll-margin. nsFormFillController::SetPopupOpen This is used for autocompletion popup, we shouldn't consider scroll-padding and scroll-margin. nsFocusManager::ScrollIntoView This is bit unfortunate, we should use scroll-padding and scroll-margin depending on call site of this function. Bug 1535232 is for this case. cssom-view/scrollIntoView-scrollPadding.html which has some tests that is actually testing scroll-padding with scrollIntoView passes with this change. The reftest in this change is a test case that the browser navigates to an element with specifying the anchor to the element. Differential Revision: https://phabricator.services.mozilla.com/D23084
2b8493e37c626b53fe8a3c0852573943412af809: Bug 1531228 - Enable the new scroll snap and disable the old scroll snap on nightly. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:22:01 +0000 - rev 468968
Push 82884 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:41:27 +0000
Bug 1531228 - Enable the new scroll snap and disable the old scroll snap on nightly. r=botond Differential Revision: https://phabricator.services.mozilla.com/D22804
b500d17a3bf5523d70fe27d246a59ec7074cf35b: Bug 1373832 - Deflate the snapport by scroll-padding and adjust the snap positions by the padding value. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:21:48 +0000 - rev 468967
Push 82883 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:40:43 +0000
Bug 1373832 - Deflate the snapport by scroll-padding and adjust the snap positions by the padding value. r=botond https://drafts.csswg.org/css-scroll-snap-1/#scroll-padding Differential Revision: https://phabricator.services.mozilla.com/D21635
acbcbc1dc6e0d261a41620e0ee5ad0e73edc15ac: Bug 1373833 - Factor scroll-margin values into scroll snap position calculation. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:21:36 +0000 - rev 468966
Push 82882 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:39:57 +0000
Bug 1373833 - Factor scroll-margin values into scroll snap position calculation. r=botond scroll-margin is for each elements in the scroll container and snap positions are shifted by the value. https://drafts.csswg.org/css-scroll-snap-1/#scroll-margin https://drafts.csswg.org/css-scroll-snap-1/#scroll-snap-area Differential Revision: https://phabricator.services.mozilla.com/D21634
11ce2cf9d66cefcd5e7318dd5a4276d9427c9ecf: Bug 1373835 - Cull out elements which will be invisible in the snapport for programatic scrolls. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:21:23 +0000 - rev 468965
Push 82881 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:39:07 +0000
Bug 1373835 - Cull out elements which will be invisible in the snapport for programatic scrolls. r=botond As for scrolling on the compositor we don't cull out them since we don't know the final snapport rect at the time when we send the information about snapping to the compositor. And we will handle it for APZ in bug 1531589. https://drafts.csswg.org/css-scroll-snap-1/#snap-scope Depends on D21632 Differential Revision: https://phabricator.services.mozilla.com/D21633
335307e3cca3809f8fbcb65854e45ba968f75191: Bug 1373835 - Make positions in the range that the element covers the snapport valid snap positions. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:21:11 +0000 - rev 468964
Push 82881 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:39:07 +0000
Bug 1373835 - Make positions in the range that the element covers the snapport valid snap positions. r=botond https://drafts.csswg.org/css-scroll-snap-1/#snap-overflow Depends on D21631 Differential Revision: https://phabricator.services.mozilla.com/D21632
29466eb6ee253cfd9eb21d6cf6e8d31a0bdd0c6d: Bug 1373835 - Add a test case for unreachable snap positions. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:20:58 +0000 - rev 468963
Push 82881 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:39:07 +0000
Bug 1373835 - Add a test case for unreachable snap positions. r=botond The snap alignment position of the target element is the top left of the target and the position is located out of scroll port (top: -100px, left: -100px). Even so we try to snap a position as much as possible. From the spec [1]; If a snap position is unreachable as specified, such that aligning to it would require scrolling the scroll container’s viewport past the edge of its scrollable overflow region, the used snap position for this snap area is the position resulting from scrolling as much as possible in each relevant axis toward the desired snap position. [1] https://drafts.csswg.org/css-scroll-snap-1/#unreachabLe Depends on D21630 Differential Revision: https://phabricator.services.mozilla.com/D21631
d4682a804eba019aac23fecce0079768a3c6e5cb: Bug 1373835 - Add a test case that the snap target element is transformed. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:22:21 +0000 - rev 468962
Push 82881 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:39:07 +0000
Bug 1373835 - Add a test case that the snap target element is transformed. r=botond Depends on D21629 Differential Revision: https://phabricator.services.mozilla.com/D21630
bd7f3fa1efbd129e9926f490449efeac132f4f4d: Bug 1373835 - Implement scroll-snap-align. r=botond,jfkthame
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:20:36 +0000 - rev 468961
Push 82881 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:39:07 +0000
Bug 1373835 - Implement scroll-snap-align. r=botond,jfkthame https://drafts.csswg.org/css-scroll-snap-1/#scroll-snap-align The main logic here is basically same as the old scroll snap implementation, just iterating over all descendant elements in the scroll container and collect snap positions. The differences are; 1) the snap positions are specified based on descendant elements instead of points 2) the snap positions are able to be specified by `block` or `inline` keywords so that we also need to care the element flow. more test cases for this are coming in the next commit 3) the target rect is calculated by nsLayoutUtils::TransformFrameRectToAncestor which means transform is already taken account into it (we have a bug for the old scroll snap, it's bug 1218745) some of web platform tests will be added in a subsequent commit Some of test cases in overflowing-snap-areas.html that accidentally have passed start failing with this change, all of them will be passed with subsequent changes in these commit series. Depends on D21627 Differential Revision: https://phabricator.services.mozilla.com/D21628
15f5d6a74247f92458d22acf4d09eb04aa14a7e6: Bug 1373835 - Make ComputeScrollSnapInfo a private method of ScrollFrameHelper. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:20:24 +0000 - rev 468960
Push 82881 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:39:07 +0000
Bug 1373835 - Make ComputeScrollSnapInfo a private method of ScrollFrameHelper. r=botond Depends on D21626 Differential Revision: https://phabricator.services.mozilla.com/D21627
2e7cebd9ed5683f5ad2c0db6ac83266961c8c90e: Bug 1373835 - Enable scroll snap for Element.scrollIntoView. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:20:11 +0000 - rev 468959
Push 82881 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:39:07 +0000
Bug 1373835 - Enable scroll snap for Element.scrollIntoView. r=botond Depends on D21625 Differential Revision: https://phabricator.services.mozilla.com/D21626
ab5811341092040b0c2301ed7be2fd0248180263: Bug 1373835 - Enable scroll snap for programatic scrolls. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:20:04 +0000 - rev 468958
Push 82881 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:39:07 +0000
Bug 1373835 - Enable scroll snap for programatic scrolls. r=botond From the spec [1]; Using the scroll-snap-type property on the relevant scroll container, the author can request a particular bias for the scrollport to land on a snap position after scrolling operations (including programmatic scrolls such as the scrollTo() method). The target here are functions exposed in web contents other than Element.scrollIntoView which will be changed in the next commit. [1] https://drafts.csswg.org/css-scroll-snap-1/#overview Depends on D21624 Differential Revision: https://phabricator.services.mozilla.com/D21625
9d201f2c32796be22a0defcca7c47cde48a5fd36: Bug 1373835 - Use scrollBy instead of scrollTo in a test in scrollTo-scrollBy-snaps.html. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:19:51 +0000 - rev 468957
Push 82881 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:39:07 +0000
Bug 1373835 - Use scrollBy instead of scrollTo in a test in scrollTo-scrollBy-snaps.html. r=botond Given the test description is mentioning scrollBy, scrollBy should be used there. Depends on D21623 Differential Revision: https://phabricator.services.mozilla.com/D21624
a85948af4c36a697eeb5c60063146b81de06dad2: Bug 1373835 - Make the largest element wider. r=botond
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:19:39 +0000 - rev 468956
Push 82881 by hikezoe@mozilla.com at Thu, 11 Apr 2019 07:39:07 +0000
Bug 1373835 - Make the largest element wider. r=botond The right top element is positioned at left:1000px and its width is 600px and the width of the largest element in the content is 2100px. So if the browser window width (precisely documentElement clientWidth) is greater than 1100px, the right top element is not suitable for scroll-snap-align:start, thus some test cases fail. Differential Revision: https://phabricator.services.mozilla.com/D21623