1288 Commits

Author SHA1 Message Date
Botond Ballo
81d91f5996 Bug 1363219 - Try harder to pre-render offscreen portions of scrollbar thumbs. r=mstange
In bug 1359868 we started to do this, but we bounded the pre-render region for
the entire scrollbar by the widget bounds, which is not helpful for tall
scrollframes with short thumbs.

This time, we are bounding the pre-render region of the thumb only, so a small
thumb will always be completely painted.

MozReview-Commit-ID: 5LuP5Lfahdm

--HG--
extra : rebase_source : 3ab45f979160d7991aec71020cf57c9a1e57d1ce
2017-05-08 18:28:26 -04:00
Botond Ballo
e509fc4068 Bug 1359868 - Try to pre-render offscreen portions of scrollbar thumbs. r=mstange
MozReview-Commit-ID: K3TPswpjh3O
2017-05-01 20:32:07 -04:00
Kartikaya Gupta
84a90cdcec Back out bug 1359868 (2 csets) for possibly causing a checkerboarding regression. r=backout
MozReview-Commit-ID: KFOsj8If3sZ
2017-05-09 13:23:23 -04:00
Botond Ballo
15114b5297 Bug 1359868 - Try to pre-render offscreen portions of scrollbar thumbs. r=mstange
MozReview-Commit-ID: K3TPswpjh3O

--HG--
extra : rebase_source : f71262bf0ce948511ecc53175790beb38a0f6ba5
2017-05-01 20:32:07 -04:00
Emilio Cobos Álvarez
23bce99ae1 Bug 1361051: rename mozilla::FrameType to mozilla::LayoutFrameType. r=xidorn
This avoids conflicts with mozilla::dom::FrameType.

MozReview-Commit-ID: 7aEMbHRaTFk

--HG--
extra : rebase_source : 2d01321f5ce0ec8c0e3f70984674f82678034b3c
2017-05-01 19:32:52 +02:00
Emilio Cobos Álvarez
e44543aad4 Bug 1360241: Devirtualize nsIFrame::GetType. r=heycam
MozReview-Commit-ID: 5Nzhyta5Hle

--HG--
extra : rebase_source : c2e9d4bfb9239f5e851d110cd7dff98c1e1a8d8b
2017-04-30 17:30:08 +02:00
Astley Chen
8713e7a155 Bug 1355752 - Remove B2G code from nsGfxScrollFrame.cpp. r=kats
MozReview-Commit-ID: 6ePwT9UWJIJ

--HG--
extra : rebase_source : 0b73e647867448a6b8a81074d7fc4410645b6eed
2017-04-20 13:16:43 +08:00
Mats Palmgren
5a8f74cd29 Bug 1350925 part 1 - Reset the scrolled frame's ReflowOutput overflow areas before re-using it for another child reflow. r=dholbert
MozReview-Commit-ID: Ct57seTFsaj
2017-04-18 22:35:05 +02:00
Botond Ballo
253843616c Bug 1312697 - Do not consider the page to be finished loading if it's in the 'stopped' state. r=tnikkel
MozReview-Commit-ID: 2rnvkwsmQCQ

--HG--
extra : rebase_source : 0ce14917b7787dfaec09bd59d68c5f5074d8bc5a
2017-02-14 16:58:34 -05:00
Jeremy Chen
d66ae544cc Bug 1347815 - part1.2: label ScrollFrameActivityTracker. r=heycam
ScrollFrameActivityTracker::NotifyExpired() will be invoked by
nsExpirationTracker::TimerCallback() from an unlabeled runnable.
We provide a SystemGroup EventTarget for the invocation of this
callback since there's nothing within a page that would rely on
the timer firing at a particular time (i.e., it doesn't matter
when this timer's callback is scheduled, relative to other
runnables dispatched for the page).

MozReview-Commit-ID: 9QEjxCtFhve

--HG--
extra : rebase_source : 06b979835363b9c4288dd218d2a4ca2dc111169b
2017-04-09 16:53:56 +08:00
Jeremy Chen
bcda6f5517 Bug 1347815 - part1.1: fix some obvious nits for the implementations of ScrollFrameHelper. r=heycam
MozReview-Commit-ID: BOoqj7wzo8o

--HG--
extra : rebase_source : 0aae9871950dc7934df1025e25a7bfa7fbb369a6
2017-04-09 16:53:56 +08:00
Timothy Nikkel
cba42d43ac 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
Daniel Holbert
eaf41a48a2 Bug 1349816: Initialize a ScrollFrameHelper member-var in constructor. r=kats
Landing on a CLOSED TREE (bugzilla's down, but I'll update the bug manually)

