Commit Graph

1248 Commits

Author SHA1 Message Date
Robert O'Callahan
160ba37ce4 Bug 1242172. Invalidate intrinsic ISizes that depend on viewport BSize when the viewport is resized. r=dbaron
MozReview-Commit-ID: INEHo7ghGyz
2016-02-29 18:49:34 +13:00
Kartikaya Gupta
b67dbe454a Bug 1256727 - Don't allow paint-skipping on pages with scroll-linked effects. r=mstange
MozReview-Commit-ID: I05EXDWOt6b
2016-03-17 15:43:17 -04:00
Kartikaya Gupta
c122b280b4 Bug 1255856 - Don't allow paint-skipping if there are windowed plugins on the page. r=mstange,jimm
MozReview-Commit-ID: BzQcUrSqCr5
2016-03-15 15:12:11 -04:00
Kartikaya Gupta
a8f103c954 Bug 1255705 - Add some useful logging that can be enabled at compile time. r=botond
MozReview-Commit-ID: KgjQMlY09Mn
2016-03-11 17:42:49 -05:00
Kartikaya Gupta
1b0954a823 Bug 1253860 - Don't update the scrollbar unless we're actually painting. r=mstange
MozReview-Commit-ID: 3JIcp2NFwRn
2016-03-09 22:57:15 -05:00
Kartikaya Gupta
3e57f3dfcc Bug 1253860 - Skip paints for main thread scrolls if we can ask APZ to handle the scrolling for us. r=mstange
MozReview-Commit-ID: LqugzganLru
2016-03-09 22:57:15 -05: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
d8f0ddf33a Bug 1254263 - Add a flag to allow disabling paint-skipping. r=mstange
MozReview-Commit-ID: 4bgvqEZcSWy
2016-03-07 16:25:00 -05:00
Jim Mathies
2ee4b50a96 Bug 1232181 - Notify plugins about scroll state. r=roc 2016-03-01 12:48:26 -06:00
Botond Ballo
f28bdb01dc Bug 1250550 - Ensure a scroll event posted during a refresh driver tick fires during that same tick. r=mats
MozReview-Commit-ID: 1ZvYjA6a5ay
2016-02-24 18:20:40 -05:00
Kartikaya Gupta
0ae4c1c9a4 Back out cset 447498cdecee for landing the wrong patch (it was obsoleted by a new one).
MozReview-Commit-ID: HOLKux4OtCQ
2016-03-01 09:38:55 -05:00
Botond Ballo
8a9c37e5b8 Bug 1250550 - Ensure a scroll event posted during a refresh driver tick fires during that same tick. r=mats
MozReview-Commit-ID: 1ZvYjA6a5ay
2016-02-24 18:20:40 -05:00
Jamie Nicol
1190904d23 Bug 1247098 - Take document resolution into account when computing root composition bounds for displayport base. r=tnikkel
nsLayoutUtils::CalculateCompositionSizeForFrame() is not affected by the
document resolution when called for the root content document's root
scroll frame. When determining the root composition bounds in order to
calculate a displayport base, if the frame used is the RCD-RSF we must
be sure to scale the bounds ourselves by the document resolution.

MozReview-Commit-ID: ATctmEYvWIJ
2016-02-24 15:30:10 +00:00
Kartikaya Gupta
935f7e1ee5 Bug 1243267 - Guard against reentrancy into the dispatch of a scroll event. r=mats
MozReview-Commit-ID: 5saxPwxOuc8
2016-02-22 14:14:20 -05:00
Jamie Nicol
1256824ee6 Bug 1246443 - Only restrict displayport base to root composition bounds if content has displayport; r=tnikkel
Bug 1241917 made it so that a subframe's displayport base is restricted
to the root composition bounds (in addition to its previous
restrictions). This involved an expensive coordinate transformation
causing a scrolling performance regression.

This avoids restricting the displayport base to the root composition
bounds unless the frame has a display port, avoiding the expensive
computation unless necessary.

MozReview-Commit-ID: FVacUscAfu2
2016-02-09 13:53:27 +00:00
Timothy Nikkel
c37fab9118 Bug 1246443. Don't make nsLayoutUtils::MaybeCreateDisplayPort also set the displayport base anymore. r=botond
It's not obvious that it does this (unless you read the comment or the code), and we don't gain much by doing it.

