Граф коммитов

513 Коммитов

Автор SHA1 Сообщение Дата
Hiroyuki Ikezoe d95e67add7 Bug 1516368 - Align boolean member variables in ScrollFrameHelper. r=botond
Depends on D15336

Differential Revision: https://phabricator.services.mozilla.com/D15338

--HG--
extra : moz-landing-system : lando
2018-12-30 02:16:12 +00:00
Brian Hackett 490b175062 Bug 1044074 - Don't run resize or scroll events while documents have events suppressed, r=smaug.
--HG--
extra : rebase_source : 47b98b215d3131fa3e6e88948fdd67aaf41524a9
2018-12-18 15:38:45 -10:00
Hiroyuki Ikezoe f0fe14fe8d Bug 1514679 - Drop `aFirstPass` from ReflowScrolledFrame. r=botond
It hasn't been used since bug 300030.

Depends on D14715

Differential Revision: https://phabricator.services.mozilla.com/D14716

--HG--
extra : moz-landing-system : lando
2018-12-17 21:54:41 +00:00
Hiroyuki Ikezoe 0a0f595df0 Bug 1514679 - Use layers::ScrollDirection instead of boolean. r=botond
Depends on D14713

Differential Revision: https://phabricator.services.mozilla.com/D14714

--HG--
extra : moz-landing-system : lando
2018-12-17 21:54:11 +00:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Kartikaya Gupta c7c9b39313 Bug 1503029 - Ensure the slider frame is notified of APZ drag initiation. r=botond
This adds a notification from APZ to the scrollbar's slider frame to
inform it of APZ starting an async scrollbar drag. This is useful
because APZ can start a scrollbar drag and even change the scroll
position before the scrollbar frame even handles the mousedown event. In
such a case, the mousedown can land on where the scrollthumb *used to
be* before it was dragged away. This can result in scroll-to-click
behavior getting triggered and the scrollthumb glitching.

With this patch, the new notification follows the same path as the
request-repaint message, and so is guaranteed to arrive at the scrollbar
before any request-repaint messages. It sets some state that can be used
to correct the behaviour described above.

Differential Revision: https://phabricator.services.mozilla.com/D12364

--HG--
extra : moz-landing-system : lando
2018-11-22 18:00:49 +00:00
Emilio Cobos Álvarez cf56163d41 Bug 1509044 - FrameLoader.clipSubdocument is unused. r=jwatt,smaug
Plus it generally doesn't work for e10s, etc. etc.

Differential Revision: https://phabricator.services.mozilla.com/D12547

--HG--
extra : moz-landing-system : lando
2018-11-21 20:06:15 +00:00
Ting-Yu Lin 1d9848a22a Bug 916972 - Eliminate nsIFrame::GetSplittableType() completely. r=mats,dholbert
Currently, GetSplittableType() is called only in
nsCSSFrameConstructor::CreateContinuingFrame(). The splittable concrete frames
should inherit from nsSplittableFrame, and must explicitly create continuing
frame in CreateContinuingFrame(). Thus, no need to maintain GetSplittableType().

Differential Revision: https://phabricator.services.mozilla.com/D10798

--HG--
extra : moz-landing-system : lando
2018-11-05 19:11:12 +00:00
Ryan Hunt 2226bcc8a3 Bug 1504220 - Move ScrollableLayerGuid, ViewID, ZoomConstraints from FrameMetrics.h r=botond
This commit attempts to lower the pain of modifying FrameMetrics.h.

It looks like most includes really only want ViewID or
ScrollableLayerGuid, so this commit factors them out into a separate
header. In the process FrameMetrics::ViewID is changed to
ScrollableLayerGuid::ViewID, which personally seems like a better
place for it now that we have RepaintRequest. Unfortunately that
requires a lot of places to be updated.

After this commit there are still a couple of major places that
FrameMetrics is included.
 * nsDisplayList.h
 * nsIScrollableFrame.h
 * Layers.h

Those are going to be more tricky or impossible to fix so they're
not in this commit.

