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

1773 Коммитов

Автор SHA1 Сообщение Дата
Sebastian Hengst 0819f35e51 Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
Kartikaya Gupta cfd585d234 Bug 1453364 - Update scrollbar transforms separately from OMTA transforms. r=nical
Although they still happen in the same transaction, they are done in two
separate frame messages. This results in better encapsulated code on the
C++ side since we don't have to pass around an array of properties, and
will simplify future changes to update these properties at render time
rather than at GenerateFrame time.

MozReview-Commit-ID: 9qUkHX7gmD1

--HG--
extra : rebase_source : 15a319ba270eb1783815c514ae05c6a72e323dac
2018-04-11 15:28:00 -04:00
Zhang Junzhi 2bdc6774da Bug 1358017 - Part 5: Implements the "honour root" functionality for the auto-dir scrolling feature in APZ r=kats
With this commit, all the auto-dir scrolling functionalities are completed in
APZ.

MozReview-Commit-ID: L7qa3xOD8t9

--HG--
extra : rebase_source : bad2770219a0e6219f91899ab6c78e68f37195ac
2018-03-16 21:20:39 +08:00
Zhang Junzhi fe2d79f73f Bug 1358017 - Part 4: Implements the auto-dir scrolling feature(without the "honour root" functionality) in APZ r=kats
This commit implements the auto-dir scrolling functionality in APZ, based on
part 1 to part 3. However, the functionality of mousewheel.autodir.honourroot
will be implemented in a future.

MozReview-Commit-ID: 9xai99x71gh

--HG--
extra : rebase_source : 118d188f730e3fb91d147b076a053cb04e622e55
2018-03-16 19:23:53 +08:00
Zhang Junzhi 414177f87e Bug 1358017 - Part 1: Adds some comments, renames some identifiers and refactors some other trivial things. r=kats,masayuki
Do some work in preparation for implementing actual functionalities for this
bug. No actual functionality change is involved in this commit.

MozReview-Commit-ID: 5aLhr38n1N4

--HG--
extra : rebase_source : 15cfc2cea5b7668367dd3bd4a0746ae8c61b7d20
2018-03-15 16:31:07 +08:00
Kartikaya Gupta 97ffc1e59e Bug 1452620 - Use FfiVec to clean up WrPipelineInfo usage in C++. r=Gankro,nical
Instead of passing a WrPipelineInfo* to C++ code, we can now pass the
WrPipelineInfo directly. C++ code can access the info members without
having to call back into rust code, so the wr_pipeline_info* iterator
methods can be removed. Deleting the structure still requires passing it
back to rust.

MozReview-Commit-ID: HYcPX3mCGKW

--HG--
extra : rebase_source : f4b781cfc463c8e196f67a6e178ce4ce44a9464a
2018-04-10 17:26:54 -04:00
Tristan Bourvon a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Kartikaya Gupta 97a6b6003c Bug 1449982 - Conceptually split the mUpdaterQueue into separate queues per layers id. r=botond
This allows us to treat tasks from different layers id as independent,
thereby removing the unnecessary latency increase as described in bug
1449982 comment 33.

Note that we could probably implement this by actually maintaining
separate queues for each layers id, but that involves more overhead
since we would need to have a map from layers id to task queue, and
removing entries from that map becomes tricky with respect to locking
and timing.

MozReview-Commit-ID: 7jtYqNDwJqP

--HG--
extra : rebase_source : d55fa2c20c5e78a330033dcf049d5cc468024bb0
2018-04-10 12:30:01 -04:00
Kartikaya Gupta c113f26ef7 Bug 1449982 - Hook up epoch-based task processing on the updater thread. r=botond,nical
This makes it so that we only process a UpdateHitTestingTree task (and any
tasks queued after it) once we know that the corresponding scene has
been built and swapped in by WebRender. This ensures that processing of
APZ data stays in sync with the active scene in WR.

The way we do this is by tracking the "epoch" (which is updated per
WR/layers transaction) that the APZ messages are based on. Only once the
scene for that transaction is swapped in do we process those messages.

MozReview-Commit-ID: 2qGTSTeSqve

--HG--
extra : rebase_source : fb4cb0df3970213d01e21a792957ad22771a0637
2018-04-10 12:30:01 -04:00
Kartikaya Gupta bcf81a1fe2 Bug 1449982 - Move the WebRenderScrollData storage from WebRenderBridgeParent to APZUpdater. r=botond
This allows us to easily store a handle to the APZUpdater on the
WebRenderScrollDataWrapper class and walk around in the scroll data tree
without having to query other classes like CompositorBridgeParent or
WebRenderBridgeParent when we encounter a reflayer boundary.

