Commit graph

1526 commits

Author SHA1 Message Date
Ehsan Akhgari
ebaa749322 Bug 1394191 - Remove unneeded nsContentList.h includes from layout; r=dholbert 2017-08-29 07:29:11 -04:00
Bobby Holley
8fb4fb3d6c Bug 1393791 - Stop unbinding native-anonymous content off a script runner. r=emilio
The failure mode in the attached crashtest is an inconsistency in the flattened
tree. Specifically, we null out mVideoControls in an nsVideoFrame, but defer
the UnbindFromTree call on that NAC element, which measn that its mParent still
points to the nsVideoFrame's mContent. Because all this stuff runs off of script
runners, and the anonymous content destroyer is not guaranteed to run before
other potential script runners, we end up running arbitrary script while the
tree mismatch exists. This script calls back into ProcessPendingRestyles, which
causes trouble.

We could build a separate deferral mechanism, but it's not clear that we actually
need to defer the unbind anymore. The deferred unbind was added in bug 489008,
which predated a lot of simplifications in layout/dom interaction.

MozReview-Commit-ID: 1JYAhiXKVJC
2017-08-27 15:29:36 -07:00
Bas Schouten
a2109666bb Bug 1363922 - Part 1: Remember about the reference frame during BuildDisplayList for ScrollFrameHelper so GetScrolledRect can use it. r=mstange
MozReview-Commit-ID: 8GO6xuSH5xY
2017-08-17 15:45:30 +02:00
Botond Ballo
ba4ac53b51 Bug 1340684 - Fire the scroll event before the style flush. r=mstange
This ensures that if the scroll event triggers style changes, they are
reflected on the same paint.

This is accomplished by having the refresh driver fire scroll events as
an explicit step after FlushType::Style observers and rAF callbacks, and
before the actual style flush.

MozReview-Commit-ID: 4kgauD5SgVo

--HG--
extra : rebase_source : 5f2c869c0749c1e1473797f2e202c075907a45fd
2017-08-09 21:08:38 -04:00
Bevis Tseng
6b5c329803 Bug 1390790 - Label ScrollFrameHelper::ScheduleSyntheticMouseMove. r=tnikkel 2017-08-16 17:10:36 +08:00
Matt Woodrow
781ec6ffa1 Bug 1388162 - Add a Destroy function to nsDisplayItem to use instead of manually invoking the destructor, this will allow us to recycle them in the future. r=mstange
* * *
[mq]: fix

MozReview-Commit-ID: LUXZAIL73BJ
2017-08-07 16:07:43 +12:00
Matt Woodrow
40f5b92e3b Bug 1388161 - Store the dirty rect on the display list builder rather than passing it as a parameter to BuildDisplayList. r=mstange 2017-08-07 14:23:35 +12:00
Sebastian Hengst
8257b2d113 Backed out changeset 8f2dd8f13b53 (bug 1388161) for failing chrome's test_animation_performance_warning.html | preserve-3d transform. r=backout 2017-08-10 14:40:21 +02:00
Sebastian Hengst
7f85daeb2a Backed out changeset e9985564e081 (bug 1388162) for failing chrome's test_animation_performance_warning.html | preserve-3d transform. r=backout 2017-08-10 14:40:20 +02:00
Matt Woodrow
95f2e31f88 Bug 1388162 - Add a Destroy function to nsDisplayItem to use instead of manually invoking the destructor, this will allow us to recycle them in the future. r=mstange 2017-08-07 16:07:43 +12:00
Matt Woodrow
a3a130b6ff Bug 1388161 - Store the dirty rect on the display list builder rather than passing it as a parameter to BuildDisplayList. r=mstange 2017-08-07 14:23:35 +12:00
Timothy Nikkel
eb6908084a Bug 1356705 - Update range when an async smooth scroll is interrupted with a new scroll. r=kip
MozReview-Commit-ID: 3iU6oJz8O6O

--HG--
extra : rebase_source : 64b1394181560158036b54860bc68618393b7a43
2017-04-28 01:52:00 -04:00
Jonathan Watt
bcaeb4d9e8 Bug 1379474 - Update various ReflowInput variable names to match the new type name. r=xidorn
MozReview-Commit-ID: 1pMLInpeMGY
2017-07-25 12:02:35 +01:00
Timothy Nikkel
5db4da69f6 Backed out changeset bc4c5281f2c2 (bug 1379887) for causing regressions. 2017-07-29 01:21:32 -05:00
Kartikaya Gupta
1fc595df29 Bug 1382682 - Update a param to be a const-ptr. r=mstange
MozReview-Commit-ID: 1bFolt83iaL

--HG--
extra : rebase_source : 4f9839f4accbe2b41b62a1ad36f8a9164fbae66e
2017-07-20 12:33:09 -04:00
Kartikaya Gupta
4b9801e41b Bug 1359808 - Don't do empty transactions for scroll updates if there are already pending transforms in the layer tree. r=mstange
The pending transforms must have been computed using the older scroll offset
values, which means that updating the scroll offsets without recomputing the
transforms will make them wrong. If we do an empty transaction for the scroll
offset updates, the transforms will not get computed. This patch catches this
scenario and schedules a full paint instead of the empty transaction instead.
The case where the scroll offset is modified *before* the transform is already
handled by code in nsIFrame::TryUpdateTransformOnly.

MozReview-Commit-ID: I5s5J7BS1ru

--HG--
extra : rebase_source : 63fec656440c8bee322f069a4466a311ebcd0f7d
2017-07-12 11:14:11 -04:00
Daniel Holbert
84d56b987a Bug 1380461 part 1: Clarify ancient code-comment about the helper-variables we use as AddRemoveScrollbar outparams. r=jfkthame
MozReview-Commit-ID: Fxzes2yuLHJ

--HG--
extra : rebase_source : 27207908b6bc703fb64e975316c68db0c4dfa1d1
2017-07-13 09:45:52 -07:00
Daniel Holbert
ac96bfc73b Bug 1380461 part 0: Fix mis-indentation in nsXULScrollFrame::AddRemoveScrollbar. (whitespace-only) r=jfkthame
MozReview-Commit-ID: zJBPEUa4Po

--HG--
extra : rebase_source : 68506d3f0b6c6cf86a29b9c6d28b44386c029687
2017-07-13 09:45:44 -07:00
L. David Baron
df36211f4f Bug 1380521 - Fix spelling of mSuppressScrollbarUpdate member variable. r=dholbert
MozReview-Commit-ID: 6i2cz2Flwtb
2017-07-12 19:37:11 -07:00
L. David Baron
57368ff4e7 Bug 1379334 - Make XULScrollFrame test for needing a vertical scrollbar because of the size of the horizontal scrollbar. r=dholbert
This fixes an incremental layout bug, where the number of times we
reflow the frame affects its layout.  This is because we make the
decisions about the vertical scrollbar before the horizontal scrollbar
(and, when making the decision, adjust mHelper.mScrollPort for the size
of the scrollbar).  Thus, in order to avoid a situation where reflowing
the scrollframe once leads us to have no vertical scrollbar, but
reflowing it a second time leads us to add that scrollbar, we need to
retest for the need for a vertical scrollbar after we add the horizontal
one.