Differential Revision: https://phabricator.services.mozilla.com/D10722

--HG--
rename : gfx/layers/FrameMetrics.h => gfx/layers/ScrollableLayerGuid.h
rename : gfx/layers/FrameMetrics.h => gfx/layers/ZoomConstraints.h
extra : rebase_source : 29ac79f91460a181bf7437af5c371207e22858e2
extra : source : c2e70e531075493fc6e374dcec862827f0bc6e77
2018-11-01 15:15:46 -05:00
Ryan Hunt 1601a8bb80 Bug 1453425 - Add relative scroll offset updates using nsGkAtoms::relative. r=botond
This commit adds a scroll origin, nsGkAtoms::relative, which can be used to
mark main thread scrolling that can be combined with a concurrent APZ scroll.

The behavior of this is controlled by a pref, apz.relative-update. This pref
is initially activated and is intended as an aid to narrowing down causes
of regressions for users in bug reports.

Relative scroll updates work by tracking the last sent or accepted APZ
scroll offset. This is sent along with every FrameMetrics. Additionally,
a flag is added to FrameMetrics, mIsRelative, indicating whether the
scroll offset can be combined with a potential APZ scroll. When this
flag is set, AsyncPanZoomController will apply the delta between the sent
base scroll offset, and sent new scroll offset.

This flag is controlled by the last scroll origin on nsGfxScrollFrame. The
new origin, `relative`, is marked as being able to clobber APZ updates,
but can only be set if all scrolls since the last repaint request or
layers transaction have been relative.

Differential Revision: https://phabricator.services.mozilla.com/D8234

--HG--
extra : rebase_source : 51351a84c9cda228a0975e22eda3fd3bd8d261c4
extra : histedit_source : 4b564c19b16fe2bd26adc671b62b7cb6106e8163
2018-10-09 23:24:28 -05:00
Ryan Hunt d4c042f28a Bug 1453425 - Use ScrollByCSSPixels in relative scrolling DOM API's. r=botond
This commit changes `Window::ScrollBy` and `Element::ScrollBy` to use
ScrollByCSSPixels in preparation for marking ScrollByCSSPixels as a
relative scroll API.

Differential Revision: https://phabricator.services.mozilla.com/D8233

--HG--
extra : rebase_source : fa82acc12395569bd332573718f8a8013ac20b60
extra : histedit_source : 7ac061e65a2522051ed73f3ba6349d5ea696e15f
2018-10-05 19:06:40 -05:00
Ryan Hunt 2e10c1c6cb Bug 1453425 - Remove mScrollPosAtLastPaint from nsGfxScrollFrame. r=botond
This field appears to be only ever used as a local variable, and can be removed.

Differential Revision: https://phabricator.services.mozilla.com/D7126

--HG--
extra : rebase_source : 310057f703f4734ba9aef807100c5b5ff888da41
extra : histedit_source : 735d3f09bdb56d6eb386e2b5faffea1d769d97a1
2018-09-24 14:12:04 -05:00
Kartikaya Gupta a971a37e5f Bug 1485834 - Allow recomputing the cumulative resolution in ComputeScrollMetadata. r=botond
We need to correctly populate the cumulative resolution field in the
ScrollMetadata in order to support zooming. Without this, the cumulative
resolution doesn't include the presShell resolution, and that results in
APZ getting into an inconsistent state.

Currently, the cumulative resolution is populated from the
ContainerLayerParameters object's scale, but in the case of WebRender,
we call ComputeScrollMetadata with an empty ContainerLayerParameters
since don't actually do layer building or rasterization in Gecko.
This patch makes this more explicit by changing the argument to a
Maybe<ContainerLayerParameters> and passing Nothing() from the WebRender
call sites.

In this scenario, we just use the cumulative presShell resolution as
the cumulative resolution, which should be correct for WebRender as
we won't have an "extra" CSS-derived resolution applied on the Gecko
side.

Depends on D9120

Differential Revision: https://phabricator.services.mozilla.com/D9121