MozReview-Commit-ID: 8SHQcIWQUR0
2017-03-24 13:34:42 -07:00
Timothy Nikkel
ec8cc6441b Bug 1346121. In ScrollFrameHelper::DecideScrollableLayer we should check for a displayport again after we call MaybeCreateDisplayPort. r=botond
Just like its name says, MaybeCreateDisplayPort might have created a displayport.
2017-03-18 16:22:11 -05:00
Kartikaya Gupta
151ed266bc Bug 1316318 - Disable paint-skipping for elements where we disable APZ. r=mstange
If we disable APZ on an individual scrollable element by setting the "disable APZ"
flag on the ScrollMetadata, we should also disable paint-skipping for that element.
If we don't do this, we end up in a situation where the APZ code is not applying
the async transform but is sending repaint requests expecting the main thread to
do repaints. Meanwhile the main-thread thinks that it can send empty transactions
and have APZ update the async transform (a.k.a. paint-skipping). So visually
neither APZ nor main-thread have an effect and the element doesn't appear to
scroll except with the tile-aligned displayport shifts. Disabling paint-skipping
on the element fixes the issue.

MozReview-Commit-ID: H4wpVLw8r8X
2017-03-15 08:24:08 -04:00
Ryan Hunt
2c77f8f73f Bug 1340904 - Implement telemetry scroll tracking in C++ r=smaug
--HG--
extra : rebase_source : dc2e3ac7ba8d20226bf97776ea6a46cfd9def947
extra : amend_source : 7cfdec720b53842502bab53131ef2c6a0e30ba48
2017-03-02 00:51:40 -05:00
Mats Palmgren
eb04852c0f Bug 1343298 - Remove nsHTMLScrollFrame::ReloadChildFrames() because it's redundant. r=jfkthame
The scroll frame is almost always the content's primary frame and if so
it already has the correct style values and the nsFrame ctor has set
mWritingMode correctly based on those.  For the edge cases where it's
not the primary frame, e.g. <fieldset style=overflow:scroll>, the UA
sheet specifies 'inherit' for the relevant properties so it has
the correct style values in this case too.

MozReview-Commit-ID: 1FMFNfF0IqU
2017-03-01 18:03:14 +01:00
Mats Palmgren
d13aaf9ce0 Bug 1340771 part 1 - Rename nsWeakFrame to AutoWeakFrame (automated change). r=tn
MozReview-Commit-ID: 8pl4nyeGEkr
2017-03-01 18:03:14 +01:00
Mats Palmgren
e8c6fd3388 Bug 1342801 - Store the 'writing-mode' used value on nsIFrame and make GetWritingMode non-virtual. r=jfkthame
MozReview-Commit-ID: HPhuxjDbOdh
2017-02-28 18:58:30 +01:00
Markus Stange
b43e156ce1 Bug 1340709 - Add profiler tracing markers for more phases of the refresh tick. r=mattwoodrow
This adds markers for FireScrollEvent, DispatchSynthMouseMove, ForwardTransaction, and NotifyDidPaint.

MozReview-Commit-ID: 9XahFGzIOls

--HG--
extra : rebase_source : 1985b2a11777a17dac621a35632f138a76224b0f
2017-02-17 13:03:37 -05:00
Ting-Yu Lin
8f840dc923 Bug 775624 Part 22 - Remove NS_FRAME_COMPLETE. r=dholbert
This patch is written by the following script with some manual adjustment to
the comment in nsRubyTextContainerFrame.cpp and nsRubyFrame.cpp, and
nsColumnSetFrame's constructor.

function rename() {
find layout\
     -type f\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -r "s/$1/$2/g" "{}" \;
}

rename "nsReflowStatus *([a-zA-Z0-9]*) = NS_FRAME_COMPLETE" "nsReflowStatus \1"
rename "([a-zA-Z0-9.*]*) *= NS_FRAME_COMPLETE;" "\1.Reset();"
rename "([a-zA-Z0-9.*]*) == NS_FRAME_COMPLETE" "\1.IsEmpty()"

MozReview-Commit-ID: 9tqQAHvdQex

--HG--
extra : rebase_source : 3119776946dc2c8350098b7bf9f3ceff29bdffb5
2017-02-14 17:55:48 +08:00
Botond Ballo
63b193e721 Bug 1328065 - Add a pref to always layerize the scrollbar track, for test purposes. r=mstange
MozReview-Commit-ID: GZY4tsdsFb4