MozReview-Commit-ID: 6l7oMb7tBlW

--HG--
extra : rebase_source : d21b64317eaf40f743fb7354b3292ab0f54a6d05
2018-04-10 12:29:56 -04:00
Kartikaya Gupta 9c2db3f2e5 Bug 1449982 - Add the task queue for running things on the updater thread. r=botond
If we're using the WR scene builder thread as the updater thread, we
cannot just post a task to its message loop, because it's a rust thread
that doesn't have a message loop. Instead, we put these tasks into a queue
that we will process in callbacks that are invoked from the updater
thread.

This patch just adds the basic queue machinery, it will get more
complicated in a future patch because we need to gate the tasks to make
sure they don't run too early.

MozReview-Commit-ID: 8DCYbsQ5cBC

--HG--
extra : rebase_source : 7081fb187436451b0c9d654f2e31c486d25924d7
2018-04-10 12:29:55 -04:00
Kartikaya Gupta 4bffc1c061 Bug 1449982 - Implement the WR updater thread registration. r=botond
This lets the APZUpdater know which thread is the actual updater thread.
This is only really used for the thread assertions, but might be useful
for debugging and such as well.

MozReview-Commit-ID: IIDm6Ui3Sh4

--HG--
extra : rebase_source : 575ba6c0c5d56276743e81e738e73e7672e08367
2018-04-10 12:29:55 -04:00
Kartikaya Gupta fde6e769ba Bug 1449982 - Add the plumbing for scene builder thread interaction. r=nical
This is all the (bidirectional) glue that connects the SceneBuilderHooks
to the APZUpdater.

MozReview-Commit-ID: JIqUaClVa57

--HG--
extra : rebase_source : c6da81e63793570f79cdfa153f6d33d2ac05bdf6
2018-04-10 12:29:55 -04:00
Kartikaya Gupta 7dd62afca0 Bug 1449982 - Maintain a map from WrWindowId to APZUpdater. r=botond
This will allow callbacks from rust code to get a handle to the
necessary APZUpdater instance on which to invoke functions.

MozReview-Commit-ID: 13XdzZrrtI5

--HG--
extra : rebase_source : 137af2a4c738a6e9294972be9e0566c9fdef58ac
2018-04-10 12:29:55 -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
Andreea Pavel 0724b513f9 Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE 2018-04-10 00:58:54 +03:00
Olli Pettay a2485252b4 Bug 1452751 - add a pref to control whether to default to passive touch listeners on window/document/documentElement/body , r=kats
--HG--
extra : rebase_source : ba015d60e7ab7da183048dc59dfb0fe42930df6d
2018-04-09 23:43:17 +03:00
Kartikaya Gupta efcb51ab74 Bug 1452601 - Drop LayersId::EqualFn as it is unnecessary. r=botond
It's not needed, because by default std::unorderd_map will use
std::equal_to which delegates to the operator== on LayersId which does
the same thing. We don't need to reimplement it.

MozReview-Commit-ID: CLJO2JJfbF4

--HG--
extra : rebase_source : c8f5c254f00ab5e96c5d6e140534465c5a52c5af
2018-04-09 08:29:55 -04:00
Botond Ballo 441707aee4 Bug 1449738 - Enable helper_hittest_backface_hidden.html for WebRender. r=kats
MozReview-Commit-ID: 827paBjv4JX

--HG--
extra : rebase_source : 4974049791088d7244b70dfae19ba1b4e81f49fd
2018-03-28 14:56:52 -04:00
Noemi Erli ff466e94c1 Merge inbound to mozilla-central. a=merge 2018-04-05 13:02:11 +03:00
Olli Pettay abe47d910c Bug 1449268 - Treat document-level touch event listeners as passive, r=kats
--HG--
extra : rebase_source : 0ea948a612dfbd46b80b52985f96685b012e0079
2018-04-04 19:19:54 +03:00
Botond Ballo 02b381dff1 Bug 1450099 - Only enter the SCROLLBAR_DRAG state if the scrollbar thumb is clicked. r=kats
MozReview-Commit-ID: HkNvYQP0KqC

--HG--
extra : rebase_source : a70141743169f36666a08582a4a12c47cd18bb45
2018-04-04 16:29:57 -04:00
Botond Ballo 28afde2e13 Bug 1450099 - Add a fast-path to FindScrollThumbNode() for when the drag metrics has not been initialized. r=kats
MozReview-Commit-ID: IGhP2KW9WC

