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

51 Коммитов

Автор SHA1 Сообщение Дата
Ciure Andrei 3de853018a Backed out 7 changesets (bug 1441308)for causing webrender build bustages CLOSED TREE
Backed out changeset 1764701d11d1 (bug 1441308)
Backed out changeset 32f7793dfd1a (bug 1441308)
Backed out changeset d8b4d6ec9b40 (bug 1441308)
Backed out changeset e2f83e4816dd (bug 1441308)
Backed out changeset baee8ada680f (bug 1441308)
Backed out changeset c09a51622e98 (bug 1441308)
Backed out changeset 737807563dd5 (bug 1441308)
2019-03-22 10:52:44 +02:00
Doug Thayer 5b3a0454a4 Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
This is a large patch that contains all of the core changes for
renderroot splitting.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 03:15:14 +00:00
Kartikaya Gupta 919598b555 Bug 1506257 - Make the scrollbar animation id a Maybe. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D18669

--HG--
extra : moz-landing-system : lando
2019-02-06 20:00:08 +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
Jeff Muizelaar c80ead4e70 Bug 1508908. Remove mEventRegions from WebRenderLayerScrollData. r=kats
It's unused.

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

--HG--
extra : moz-landing-system : lando
2018-11-21 11:55:46 +00:00
Kartikaya Gupta 9a0b69bfb3 Bug 1503616 - Propagate the zoom animation id over to the APZ code. r=botond
Depends on D11180

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

--HG--
extra : moz-landing-system : lando
2018-11-09 21:13:10 +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
Kartikaya Gupta c277149ab9 Bug 1501062 - Set the visible region on scrollthumb WebRenderLayerScrollData items. r=botond
This field is used by APZ to implement the feature where the scrollbar snaps
back to the starting position if the mouse gets too far away.
2018-10-29 15:40:09 -04:00
Kartikaya Gupta d067a7cdae Bug 1452390 - Implement paint-skipping support in WebRender. r=botond
The majority of this patch is just plumbing. The interesting parts are
in WebRenderLayerManager and APZUpdater/WebRenderScrollData. Unlike
ClientLayerManager, which updates the FrameMetrics on the client side
and sends the modified version over to the compositor, this WR version
just sends the update info over to the compositor, which then applies
the update to the metrics saved in APZUpdater before triggering the
hit-testing tree rebuild.

MozReview-Commit-ID: 4latUMa8RFw

--HG--
extra : rebase_source : d0aeaf5a9c8107bbcaf8b0da6d68a0f47f455be5
2018-05-11 21:18:22 -04:00
Kartikaya Gupta 1324d322fd Bug 1452390 - Make WebRenderScrollData::HasMetadataFor work properly on the parent side. r=botond
MozReview-Commit-ID: A2ScgCFVZ8J

--HG--
extra : rebase_source : 981b8ca3e5916397db0db523a044d4e984359e79
2018-05-11 21:18:21 -04:00
Kartikaya Gupta 8cc14c6513 Bug 1451168 - Ensure the transforms from ancestor stacking contexts are combined properly. r=jrmuizel
When passing the transforms from nsDisplayTransform items down to the
descendant display items, we need to make sure they are combined properly
so that the "ancestor transform" on the APZ side is correctly computed.

MozReview-Commit-ID: Di1FBLYGef5

--HG--
extra : rebase_source : 736e7cd375681f84ca2db8e6b98bf1a7525431d4
2018-05-01 16:31:23 -04:00
Kartikaya Gupta 878b4beba1 Bug 1454485 - Remove redundant fields from WebRenderLayerScrollData and ensure the ScrollbarData is always correctly populated instead. r=botond
MozReview-Commit-ID: JQ9ooeiEIox
2018-04-17 15:04:25 -04:00
Daniel Zielas 471ef50beb Bug 1420512 - Try unifying data structures for scrollbar container and scrollbar thumb info. r=botond
MozReview-Commit-ID: 9zPkrA3CwsN

--HG--
extra : rebase_source : b52bef52576558f03afc65120a40a5312ae7eba3
2018-03-02 19:00:03 +01:00
Kartikaya Gupta 1ad07c54db Bug 1449478 - Avoid clobbering transforms in the WebRenderScrollData. r=jrmuizel
Due to an oversight in bug 1423370, the code I added was setting the
transform on a WebRenderLayerScrollData after initializing it, but the
initialization might have populated the transform. Thus the
transform-set that I added would have clobbered the transform. This
updates the code to combine the two transforms instead which avoids
the clobber.