--HG--
extra : rebase_source : e8a7aa5a1ccc813d220769bfe1c3e945e6fe81f4
2017-02-17 15:47:51 -05:00
Botond Ballo
0a1ee23556 Bug 1328065 - Record the target scroll id of scrollbar containers in the layer tree. r=mstange
MozReview-Commit-ID: DoyM64JJ4N8

--HG--
extra : rebase_source : 4c31d9ce488670bb2aab32fcba8e53bba8eaa7cf
2017-02-15 17:40:03 -05:00
William Chen
7690af08a2 Bug 1332511 - Adjust telemetry histograms for time to first input probes. r=jwatt, data=bsmedberg 2017-01-31 21:49:06 -07:00
Botond Ballo
a98321305e Bug 1328658 - Notify main thread of a failed attempt to start an APZ scrollbar drag. r=kats,tnikkel
MozReview-Commit-ID: ERm1sVNfoKL

--HG--
extra : rebase_source : 0b57987a2a15533fad577dd2d363ec386f6bfeae
2017-01-27 18:02:22 -05:00
Markus Stange
5e1d11e580 Bug 1298218 - Add a workaround for root scroll frame container layer scrolling. r=tnikkel
Root frame containers really throw a wrench into the whole system.

MozReview-Commit-ID: 9066vWMYxxr

--HG--
extra : rebase_source : 7e79c1ffa1a327e0ee9f780885e2fae02b8846ed
2017-01-27 17:38:55 +01:00
Markus Stange
6efd7c73b1 Bug 1298218 - Use DisplayItemClipChain for tracking clips on display items. r=mattwoodrow,tnikkel
This is the bulk of the changes.
 - DisplayItemScrollClip is removed. Instead, we will have 1) ActiveScrolledRoot
   and 2) DisplayItemClipChain.
 - ActiveScrolledRoot points to a scroll frame and allows traversing up the
   scroll frame chain.
 - DisplayItemClipChain is a linked list of clips, each clip being associated
   with the ActiveScrolledRoot that moves this clip.
 - Each display item has an ActiveScrolledRoot and a clip chain.
 - nsDisplayItem::GetClip returns the item of the clip chain that scrolls with
   the item's ASR. The separation between "regular clip" and "scroll clips"
   mostly goes away.
 - Tracking clips in the display list builder's clip state happens very
   similarly to how regular clips used to be tracked - there's a clip chain for
   content descendants and a clip chain for containing block descendants. These
   clip chains are intersected to create the combined clip chain.
 - There are strict rules for the ASR of a container item: A container item's
   ASR should be the innermost ASR which the item has finite clipped bounds with
   respect to.
 - At some point in the future, ASRs and AGRs should be reunified, but I haven't
   done that yet, because I needed to limit the scope of the change.

MozReview-Commit-ID: KYEpWY7qgf2

--HG--
extra : rebase_source : c727f6300a35463750639e165bfa37374c06b851
2017-01-31 17:07:35 -05:00
Markus Stange
0d3bb285fe Bug 1298218 - Back out bug 1284586. r=tnikkel
MozReview-Commit-ID: FGNKyDcoEyF

--HG--
extra : rebase_source : d1f73117513424e7da21d16162e14a3aba79ba70
2016-08-19 18:17:36 -04:00
Phil Ringnalda
403a7be2db Backed out changeset 9b9e53e7eee7 (bug 1326686) for causing frequent failures in test_scroll_snapping_scrollbars.html
--HG--
extra : rebase_source : 7e4a4cd87bcbb88c566b708881190f1b4c1dd964
2017-01-24 07:42:44 -08:00
Botond Ballo
035f7766e3 Bug 1326686 - Only use the most recent refresh time as the start time of an AsyncScroll when the refresh driver is under test control. r=kip
MozReview-Commit-ID: FkyJfbaPPVl

--HG--
extra : rebase_source : 58ea615484a54b74b76f17e859136cf371b7c05f
2017-01-20 19:28:29 -05:00
Kartikaya Gupta
9e559d6077 Bug 1327095 - Shift the rootCompBounds to maximize overlap with the displayportBase before intersecting. r=tnikkel
MozReview-Commit-ID: JI6avscMLs5
2017-01-09 21:46:56 -05:00
Kartikaya Gupta
bd279ccabc Bug 1329663 - Move code from ScrollFrameHelper's destructor the Destroy() function. r=tnikkel
MozReview-Commit-ID: 1OWCCvR6X2N
2017-01-09 17:21:44 -05:00
Iris Hsiao
7adb57a57f merge autoland to mozilla-central a=merge 2017-01-06 11:06:17 -05:00
Ting-Yu Lin
797609894a Bug 1320014 Part 7 - Convert half corner indices #define to an enum. r=mats
MozReview-Commit-ID: 8lNtjV14WTN