--HG--
extra : rebase_source : b3d77febfb9bcbf03ae821147e8301b09e00d8f2
2018-04-04 16:36:01 -04:00
Jan Henning b1dce09642 Bug 1281907 - Part 2 - Add reftest for scrollbars with pinch-zooming. r=botond
MozReview-Commit-ID: K7YoEPQLJzU

--HG--
extra : rebase_source : 370eb97fd04384df4f8d7e9bdbc64ff42b89fb57
2018-04-01 17:40:04 +02:00
Jan Henning e920ec0ec7 Bug 1281907 - Part 1 - Include zoom level compensation in clip transform passed to caller. r=botond
If we don't do that, in the case of a root scrollbar the clip transform passed
to our caller will incorrectly be scaled with the current content resolution.
This means that that the position of the clip rect won't match the actual
position of the scrollbar if the resolution isn't ~1.0, so the scrollbars will
be clipped out of existence when the content is (pinch-) zoomed in or out.

MozReview-Commit-ID: 5yXa9EpTJ2g

--HG--
extra : rebase_source : 88c3b5a8613a3d6ef0c753116ebf9efe9ffc0022
2018-03-24 21:27:06 +01:00
Botond Ballo 257491c121 Bug 1449746 - Make helper_hittest_backface_hidden.html more robust. r=kats
MozReview-Commit-ID: J0GH58j3X6U

--HG--
extra : rebase_source : f1764396de82d583a087fe6cd27a5c11944d5121
2018-03-29 23:16:31 -04:00
Botond Ballo f733b4a04e Bug 1449759 - Add an APZ mochitest for bug 1443518. r=kats
MozReview-Commit-ID: 1t6wpYo9n3P

--HG--
rename : gfx/layers/apz/test/mochitest/helper_hittest_subframe_float.html => gfx/layers/apz/test/mochitest/helper_hittest_float_bug1434846.html
extra : rebase_source : 11d9a120f1b1fdd841a7e7cb59b92975e08205df
2018-03-28 18:04:32 -04:00
Xidorn Quan 4cf9aed667 Bug 1449400 part 5 - Remove StyleSetHandle. r=emilio
This patch basically does:
* remove StyleSetHandle and its corresponding files
* revisit #includes of related header files and change correspondingly
* change nsIPresShell::mStyleSet to be UniquePtr<ServoStyleSet>
* change the creating path of ServoStyleSet to pass UniquePtr
* change other mentions of StyleSetHandle to ServoStyleSet*
* remove AsServo() calls on ServoStyleSet

Some unfortunate bits:
* some methods of (Servo)StyleSet only accepts ServoStyleSheet while
  many places call into the methods with StyleSheet, so there are many
  ->AsServo() added to sheets

MozReview-Commit-ID: K4zYnuhOurA

--HG--
extra : rebase_source : 459e8efeb171adad089d94272e143e8c244bd279
extra : source : 65ba2f174fcf7dba4e59c00ee8908b1bd0820a48
2018-03-29 22:15:46 +11:00
Kartikaya Gupta d6673c9aad Bug 1449620 - Extract an APZUpdater class from APZSampler. r=botond
The APZUpdater class holds the methods that are to be run on the updater
thread. Note that there are a few differences between the APZSampler and
APZUpdater classes - most notably, APZSampler no longer has a
"RunOnSamplerThread" function because there should never be any need to
dispatch runnables to the sampler thread. There is still a
RunOnUpdaterThread in APZUpdater, as well as a mechanism for dispatching
runnables to the controller thread via the updater thread.

MozReview-Commit-ID: LLVWzRyhYWl

--HG--
extra : rebase_source : d3d2ae18b40f24473cab5567a48b67b8f478a733
2018-03-28 18:36:42 -04:00
Gurzau Raul caf04b916e Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-03-29 00:59:08 +03:00
Ryan Hunt 2be42a45f6 Bug 1448485 - Remove assert in APZCallbackHelper and add comment about case it was triggered by. r=kats
MozReview-Commit-ID: IbXNISatv3Q

--HG--
extra : rebase_source : d88637454e58be5c18a1fa1dc0588a04eddc274c
2018-03-27 16:16:26 -05:00
Kartikaya Gupta fb7f70182b Bug 1447299 - Ensure all APZSampler functions run on the sampler thread. r=botond
Functions in APZSampler that are only invoked without WR (e.g. from
AsyncCompositionManager only) can be asserted as running on the sampler
thread. Functions that are invoked with WR need to be bounced onto the
sampler thread. In all cases the functions are called from the
compositor thread, and so we assert that as well.

MozReview-Commit-ID: JPgGlgUUsgg