MozReview-Commit-ID: 4mKJTLSMD9J

--HG--
extra : rebase_source : c486c5866739ab040d81f9f9a43b2b8a04c2d383
2018-03-28 06:32:06 -04:00
Kartikaya Gupta 395eaf8c66 Bug 1448490 - Make the layers id a struct instead of a uint64_t. r=mattwoodrow
The new struct is in LayersTypes.h, all the rest of the changes are just
replacing existing uint64_t instances with the new LayersId struct.

Note that there is one functional change, in
CompositorBridgeParent::DeallocPWebRenderBridgeParent, where we now
correctly convert the PipelineId to a LayersId before using it to index
into sIndirectLayerTrees, whereas before we were incorrectly just using
the mHandle part of the PipelineId.

MozReview-Commit-ID: GFHZSZiwMrP

--HG--
extra : rebase_source : d2b274f63aaee2ee9bba030297e0a37a19af0d6c
2018-03-24 19:06:01 -04:00
Kartikaya Gupta 26139682b6 Bug 1441324 - Introduce an empty APZInputBridge protocol managed by PGPU. r=rhunt
This just adds the boilerplate that goes with the new protocol, without
adding any of the actual messages. The protocol is managed by PGPU, and
there will be one instance per compositor. The parent side lives on the
main thread of the GPU process, and the child side lives on the main
thread of the UI process. The protocol is only instantiated if the GPU
process is active.

MozReview-Commit-ID: J4VzwmEfYTa

--HG--
extra : rebase_source : 397ddda8b0e76e5ed5f63783b1220ed7b4414d99
2018-03-16 16:28:19 -04:00
Kartikaya Gupta 0d32b18eda Bug 1376044 - Remove dead code left over from layers-full WR implementation. r=jrmuizel
MozReview-Commit-ID: FBTm1EgJ70T

--HG--
extra : rebase_source : 752694c857e76bb479eabacbfa134644f57fb3de
2017-11-30 13:09:06 -05:00
Kartikaya Gupta 0fab36e756 Bug 1418387 - Propagate scrollbar direction for scrollbar containers to APZ. r=botond
Most of this patch is just mechanical changes, but note that this patch
now makes the mFlags in scrollbar-container nsDisplayOwnLayer instances
have one of the direction bits set. As a result, this requires changing
the implementation of nsDisplayOwnLayer::IsScrollThumbLayer().

MozReview-Commit-ID: 2BLdbpz5Sa8

--HG--
extra : rebase_source : 27e7d90ce60c7f702fe77d8a3a0f7e3ae3e4a4ff
2017-11-24 16:23:05 -05:00
Kartikaya Gupta 0b55cc54f3 Bug 1416073 - Avoid calling the expensive ComputeScrollMetadata function if we already computed that metadata before. r=jrmuizel
MozReview-Commit-ID: 5SwAEA4Wpqw

--HG--
extra : rebase_source : 1c717c3f0cfb1c5a94970d5d7cc267ee9570c0ad
2017-11-09 23:18:39 -05:00
Kartikaya Gupta d5cf7941e2 Bug 1415225 - Remove dead code. r=jrmuizel
This code has been unused since the removal of layers-full WR codepaths.

MozReview-Commit-ID: JQn55Kbz5rr

--HG--
extra : rebase_source : af6995265c02a1ddfccbc37adb633bc2b240ec8b
2017-11-09 09:03:51 -05:00
Sebastian Hengst 8916884b22 Backed out 6 changesets (bug 1415225) for frequently failing own gfx/layers/apz/test/mochitest/test_group_overrides.html on Windows. r=backout
Backed out changeset 27403a9dec13 (bug 1415225)
Backed out changeset 9e6710586531 (bug 1415225)
Backed out changeset 8cfef302b710 (bug 1415225)
Backed out changeset 8ae80d7421d5 (bug 1415225)
Backed out changeset 5f14fc545115 (bug 1415225)
Backed out changeset 4704645d4e81 (bug 1415225)
2017-11-09 11:59:04 +02:00
Kartikaya Gupta 7b31712d93 Bug 1415225 - Remove dead code. r=jrmuizel
This code has been unused since the removal of layers-full WR codepaths.

MozReview-Commit-ID: EAhRrZXLKKr