--HG--
extra : moz-landing-system : lando
2018-10-19 14:24:50 +00:00
Mats Palmgren 729982d840 Bug 1490561 - Make sure we remove our RefreshDriver observers in CompleteAsyncScroll. r=emilio 2018-10-01 07:59:25 +02:00
Botond Ballo 34115a8216 Bug 1484597 - Expose visual viewport information more conveniently in Layout. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D6074

--HG--
extra : moz-landing-system : lando
2018-09-21 19:01:13 +00:00
Xidorn Quan 7483d8715a Bug 1486662 - Allow scroll without scrollbar for non-textcontrol elements on Android. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D5115

--HG--
extra : moz-landing-system : lando
2018-09-07 00:35:45 +00:00
Jeremy Lempereur 96d35f35bd Bug 1471708 - Rename the "scroll-position clamping scroll port size" to "visual viewport size". r=botond
MozReview-Commit-ID: IWPzXSF5jfR

--HG--
extra : rebase_source : f67d64ef18a643077d5019048399e68acc722337
2018-07-22 21:49:38 +02:00
Cosmin Sabou 7cf1ac297e Backed out changeset 542243f5f600 (bug 1471708) for failling reftest on gfx/layers/apz/test/reftest/async-scrollbar-1. 2018-08-05 07:57:50 +03:00
Jeremy Lempereur e591a6945a Bug 1471708 - Rename the "scroll-position clamping scroll port size" to "visual viewport size". r=botond
MozReview-Commit-ID: IWPzXSF5jfR

--HG--
extra : rebase_source : 9d13a680ebf76a5f86c9040a5a16981514435dc8
2018-07-22 21:49:38 +02:00
Xidorn Quan 8421040c69 Bug 1479995 - Rename ScrollbarStyles to ScrollStyles. r=mstange
This change also renames several related functions, as well as fields,
and the header is moved into EXPORTS.mozilla given it is defined under
mozilla namespace.

MozReview-Commit-ID: LqCdcW8fmUN

--HG--
rename : layout/base/ScrollbarStyles.cpp => layout/base/ScrollStyles.cpp
rename : layout/base/ScrollbarStyles.h => layout/base/ScrollStyles.h
extra : rebase_source : 8933f3bca88d5db4b9508e3947f695ecf7511b3e
2018-08-01 16:14:26 +10:00
Matt Woodrow 95856dac21 Bug 1462412 - Correctly ignore the perspective property for frames that aren't transformable. r=dbaron 2018-05-23 10:41:19 +12:00
Boris Zbarsky 8bf73defc4 Bug 644603 part 1. Introduce nsIFrame::GetOffsetToIgnoringScrolling. r=dbaron 2018-04-26 17:53:05 -04:00
Jamie Nicol e8077ba4d8 Bug 1449608 - Avoid calling ComputeScrollMetadata repeatedly for same scroll frame and clip. r=mstange
Currently in ContainerState::SetupScrollingMetadata we call
ComputeScrollMetadata for every layer and for each ASR in the layer's
clip chain. If there are many sibling layers with the same clip then
this is largely wasted work.

This change makes us cache the most recently calculated result, and
only recalculate if the ASR or clip is different.

There was a small portion of ComputeScrollMetadata that must actually
be executed for every layer and ASR in its clip chain. This has been moved
to a separate function, ClipLayerToDisplayPort, that is still called
every time.

MozReview-Commit-ID: 7Zzblmimtc5

--HG--
extra : rebase_source : 85ee310ceaaff5fa8a1ccb513ffaf90904ace19d
2018-04-19 14:48:04 +01:00
Narcis Beleuzu cf9dd5bc32 Backed out changeset 544e2832e783 (bug 1449608) for bustages "xul.dll : fatal error LNK112". CLOSED TREE 2018-04-24 21:06:41 +03:00
Jamie Nicol bc72f195fb Bug 1449608 - Avoid calling ComputeScrollMetadata repeatedly for same scroll frame and clip. r=mstange
Currently in ContainerState::SetupScrollingMetadata we call
ComputeScrollMetadata for every layer and for each ASR in the layer's
clip chain. If there are many sibling layers with the same clip then
this is largely wasted work.

