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 527769
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +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 527768
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +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 527767
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +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 527766
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +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 527765
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +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 527764
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +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 527763
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +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 527762
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +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 527761
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +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 527760
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +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 527759
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +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 527758
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +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 527757
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +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 527756
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +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
1703fb877b13222123f73c960d368e30b5a13188: Bug 1312163 - Switch to the new scroll-snap-type syntax for the old scroll snap implementation and drop the scroll-snap-type-{x,y} longhands. r=emilio
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:19:31 +0000 - rev 527755
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +0000
Bug 1312163 - Switch to the new scroll-snap-type syntax for the old scroll snap implementation and drop the scroll-snap-type-{x,y} longhands. r=emilio Now scroll-snap-type is a longhand property. Depends on D21621 Differential Revision: https://phabricator.services.mozilla.com/D21622
23d3b9b92a777b26f96d577499a00f068f9874d4: Bug 1312163 - Rename ScrollSnapType to ScrollSnapStrictness. r=emilio
Hiroyuki Ikezoe <hikezoe@mozilla.com> - Thu, 11 Apr 2019 06:19:13 +0000 - rev 527754
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +0000
Bug 1312163 - Rename ScrollSnapType to ScrollSnapStrictness. r=emilio The scroll snap strictness is defined in the new spec [1], and the structure is the exactly same as the old scroll snap type structure. [1] https://drafts.csswg.org/css-scroll-snap-1/#snap-strictness Differential Revision: https://phabricator.services.mozilla.com/D21621
95d45fef28b9ef661ea775b0e5eedcd47614f665: Bug 1536091 - Relax the startup cache test restrictions to account for QuantumBar not loading search-one-offs.js. r=kmag
Mark Banner <standard8@mozilla.com> - Thu, 11 Apr 2019 07:20:16 +0000 - rev 527753
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +0000
Bug 1536091 - Relax the startup cache test restrictions to account for QuantumBar not loading search-one-offs.js. r=kmag Differential Revision: https://phabricator.services.mozilla.com/D26684
b5bcfc2617667e3fc7a095b262b80377b2542446: Bug 1541404 part 8 - Add ICEntry::isForPrologue and use it instead of ICEntry::isForOp. r=tcampbell
Jan de Mooij <jdemooij@mozilla.com> - Wed, 10 Apr 2019 16:28:07 +0000 - rev 527752
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +0000
Bug 1541404 part 8 - Add ICEntry::isForPrologue and use it instead of ICEntry::isForOp. r=tcampbell Depends on D26677 Differential Revision: https://phabricator.services.mozilla.com/D26912
1df3239c094dbfcbb217328020937cb8089e5865: Bug 1541404 part 7 - Implement ICScript::interpreterICEntryFromPCOffset and BaselineFrame::setInterpreterPC. r=tcampbell
Jan de Mooij <jdemooij@mozilla.com> - Wed, 10 Apr 2019 14:15:55 +0000 - rev 527751
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +0000
Bug 1541404 part 7 - Implement ICScript::interpreterICEntryFromPCOffset and BaselineFrame::setInterpreterPC. r=tcampbell Differential Revision: https://phabricator.services.mozilla.com/D26677
1434c8e2b9ad5b339396bfc58d61de249e2231be: Bug 1541404 part 6 - Move the isForOp check into ComputeBinarySearchMid to simplify maybeICEntryFromPCOffset and improve perf a bit. r=tcampbell
Jan de Mooij <jdemooij@mozilla.com> - Wed, 10 Apr 2019 13:47:17 +0000 - rev 527750
Push 11265 by ffxbld-merge at Mon, 13 May 2019 10:53:39 +0000
Bug 1541404 part 6 - Move the isForOp check into ComputeBinarySearchMid to simplify maybeICEntryFromPCOffset and improve perf a bit. r=tcampbell Differential Revision: https://phabricator.services.mozilla.com/D26676
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 tip