--HG--
extra : rebase_source : c33f915461c724c61b11804a9cecb960728fd6df
2017-11-08 20:47:18 -05:00
Daniel Holbert 126bd9e1a4 Bug 1412427 part 8: (automated patch) Switch a bunch of C++ files in gfx to use our standard mode lines. r=jrmuizel
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: 77D61xpSmIl

--HG--
extra : rebase_source : c6162fa3cf539a07177a19838324bf368faa162b
2017-10-27 16:10:06 -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
Kartikaya Gupta f397e9054a Bug 1395670 - In webrender layers-free mode, don't add a root scroll metadata if we already have it elsewhere in the tree. r=mstange
MozReview-Commit-ID: B9LY4v9t11Y

--HG--
extra : rebase_source : e6ffb4c7a54e0584a3a4939a3bca34276b69478b
2017-08-31 17:07:41 -04:00
Kartikaya Gupta ecbda7b57e Bug 1389143 - Send event regions override information to APZ in layers-free mode. r=jrmuizel
MozReview-Commit-ID: 1jh6sdfe8jX

--HG--
extra : rebase_source : af35415e39a866b39db1edfd804c470fa3bec791
2017-08-18 13:06:31 -04:00
Kartikaya Gupta dfc008e7e4 Bug 1389143 - Send event regions items over to APZ in layers-free mode. r=jrmuizel
This patch collapses the data from event regions display items that have
the same ASR. However, it only does so if there's no other display items
interleaved in between that forced their own scroll layer data.

MozReview-Commit-ID: IkQSISc2bwc

--HG--
extra : rebase_source : d3001675d516c303d5452aafc57c996192e11e98
2017-08-18 13:06:31 -04:00
Kartikaya Gupta cb97ff3374 Bug 1389139 - Add support for transform and perspective display items to layers-free APZ. r=jrmuizel
A basic sanity check here seems to produce the correct behaviour but I'm
not at all confident that this will always do the correct thing in more
complex cases or when perspectives are involved. However this is hard to
test and get working without the testing infrastructure up and running
so I'd rather land this simple code first and then dig into the more
complex cases once we have a way to catch regressions.

MozReview-Commit-ID: E4HytiZowEn

--HG--
extra : rebase_source : c7466092298aebf66926e8e0bdf58eb4651f0f19
2017-08-16 12:50:37 -04:00
Morris Tseng c956c9f91d Bug 1379920 - Fix unified build error. r=nical
MozReview-Commit-ID: Dx50fOh737p
2017-08-03 13:55:13 +08:00
Kartikaya Gupta c3e4aef0b4 Bug 1384616 - Save APZ-relevant scrollbar data into the WR scroll data for layers-free transactions. r=jrmuizel
MozReview-Commit-ID: 6DQz9N6Wq0H

--HG--
extra : rebase_source : 8a113d4a53e1562b55cc05a0bc411675a2ca9eb1
2017-07-31 15:27:30 -04:00
Kartikaya Gupta 4ed905c664 Bug 1384616 - Save APZ-relevant data from fixed-pos items in the WR scroll data for layers-free transactions. r=jrmuizel
MozReview-Commit-ID: HAFnrCVM9pZ

--HG--
extra : rebase_source : 9b7f5f7a3487501061b0526bfc92b06ef5593a88
2017-07-31 15:27:29 -04:00
Kartikaya Gupta 89f405f2be Bug 1384616 - Allow building a tree structure in WebRenderScrollData for layers-free transactions. r=jrmuizel
The three main changes in this patch are:
(1) Move the code to emplace_back a new WebRenderLayerScrollData to
after the display list recursion. This is necessary so that when we
empty the temporary mLayerScrollData stack into the final mScrollData
structure things end up in the right order.
(2) Maintain a stack of ASRs as we recurse so that when we are building
a given WebRenderLayerScrollData, we don't add scroll metadatas that
are already present on its ancestors.
(3) Compute the number of descendants created for each layer scroll
data item and record it, so that we can properly reconstruct the
shape of the tree.

MozReview-Commit-ID: BSdX78AqBNZ

--HG--
extra : rebase_source : 0bb4133572d74fb756476e1c5954b17f114fe7d0
2017-07-31 15:27:29 -04:00
Kartikaya Gupta 3b8aaa896a Bug 1384616 - Change how display items put their APZ-relevant info into the WebRenderScrollData. r=jrmuizel
Instead of the WebRenderLayerScrollData code knowing about all the
different display item types, it makes more sense to move this logic
into the display items.