--HG--
extra : rebase_source : 8b950d3386e1e64e766b76edaa7894b251fb8664
2018-03-28 14:57:06 -04:00
Kartikaya Gupta b015c3b3ec Bug 1447299 - Bounce PAPZCTreeManager controller messages through the sampler thread. r=botond
The methods on PAPZCTreeManagerParent are always invoked on the
compositor thread, which currently is always the same as the sampler
thread. When it does RunOnControllerThread calls, there is an implicit
ordering with respect to the sampler thread, because the controller
thread messages are always dispatched *from* the sampler thread.
When we move the sampler thread to be the render backend thread, we have
to preseve this implicit ordering, but we have to make it more explicit.

For example, if a content process sends a layers update followed by
a SetTargetAPZC message, it expects that the APZ will process them in
that order, as the SetTargetAPZC might refer to a scrollframe that was
just layerized. Currently, both these messages arrive on the compositor
thread; the layers update is processed directly as the compositor thread
is the sampler thread, and then the SetTargetAPZC message is bounced to
the controller thread. However, if the compositor thread is not the
sampler thread, then we would bounce the layers update to the sampler
thread, and bounce the SetTargetAPZC to the controller thread,
introducing a race. If SetTargetAPZC runs first bad things happen. The
solution in this patch is to bounce the SetTargetAPZC to the sampler
thread as well, so that it gets bounced to the controller thread only
after we have processed the layers update.

This patch accomplishes that by introducing a method on APZSampler that
does this "double bounce".

MozReview-Commit-ID: KI9wQQ9PZT4

--HG--
extra : rebase_source : 79d0d36a649f11cc795148cc86539a526c8beeae
2018-03-28 14:57:01 -04:00
Kartikaya Gupta cf0569e64e Bug 1447299 - Have the APZCTreeManagerParent store a reference to the APZSampler. r=botond
MozReview-Commit-ID: BNhkhFAmYP8

