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

12158 Коммитов

Автор SHA1 Сообщение Дата
Kartikaya Gupta b6030f993c Bug 1490393 - Flush a deferred transform before picking up another if the ASR changes. r=mstange
The implementation of deferred transforms did not handle the case where
we ended up deferring multiple transform items in a row with different
ASRs. In this case, when we encounter the nested transform item that we
want to defer, we need to flush the previously-deferred transform item
into a WebRenderLayerScrollData item. This patch accomplishes that, and
includes a mochitest that exercises the relevant behaviour.

Depends on D8110

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

--HG--
extra : moz-landing-system : lando
2018-11-01 21:14:50 +00:00
Kartikaya Gupta 1523c9bf61 Bug 1490393 - Accumulate the deferred transform down the StackingContextHelper chain if the ASR matches. r=mstange
The implementation of deferred transforms did not handle the case where
we ended up deferring multiple transform items before encountering the
APZ-relevant display item. In this case we need to somehow accumulate
all the deferred transforms. This patch accomplishes that, and includes
a mochitest that exercises the relevant behaviour.

Depends on D8109

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

--HG--
extra : moz-landing-system : lando
2018-11-01 21:14:31 +00:00
Kartikaya Gupta 12f8d1ed88 Bug 1490393 - Extract a helper method on StackingContextHelper to get the deferred transform matrix. r=mstange
Depends on D8108

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

--HG--
extra : moz-landing-system : lando
2018-11-01 21:12:29 +00:00
Kartikaya Gupta 2db495b01c Bug 1490393 - Improve documentation regarding the deferred transforms. r=mstange
This code will be expanded a bit in the next few patches, so hopefully
the comments here provide a reasonable explanation of what this code is
about.

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

--HG--
extra : moz-landing-system : lando
2018-11-01 21:12:06 +00:00
Julian Descottes d12604b957 Bug 1467712 - Update all test wrappers forwarding to ok;r=Standard8
Depends on D10418

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

--HG--
extra : moz-landing-system : lando
2018-11-01 13:50:29 +00:00
Csoregi Natalia faba2c8c15 Backed out 4 changesets (bug 1467712) for multiple failures with: Too many arguments passed to ok. CLOSED TREE
Backed out changeset 9ce0ac2b9d71 (bug 1467712)
Backed out changeset 026eb1f6dc6e (bug 1467712)
Backed out changeset 0088a09d869a (bug 1467712)
Backed out changeset 1b19ea76aad6 (bug 1467712)
2018-11-01 15:22:52 +02:00
Julian Descottes 11efeff5dc Bug 1467712 - Update all test wrappers forwarding to ok;r=Standard8
Depends on D10418

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

--HG--
extra : moz-landing-system : lando
2018-11-01 11:12:39 +00:00
Margareta Eliza Balazs 86f56d08a0 Merge inbound to mozilla-central. a=merge 2018-11-01 11:12:55 +02:00
Gabriele Svelto 266ef73c96 Bug 1503207 - Remove nsWeakPtr.h and cleanup all files including weak reference-related headers r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D10251

--HG--
extra : moz-landing-system : lando
2018-10-31 20:39:03 +00:00
Ryan Hunt 358ef761e3 Bug 1502059 - Don't always cancel a scroll animation when we have a relative scroll offset update. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D9871

--HG--
extra : source : 2a457617fbf2ca133af18e9972e505f86dd90dd2
extra : amend_source : 119ab67b6c2c9a09a98cfb2f4c4ca20f82c64b9f
2018-10-25 17:21:29 -05:00
sotaro 683db7acd5 Bug 1502789 - Fix Texture release timing of AsyncImagePipelineManager::ProcessPipelineUpdates() r=nical 2018-10-31 14:19:41 +09:00
Lee Salzman c2b504684d Bug 1502152 - Skia m71 fuzzing. r=rhunt 2018-10-30 22:17:35 -04:00
Kartikaya Gupta d113a15f1b Bug 1501046 - Back out cset 798b3777f30f as we have a better fix now. r=me 2018-10-30 08:19:41 -04: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
Boris Chiou 04b273259e Bug 1496619 - part 6: Generate StyleTimingFunction and drop ns_timing_function.rs r=emilio,birtles
First, we generate StyleComputedTimingFunction by cbindgen from Rust, and use
it in nsTimingFunction, so we could copy it directly without handling
the different memory layout. However, we have to rewrite the
nsTimingFunction and mozilla::ComputedTimingFunction for this.