(It's possible there are some other missing cases here, but this is the
one that (a) already existed in the code and (b) is needed to fix the
reftest failure on Windows that I got on bug 1308876, in
layout/reftests/text-overflow/xulscroll.html .

The reftest here shows the bug even without bug 1308876 (though I
confirmed that only by loading the test and reference in a nightly
build, not in the reftest harness).  I did test that, in combination
with bug 1308876, the test fails without the patch and passes with the
patch.

MozReview-Commit-ID: LhMi7LbmB6J
2017-07-12 19:37:11 -07:00
L. David Baron
5381103fc6 Bug 1379334 - Convert mis-indented code to 2-space indent, plus bracing and logical operator position fixes when reindenting. r=dholbert
MozReview-Commit-ID: ElsSNF40LZQ
2017-07-12 19:37:11 -07:00
Timothy Nikkel
96e0c1cbc6 Bug 1379887. Don't clobber the value of mWillBuildScrollableLayer when we are building a display list for event handling. r=mstange
ScrollFrameHelper::DecideScrollableLayer doesn't get the actual value of usingDisplayPort/wasUsingDisplayPort if we are not painting to the window. It then sets mWillBuildScrollableLayer to usingDisplayPort. mWillBuildScrollableLayer is the value that determines if we are active and hence an ASR, we don't want to change that between paint display lists for an event handling display list.

We then want to condition uses of mWillBuildScrollableLayer and the return value of DecideScrollableLayer on if we want painting to the window so we get the same behaviour as before when not painting to the window.
2017-07-11 15:30:04 -05:00
Botond Ballo
60d852855e 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
Carsten "Tomcat" Book
6121e5b902 Backed out changeset 31c43a9ffa8b (bug 1379474) for bustage 2017-07-10 08:06:30 +02:00
Jonathan Watt
b4ab3914e7 Bug 1379474 - Update various ReflowInput variable names to match the new type name. r=xidorn
MozReview-Commit-ID: 1pMLInpeMGY
2017-06-13 11:45:17 +01:00
Sylvestre Ledru
4e9cf83ee8 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG

--HG--
extra : rebase_source : 7235b3802f25bab29a8c6ba40a181a722f3df0ce
2017-07-06 14:00:35 +02:00
Mats Palmgren
7271bffe14 Bug 1377713 - Use an AutoTArray in GetScrollPortSizeExcludingHeadersAndFooters to avoid malloc/free in most cases. r=tn
MozReview-Commit-ID: 61rJb3cFNio
2017-07-05 02:04:15 +02:00
Bill McCloskey
f115503a0b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
Carsten "Tomcat" Book
8a1350b5a6 Backed out changeset 4f6302a98ae4 (bug 1372405)
--HG--
extra : rebase_source : 41632f3158e88e692809731394a683d065a73dfb
2017-06-21 13:59:26 +02:00
Bill McCloskey
6b3e84ed5f Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-20 21:44:11 -07:00
Carsten "Tomcat" Book
ea1b86680c Backed out changeset 9846de3bd954 (bug 1372405)
--HG--
extra : rebase_source : 5d4a48e8ec394c329994689d938d2a6e9b2752b0
2017-06-20 08:27:02 +02:00
Bill McCloskey
4592152411 Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-19 22:25:47 -07:00
Alexis Beingessner
adb013669b Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-13 11:00:10 -04:00
Nicholas Nethercote
0be77baa96 Bug 1370329 (part 1) - Clean up the profiler's RAII classes. r=mstange.
This patch does the following renamings, which increase consistency.

- GeckoProfilerInitRAII -> AutoProfilerInit
- GeckoProfilerThread{Sleep,Wake}RAII -> AutoProfilerThread{Sleep,Wake}
- GeckoProfilerTracingRAII -> AutoProfilerTracing
- AutoProfilerRegister -> AutoProfilerRegisterThread
- ProfilerStackFrameRAII -> AutoProfilerLabel
- nsJSUtils::mProfilerRAII -> nsJSUtils::mAutoProfilerLabel

Plus a few other minor ones (e.g. local variables).

The patch also add MOZ_GUARD_OBJECT macros to all the profiler RAII classes
that lack them, and does some minor whitespace reformatting.

--HG--
extra : rebase_source : 47e298fdd6f6b4af70e3357ec0b7b0580c0d0f50
2017-06-07 12:33:19 +10:00
Sebastian Hengst
f3bf820bfd Backed out changeset 3d1ce85e6348 (bug 1088760) for bustage, at least on Android at layout/generic/nsPluginFrame.cpp:1612. r=backout 2017-06-13 00:30:03 +02:00
Alexis Beingessner
c75211cb95 Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-12 17:32:48 -04:00
Mats Palmgren
a254b64145 Bug 1364805 part 4 - Remove the now unused LayoutFrameType values from the ctors. r=jfkthame
MozReview-Commit-ID: 1RSDoc3pQXf
2017-05-26 12:11:11 +02:00
Mats Palmgren
1242172259 Bug 1364805 part 2 - Add a nsIFrame::mClass field and propagate the concrete class' value up the ctor chain. r=jfkthame
nsIFrame::mClass is of type enum class nsQueryFrame::ClassID which is
a strict subset of the nsQueryFrame::FrameIID values.  For a concrete
frame class, its FrameIID is the same numeric value as its ClassID.

MozReview-Commit-ID: 1N0AkCGo1ol
2017-05-26 12:11:11 +02:00
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
Matt Woodrow
c38bfdabb3 Bug 1198135 - Part 1: Recompute all required overflow areas when scrolling. r=dbaron 2016-08-25 11:15:33 +12:00
tlin@mozilla.com
54d89b5a5c Bug 1295084 Part 3 - Move nsStyleImageLayers::Position to mozilla::Position. r=dholbert
--HG--
extra : rebase_source : 6684d08700f9d7fed9fc1572871a0250d43b74cf
2016-08-25 09:59:51 +00:00
Kartikaya Gupta
4600f9a2b5 Bug 1292781 - Send scroll-position-restore updates to APZ, but don't allow them to clobber user scrolls. r=tnikkel
Previously we weren't sending scroll position updates with origin nsGkAtoms::restore
over to the APZ at all, on the assumption that they should never clobber an APZ
scroll offset. However, there are scenarios where that is not true.

In particular, during a frame reconstruction, a layers update may be sent to the
compositor between the time a scrollframe has RestoreState() called on it, and
the time the scrollframe has ScrollToRestoredPosition() called on it. The layers
update that happens during this interval (correctly) sends a scroll position of
(0,0), and forces the APZ to scroll to that position. This is necessary to
prevent APZ from remaining at an invalid scroll offset while the frame is still
being rebuilt.

However, once ScrollToRestoredPosition() is called and the old scroll offset is
restored, that restored scroll position needs to get sent to the APZ in order to
have it properly restore to the original scroll position. In order to do this,
the main thread must flag the metrics with a scroll offset update. Since the user
may have scrolled concurrently in the compositor from the (0,0) position, we also
need to check for that case in the APZ code and avoid restoring the scroll
position. This is equivalent to the corresponding main-thread code in
ScrollToRestoredPosition().

MozReview-Commit-ID: LxRapVSrsJ3
2016-08-24 09:15:29 -04:00
Kan-Ru Chen
b6d880aca1 Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj
The patch is generated from following command:

  rgrep -l unused.h|xargs sed -i -e s,mozilla/unused.h,mozilla/Unused.h,

MozReview-Commit-ID: AtLcWApZfES


--HG--
rename : mfbt/unused.h => mfbt/Unused.h
2016-08-24 14:47:04 +08:00
Phil Ringnalda
bf198cf202 Backed out 2 changesets (bug 1198135) for e10s reftest assertion failures
CLOSED TREE

Backed out changeset 05d5dee06384 (bug 1198135)
Backed out changeset 0d6ede0caa26 (bug 1198135)
2016-08-18 19:23:26 -07:00
Matt Woodrow
b2a3b682b3 Bug 1198135 - Part 2: Compute the scrolled rect stored by ScrollFrameHelper as what will actually be scrollable. r=dbaron
--HG--
extra : rebase_source : 3b47a778798069531d804393724b14194342866a
2016-08-18 16:09:47 +12:00
Matt Woodrow
06275ce493 Bug 1198135 - Part 1: Recompute all required overflow areas when scrolling. r=dbaron
--HG--
extra : rebase_source : a9e34de77013548aa8a456f171ec77e58930af81
2016-08-18 16:08:17 +12:00
Randall Barker
9a3fae864f Bug 1291373 - [geckoview] part 3, Remove MOZ_ANDROID_APZ r=botond,snorp 2016-08-16 14:33:43 -07:00
L. David Baron
6660436867 Bug 1294918 - Fix spelling of method name nsIFrame::IsAbsPosContainingBlock. r=dholbert
This misspelling was introduced in bug 1125767, changeset b9951cca6d1f.

MozReview-Commit-ID: KQNlLelY2Kn

--HG--
extra : rebase_source : 7b2b8379da23b06737b462dd4c316b5758d807a9
2016-08-12 18:39:45 -07:00
Markus Stange
ebb461c874 Bug 1012752 - Snap scrolled area to layer pixels. r=tnikkel
We want the maximum scroll position to be aligned with layer pixels. That way
we don't have to re-rasterize the scrolled contents once scrolling hits the
edge of the scrollable area.

Here's how we determine the maximum scroll position: We get the scroll port
rect, snapped to layer pixels. Then we get the scrolled rect and also snap
that to layer pixels. The maximum scroll position is set to the difference
between right/bottom edges of these rectangles.
Now the scrollable area is computed by adding this maximum scroll position
to the unsnapped scroll port size.
The underlying idea here is: Pretend we have overflow:visible so that the
scrolled contents start at (0, 0) relative to the scroll port and spill over
the scroll port edges. When these contents are rendered, their rendering is
snapped to layer pixels. We want those exact pixels to be accessible by
scrolling.

This way of computing the snapped scrollable area ensures that, if you scroll
to the maximum scroll position, the right/bottom edges of the rendered
scrolled contents line up exactly with the right/bottom edges of the scroll
port. The scrolled contents are neither cut off nor are they moved too far.
(This is something that no other browser engine gets completely right, see the
testcase in bug 1012752.)

There are also a few disadvantages to this solution. We snap to layer pixels,
and the size of a layer pixel can depend on the zoom level, the document
resolution, the current screen's scale factor, and CSS transforms. The snap
origin is the position of the reference frame. So a change to any of these
things can influence the scrollable area and the maximum scroll position.
This patch does not make us adjust the current scroll position in the event
that the maximum scroll position changes such that the current scroll position
would be out of range, unless there's a reflow of the scrolled contents. This
means that we can sometimes render a slightly inconsistent state where the
current scroll position exceeds the maximum scroll position. We can fix this
once it turns out to be a problem; I doubt that it will be a problem because
none of the other browsers seems to prevent this problem either.

The size of the scrollable area is exposed through the DOM properties
scrollWidth and scrollHeight. At the moment, these are integer properties, so
their value is rounded to the nearest CSS pixel. Before this patch, the
returned value would always be within 0.5 CSS pixels of the value that layout
computed for the content's scrollable overflow based on the CSS styles of the
contents.
Now that scrollWidth and scrollHeight also depend on pixel snapping, their
values can deviate by up to one layer pixel from what the page might expect
based on the styles of the contents. This change requires a few changes to
existing tests.
The fact that scrollWidth and scrollHeight can change based on the position of
the scrollable element and the zoom level / resolution may surprise some web
pages. However, this also seems to happen in Edge. Edge seems to always round
scrollWidth and scrollHeight upwards, possibly to their equivalent of layout
device pixels.

MozReview-Commit-ID: 3LFV7Lio4tG

--HG--
extra : rebase_source : 3e4e0b60493397e61283aa1d7fd93d7c197dec29
extra : source : d43c2d5e87f31ff47d7f3ada66c3f5f27cef84a9
2016-08-04 23:51:58 -04:00
Kartikaya Gupta
ed11c9125a Bug 1241550 - Don't do paint skipping if there are plugin frames anywhere on the page, instead of limiting it to the scrollframe's descendants. r=jimm
MozReview-Commit-ID: 6fzAIrTDgla
2016-08-02 16:43:34 -04:00
Andi-Bogdan Postelnicu
cb60cc4703 Bug 1282408 - add ignore initialization check flag for bool variables from ScrollReflowInput. r=dbaron
MozReview-Commit-ID: 6IDxHLbSkoJ
2016-07-28 13:57:19 +03:00
Ting-Yu Lin
40fcd21b9a Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron
This patch is generated by the following script:

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

rename "([[:alpha:]]*)([rR])eflowState(s?)" "\1\2eflowInput\3"

MozReview-Commit-ID: ITFO7uMTkSb

--HG--
extra : rebase_source : c91a2e174a0baec60c1b0111ac7636295004ab35
2016-07-21 18:36:39 +08:00
Ting-Yu Lin
55cde36029 Bug 1277129 Part 6b - Rename rendContext to mRenderingContext in SizeComputationInput. r=dbaron
MozReview-Commit-ID: LczLJDtDncy

--HG--
extra : rebase_source : c32e928ae25f94305fb907db89278dce7304a903
2016-07-21 18:36:38 +08:00
Ting-Yu Lin
cd13f0ea71 Bug 1277129 Part 6a - Rename frame to mFrame in SizeComputationInput. r=dbaron
MozReview-Commit-ID: 3SXZ4qEZJc

--HG--
extra : rebase_source : 577d48f047af163585acea95dda311358f5e8c25
2016-07-21 18:36:38 +08:00
Ting-Yu Lin
4053c4c028 Bug 1277129 Part 5c - Rename nsHTMLReflowMetrics to ReflowOutput. r=dbaron
This patch is generated by the following script:

function rename() {
find .\
     -type f\
     ! -path "./obj*"\
     ! -path "./.git"\
     ! -path "./.hg"\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -e "s/$1/$2/g" "{}" \;
}

rename "nsHTMLReflowMetrics" "ReflowOutput"

MozReview-Commit-ID: 2HBb7DkooH5

--HG--
extra : rebase_source : acfa442a6483772fcb5748dc6f5e7072e599032a
2016-07-21 18:36:38 +08:00
Ting-Yu Lin
ecfae6abac Bug 1277129 Part 4b - Rename ScrollReflowState to ScrollReflowInput. r=dbaron
MozReview-Commit-ID: ILLqDYR0vkZ

--HG--
extra : rebase_source : d6167b5673e854f1a6e6b00fa942cd81e534ce49
2016-07-21 18:36:37 +08:00
Ting-Yu Lin
9c26b29bf4 Bug 1277129 Part 4a - Move ScrollReflowState into mozilla namespace. r=dbaron
MozReview-Commit-ID: C8drnMacxO

--HG--
extra : rebase_source : b0a492d44785c6f2f6afc8aedb8b9cd2dece86b3
2016-07-21 18:36:36 +08:00
Ting-Yu Lin
820f88de49 Bug 1277129 Part 1c - Rename nsHTMLReflowState to ReflowInput. r=dbaron
This patch is generated by the following script:

function rename() {
find .\
     -type f\
     ! -path "./obj*"\
     ! -path "./.git"\
     ! -path "./.hg"\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -e "s/$1/$2/g" "{}" \;
}

rename nsHTMLReflowState ReflowInput

MozReview-Commit-ID: 9r9vdVv1pXc

--HG--
extra : rebase_source : 623ec822996ba0ea0058dd137acf5a658cdea04a
2016-07-21 18:36:35 +08:00
Markus Stange
6bb3620330 Back out bug 1012752 for causing bug 1285532 and bug 1286674.
MozReview-Commit-ID: DYZ3D4yL1eZ

--HG--
extra : source : b98df554a6f0aa154275d363163ec618189503ed
2016-07-16 17:10:08 -04:00
Bob Owen
4ec3db3eec Bug 1252877 Part 7: Wait for plugin updates during active animations. r=dvander, r=jimm
Also, apply plugin updates when they arrive not just during composition.

MozReview-Commit-ID: FZJYiPqb5uZ
2016-07-18 09:54:02 +01:00
Bob Owen
88df0f1a00 Bug 1252877 Part 6: Fix plugin frame check for paint skipping and short circuit the search for plugin frames. r=jimm
MozReview-Commit-ID: EqAhU20Vkxm
2016-07-18 09:54:02 +01:00
Bob Owen
73dac13bac Bug 1252877 Part 4: Remove notification of plugins about scrolling from child. r=jimm
MozReview-Commit-ID: 2tHtOxx7jKa
2016-07-18 09:54:02 +01:00
Kartikaya Gupta
504b319a29 Bug 1287185 - Disable paint skipping for scrollframes with background-attachment:local. r=mstange
MozReview-Commit-ID: GMgIyxUd20c

--HG--
extra : rebase_source : 2fec3dd0a02aa0ab6eab69e9e6ee6229863be10e
2016-07-15 15:56:39 -04:00
Kartikaya Gupta
982bc8ba1f Bug 1284586 - Disable paint-skipping for scrollframes that we detect as having a CSS-clipped descendant. r=mstange
MozReview-Commit-ID: AvjokFZMwdd
2016-07-13 16:05:53 -04:00
Markus Stange
f8e66e0cdf Bug 1012752 - Snap scrolled area to layer pixels. r=tnikkel
We want the maximum scroll position to be aligned with layer pixels. That way
we don't have to re-rasterize the scrolled contents once scrolling hits the
edge of the scrollable area.

Here's how we determine the maximum scroll position: We get the scroll port
rect, snapped to layer pixels. Then we get the scrolled rect and also snap
that to layer pixels. The maximum scroll position is set to the difference
between right/bottom edges of these rectangles.
Now the scrollable area is computed by adding this maximum scroll position
to the unsnapped scroll port size.
The underlying idea here is: Pretend we have overflow:visible so that the
scrolled contents start at (0, 0) relative to the scroll port and spill over
the scroll port edges. When these contents are rendered, their rendering is
snapped to layer pixels. We want those exact pixels to be accessible by
scrolling.

This way of computing the snapped scrollable area ensures that, if you scroll
to the maximum scroll position, the right/bottom edges of the rendered
scrolled contents line up exactly with the right/bottom edges of the scroll
port. The scrolled contents are neither cut off nor are they moved too far.
(This is something that no other browser engine gets completely right, see the
testcase in bug 1012752.)

There are also a few disadvantages to this solution. We snap to layer pixels,
and the size of a layer pixel can depend on the zoom level, the document
resolution, the current screen's scale factor, and CSS transforms. The snap
origin is the position of the reference frame. So a change to any of these
things can influence the scrollable area and the maximum scroll position.
This patch does not make us adjust the current scroll position in the event
that the maximum scroll position changes such that the current scroll position
would be out of range, unless there's a reflow of the scrolled contents. This
means that we can sometimes render a slightly inconsistent state where the
current scroll position exceeds the maximum scroll position. We can fix this
once it turns out to be a problem; I doubt that it will be a problem because
none of the other browsers seems to prevent this problem either.

The size of the scrollable area is exposed through the DOM properties
scrollWidth and scrollHeight. At the moment, these are integer properties, so
their value is rounded to the nearest CSS pixel. Before this patch, the
returned value would always be within 0.5 CSS pixels of the value that layout
computed for the content's scrollable overflow based on the CSS styles of the
contents.
Now that scrollWidth and scrollHeight also depend on pixel snapping, their
values can deviate by up to one layer pixel from what the page might expect
based on the styles of the contents. This change requires a few changes to
existing tests.
The fact that scrollWidth and scrollHeight can change based on the position of
the scrollable element and the zoom level / resolution may surprise some web
pages. However, this also seems to happen in Edge. Edge seems to always round
scrollWidth and scrollHeight upwards, possibly to their equivalent of layout
device pixels.

MozReview-Commit-ID: 3LFV7Lio4tG

--HG--
extra : histedit_source : 5390eeebfe9a2791d9ac8e91ec1dfec4ec7b4118
2016-06-02 15:41:51 -04:00
Carsten "Tomcat" Book
3a42c363cc merge mozilla-inbound to mozilla-central a=merge 2016-06-30 12:33:41 +02:00
Kartikaya Gupta
63a50e8725 Bug 1253683 - Don't layerize scrollframes which are overflow:scroll but not actually scrollable. r=tnikkel
MozReview-Commit-ID: 6DUE3PB2hLI

--HG--
extra : rebase_source : 2e9aa59f5545a14ec70dcb6b7fbaf97bcce5dd0b
2016-06-29 14:29:40 -04:00
Jonathan Watt
b15368cfcb Bug 1279451 - Remove a lot of unnecessary includes of nsAutoPtr.h. rs=sparky 2016-06-07 21:10:18 +01:00
Jonathan Chan
42ba4360c9 Bug 1043537 - Don't show resize handle for generated content. r=Enn
MozReview-Commit-ID: IZHqb9IwaAl
2016-06-07 10:22:04 -07:00
Botond Ballo
2f0dad8fb6 Bug 1276107 - Ensure sorting display items by z-order doesn't cause event-regions items to end up below items they are supposed to cover. r=mattwoodrow
MozReview-Commit-ID: BxnshG9TgRb

--HG--
extra : rebase_source : 5817e50d64a1211e224c9b6dbd3e3efdcd5e48f0
extra : intermediate-source : 6f03149a7565e317156cc7218120f39c9fb41915
extra : source : 4c1ca58448e3513691f92c1f9f0a92329ccc17c5
extra : histedit_source : d3ddaa7425ac1e2a1b019c957525653aeee8a4da
2016-05-30 20:01:04 -04:00
Botond Ballo
d9b184b83a Bug 1276107 - Ensure that the event-regions display item for a scrollable subframe ends up on top of perspective child items. r=mattwoodrow
MozReview-Commit-ID: 8nyeZb7g8Po

--HG--
extra : rebase_source : b8844ff0adc346b99276623d902f11ef00201aa2
extra : intermediate-source : 7658c369fd33bbb5e1b91f98a12061294c05db90
extra : source : 605e81003024844d1c7a34022e5c9bc7956f92c9
extra : histedit_source : 3e4ee4b583e09a481ec4ff80ebe87890c70a28e0
2016-05-30 18:56:32 -04:00
Wes Kocher
086c164bf6 Backed out 6 changesets (bug 1276107) for windows apz test bustage CLOSED TREE
Backed out changeset acd104ba0e8d (bug 1276107)
Backed out changeset f15df83c29a6 (bug 1276107)
Backed out changeset cd06b8e0f6dc (bug 1276107)
Backed out changeset e8361d5c43d2 (bug 1276107)
Backed out changeset 6f03149a7565 (bug 1276107)
Backed out changeset 7658c369fd33 (bug 1276107)
2016-06-06 12:16:52 -07:00
Botond Ballo
5a82b92113 Bug 1276107 - Ensure sorting display items by z-order doesn't cause event-regions items to end up below items they are supposed to cover. r=mattwoodrow
MozReview-Commit-ID: BxnshG9TgRb

--HG--
extra : rebase_source : 5817e50d64a1211e224c9b6dbd3e3efdcd5e48f0
extra : source : 4c1ca58448e3513691f92c1f9f0a92329ccc17c5
extra : histedit_source : d3ddaa7425ac1e2a1b019c957525653aeee8a4da
2016-05-30 20:01:04 -04:00
Botond Ballo
d085f720c0 Bug 1276107 - Ensure that the event-regions display item for a scrollable subframe ends up on top of perspective child items. r=mattwoodrow
MozReview-Commit-ID: 8nyeZb7g8Po

--HG--
extra : rebase_source : b8844ff0adc346b99276623d902f11ef00201aa2
extra : source : 605e81003024844d1c7a34022e5c9bc7956f92c9
extra : histedit_source : 3e4ee4b583e09a481ec4ff80ebe87890c70a28e0
2016-05-30 18:56:32 -04:00
Matt Woodrow
d6c0343e48 Bug 1274962 - Part 7: Clean up unecessary parameter for RecomputePerspectiveChildrenOverflow. r=dbaron 2016-06-03 14:26:40 +12:00
Phil Ringnalda
f00b6395cb Back out 7 changesets (bug 1274962) for timeouts in browser_tableWidget_mouse_interaction.js
CLOSED TREE

Backed out changeset c5c9bc65a408 (bug 1274962)
Backed out changeset 15b5f8019521 (bug 1274962)
Backed out changeset 9ac50a46557b (bug 1274962)
Backed out changeset 9cda37e5a581 (bug 1274962)
Backed out changeset bb0230c4bb6d (bug 1274962)
Backed out changeset 56ededfbdee6 (bug 1274962)
Backed out changeset e081fc6f3f90 (bug 1274962)
2016-06-02 20:37:31 -07:00
Matt Woodrow
09d7165bcb Bug 1274962 - Part 7: Clean up unecessary parameter for RecomputePerspectiveChildrenOverflow. r=dbaron
--HG--
extra : rebase_source : 074d48327f4fe2450caab3a1cfa6db30f97b6c37
2016-06-03 14:26:40 +12:00
Sebastian Hengst
d67adf9024 Backed out changeset e79968b5fd84 (bug 1276107) for often failing test_group_wheelevents.html with e10s. r=backout 2016-06-02 22:54:31 +02:00
Sebastian Hengst
58605fbcd6 Backed out changeset 8df1bde7eafd (bug 1276107) 2016-06-02 22:54:31 +02:00
Botond Ballo
5067bf046b Bug 1276107 - Ensure sorting display items by z-order doesn't cause event-regions items to end up below items they are supposed to cover. r=mattwoodrow
MozReview-Commit-ID: BxnshG9TgRb

--HG--
extra : source : 4c1ca58448e3513691f92c1f9f0a92329ccc17c5
extra : histedit_source : d3ddaa7425ac1e2a1b019c957525653aeee8a4da
2016-05-30 20:01:04 -04:00
Botond Ballo
60bd909191 Bug 1276107 - Ensure that the event-regions display item for a scrollable subframe ends up on top of perspective child items. r=mattwoodrow
MozReview-Commit-ID: 8nyeZb7g8Po

--HG--
extra : source : 605e81003024844d1c7a34022e5c9bc7956f92c9
extra : histedit_source : 3e4ee4b583e09a481ec4ff80ebe87890c70a28e0
2016-05-30 18:56:32 -04:00
Kartikaya Gupta
47b3b7b426 Bug 1280013 - Incorporate the APZ callback transforms when using the root composition bounds to clip the displayport base. r=botond,tnikkel
MozReview-Commit-ID: 1HOGQnCjIMt
2016-06-29 08:50:20 -04:00
Carsten "Tomcat" Book
6dc6665bce Backed out changeset 4cfdd1649464 (bug 1263349) 2016-05-24 11:13:59 +02:00
Seth Fowler
1cb3c53e11 Bug 1263349 (Part 2) - Cache the current scroll parent and information about scrollports and displayports on nsDisplayListBuilder. r=botond,mstange 2016-05-24 01:12:48 -07:00
Jonathan Kew
bfdda7ee51 Bug 1272997 - followup 1 - Check for orthogonal writing modes when propagating (logical) resize flags from parent to child. r=dholbert 2016-05-18 21:07:54 +01:00
Kartikaya Gupta
11bfa10a5a Bug 1264297 - Don't do paint-skipping for elements with perspective, until we can properly populate the displayport. r=mstange
MozReview-Commit-ID: D3wKzWU72yi

--HG--
extra : rebase_source : f4487d2b37fe9799b32b40d0207b44dd50fca42f
2016-05-16 12:07:01 -04:00
Markus Stange
8ece268559 Bug 1263192 - Clip scrolled contents to the display port. r=mattwoodrow
MozReview-Commit-ID: 4Uut8OAmCAd

--HG--
extra : rebase_source : 6b32f018f671ce0028dc558fdecc43c41756e1fa
2016-05-12 18:56:24 -04:00
Matt Woodrow
47cde44daf Bug 1243610 - Refactor UpdateOverflow to separate out local overflow from that contributed by descendants. r=dbaron 2016-05-04 12:27:43 +12:00
Kartikaya Gupta
65f5105de7 Bug 1269539 - Ensure that the scroll position is restored properly on reloading a page which loads incrementally. r=tnikkel
MozReview-Commit-ID: 1qVA5yU7a7g

--HG--
extra : rebase_source : 032336d7552ece6dbeafa4eb07eceb7ed2a096ba
2016-05-03 10:40:20 -04:00
Kartikaya Gupta
bf75215060 Bug 1266833 - When the scroll position is clamped during a frame reconstruction, send a scroll offset update to APZ. r=tnikkel
MozReview-Commit-ID: 2UBM4AWWIVI
2016-05-02 15:44:29 -04:00
Kartikaya Gupta
0858e31ab6 Bug 1268195 - When restoring a scroll position outside of incremental load, don't keep trying in a loop - just do it once and stop. r=tnikkel
It may be that when the frame is reconstructed after load, the frame gets shorter,
and the old scroll position cannot be restored, because it is out of bounds. In
such a case, we don't want to keep mRestorePos tracking the old scroll position,
because it can get incorrectly applied on a future frame reconstruction. Instead,
for scroll position restorations during frame reconstructions, we just try the
restore once and then clear mRestorePos.

MozReview-Commit-ID: BHoJHz0mGmf
2016-04-29 23:06:18 -04:00
Botond Ballo
b198a432f2 Bug 1268009 - If APZ is force-disabled, disable paint skipping even for apz-originated scrolls. r=kats
MozReview-Commit-ID: 2HgM5XiTcgA

--HG--
extra : rebase_source : 86ced7735a7db45a74209efc6a1d8a2e0c5d77ab
2016-04-27 16:55:34 -04:00
L. David Baron
1fff16a212 Bug 1053986 - Rename nsBox::DoLayout to DoXULLayout. r=dholbert
Written purely with sed, over .h and .cpp files in layout/.

(While this wasn't explicitly reviewed, I'm considering it as r=dholbert
based on the request in comment 47 in the bug.)

MozReview-Commit-ID: 6Q0F4ViOyjJ
2016-04-20 21:28:35 -07:00
L. David Baron
e0db98947a Bug 1053986 - Rename nsIFrame::AddCSSPrefSize, AddCSSMinSize, AddCSSMaxSize, and AddCSSFlex by replacing CSS with XUL. r=dholbert
Written purely with sed, over .h and .cpp files in layout/.

MozReview-Commit-ID: BTsQw1EMqvY
2016-04-20 21:28:34 -07:00
L. David Baron
ff032066f9 Bug 1053986 - Rename nsIFrame::IsHorizontal to IsXULHorizontal, and related methods. r=dholbert
This is a manual subset of changes written with sed, over .h and .cpp
files in layout/.

This also renames a static method on nsSprocketLayout.

Note that nsFlexContainerFrame and nsRangeFrame also have IsHorizontal
methods that are not renamed here, but this can be found to be
relatively safe because none of the IsHorizontal methods are virtual.

MozReview-Commit-ID: Jsdy7I4Q7mX
2016-04-20 21:28:34 -07:00
L. David Baron
9b3e98ff35 Bug 1053986 - Rename nsIFrame::GetClientRect to GetXULClientRect. r=dholbert
This is a manual subset of changes written with sed, over .h and .cpp
files in layout/.

MozReview-Commit-ID: 2F7Bt3i4ogu
2016-04-20 21:28:33 -07:00
L. David Baron
e857dc05f7 Bug 1053986 - Rename nsIFrame::SetLayoutManager to SetXULLayoutManager. r=dholbert
Written purely with sed, over .h and .cpp files in layout/.

MozReview-Commit-ID: FuOaNWfROKV
2016-04-20 21:28:33 -07:00
L. David Baron
a18df38599 Bug 1053986 - Rename nsIFrame::GetMargin to GetXULMargin. r=dholbert
This is a manual subset of changes written with sed, over .h and .cpp
files in layout/.

MozReview-Commit-ID: GqAa9wyb8z3
2016-04-20 21:28:33 -07:00
L. David Baron
5d30ee8dc8 Bug 1053986 - Rename nsIFrame::GetPadding to GetXULPadding. r=dholbert
This is a manual subset of changes written with sed, over .h and .cpp
files in layout/.

MozReview-Commit-ID: ENHslSI6hch
2016-04-20 21:28:33 -07:00
L. David Baron
e8c729768f Bug 1053986 - Rename nsIFrame::GetBorderAndPadding to GetXULBorderAndPadding. r=dholbert
Written purely with sed, over .h and .cpp files in layout/.

MozReview-Commit-ID: A8rWLW213Uo
2016-04-20 21:28:32 -07:00
L. David Baron
3d0dc454a5 Bug 1053986 - Rename nsIFrame::Layout to XULLayout, and related methods with the same name. r=dholbert
This is a manual subset of changes written with sed, over .h and .cpp
files in layout/.

MozReview-Commit-ID: 9NNnNw6ClGq
2016-04-20 21:28:32 -07:00
L. David Baron
633e18a890 Bug 1053986 - Rename nsIFrame::IsCollapsed to IsXULCollapsed, and related methods. r=dholbert
This is a manual subset of changes written with sed, over .h and .cpp
files in layout/.  It's a subset because there is also a Selection
method called IsCollapsed, which is not changed here.

MozReview-Commit-ID: 9JgnPv0Hkff
2016-04-20 21:28:32 -07:00
L. David Baron
4754370cbd Bug 1053986 - Rename nsIFrame::GetBoxAscent to GetXULBoxAscent. r=dholbert
Written purely with sed, over .h and .cpp files in layout/.

MozReview-Commit-ID: EDkbMQKqPg6
2016-04-20 21:28:32 -07:00
L. David Baron
72e04ee41a Bug 1053986 - Rename nsIFrame::GetMinSizeForScrollArea to GetXULMinSizeForScrollArea. r=dholbert
Written purely with sed, over .h and .cpp files in layout/.

MozReview-Commit-ID: EkHfWG4QQrE
2016-04-20 21:28:31 -07:00
L. David Baron
c760cfbbb8 Bug 1053986 - Rename nsIFrame::GetMaxSize to GetXULMaxSize, and related methods. r=dholbert
Written purely with sed, over .h and .cpp files in layout/.

MozReview-Commit-ID: 39fYXMz7kqR
2016-04-20 21:28:31 -07:00
L. David Baron
87a69b43fb Bug 1053986 - Rename nsIFrame::GetPrefSize to GetXULPrefSize, and related methods. r=dholbert
Written purely with sed, over .h and .cpp files in layout/.

MozReview-Commit-ID: yvcAZ8rndu
2016-04-20 21:28:31 -07:00
L. David Baron
814003bbcc Bug 1053986 - Rename nsIFrame::GetMinSize to GetXULMinSize, and related methods. r=dholbert
Written purely with sed, over .h and .cpp files in layout/.

MozReview-Commit-ID: Jhe3o3kIOe0
2016-04-20 21:28:31 -07:00
L. David Baron
376413eeb5 Bug 1053986 - Rename nsIFrame::IsBoxFrame to IsXULBoxFrame. r=dholbert
Written purely with sed, over .h and .cpp files in layout/.

But with additional manual changes in accessible/.

MozReview-Commit-ID: W0wUPoQsVH
2016-04-20 21:28:30 -07:00
Kartikaya Gupta
135ff848c6 Bug 1256727 - Back out the functional parts of cset 59a1ca7d784c now that we have a better fix using empty transactions. r=me
MozReview-Commit-ID: 7RmSyu9k64T
2016-04-18 17:21:17 -04:00
Kartikaya Gupta
51255cfde4 Bug 1263347 - When checking if displayport changes should schedule a paint, make sure to use the proper displayport. r=mstange
MozReview-Commit-ID: IVcNSbEiESa

--HG--
extra : rebase_source : 3bfc8926b8059ea74bcb3e77d3f25c5800d0e71a
2016-04-18 17:00:52 -04:00
Markus Stange
789850e1f0 Back out bug 1164227, because bug 1236043 fixes the original problem in a better way.
MozReview-Commit-ID: F4bD1MvOWDR

--HG--
extra : rebase_source : 43a53b31eea4f945b2cca647514e073603d44e75
2016-03-28 18:37:07 -04:00
Kartikaya Gupta
a333c6e537 Bug 1257641 - Use empty transactions to carry scroll offset updates to APZ that don't require a repaint. r=mattwoodrow,mstange,botond
MozReview-Commit-ID: KNeGSKldmp7
2016-04-13 10:21:13 -04:00
Jonathan Watt
9480920b04 Bug 1263785 - Kill off the deprecated nsINode::GetCurrentDoc. r=baku 2016-03-31 12:46:32 +01:00
Botond Ballo
868bc3704a Bug 1259296 - Do not scroll snap on the main thread for wheel events handled by APZ. r=kats
MozReview-Commit-ID: DudrJuO4pFM

--HG--
extra : source : a9468a25f1b937c49c5f801069d2cdc2cd610bdd
extra : histedit_source : 18d04bcb32288c7713a162f0ee33650f6f10926f
2016-04-04 17:46:12 -04:00
Kartikaya Gupta
fa1dfb6fc1 Bug 1262151 - Back out bug 1259593 for causing worse checkerboarding in some cases. r=backout 2016-04-05 10:28:28 -04:00
Botond Ballo
5753e3da83 Bug 1259301 - Remove GeckoContentController::RequestFlingSnap(). r=kats
MozReview-Commit-ID: DRntzo1hohv

--HG--
extra : rebase_source : 5e9c5c43202fb48c5cad5ab95b05fd0bc1be021e
2016-03-30 21:11:00 -04:00
Botond Ballo
c2325214db Bug 1219296 - Factor out the algorithm that computes a scroll snap destination into a reusable form. r=kats
MozReview-Commit-ID: KyU67pXEJus

--HG--
extra : rebase_source : c1dfbe948dd8d98e549612287ca48e507adf5aee
2016-03-21 21:32:28 -04:00
Botond Ballo
4690842281 Bug 1219296 - Factor out scroll snap information into a form that's usable by the compositor. r=kats
MozReview-Commit-ID: DTvu7UsKsBg

--HG--
extra : rebase_source : 71831d884d128bc9e50aac55c7a8302f7ffe74f8
2016-03-18 20:07:27 -04:00
Botond Ballo
a74ec8c79b Bug 1219296 - Split fields not needed for repaints out from FrameMetrics. r=kats
MozReview-Commit-ID: DymHOSI6yYK

--HG--
extra : rebase_source : 1996bcb7f005c02b94031fe1c73d5136814b0296
2016-03-28 19:14:52 -04:00
Kartikaya Gupta
10461a4696 Bug 1259593 - Trim the displayport base rect to the size of the transformed root composition bounds, but without doing an intersection. r=tnikkel
MozReview-Commit-ID: G1CeplN7Mks
2016-03-31 23:51:38 -04:00
Masayuki Nakano
b085de0c5a Bug 1259671 part.5 Rename InternalScrollPortEvent::orient to InternalScrollPortEvent::mOrient r=smaug
MozReview-Commit-ID: HHWPSAeeaPr

--HG--
extra : rebase_source : 3d2dccb0e0e3d4bddcd34086c8f6f2906ba01177
2016-03-30 17:48:23 +09:00
Masayuki Nakano
cc3e2af5cc Bug 1259671 part.4 Rename InternalScrollPortEvent::both to InternalScrollPortEvent::eBoth r=smaug
MozReview-Commit-ID: HL5phKZVYin

--HG--
extra : rebase_source : 7c9f6e870a94e9a028d4a13eac523bfcbf9bdf15
2016-03-30 17:39:56 +09:00
Masayuki Nakano
fe377694e5 Bug 1259671 part.3 Rename InternalScrollPortEvent::horizontal to InternalScrollPortEvent::eHorizontal r=smaug
MozReview-Commit-ID: JkT44G2FpUH

--HG--
extra : rebase_source : 316342c1ab53a4994dba371d49b12406b7b97a03
2016-03-30 17:33:16 +09:00
Masayuki Nakano
76133ed4d3 Bug 1259671 part.2 Rename InternalScrollPortEvent::vertical to InternalScrollPortEvent::eVertical r=smaug
MozReview-Commit-ID: 6OxTYqgZVUD

--HG--
extra : rebase_source : 0803047d4c397622bf783a69653e87378a88824c
2016-03-30 17:24:57 +09:00
Masayuki Nakano
12eb436dc2 Bug 1259671 part.1 Rename InternalScrollPortEvent::orientType to InternalScrollPortEvent::OrientType r=smaug
MozReview-Commit-ID: 4EmyQoIKdDy

--HG--
extra : rebase_source : 91065be4b6d9ce69455e696a2f1a7600a7ec8099
2016-03-30 17:16:01 +09:00
Seth Fowler
5973113f1b Bug 1157546 - Replace the image visibility API with a more general API that tracks visibility for any kind of frame. r=mstange 2016-03-25 14:49:43 -07:00
Benoit Girard
4e40cd1d1a Bug 1259235 - Add IsScrollFrameWithSnapping to speed up event regions. r=mstange
MozReview-Commit-ID: KdWCkXHjHzZ

--HG--
extra : rebase_source : ca15390be1d003c50e41ef89f40f5e7f543e8676
2016-03-23 17:16:38 -04:00
Xidorn Quan
60bcaa5c0b Bug 1257121 part 4 - Use return value rather than out param to return font metrics. r=jfkthame
MozReview-Commit-ID: 6xrHYbgHGVd

--HG--
extra : rebase_source : 4d0cea24689588d8a1daa1869502e31ac7c3dc56
2016-03-17 13:55:48 +08:00
Xidorn Quan
8acf32453c Bug 1257121 part 3 - Add GetInflatedFontMetricsForFrame function to simplify a common use pattern. r=jfkthame
MozReview-Commit-ID: 4KMLCz6wQHQ

--HG--
extra : rebase_source : 08964aef3b335163985dd6818b4a6ae3a4e34fce
2016-03-17 12:07:47 +08:00
Robert O'Callahan
be8e355f36 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
8f157afb9e 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
531a753e23 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
b809d22d38 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
a8f43cb473 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
2c7a5f6eaf 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
0415065a38 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
b107477fd5 Bug 1254263 - Add a flag to allow disabling paint-skipping. r=mstange
MozReview-Commit-ID: 4bgvqEZcSWy

--HG--
extra : rebase_source : 3aafaffa34b9e7afba81bbec52793eedb8f425ac
2016-03-07 16:25:00 -05:00
Jim Mathies
e1dc9da3f2 Bug 1232181 - Notify plugins about scroll state. r=roc 2016-03-01 12:48:26 -06:00
Botond Ballo
cb9e347c28 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
d9094aa96a 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
5b55c16a8a 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
609f6141ab 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

--HG--
extra : rebase_source : ba96e7ecc2cefdbeacb08fbd3f5817819dd933c8
2016-02-24 15:30:10 +00:00
Kartikaya Gupta
bbc14f488b 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
7a3d99d8ca 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

--HG--
extra : transplant_source : %F9%E9%19%06/%9C%EA%8C%D1%D5%BD%ED%26C%97y%15%92%7E%CB
2016-02-09 13:53:27 +00:00
Timothy Nikkel
43cf2abd48 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
2970550b4e Bug 1245925 - Don't allow expiring the displayport on root scrollframes. r=tnikkel
MozReview-Commit-ID: 8LGsk9uKyL5

--HG--
extra : rebase_source : 9edf7c6a4ce795da670f1ad06c8f86f9f05e4850
2016-02-10 17:11:28 -05:00
Kartikaya Gupta
7c935ef5ba 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
b8b52c6f30 Bug 1104356 - When doing a smooth scroll on a non-APZ'd scrollframe, fall back to the main thread machinery. r=kip
--HG--
extra : commitid : K1IT8lsDmNl
2016-02-05 17:09:30 -05:00
Jamie Nicol
d412b3daee 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
866dc20488 Bug 990916 - On displayport expiry, trigger another round of expiry up the ancestor chain. r=tnikkel
--HG--
extra : commitid : 4BykN0L0DC3
2016-02-03 19:13:35 -05:00
Kartikaya Gupta
e7dd4d9941 Bug 990916 - When setting a displayport, schedule a timer to remove it as well. r=tnikkel
--HG--
extra : commitid : 4u7JlPJLoFT
2016-02-03 19:13:35 -05:00
Kartikaya Gupta
34bce5bee6 Bug 990916 - Track if a scrollframe is a scroll parent for something else. r=tnikkel
--HG--
extra : commitid : KW9mVVtZikZ
2016-02-03 19:13:35 -05:00
Birunthan Mohanathas
d7371d07d0 Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Jim Mathies
7adc2da448 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
d381b4bca6 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
373593275e Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Kyle Huey
91efc5a86c Bug 1241764: Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer. r=mrbkap,smaug 2016-01-30 09:05:36 -08:00
Ting-Yu Lin
2d02ad0652 Bug 1227927 Part 3 - Use ranged-based for-loop to rewrite some simple loops in part 2. r=mats
--HG--
extra : commitid : CcdpGdlMNIk
extra : rebase_source : 9c184cb8107bf6276c237d03d240f8755fd61553
2016-01-29 22:42:15 +08:00
Ting-Yu Lin
1889f6bc41 Bug 1227927 Part 2 - Remove nsIFrame::GetFirstPrincipalChild(). r=mats
--HG--
extra : commitid : 5qtaK1nS8RC
extra : rebase_source : dcc98f423b2446269beb6fa6a9d092ae8213f38e
2016-01-29 22:42:14 +08:00
CJKu
2d363d1b79 Bug 686281 - Implement nsStyleImageLayers; r=dbaron 2016-01-28 06:24:00 +01:00
Xidorn Quan
ab931a1326 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.

--HG--
extra : source : a1f7ff18a69cc116120de33f14ae62f576a4b55a
2016-01-28 10:11:00 +11:00
Timothy Nikkel
6a8edbd624 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
aefbcd85cf 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
1c7a623149 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
e4faa1ebf0 Bug 1234877 - Whether a scroll frame is async scrollable is determined by mWillBuildScrollableLayer, not by usingDisplayPort. r=tn
--HG--
extra : commitid : 9ul1tbIgGhP
extra : rebase_source : 62ed845a0f577c1e6b5d72e36dc7f9e9beeb0e91
2016-01-10 14:25:10 +01:00
Markus Stange
901b7c53e8 Bug 1236040 - When updating the scroll position, only schedule image visibility checks if the display port has changed. r=tn
--HG--
extra : commitid : Hir2YBOuC1J
extra : rebase_source : 6c8d9df502979615e9f72a47b035b15d17f9c518
2015-12-31 00:04:18 +01:00
David Anderson
74d965910c Fix crash trying to allocate textures for oversize scrollbars. (bug 1214261, r=mstange) 2015-12-17 11:13:45 -08:00
Timothy Nikkel
4ec53b3bfa 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
6a24899c5f 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
4e74899f7a Bug 1194851. Rename GetDisplayPortRelativeToScrollPort back to GetDisplayPort. r=botond 2016-01-07 18:27:49 -06:00
Timothy Nikkel
3c7c901321 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
f06c43de07 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
f42493831a 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
b9aee9ebb5 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.

--HG--
extra : source : 70bb222e860669a6cf6e803dbd57f088ca4fbc04
2015-12-16 17:22:23 -05:00
Markus Stange
b22db3eab2 Bug 1147673 - Make display items know about their scroll clips. r=tn, r=roc
--HG--
extra : commitid : 1j8QG2b0rIG
extra : rebase_source : 027065697e7e0ef445d8bcf7a81cf0270dcf7b8b
2015-12-22 16:54:19 +01:00
Markus Stange
30bf0a5627 Bug 1147673 - Use ancestor clip for root scrollable framemetrics clips. r=tn
--HG--
extra : commitid : Do9D8ZPMoLv
extra : rebase_source : 558a5311c4f2bceaf301a6c0c5e1233effdc2bd4
2015-11-05 17:54:44 +01:00
Kartikaya Gupta
4a4a0bcf45 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
--HG--
extra : commitid : JouJUWdzJl6
2015-12-21 14:40:20 -05:00
Markus Stange
8d6e827631 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

--HG--
extra : commitid : 7nnkRC8afAJ
2015-12-17 17:19:30 -05:00
Avi Halachmi
9b56ccfb99 Bug 1228147: part 2: Add telemetry probe for synchronous scroll. r=kats 2015-12-16 20:06:40 +02:00
Wes Kocher
0f6a2a587a Backed out 2 changesets (bug 1228147) for build failures in histogram.h on a CLOSED TREE
Backed out changeset 35b4ba91e093 (bug 1228147)
Backed out changeset 8a2f45c8d25d (bug 1228147)

--HG--
extra : commitid : Atv8AVyyd9h
2015-12-16 09:27:37 -08:00
Avi Halachmi
7762c6b58a Bug 1228147: part 2: Add telemetry probe for synchronous scroll. r=kats 2015-12-16 17:18:45 +02:00
Kartikaya Gupta
edc45db293 Bug 1232048 - Fix breakage in scroll snapping when snapping twice in a row to the same thing with non-smooth-scrolls in between. r=botond
--HG--
extra : commitid : HOoM79IZd2u
2015-12-16 10:42:49 -05:00
Carsten "Tomcat" Book
66e5f0c4ab Backed out changeset 04b102bec363 (bug 1147673) 2015-12-16 11:52:39 +01:00
Carsten "Tomcat" Book
27bbe6ec93 Backed out changeset 68b33692bed3 (bug 1147673) 2015-12-16 11:52:37 +01:00
Markus Stange
bf668586d7 Bug 1147673 - Make display items know about their scroll clips. r=tn, r=roc
--HG--
extra : commitid : 7KbOQKKSVq5
extra : rebase_source : d23daf86ed8d375bd5ab3ed7dfe3cff80bc0ff4c
extra : histedit_source : cce4ded91f0672142796a852d20d052e7b6247ce
2015-12-12 10:58:37 -05:00
Markus Stange
9079fbe047 Bug 1147673 - Use ancestor clip for root scrollable framemetrics clips. r=tn
--HG--
extra : commitid : 8i9bmvj9S6Y
extra : rebase_source : 6316afb1c7967fd944281f0686b2c6ba7379606f
extra : histedit_source : 1289a445613a59b213b79396a60076ebc4e83beb
2015-11-05 17:54:44 +01:00
Kartikaya Gupta
0dcf99f8a4 Bug 1229052 - Log a warning when we detect a scroll-linked effect based on the scroll event. r=roc 2015-12-14 14:47:24 -05:00
Kartikaya Gupta
6b0c32286a Back out 5 csets from bug 1229052 on a CLOSED TREE for failing to fix the nonunified build error even after many attempts. r=backout 2015-12-14 15:52:31 -05:00
Kartikaya Gupta
fcb193563c Bug 1229052 - Log a warning when we detect a scroll-linked effect based on the scroll event. r=roc 2015-12-14 14:47:24 -05:00
Kartikaya Gupta
6c7c3b6adf Bug 1228407 - Avoid a scenario where content floods APZ with smooth-scroll requests and blocks it from syncing a new scroll offset back to the main thread. r=botond
--HG--
extra : commitid : 6YhRu80eZzC
2015-12-09 10:13:34 -05:00
Kartikaya Gupta
9491a614c4 Back out three patches from bug 1228407 on a CLOSED TREE for causing various mochitest failures. r=backout
--HG--
extra : commitid : 7gaWjh5Noye
2015-12-08 21:00:30 -05:00
Kartikaya Gupta
56e9023bca Bug 1228407 - Avoid a scenario where content floods APZ with smooth-scroll requests and blocks it from syncing a new scroll offset back to the main thread. r=botond
--HG--
extra : commitid : LdMBKbQQw7V
2015-12-08 14:56:26 -05:00
Kartikaya Gupta
0f7fe3417c Bug 1156392 - Remove an ifdef condition that we don't need any more. r=tn 2015-12-01 22:21:42 -05:00
Kartikaya Gupta
fe65090c97 Bug 1228357 - When saving/restoring a scrollframe's state, only save/restore resolution for the root scrollframe. r=roc 2015-11-26 21:25:53 -05:00
Ting-Yu Lin
79afc81f6e Bug 1226875 - Remove nsIFrame::GetFirstChild(). r=mats
--HG--
extra : commitid : J8NTL74JosY
extra : rebase_source : 50a196905ac06d09fea17bb1aa17efe821cc7cbb
2015-11-26 17:12:39 +08:00
Nicholas Nethercote
52b3d826da Bug 1225007 (part 1, attempt 3) - Use LayoutDevicePixel more in Cocoa widget code. r=kats.
--HG--
extra : rebase_source : e4b3bb36c18822557f7724a58979eddd9d8cac62
2015-11-19 14:10:38 +11:00
Kartikaya Gupta
c460ebbd06 Bug 1226872 - Stop keeping a copy of the resolution in the root scrollframe. r=roc
The only reason we had this in the scrollframe at all was so that it could be
saved/restored as part of the frame state when leaving a page and then going
back to it. However we can accomplish this by just reading/writing the resolution
from/to the presshell instead, so there's no need to keep a second copy of it.

--HG--
extra : commitid : J4QBfG2GGjn
2015-11-23 09:14:15 -05:00
Phil Ringnalda
87802cdbad Backed out 2 changesets (bug 1225007) for frequent OS X "Shouldn't return empty rect" assertion failures, a=backout
Backed out changeset c5b352c74b35 (bug 1225007)
Backed out changeset 8a513c70ce7c (bug 1225007)
2015-11-19 20:55:26 -08:00
Nicholas Nethercote
ce671f3678 Bug 1225007 (part 1, attempt 2) - Use LayoutDevicePixel more in Cocoa widget code. r=kats.
--HG--
extra : rebase_source : ea132cb4a6eda3553682114f3a1a280acfaf0aa3
2015-11-19 14:10:38 +11:00
Nicholas Nethercote
26b0d282a5 Backout 52ba24123046 and 66768d6a50fa (bug 1225007) for causing lots of test assertions on Mac. CLOSED TREE 2015-11-17 17:02:39 -08:00
Nicholas Nethercote
eb12a384c0 Bug 1225007 (part 1) - Use LayoutDevicePixel more in Cocoa widget code. r=kats.
--HG--
extra : rebase_source : ad3466d05e476ebf65affdde3fca52494e1327cb
2015-11-15 21:37:52 -08:00