In addition to avoiding dis-encapsulating the data from nsDisplayItem subclasses,
this makes it easier to handle two specific scenarios:
(1) the case where an nsDisplayItem A subclasses another nsDisplayItem B, but A
and B have different types returned by GetType(). Previously A and B would have
to be handled explicitly in the WebRenderLayerScrollData switch statements,
which doesn't scale well if new types are added. With the new approach the
virtual function is shared down from A to B and so takes care of it. This is
particularly relevant for types like nsDisplayOwnLayer which have a number of
subclasses.

(2) the case where a display item *might* have APZ-relevant information.
In this case the type of the item alone is not sufficient to determine
if we need to create a new WebRenderLayerScrollData for it. Instead, we
need to access specific state inside the display item. This is now
handled by the UpdateScrollData function returning true when passed
nullptr arguments, and replaces the switch statement in
WebRenderLayerManager that updated forceNewLayerData.

MozReview-Commit-ID: FlfHlgSccSn

--HG--
extra : rebase_source : d1fe841724cc6020433aea31ffb5214d8a44d0a9
2017-07-31 15:27:29 -04:00
Kartikaya Gupta 1220276afe Bug 1384181 - Add utility dump functions for debugging. r=jrmuizel
MozReview-Commit-ID: 5YJLGhnMkwG

--HG--
extra : rebase_source : b705d1db828b14d5829ee88aa3b0cebfef0e0b6f
2017-07-26 14:47:49 -04:00
Kartikaya Gupta 7a6592bf98 Bug 1384181 - Ensure that the WebRenderScrollData has a single root layer node. r=jrmuizel
The semantics of the WebRenderScrollData structure is that the per-layer
structures form a tree with a single root node. When we build the data
structure from the display list, we are generating (for now) a flat
list. Therefore we need to synthesize a root node in order to make stuff
work as intended.

MozReview-Commit-ID: IDXyziBO7pk

--HG--
extra : rebase_source : 99486a4c5b5e9938c4b7bbaa3f710d25e73d4401
2017-07-26 14:47:48 -04:00
Kartikaya Gupta 1766bdd4ab Bug 1384181 - Reorganize the WebRenderScrollData code to work with layers-free transactions. r=jrmuizel
Until now WebRenderScrollData was only used with "layers" WR
transactions, but we want to use it with layers-free transactions as
well. As such, we need to allow collecting information from display items
instead of layers. This restructures the code a little bit to allow
that. This patch should not have any functional effect on the "layers"
codepath, but on the "layers-free" codepath it is now actually
populating some rudimentary data into the WebRenderScrollData before
sending it across. This will be fleshed out in future patches.

MozReview-Commit-ID: BROqpsHPRND

--HG--
extra : rebase_source : 8510c52895e6be5cb546b42b02d56ec067de0623
2017-07-26 14:47:48 -04:00
Kartikaya Gupta 4dfe8eadc0 Bug 1382200 - Change implementation of the LayerMetricsWrapper IsScrollInfoLayer to use the metrics flag. r=botond
This also updates the WebRenderScrollDataWrapper function as it is meant
to be semantically equivalent to the LayerMetricsWrapper one, which
allows removal of a flag propagation.

MozReview-Commit-ID: 9DBx4qbhq5A

--HG--
extra : rebase_source : 3201d8a4bb7192ecdbe95983b605ac53b1a28c50
2017-07-19 09:24:24 -04:00
Ryan Hunt 0785b2f849 Bug 1351783 part 11 - Sync FocusTarget with WebRenderLayerManager. r=kats
MozReview-Commit-ID: LxWt22XY5IE

--HG--
extra : rebase_source : c8eb965d1737d4f6791d96d4f975a31365790632
2017-06-13 02:43:59 -04:00
Wes Kocher bcf1a1c32e Backed out 6 changesets (bug 1365927) for build failures in ipc_message_utils.h a=backout CLOSED TREE
Backed out changeset 11fc0da380a2 (bug 1365927)
Backed out changeset 9f1dee5a6c42 (bug 1365927)
Backed out changeset f4954c824f5c (bug 1365927)
Backed out changeset 144ac6cc76f8 (bug 1365927)
Backed out changeset 961e782cf7c7 (bug 1365927)
Backed out changeset 12a093fb86a4 (bug 1365927)