This change makes us cache the most recently calculated result, and
only recalculate if the ASR or clip is different.

There was a small portion of ComputeScrollMetadata that must actually
be executed for every layer and ASR in its clip chain. This has been moved
to a separate function, ClipLayerToDisplayPort, that is still called
every time.

MozReview-Commit-ID: 7Zzblmimtc5

--HG--
extra : rebase_source : 4554f908f42f761ddb2fca9be6bbe688c194c756
2018-04-19 14:48:04 +01:00
Andreea Pavel 14cb4908a0 Backed out changeset b443e56d2f62 (bug 1449608) for build bustages on a CLOSED TREE 2018-04-24 00:16:58 +03:00
Jamie Nicol d361ce7995 Bug 1449608 - Avoid calling ComputeScrollMetadata repeatedly for same scroll frame and clip. r=mstange
Currently in ContainerState::SetupScrollingMetadata we call
ComputeScrollMetadata for every layer and for each ASR in the layer's
clip chain. If there are many sibling layers with the same clip then
this is largely wasted work.

This change makes us cache the most recently calculated result, and
only recalculate if the ASR or clip is different.

There was a small portion of ComputeScrollMetadata that must actually
be executed for every layer and ASR in its clip chain. This has been moved
to a separate function, ClipLayerToDisplayPort, that is still called
every time.

MozReview-Commit-ID: 7Zzblmimtc5

--HG--
extra : rebase_source : d39908b2be2565d22079b3e5e8df56316159a918
2018-04-19 14:48:04 +01:00
Nika Layzell 242c9ce313 Bug 1438026 - Part 3: Replace nsPresState with the new PresState type, r=baku 2018-04-10 17:49:44 -04:00
Emilio Cobos Álvarez e341b20ec4 Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt on a CLOSED TREE
MozReview-Commit-ID: JPopq0LudD
2018-03-22 20:06:24 +01:00
Emilio Cobos Álvarez 5dd797f154 Back out changeset b683bb3f22a1 (Bug 1447483) for not landing with all the files. r=me on a CLOSED TREE
This reverts commit 1808914126bb9f9e4a82d2c3d7ac961885fe7d62.

MozReview-Commit-ID: 5skESBseEvo
2018-03-22 20:05:22 +01:00
Emilio Cobos Álvarez ca5ac79cca Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt
MozReview-Commit-ID: JPopq0LudD
2018-03-22 19:48:42 +01:00
abhinav d534e6532f Bug 1411129 - Rename MayBeAsynchronouslyScrolled to IsMaybeAsynchronouslyScrolled to follow our naming conventions. r=mats 2018-01-29 17:54:04 +05:30
Emilio Cobos Álvarez 74b31155f7 Bug 1423167: Move most attribute-related methods from nsIContent to Element. r=bz
MozReview-Commit-ID: 6WXqNiODttD
2017-12-06 16:05:59 +01:00
Botond Ballo f733efea1a Bug 1300864 - Disable paint skipping for scroll frames that contain out-of-flow content inside a CSS filter. r=mstange
MozReview-Commit-ID: 5TwC75wzOsm

--HG--
extra : rebase_source : 2c38372e452cf6b78b4906b42e4b9e93a1762d26
2017-11-27 16:45:29 -05:00
Mike Conley 741c01cd43 Bug 1421351 - Queue chrome-only scrollend event in refresh driver scroll event queue instead of firing immediately. r=kats
MozReview-Commit-ID: KVQ5kp1t7NW

--HG--
extra : rebase_source : f8daa82c692c94a9a2f5d2f88987b3d0d10d7bbb
2017-11-28 13:09:56 -05:00
Mike Conley e899949a10 Bug 1172171 - Add a chrome-only scrollend event. r=kats
MozReview-Commit-ID: 1mUqPdsb31I