Also we need to split it up for the next patch in this bug.
2016-02-12 16:58:34 -06:00
Kartikaya Gupta
68ddf244f3 Bug 1245925 - Don't allow expiring the displayport on root scrollframes. r=tnikkel
MozReview-Commit-ID: 8LGsk9uKyL5
2016-02-10 17:11:28 -05:00
Kartikaya Gupta
2139025336 Bug 1235899 - Don't allow frame reconstruction to clobber the APZ scroll offset. r=botond
MozReview-Commit-ID: HZMavMJNtmq
2016-02-10 16:31:20 -05:00
Kartikaya Gupta
8858348a74 Bug 1104356 - When doing a smooth scroll on a non-APZ'd scrollframe, fall back to the main thread machinery. r=kip 2016-02-05 17:09:30 -05:00
Jamie Nicol
b308770ac0 Bug 1241917 - Restrict subframe's displayport base to root composition bounds. r=tn
Previously displayport bases were computed as the intersection of the
scrollport with the dirtyrect. However the dirtyrect covers what is
rendered, and with displayports what we render can be much larger than
what is visible. With displayport bases intended to represent what was
visible, this was a problem. By restricting them to the root composition
size this makes them more closely match what is visible. To do this more
properly we'd want to intersect the dirtyrect with the scroll clip of
every ancestor scroll frame, not just the root composition bounds.
2016-02-04 17:53:56 +00:00
Kartikaya Gupta
23b63e0d6f Bug 990916 - On displayport expiry, trigger another round of expiry up the ancestor chain. r=tnikkel 2016-02-03 19:13:35 -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
Kartikaya Gupta
8bba4af136 Bug 990916 - Track if a scrollframe is a scroll parent for something else. r=tnikkel 2016-02-03 19:13:35 -05:00
Birunthan Mohanathas
bfee0fb40c Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Jim Mathies
25bd998907 Bug 1243413 - Avoid hiding windowed plugins that aren't contained within the active scroll frame. r=roc 2016-02-01 16:50:57 -06:00
Phil Ringnalda
d871b9515f Back out 7 changesets (bug 1235261) for cpptest failures in TestTArray
CLOSED TREE

Backed out changeset d66c3f19a210 (bug 1235261)
Backed out changeset 467d945426bb (bug 1235261)
Backed out changeset 32b61df13142 (bug 1235261)
Backed out changeset c50bb8ed4196 (bug 1235261)
Backed out changeset 0ff0fa6fe81f (bug 1235261)
Backed out changeset df70e89669da (bug 1235261)
Backed out changeset 064969357fc9 (bug 1235261)
2016-01-31 10:10:57 -08:00
Birunthan Mohanathas
245cd6a02f Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Kyle Huey
e95edb30a9 Bug 1241764: Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer. r=mrbkap,smaug 2016-01-30 09:05:36 -08:00
Ting-Yu Lin
60711ad8f1 Bug 1227927 Part 3 - Use ranged-based for-loop to rewrite some simple loops in part 2. r=mats 2016-01-29 22:42:15 +08:00
Ting-Yu Lin
122e5b9aeb Bug 1227927 Part 2 - Remove nsIFrame::GetFirstPrincipalChild(). r=mats 2016-01-29 22:42:14 +08:00
CJKu
d5371994d3 Bug 686281 - Implement nsStyleImageLayers; r=dbaron 2016-01-28 06:24:00 +01:00
Xidorn Quan
0f1150d793 Bug 1064843 part 5 - Ensure frames behave properly for unknown child list id passed into SetInitialChildList. r=dholbert
Note that nsMathMLContainerFrame and its subclasses are unchanged since
they are not target of fullscreen (and thus no backdrop frame), and they
have an assertion to ensure we really don't pass any unexpected list in.
2016-01-28 10:11:00 +11: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
Jim Mathies
66d5f0d61b Bug 1193055 - Update windowed plugin visibility in response to apz scroll in the chrome process vs. relying on a full round trip through content. Reduces lag in windowed plugin updates. r=kats 2016-01-12 11:05:58 -06:00
Markus Stange
c2f1e53045 Bug 1234877 - Whether a scroll frame is async scrollable is determined by mWillBuildScrollableLayer, not by usingDisplayPort. r=tn 2016-01-10 14:25:10 +01:00
Markus Stange
9b94fc609e Bug 1236040 - When updating the scroll position, only schedule image visibility checks if the display port has changed. r=tn 2015-12-31 00:04:18 +01:00
David Anderson
bded82f5a5 Fix crash trying to allocate textures for oversize scrollbars. (bug 1214261, r=mstange) 2015-12-17 11:13:45 -08:00
Timothy Nikkel
555d279726 Bug 1234725. Don't change the dirty rect to the display port when building display lists for documents. r=mstange
Instead do it when we first encounter the root scroll frame.