MozReview-Commit-ID: 6CDxqOJzMjE
2017-06-13 12:45:03 -07:00
Andrew Osmond 230fa0dcd8 Bug 1365927 - Part 1. Add missing headers and other build housekeeping. r=dvander 2017-06-13 15:17:59 -04:00
Ryan Hunt fcb54217c6 Bug 1371527 - Add LayersMessageUtils for IPC serialization of mozilla::layers structs. r=dvander
MozReview-Commit-ID: 7UAtrnnlSqI

--HG--
rename : gfx/ipc/GfxMessageUtils.h => gfx/layers/ipc/LayersMessageUtils.h
extra : rebase_source : 99abcb49ede377e5c31440b2d21a5bd79cda65e0
extra : amend_source : d1820fb6e7aee5e0dbcc83242e9264d8f4e7a4d0
2017-06-08 23:32:13 -05:00
Mason Chang 27e2a5cbe7 Bug 1371098 - Fix unified builds when adding a PaintThread. r=kats 2017-06-08 11:18:09 -07:00
Kartikaya Gupta 10f514bb72 Bug 1369840 - Support content-side APZ test data in WebRenderLayerManager. r=botond
This mostly just copies the functional parts of the APZTestData code from
ClientLayerManager into WebRenderLayerManager, and propagates the paint sequence
number over to the compositor using the existing WebRenderScrollData machinery.

MozReview-Commit-ID: LHupFpqtWTX
2017-06-04 22:29:35 -04:00
Botond Ballo 2d97e2ab3c Bug 1352863 - Propagate the visible region from Layer to HitTestingTreeNode. r=kats
The propagation happens via LayerMetricsWrapper or WebRenderScrollDataWrapper.

MozReview-Commit-ID: GBZUnNn3zjN

--HG--
extra : rebase_source : 4c63269480154a95d5faedf1b4972f7d3373cb5a
2017-05-24 15:47:14 -04:00
Kartikaya Gupta 8902dc4885 Bug 1364525 - Send the animation id for scrollbar thumbs over to the parent in the scroll data. r=botond
This propagates the animation id for a scroll thumb's stacking context over to
the APZ code, and stores it in the HitTestingTreeNode.

MozReview-Commit-ID: 5O13Xko2Bph
2017-05-23 10:50:41 -04:00
Botond Ballo 2029f1cf93 Bug 1349750 - Store the entire ScrollThumbData in HitTestingTreeNode. r=kats
This is preparation for future changes that will add fields to ScrollThumbData
that will be accessed via HitTestingTreeNode.

To accomplish this, this patch also exposes the entire ScrollThumbData via
LayerMetricsWrapper and WebRenderScrollDataWrapper.

MozReview-Commit-ID: 1Ed8Z80Wk1V

--HG--
extra : rebase_source : 86cce84eab0cd8bcd2998f1682137e9514bb1fb5
2017-05-03 20:25:09 -04:00
Botond Ballo 3981a3686a Bug 1349750 - Remove the no-longer-used WebRenderScrollData[Wrapper]::GetScrollThumbLength(). r=kats
Also remove a vestigial declaration of the previously removed method
HitTestingTreeNode::GetScrollThumbLength().

MozReview-Commit-ID: 3BvFNeGwPXd

--HG--
extra : rebase_source : 6cc6d2f2e3ecc4dedce2b83f6b0faf819f4be0f8
2017-05-03 20:23:42 -04:00
Kartikaya Gupta 6118b38f49 Bug 1357754 - Record the isFirstPaint flag in the WebRenderScrollData. r=jrmuizel
MozReview-Commit-ID: KKiRBLRTfEj
2017-04-20 10:38:06 -04:00
Kartikaya Gupta 7e8f4eeba8 Bug 1357754 - Add more data to the WebRenderScrollData object. r=botond,jrmuizel
This puts all the other things that APZ needs into the
WebRenderScrollData object. The main exception is the scroll clip - I'm
not totally sure how that will be handled yet, so for now we just return
no clip from WebRenderScrollDataWrapper.

MozReview-Commit-ID: 1IhGhSFiPYi
2017-04-20 10:38:05 -04:00
Kartikaya Gupta c8318bae76 Bug 1357754 - Implement the traversal functions of WebRenderScrollDataWrapper. r=botond
This mainly implements the GetLastChild and GetPreviousSibling functions
in the WebRenderScrollDataWrapper, and adds helper functions that are
needed to make that possible. This allows the WebRenderScrollDataWrapper
to simulate a full "LayerMetrics" tree using the information in the
underlying WebRenderScrollData object.

MozReview-Commit-ID: K82Ud2gAo8K
2017-04-20 10:38:05 -04:00