Second, the rust-bindgen seems cannot generate the correct generic members
from complex C++ templates, especially for the nested template struct,
(https://github.com/rust-lang-nursery/rust-bindgen/issues/1429)
So we have to hide StyleTimingFunction to avoid the compilation errors.

Depends on D9312

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

--HG--
extra : moz-landing-system : lando
2018-10-26 18:03:35 +00:00
Boris Chiou adff31eff9 Bug 1496619 - Part 1: Drop frames() timing function r=birtles
frames() timing function was removed from the spec, so we drop it.
Besides, some devtool tests are removed because they use frame(). I will
add them back by using new step function later.

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

--HG--
extra : moz-landing-system : lando
2018-10-26 18:03:24 +00:00
Andrew Osmond f608cada7d Bug 1405814 - Avoid crash with WebRender when the scroll metadata is unavailable. r=kats
Similar to bug 1471671, we are seeing missing scroll metadata in cases
we do not expect that, and have been observing low volume crashes in the
wild as a result. It appears that in the non-WR path, it skips such items,
so we should probably do the same thing with WebRender. If it is a real
problem, we will hopefully get a reproducible test case from a user if
scrolling fails for them.

Differential Revision: https://phabricator.services.mozilla.com/D9815
2018-10-25 20:00:35 -04:00
Andrew Osmond a953356cf6 Bug 1501793 - Fix a shutdown assert in APZUpdater::~APZUpdater. r=kats
When APZUpdater::mUpdaterQueue still contains entries, and it is
destroyed, we may trip an assert due to destroying an already_AddRefed
object without taking its contents into a RefPtr. This is because
APZUpdater::RunOnControllerThread would pass an already_AddRefed object
directly into NewRunnableFunction as the object, instead of a RefPtr
object. This caused templated object to store an already_AddRefed object
as a result, and when we wanted to drop the object, it complained.
Storing it as a RefPtr should cause everything to be freed normally.

Differential Revision: https://phabricator.services.mozilla.com/D9702
2018-10-25 14:44:51 -04:00
Andrew Osmond 3370375e1c Bug 1471671 - Avoid crash with WebRender when the scroll metadata is unavailable. r=kats
We are seeing crash reports in the wild where there is no scroll
metadata available for an ASR for a display item and its clip. It
appears that in the non-WR path, it skips such items, so we should
probably do the same thing with WebRender. If the scrolling ends up
being wrong, hopefully a reproducible use case will make its way to use
to further debug, as the crash reports have not yielded anything to date.

Differential Revision: https://phabricator.services.mozilla.com/D9699
2018-10-25 13:39:28 -04:00
Csoregi Natalia 9fbc76ace6 Merge inbound to mozilla-central. a=merge 2018-10-25 07:45:08 +03:00
sotaro 2d27550851 Bug 1496825 - Add ShadowLayerForwarder nullptr check to SendLayersDependentApzcTargetConfirmation() r=kats 2018-10-25 11:23:29 +09:00
Botond Ballo 44c897a308 Bug 1500565 - Avoid start a fling animation with infinite velocity. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D9729

--HG--
extra : moz-landing-system : lando
2018-10-25 00:53:32 +00:00
Botond Ballo 4d499b8dbf Bug 1499941 - Fix spatial vs. scroll coordinate confusion around APZCTreeManager::ProcessDynamicToolbarMovement() and helpers. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D9715

--HG--
extra : moz-landing-system : lando
2018-10-25 00:14:58 +00:00
Ryan Hunt ec4e613070 Bug 1453425 - Add test for relative scroll offset updates. r=botond
--HG--
extra : rebase_source : 36029954120993f7deac460632526487f17f44b6
extra : histedit_source : 1015aebaece5dbd9d18db999c463c8860f5c4dfe
2018-10-23 09:50:52 -05:00
Botond Ballo 9405cbccaf Bug 1493742 - When accepting a layout viewport update from the main thread, constrain its position to enclose the visual viewport. r=kats
APZ wants the *size* of the layout viewport from the main thread, but it
knows the position better.

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

--HG--
extra : moz-landing-system : lando
2018-10-24 18:14:55 +00:00
Kartikaya Gupta df09857871 Bug 1501046 - Skip reporting checkerboarding to telemetry if the sanity test is running. r=botond
This is not really the best fix (a better one would be to ensure that the
displayport is set on the root element of the gfx sanity window), but should
do as a stopgap solution.

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

--HG--
extra : moz-landing-system : lando
2018-10-24 17:08:36 +00:00
Julian Descottes 73e3a16c0d Bug 1499096 - Use ok() with 2 arguments instead of 3 when possible;r=Standard8
Depends on D8740.
This changeset replaces calls to ok with 3 arguments to calls with 2 arguments
in situations where the switch does not have a significant impact on the assert.

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

--HG--
extra : moz-landing-system : lando
2018-10-23 07:13:35 +00:00
Kartikaya Gupta 2c29b10d55 Bug 1469403 - Skip DL dumps when the DL builder is from an inactive docshell. r=mattwoodrow
Depends on D9141

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

--HG--
extra : moz-landing-system : lando
2018-10-22 23:42:05 +00:00
Emilio Cobos Álvarez ba7599486e Bug 1498221 - Don't apply layer scaling to fallback filters. r=mattwoodrow
Using layer scaling confuses the filter code (see bug 1497239).

Right now we're sort-of double-scaling. Looks like what the filter code expects
is just getting the scaling passed down, see bug 1224207.

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

--HG--
extra : moz-landing-system : lando
2018-10-22 23:41:30 +00:00
Botond Ballo 9ae59445f8 Bug 1478304 - Add a mochitest. r=kats
Depends on D9327

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

--HG--
extra : moz-landing-system : lando
2018-10-20 01:03:47 +00:00
Botond Ballo cb048ace65 Bug 1478304 - Ensure Layer::GetFixedPositionScrollContainerId() returns NULL_SCROLL_ID for layers that are not fixed. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D9327

--HG--
extra : moz-landing-system : lando
2018-10-20 01:02:50 +00:00
Jamie Nicol 9498be51e6 Bug 1479754 - Hook up the force-first-paint codepath with webrender r=kats
When a CompositorBridgeParent receives a force first paint message, it
sets the flag on the AsyncCompositionManager, which notifies the
widget code at the next composite via
UiCompositorControllerParent::NotifyFirstPaint().

With webrender, this is crashing as there is no
AsyncCompositionManager. And even if it weren't crashing, the widget
will never receive the first paint message, so it never uncovers its
content.

This change ensures the widget receives the first message when
webrender is enabled. CompositorBridgeParent will set the flag on its
WebRenderBridgeParent, which will set the flag on the next received
display list. When the WebRenderBridgeParent flushes the corresponding
transaction, it calls UiCompositorcontrollerParent::NotifyFirstPaint,
to ensure the widget code gets the message.

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

--HG--
extra : moz-landing-system : lando
2018-10-19 13:48:04 +00: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
Kartikaya Gupta 33d89bae83 Bug 1485834 - Sample APZ zoom values for webrender. r=botond
Depends on D9119

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

--HG--
extra : moz-landing-system : lando
2018-10-19 14:24:32 +00:00
Brian Hackett 0ec2f258e7 Bug 1499186 Part 1 - Allow recording/replaying processes to ignore vsyncs, r=nical.
--HG--
extra : rebase_source : e36cb48b5a7ba3b4f2fc46fd68256b46801f0792
2018-10-17 10:18:50 -06:00
Brian Hackett e1cc56fa0f Bug 1488808 Part 17 - Allow paints to happen at the normal time when recording/replaying, r=nical.
--HG--
extra : rebase_source : c9a5536a9eeff96937643fdf7bf68e56e437cef1
2018-10-17 10:16:30 -06: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 accd024b8f Bug 1453425 - Add RepaintRequest for use of FrameMetrics in repaint requests. r=botond
FrameMetrics is currently used in about three ways.
  1. Main thread to APZ transactions
  2. Storing information in AsyncPanZoomController
  3. APZ to main thread repaint requests

There's overlap in the use of fields in all these use cases, but it's not perfect. In a
following commit, I'd like to change the information used for (1) to support relative
scroll offset updates. This information isn't needed for (2) or (3), so it would be
good to refactor FrameMetrics out into these use cases.

This commit refactors out (3) as it is fairly easy to do. I'd like to refactor (2) out
as well, but that is trickier. I'd like to leave that for a future followup.

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

--HG--
extra : rebase_source : f0be2be24fce7d0f0ed25f6f3bfab5f7f2864f23
extra : source : fc9898a9ab28cee292e201ddaf757ee267179433
extra : histedit_source : 35415d3dc2c0ae0f269994c385cceff75f150020
2018-09-19 13:50:20 -05:00
sotaro fe52320e8b Bug 1497910 - Call wr_renderer_readback() before calling RenderCompositor::EndFrame() r=nical 2018-10-17 07:54:01 +09:00
Kartikaya Gupta eb22224d62 Bug 1484173 - Replace the mNeedsComposite counter with a timestamp. r=sotaro
The mNeedsComposite counter was used to force a composite immediately if
the scheduler received a number of composite requests without actually
getting a vsync. It was necessary on Fennec because of main-thread
contention. However it was wrong because it assumes only a single
composite gets requested per vsync interval, which is not true. Instead
of using a counter this patch uses a timestamp to ensure that we only
force the vsync after two vsync intervals have elapsed.

Depends on D8765

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

--HG--
extra : moz-landing-system : lando
2018-10-16 05:36:14 +00:00
Kartikaya Gupta 51d0eb31fa Bug 1484173 - Expose the vsync interval via the CompositorVsyncSchedulerOwner interface. r=sotaro
We need this for the next patch.

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

--HG--
extra : moz-landing-system : lando
2018-10-16 00:33:51 +00:00
Botond Ballo bc30a8f71d Bug 1498329 - Use a fallback velocity if the velocity tracker doesn't have enough recent samples to compute a velocity. r=kats
Depends on D8786

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

--HG--
extra : moz-landing-system : lando
2018-10-15 23:31:53 +00:00
Botond Ballo e1f2ede5f8 Bug 1498329 - Fix a bug in AndroidVelocityTracker::ComputeVelocity() where we were unintentionally ignoring the oldest data point. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D8786

--HG--
extra : moz-landing-system : lando
2018-10-15 23:29:21 +00:00
Noemi Erli 014b37a409 Merge inbound to mozilla-central. a=merge 2018-10-16 01:20:08 +03:00
Kartikaya Gupta fe4f74eb20 Bug 1462980 - Use the more robust waitUntilApzStable instead of ad-hoc afterPaint waiting. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D8748

--HG--
extra : moz-landing-system : lando
2018-10-15 17:44:27 +00:00
Kartikaya Gupta dc68784e43 Bug 1479757 - Switch to containerless scrolling for GeckoView+WR. r=botond
This changes the containerful scrolling pref to be an override pref
such that it is:
- always false on desktop (i.e. always use containerless there)
- always true in Fennec (i.e. never use containerless there)
- true in GeckoView if WebRender is disabled (i.e. only use
  containerless with WebRender).

The first two cases are the same as before; the last case is new.
Because we don't create layers with WR, the containerless vs
containerful distinction doesn't make much sense there, and we need to
implement a bunch of zooming glue in either case. So it makes sense to
go with the "way of the future" and keep it containerless.

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

--HG--
extra : moz-landing-system : lando
2018-10-15 17:41:21 +00:00
Kartikaya Gupta 3d29d74088 Bug 1498699 - Only create the AndroidDynamicToolbarAnimator for Fennec. r=jnicol
The bulk of this is adjusting the code that tries to use the toolbar to
have appropriate null checks instead of asserting it will exist. The
creation of the animator instance is now guarded by a IsFennec
condition.

Depends on D8658

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

--HG--
extra : moz-landing-system : lando
2018-10-15 14:56:35 +00:00
Kartikaya Gupta ece2bc6665 Bug 1498699 - Move the FIRST_PAINT notification from AndroidDynamicToolbarAnimator to UiCompositorControllerParent. r=jnicol
Depends on D8657

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

--HG--
extra : moz-landing-system : lando
2018-10-15 13:20:27 +00:00
Kartikaya Gupta 7e23a5fb50 Bug 1498699 - Move the LAYERS_UPDATED notification from AndroidDynamicToolbarAnimator to UiCompositorControllerParent. r=jnicol
This extracts code that is conceptually unrelated to the dynamic toolbar
from the dynamic toolbar codebase. It is a stepping stone to being able
to not instantiate the AndroidDynamicToolbarAnimator at all for
non-Fennec android products.

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

--HG--
extra : moz-landing-system : lando
2018-10-15 13:19:16 +00:00
Nicolas Silva cd2c34aaa5 Bug 1479912 - Clear WebRender resources asynchronously. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D7280

--HG--
extra : moz-landing-system : lando
2018-10-12 06:47:29 +00:00