--HG--
extra : rebase_source : dbfa992a2ee3cab2f639fb5a68463a673410ade6
2017-01-05 11:31:38 +08:00
Cameron McCormack
babad063ff Bug 1328832 - Part 2: Rename mozFlushType to mozilla::FlushType and make it an enum class. r=bzbarsky
MozReview-Commit-ID: D3fIngSHSsl
2017-01-05 15:31:56 +08:00
William Chen
8e941520c1 Bug 1307675 - Part 1: Record time from first paint to time of first input. r=baku,jwatt 2016-11-08 17:39:28 -08:00
Neil Deakin
3bcbbdcf40 Bug 41708, support scrolling when hovering over the edge of a scrollframe while dragging, r=smaug 2016-12-20 13:39:30 -05:00
Markus Stange
6381db9b78 Bug 1310900 - Speed up ScrollFrameHelper::GetScrolledRect for the case where there is no overflow. r=mattwoodrow
MozReview-Commit-ID: 35CWyjlkfsg

--HG--
extra : rebase_source : 93fad406dfd71e71e893f79d9cbb56ef49a98388
2016-10-18 11:12:01 -04:00
Kartikaya Gupta
fa397ea897 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

--HG--
extra : rebase_source : 99fd1f91698a605792b2a622450f1ff31bc89101
2016-10-11 09:36:22 -04:00
Alex Henrie
b59026eb98 Bug 1301290 - Position resizer above own content but beneath overlapping content. r=mats 2016-10-06 08:44:00 -06:00
Kartikaya Gupta
3ac8695431 Bug 1305579 - If we fail to restore the scroll position while there's a reflow pending, hold on to it and try again later. r=tnikkel
MozReview-Commit-ID: DNmFJOiNeeW

--HG--
extra : rebase_source : b44d4c04c76a21fe00d8ae460068359550d3d136
2016-09-27 14:40:56 -04:00
Jonathan Kew
19eb5fe1ee Bug 1302389 - patch 2 - Add ScrollFrameHelper::IsBidiLTR to return the inline-bidi direction, as opposed to physical LTR-ness, and use this in GetScrolledFrameDir(). r=dholbert 2016-09-15 10:41:36 +01:00
Jonathan Kew
01c9f80e52 Bug 1302389 - patch 1 - Rename ScrollFrameHelper::IsLTR to IsPhysicalLTR for clarity (no behavior change). r=dholbert 2016-09-15 10:41:28 +01:00
Matt Woodrow
c0a7b324b9 Bug 1300611 - Move overflow rect into correct coordinate space when computing perspective overflows so that it's not affected by scroll position. r=dbaron 2016-09-14 18:00:17 +12:00
Kartikaya Gupta
0de88e9b65 Bug 1295019 - Suppress the APZ displayport while doing main-thread async scrolling. r=BenWa
MozReview-Commit-ID: 4xbotjcH3ZU

--HG--
extra : rebase_source : 56efef087af9e2675810c85611ee4bb2712e27ac
2016-09-08 13:30:04 -04:00
Kartikaya Gupta
f2a9facccf Bug 1297419 - Ensure that APZ smooth scrolls don't get clobbered by the main thread as a side-effect of reflow. r=tnikkel
MozReview-Commit-ID: 9124WMy8SmD

--HG--
extra : rebase_source : 848664a73b2357bbbc49604df03288fe5986053b
2016-09-06 14:43:41 -04:00
Daniel Holbert
5efd12c5f0 Bug 1300206: Add some missing #includes & namespaces in layout/generic, to prevent unified build bustage. r=mats
MozReview-Commit-ID: ETITppCzDjo

--HG--
extra : rebase_source : ca6f99991c9dfb1cf00c716c57b959d825560858
2016-09-02 15:01:09 -07:00
Kartikaya Gupta
3a210fcece Bug 1247074 - When a compositor-based smooth scroll animation is in progress and the scrollframe is reconstructed, restore to the animation destination. r=tnikkel
MozReview-Commit-ID: 73juHWNfoQy

--HG--
extra : rebase_source : 2820533eeb48870956cd6e545bd7705c898a6cad
2016-08-29 20:28:40 -04:00
Matt Woodrow
1dff32c24f Bug 1198135 - Part 3: Set the size of HTMLScrollFrames earlier so that we compute perspective earlier. r=dbaron 2016-08-25 11:18:56 +12:00
Matt Woodrow
bdbef762ca Bug 1198135 - Part 2: Compute the scrolled rect stored by ScrollFrameHelper as what will actually be scrollable. r=dbaron 2016-08-25 11:15:46 +12:00