340d5146c405: Backed out changeset 95324d36ded5 (Bug 1518405) for causing performance regressions.
Matt Woodrow <mwoodrow@mozilla.com> - Fri, 11 Jan 2019 18:59:46 +1300 - rev 453399
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Backed out changeset 95324d36ded5 (Bug 1518405) for causing performance regressions.
9cc1cf173fce: Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE
Daniel Varga <dvarga@mozilla.com> - Fri, 11 Jan 2019 06:23:02 +0200 - rev 453398
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE
b62455787e3f: Bug 1517626 - Treat event handlers as eval'ed sources, r=lsmyth.
Brian Hackett <bhackett1024@gmail.com> - Thu, 10 Jan 2019 16:53:11 -1000 - rev 453397
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1517626 - Treat event handlers as eval'ed sources, r=lsmyth.
ad851d4345c0: Bug 1518633 part 15 - Remove unneeded mouse click test_bug633762. r=mattwoodrow
Ryan Hunt <rhunt@eqrion.net> - Thu, 10 Jan 2019 18:20:39 -0600 - rev 453396
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1518633 part 15 - Remove unneeded mouse click test_bug633762. r=mattwoodrow This mouse click seems superfluous, as window.focus() is called immediately after. In addition, this click is somehow causing a page up scroll, as it's clicking a slider frame. This causes the test to fail with scroll anchoring enabled, for some reason. Removing this click seems to be the easiest solution, as it doesn't seem intentional. Differential Revision: https://phabricator.services.mozilla.com/D16276
e31c9494b9a6: Bug 1305957 part 14 - Disable scroll-anchoring in webconsole-output. r=nchevobbe
Ryan Hunt <rhunt@eqrion.net> - Wed, 09 Jan 2019 16:15:56 -0600 - rev 453395
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1305957 part 14 - Disable scroll-anchoring in webconsole-output. r=nchevobbe Differential Revision: https://phabricator.services.mozilla.com/D16127
a245309e92fd: Bug 1305957 part 13 - Highlight scroll anchor when 'layout.scroll-anchoring.highlight' is enabled. r=mattwoodrow
Ryan Hunt <rhunt@eqrion.net> - Tue, 27 Nov 2018 15:40:57 -0600 - rev 453394
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1305957 part 13 - Highlight scroll anchor when 'layout.scroll-anchoring.highlight' is enabled. r=mattwoodrow This commit adds a debug pref that will highlight the frames that are marked as anchor nodes. This is helpful to debug anchor selection. Differential Revision: https://phabricator.services.mozilla.com/D13276
f2ff150468c2: Bug 1305957 part 12 - Update web-platform-test expectations for scroll anchoring. r=hiro
Ryan Hunt <rhunt@eqrion.net> - Wed, 21 Nov 2018 22:29:52 -0600 - rev 453393
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1305957 part 12 - Update web-platform-test expectations for scroll anchoring. r=hiro Not all tests are passing with the initial implementation. Most are due to differences between Gecko and Blink with regards to ScrollTop, ScrollLeft in documents with writing-mode: vertical-rl. Some are due to issues in our anchor node selection algorithm remaining. Differential Revision: https://phabricator.services.mozilla.com/D13275
da81605d3695: Bug 1305957 part 11 - Make sure scroll anchoring web-platform-tests are fully scrollable on larger window sizes. r=hiro
Ryan Hunt <rhunt@eqrion.net> - Tue, 27 Nov 2018 07:06:48 -0600 - rev 453392
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1305957 part 11 - Make sure scroll anchoring web-platform-tests are fully scrollable on larger window sizes. r=hiro Some of these tests were failing on try but passing locally because of viewport size differences. This commit expands some spacing to ensure the tests are fully scrollable on most screen sizes. Differential Revision: https://phabricator.services.mozilla.com/D13274
4b492273f763: Bug 1305957 part 10 - Add block box inside of inline-box so it can be an anchor for 'start-edge-in-block' scroll-anchoring test. r=dholbert
Ryan Hunt <rhunt@eqrion.net> - Wed, 09 Jan 2019 12:04:37 -0600 - rev 453391
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1305957 part 10 - Add block box inside of inline-box so it can be an anchor for 'start-edge-in-block' scroll-anchoring test. r=dholbert The scroll anchoring test 'start-edge-in-block-direction.html' relies on #anchorbeing selected as an anchor node. However #anchor is 'display: inline-block' and the specification states that only block boxes [0] or text nodes may be selected as anchor nodes [1]. There's a spec issue open here trying to resolve this [2]. In the meantime, adding a block box inside of the inline-block should be spec compliant, and keep the test working. [0] "block boxes" are defined as "A block-level box that is also a block container" https://drafts.csswg.org/css-display-3/#block-box [1] https://drafts.csswg.org/css-scroll-anchoring-1/#anchor-node-selection [2] https://github.com/w3c/csswg-drafts/issues/3478#issuecomment-451038720 Differential Revision: https://phabricator.services.mozilla.com/D16072
3f00aed52fb3: Bug 1305957 part 9 - Suppress scroll offset adjustment when node moves into flow or out of flow inside of a scrollable frame. r=emilio
Ryan Hunt <rhunt@eqrion.net> - Tue, 27 Nov 2018 15:39:53 -0600 - rev 453390
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1305957 part 9 - Suppress scroll offset adjustment when node moves into flow or out of flow inside of a scrollable frame. r=emilio This commit implements the second half of the heuristics to detect style changes that could lead to feedback loops with scroll anchoring. [1] A new change hint is added for when a style is changed from positioned to not positioned. When this hint is applied, scroll anchor suppression is triggered in the scroll anchor container where the frame used to be, and the new scroll anchor container where the frame is added after reconstruction. [1] https://drafts.csswg.org/css-scroll-anchoring/#suppression-triggers Differential Revision: https://phabricator.services.mozilla.com/D13273
eef9ed24a061: Bug 1305957 part 8 - Suppress scroll offset adjustment when some layout affecting properties are changed on scroll anchor or its ancestors. r=hiro
Ryan Hunt <rhunt@eqrion.net> - Tue, 27 Nov 2018 15:38:43 -0600 - rev 453389
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1305957 part 8 - Suppress scroll offset adjustment when some layout affecting properties are changed on scroll anchor or its ancestors. r=hiro This commit implements the first half of the heuristics to detect style changes that could lead to feedback loops with scroll anchoring. [1] When these style changes are made, a suppression flag is added to the anchor container to ignore any adjustments that would be made at the next layout flush and to invalidate the anchor at that time. [1] https://drafts.csswg.org/css-scroll-anchoring/#suppression-triggers Differential Revision: https://phabricator.services.mozilla.com/D13271
a4257d0470d7: Bug 1305957 part 7 - Adjust scroll offset to match change in relative position of scroll anchor after reflow. r=hiro,dbaron
Ryan Hunt <rhunt@eqrion.net> - Fri, 21 Dec 2018 10:26:10 -0600 - rev 453388
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1305957 part 7 - Adjust scroll offset to match change in relative position of scroll anchor after reflow. r=hiro,dbaron This commit implements anchor offset adjustment. When the position of a frame that is an anchor is changed during reflow, we notify the anchor container. The anchor container will then post a reflow callback. Then when reflow is completed, the anchor container will perform a scroll to keep the anchor node in the same relative position. Differential Revision: https://phabricator.services.mozilla.com/D13270
462f25bfdc65: Bug 1305957 part 6 - Select scroll anchors when flushing notifications in PresShell. r=hiro
Ryan Hunt <rhunt@eqrion.net> - Tue, 27 Nov 2018 15:32:47 -0600 - rev 453387
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1305957 part 6 - Select scroll anchors when flushing notifications in PresShell. r=hiro This commit adds a mechanism for scroll anchor containers to request an anchor node selection at a future time. Currently this is before styling so that anchor adjustment suppression will have current anchor nodes. Differential Revision: https://phabricator.services.mozilla.com/D13269
b6c42df7ce09: Bug 1305957 part 5 - Add implementation of scroll anchor selection and invalidation. r=hiro,dbaron,dholbert
Ryan Hunt <rhunt@eqrion.net> - Tue, 27 Nov 2018 15:45:16 -0600 - rev 453386
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1305957 part 5 - Add implementation of scroll anchor selection and invalidation. r=hiro,dbaron,dholbert This commit implements candidate selection for a scroll frame using a frame tree traversal. It roughly tries to follow the algorithm given in the scroll anchoring draft specification, adapted to operate on the frame tree [1]. Some details, such as not selecting an anchor if the user hasn't scrolled are not currently in the specification but will be to match Blink's implementation. Once a scroll anchor has been selected, we maintain a bit on it and its ancestor frame's states. This is used in a later commit to detect changes to position during a reflow so the scroll frame can perform an adjustment. A scroll anchor will be invalidated when the user scrolls the frame or the scroll anchor is destroyed. Later commits will add logic to drive selection and invalidation appropriately. [1] https://drafts.csswg.org/css-scroll-anchoring/#anchor-node-selection Differential Revision: https://phabricator.services.mozilla.com/D13268
52a6a35a238d: Bug 1305957 part 4 - Add basic ScrollAnchorContainer implementation. r=hiro
Ryan Hunt <rhunt@eqrion.net> - Tue, 27 Nov 2018 15:18:03 -0600 - rev 453385
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1305957 part 4 - Add basic ScrollAnchorContainer implementation. r=hiro This commit adds a barebones class called 'ScrollAnchorContainer' that will contain most of the logic for scroll anchoring. It is owned as a member of ScrollFrameHelper, and has the same lifetime. Differential Revision: https://phabricator.services.mozilla.com/D13267
399c5fe7c934: Bug 1305957 part 3 - Add IsStickyPositioned() method to nsStyleDisplay. r=emilio
Ryan Hunt <rhunt@eqrion.net> - Wed, 21 Nov 2018 22:35:23 -0600 - rev 453384
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1305957 part 3 - Add IsStickyPositioned() method to nsStyleDisplay. r=emilio This commit is used in a later commit to exclude frames that are sticky positioned from being scroll anchors. Differential Revision: https://phabricator.services.mozilla.com/D13266
8c9be913b3e6: Bug 1305957 part 2 - Add 'overflow-anchor' CSS property. r=emilio
Ryan Hunt <rhunt@eqrion.net> - Wed, 21 Nov 2018 22:33:15 -0600 - rev 453383
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1305957 part 2 - Add 'overflow-anchor' CSS property. r=emilio https://drafts.csswg.org/css-scroll-anchoring/#exclusion-api Differential Revision: https://phabricator.services.mozilla.com/D13265
4e60d1fb951f: Bug 1305957 part 1 - Add 'layout.scroll-anchoring.enabled' preference behind nightly flag. r=hiro
Ryan Hunt <rhunt@eqrion.net> - Tue, 27 Nov 2018 15:43:26 -0600 - rev 453382
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1305957 part 1 - Add 'layout.scroll-anchoring.enabled' preference behind nightly flag. r=hiro Differential Revision: https://phabricator.services.mozilla.com/D13263
fbe6548db11d: Bug 1518961 - Show evaluated frames when pausing on exceptions, r=lsmyth.
Brian Hackett <bhackett1024@gmail.com> - Thu, 10 Jan 2019 15:09:43 -1000 - rev 453381
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1518961 - Show evaluated frames when pausing on exceptions, r=lsmyth.
472bcde2c2d1: Bug 1518954 - Three-value position syntax uses calc() as its computed value representation. r=heycam
Emilio Cobos Álvarez <emilio@crisal.io> - Fri, 11 Jan 2019 01:07:22 +0100 - rev 453380
Push 35354 by rmaries@mozilla.com at Fri, 11 Jan 2019 09:31:48 +0000
Bug 1518954 - Three-value position syntax uses calc() as its computed value representation. r=heycam This restores the previous behavior of using calc(). Note that background-position / object-position, which test this, weren't hitting the assertion because they use another codepath. I didn't add more extensive tests for this because it's well tested for those two properties, and because this is legacy anyway, see the comment in the test. I did add the assertion to the codepath those two properties hit. Differential Revision: https://phabricator.services.mozilla.com/D16176
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 tip