--HG--
extra : rebase_source : 43ff9d5f74add3b8b8b0cf651d06a14d8ec82885
2018-03-28 14:56:55 -04:00
Kartikaya Gupta eacf1f2dcc Bug 1447299 - Move the RunOnControllerThread from APZCTreeManager::SetLongTapEnabled to the caller. r=botond
This is functionally a no-op (it just moves the thread-bouncing code
from inside APZCTreeManager::SetLongTapEnabled to the call site in
APZCTreeManagerParent. The other call site, in
widget/android/nsWindow.cpp, is already known to be running on the
controller thread (which would be the Java UI thread in that case).

This makes the code in APZCTreeManagerParent more consistent and
simplifies the next changes.

MozReview-Commit-ID: 8VfEDVVFNl8

--HG--
extra : rebase_source : 02225ed5b80129a1d18b429eff93866a33d4ea86
2018-03-28 14:56:48 -04:00
Kartikaya Gupta 3c26f7183f Bug 1447299 - Move the sampler thread util functions from APZThreadUtils to APZSampler. r=botond
Note that this also makes the utility functions instance methods,
because each APZSampler might have a different sampler thread instance.

MozReview-Commit-ID: 9dY8ZzVX6lR

--HG--
extra : rebase_source : 4dd58400aee5d9f2063abe0a912488b28ff74f9f
2018-03-28 14:56:41 -04:00
Kartikaya Gupta 4bbad90793 Bug 1447299 - Have the APZCTreeManager keep a pointer to the sampler. r=botond
MozReview-Commit-ID: GiITwCDuWAW

--HG--
extra : rebase_source : 13a288785c0c3d7d0374e253f4211bfe7c5540bc
2018-03-28 14:55:58 -04:00
Andi-Bogdan Postelnicu a10bc600e1 Bug 1449145 - Improve by modernising code in gfx/layers/apz. r=botond
MozReview-Commit-ID: FxYKhXPsiTD

--HG--
extra : rebase_source : 54204905a105352c53cc696ad31d55f81cd808b7
2018-03-28 21:41:00 +03:00
Botond Ballo 38444e7793 Bug 1447131 - Mochitest for hit-testing over backface-visibility:hidden element. r=kats
MozReview-Commit-ID: EeQlvluPQD1

--HG--
extra : rebase_source : 074ba63d6c4d9a69393cce691988697def556818
2018-03-28 14:22:54 -04:00
Botond Ballo 1b44d973ee Bug 1447131 - Move centerOf() into apz_test_utils.js. r=kats
MozReview-Commit-ID: CwO5SnWmhb9

--HG--
extra : rebase_source : ad39696f8573e2e5119720c7495ce1b21cf62f82
2018-03-28 14:22:42 -04:00
Botond Ballo 3552e7b87f Bug 1447131 - Handle backface-visibility:hidden in compositor hit testing. r=kats
MozReview-Commit-ID: EZhhSk3EZAL

--HG--
extra : rebase_source : be2e6a1e3fc651cb26bf90b77077ca0a5de8d80a
2018-03-28 14:22:30 -04:00
Botond Ballo af24ea01cd Bug 1425603 - APZ mochitest for obeying overscroll-behavior when scrolling over a checkerboarded area. r=kats
MozReview-Commit-ID: JMWBVf2bKKP

--HG--
rename : gfx/layers/apz/test/mochitest/helper_scroll_overscroll_behavior.html => gfx/layers/apz/test/mochitest/helper_overscroll_behavior_bug1425573.html
extra : rebase_source : be9f67885ef2fd13b6e3bc377903da7878d53ed1
2018-03-21 18:59:38 -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 8831866d46 Bug 1448490 - Follow-up to fix compilation of disabled-by-default logging. r=me and DONTBUILD
MozReview-Commit-ID: CQhx0Ty5tKw
2018-03-28 06:31:03 -04:00
jlogandavison 27858eb98f Bug 1428387 - Tests for APZC pinch locking mechanism. r=botond
MozReview-Commit-ID: 5c74fV0mLVT

--HG--
extra : rebase_source : 4f4f889e30d7eb78de680e9cb3004bac32dba97d
extra : amend_source : c19f1219fde2b2d0fdb9c6a46dfa94cbeccac0b7
2018-03-02 19:59:01 +00:00
Emilio Cobos Álvarez f7522ae728 Bug 1447358: Unifdef the old style system code. r=jwatt
Summary:
This has been automatically generated using:

  http://dotat.at/prog/unifdef/

And:

find $OBJDIR -type f -name '*.h' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

find $OBJDIR -type f -name '*.cpp' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

MozReview-Commit-ID: I4NdKqbMXzJ

Reviewers: jwatt

Bug #: 1447358

Differential Revision: https://phabricator.services.mozilla.com/D779
2018-03-21 10:20:34 +01:00
shindli 55e9f63bac Merge inbound to mozilla-central. a=merge 2018-03-20 12:11:27 +02:00
Boris Zbarsky 89ea512161 Bug 1446711 part 7. Switch the nsIDOMMouseEvent::MOZ_SOURCE_* constants over to MouseEventBinding. r=qdot
We can't include MouseEventBinding.h in MouseEvents.h because that produces
this include loop:

MouseEventBinding.h -> UIEventBinding.h ->
nsGlobalWindow.h -> nsGlobalWindowInner.h -> nsRefreshDriver.h ->
AnimationEventDispatcher.h -> AnimationComparator.h -> Animation.h ->
EffectCompositor.h -> PseudoElementHashEntry.h -> Element.h ->
PointerEventHandler.h -> MouseEvents.h -> MouseEventBinding.h

MozReview-Commit-ID: 6FNksGil7uD
2018-03-20 00:16:06 -04:00
Boris Zbarsky 1a7c5067ca Bug 1446851. Get rid of nsIDOMWheelEvent. r=qdot
We can't include WheelEventBinding.h in MouseEvents.h because that produces
this include loop:

WheelEventBinding.h -> MouseEventBinding.h -> UIEventBinding.h ->
nsGlobalWindow.h -> nsGlobalWindowInner.h -> nsRefreshDriver.h ->
AnimationEventDispatcher.h -> AnimationComparator.h -> Animation.h ->
EffectCompositor.h -> PseudoElementHashEntry.h -> Element.h ->
PointerEventHandler.h -> MouseEvents.h -> WheelEventBinding.h

MozReview-Commit-ID: 5KNwH69aJYW
2018-03-20 00:16:05 -04:00
Kartikaya Gupta c864e00967 Bug 1441324 - Move the input event messages from PAPZCTreeManager to PAPZInputBridge. r=froydnj,rhunt
This remotes the APZInputBridge interface over the PAPZInputBridge
protocol in the case of the GPU process, and makes the GPU process'
main thread act as the APZ controller thread in that process. If
there is no GPU process we continue as before and the APZInputBridge
interface implementation is the concrete APZCTreeManager instance
in the UI process.

The main changes in this patch are moving all the code associated with
these messages out of APZCTreeManager{Parent,Child} and into
APZInputBridge{Parent,Child}. APZCTreeManagerChild now returns an
APZInputBridgeChild instance via InputBridge(), instead of returning
itself. The SetControllerThread call in the GPU process is also updated.

MozReview-Commit-ID: M4AaIW1Q0h

--HG--
extra : rebase_source : e5a8f14e23be34229fe80a47f6789d19b19e0a9f
2018-03-16 16:28:19 -04:00