--HG--
extra : rebase_source : 234c70fdf14fc7174cbbc3aac76d718bb63b5270
2017-10-10 14:54:49 -04:00
Mats Palmgren 25cd0c37f7 Bug 1400618 part 1 - Collect NAC / generated content and call DestroyAnonymousContent / UnbindFromTree on those after the frames are destroyed. r=bz
MozReview-Commit-ID: 2trDgeJPw25
2017-11-07 01:20:33 +01:00
Daniel Holbert 680815cd6e Bug 1412346 part 5: (automated patch) Switch a bunch of C++ files in layout to use our standard mode lines. r=jfkthame
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: EuRsDue63tK

--HG--
extra : rebase_source : 3356d4b80ff6213935192e87cdbc9103fec6084c
2017-10-27 10:33:53 -07:00
Kartikaya Gupta bec5f23434 Bug 1411238 - Make APZ test logging work in layers-free WR mode. r=botond
Most of this change is just fiddling with function signatures so that they take
a LayerManager* instead of a Layer* (or in some cases, both). This allows
the WebRender codepaths to pass a WebRenderLayerManager* instead of having to
produce a Layer* which it doesn't have.

MozReview-Commit-ID: Fb0C8OUVDin

--HG--
extra : rebase_source : e4c3324cfa20c295db85d5c09df8d8d77865bb6a
2017-10-25 13:22:04 -04:00
Matt Woodrow ext:(%2C%20Miko%20Mynttinen%20%3Cmikokm%40gmail.com%3E%2C%20Timothy%20Nikkel%20%3Ctnikkel%40gmail.com%3E) 396cd36361 Bug 1404181 - Part 20: Add code to override the display list builder dirty area for a stacking context or displayport. This lets us restrict partial building to within one of these contexts. r=mstange
MozReview-Commit-ID: Dn46eaqeyPX

--HG--
extra : rebase_source : b27538ae5bef1b468ed6d8d3ac403e34f54f87c0
2017-09-28 14:23:03 +13:00
Matt Woodrow ext:(%2C%20Miko%20Mynttinen%20%3Cmikokm%40gmail.com%3E%2C%20Timothy%20Nikkel%20%3Ctnikkel%40gmail.com%3E) 31e9b3f8cd Bug 1404181 - Part 2: Track a 'visible' rect for display list building as well as the 'dirty' rect, so that we can do partial building by specifying a smaller 'dirty' rect. r=mstange
MozReview-Commit-ID: 7DUV9dl4zb1

--HG--
extra : rebase_source : e7bf5eacba44ce9cf77c55d623edef33a85f0492
2017-10-04 14:28:38 +13:00
Matt Woodrow ext:(%2C%20Miko%20Mynttinen%20%3Cmikokm%40gmail.com%3E%2C%20Timothy%20Nikkel%20%3Ctnikkel%40gmail.com%3E) 1f861fe60c Bug 1404181 - Part 1: Make AnimatedGeometryRoot/ActiveScrolledRoot retained and refcounted on the heap. r=mstange
MozReview-Commit-ID: Gcm5pOAdCeI

--HG--
extra : rebase_source : c5b3df4e683b98f15fefa65b7c9b10bd47acb7ed
2017-09-27 12:24:42 +13:00
Timothy Nikkel 52d23be2f4 Bug 1409215. Don't change scroll thumbs into AGRs during display list building. r=mstange
Find the scrollframe for a scrollbar thumb and use it to determine if the scrollthumb is an AGR, instead of recording if the associated scrollframe is active on a frame property during display list building.
2017-05-19 17:04:19 -05:00
Botond Ballo b583982ae1 Bug 1402995 - Reflow scrollbars after partial reflow of scroll frame. r=tnikkel
MozReview-Commit-ID: 6ZuOkjfL1Jg

--HG--
extra : rebase_source : f3614cd3b4e0cfa5cd68534ac654f99e754fce1e
2017-10-04 13:19:13 -04:00
Nicholas Nethercote d225f7151b Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Timothy Nikkel 3ca5249135 Bug 1364295. Simplify some code now that we don't create displayports during display list building. r=mstange 2017-10-02 16:00:16 -05: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
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