Doing this goes back to bug 635053, where we did it because fixed position items weren't getting included. However in bug 974643 we learned that this was wrong. Displayports aren't relevant to fixed pos content, displayports are only relevant to scrolled content. And we set the dirty rects of fixed pos content specially. The only other thing that should be affected is scrollbars, and we already carefully set their dirty rects too.
2016-01-09 00:25:58 -06:00
Timothy Nikkel
bf3ae99610 Bug 1194851. Change the GetDisplayPort API to take an optional RelativeTo parameter, instead of having that expressed in the function name. r=botond 2016-01-07 18:27:49 -06:00
Timothy Nikkel
a2c4d77fbc Bug 1194851. Rename GetDisplayPortRelativeToScrollPort back to GetDisplayPort. r=botond 2016-01-07 18:27:49 -06:00
Timothy Nikkel
8d4a783640 Bug 1194851. Split GetDisplayPort callers into GetDisplayPortRelativeToScrollPort and GetDisplayPortRelativeToScrollFrame. r=botond
Temporarily rename GetDisplayPort to GetDisplayPortRelativeToScrollPort for the duration of this patchset.

This means that every caller of GetDisplayPort is guaranteed to be touched by this patchset (assuming it compiles), and thus each call site can be checked in review to make sure it is relative to the correct coordinate system.
2016-01-07 18:27:49 -06:00
Timothy Nikkel
2bf32904d9 Bug 1194851. Always store the displayport base relative to the scrollport (not the scroll frame). r=botond
This also has the side effect of making the computation that takes place in GetDisplayPortFromMarginsData happen relative to the scrollport. As opposed to some things relative to the scroll port, and some things relative to the scroll frame.
2016-01-07 18:27:49 -06:00
Timothy Nikkel
981bd0e808 Bug 1194851. Change GetOrMaybeCreateDisplayPort into just MaybeCreateDisplayPort, and make it only return a bool, and not the displayport rect. r=botond
This makes the one caller that needs the displayport rect have to ask for it seperately.

The reason for this is later in the patch series we need to add "RelativeToScrollFrame/Port" to all displayport getters, but there is no semantically good way to do that to the name GetOrMaybeCreateDisplayPort.
2016-01-07 18:27:48 -06:00
Botond Ballo
b2b30c429c Bug 1194851 - Add helper functions HasDisplayPort() and HasCriticalDisplayPort(). r=kats
This makes it clearer whether we're just checking if a displayport exists,
or we're actually consuming its value.
2015-12-16 17:22:23 -05: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
Markus Stange
19b902d2a7 Bug 1147673 - Use ancestor clip for root scrollable framemetrics clips. r=tn 2015-11-05 17:54:44 +01:00
Kartikaya Gupta
334656497a Bug 1234242 - Keep a RefPtr to the refresh driver to unregister the ScrollEvent, rather than relying on a chain of pointers remaining non-null. r=mstange a=KWierso 2015-12-21 14:40:20 -05:00
Markus Stange
b7d7c15fe9 Bug 1209970 - Fire scroll events early in the refresh tick. r=mats
With APZ we want to be firing scroll events to content more consistently, so
we tie them to the refresh driver tick rather than firing them on paint or
haphazardly on the next spin of the event loop.

Patch by Markus Stange, test fixes by Kartikaya Gupta
2015-12-17 17:19:30 -05:00
Avi Halachmi
cb31fcea50 Bug 1228147: part 2: Add telemetry probe for synchronous scroll. r=kats 2015-12-16 20:06:40 +02:00