Commit Graph

36807 Commits

Author SHA1 Message Date
Daniel Varga
452acadb3b Backed out 7 changesets (bug 1621762) for causing build bustages at builds/worker/workspace/obj-build/dist/include/mozilla/dom/ProducerConsumerQueue.h
CLOSED TREE

Backed out changeset 03903e8f368e (bug 1621762)
Backed out changeset 21ef72486643 (bug 1621762)
Backed out changeset 70d103786c83 (bug 1621762)
Backed out changeset a3e1332998c3 (bug 1621762)
Backed out changeset 010f653b87d2 (bug 1621762)
Backed out changeset 0496adcb4582 (bug 1621762)
Backed out changeset 8d85420fd2e6 (bug 1621762)
2020-04-30 06:06:33 +03:00
David Parks
c917376c04 Bug 1621762: Part 5 - Change PWebGL alloc+constructor to Initialize message r=jgilbert,jld
We need to separate WebGL actor construction and initialization since IpdlQueue initialization needs the actor to already exist.

Differential Revision: https://phabricator.services.mozilla.com/D68262
2020-04-30 01:30:08 +00:00
David Parks
b360387b15 Bug 1621762: Part 3 - Make some classes generic to support multiple remote WebGL implementations r=jgilbert
* Templatize ProducerView/ConsumerView/(Sync)CommandSource/(Sync)CommandSink to allow both Pcq and Ipdl versions, as the client code is identical.
* Rename Producer/Consumer -> PcqProducer/PcqConsumer.

Differential Revision: https://phabricator.services.mozilla.com/D68259
2020-04-30 01:25:27 +00:00
Kartikaya Gupta
4e454e564a Bug 1633103 - Use SetState to ensure we dispatch appropriate state change notifications. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D72945
2020-04-30 00:56:01 +00:00
Daniel Varga
d0212aae27 Backed out changeset a8ca75f3002d (bug 1633985) on request by dev 2020-04-30 01:58:25 +03:00
Glenn Watson
ab3883a1e7 Bug 1633985 - Remove unused clip parent and backface flag from push_iframe r=kats,nical
Differential Revision: https://phabricator.services.mozilla.com/D73006
2020-04-29 21:54:14 +00:00
Dorel Luca
f906702a66 Backed out changeset 0a9371673354 (bug 1633985) for Webrender bustages. CLOSED TREE 2020-04-30 00:03:23 +03:00
Glenn Watson
c222acf8ae Bug 1633985 - Remove unused clip parent and backface flag from push_iframe r=kats,nical
Differential Revision: https://phabricator.services.mozilla.com/D73006
2020-04-29 17:14:50 +00:00
Simon Giesecke
d62827d0da Bug 1628692 - Fix FallibleTArray handling in gfxContext::CurrentDash. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D71576
2020-04-29 08:58:36 +00:00
Lee Salzman
c3a1a86711 Bug 1633971 - comment SWGL's span rasterizer. DONTBUILD r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D73000
2020-04-29 14:58:54 +00:00
Miko Mynttinen
2ad9f93410 Bug 1633453 - Clear display item cache when the display list send fails or WR backend changes r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D72692
2020-04-29 02:26:08 +00:00
Kartikaya Gupta
57f8684aec Bug 1625249 - Do a better job of setting hit-test info on blobs. r=jrmuizel
In particular this will pick up any hit-test flags set on individual items
inside a blob, and ensure the hit-test info emitted to APZ for the blob includes
those flags.

Differential Revision: https://phabricator.services.mozilla.com/D69205
2020-04-28 21:46:26 +00:00
Kartikaya Gupta
3f01c1d409 Bug 1625249 - Reduce levels of indentation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D69204
2020-04-28 21:46:28 +00:00
Glenn Watson
e0dc298035 Bug 1633645 - Remove prim_origin from primitive dependency descriptor. r=Bert
It's no longer needed with the recent fix to how rectangle prim
and clip rects are stored. It's also a performance win, reducing
the amount of work done when comparing primitive dependencies.

Differential Revision: https://phabricator.services.mozilla.com/D72794
2020-04-29 00:36:56 +00:00
Geoff Brown
b987f3b775 Bug 1630774 - Skip some gfx crashtests on android webrender; r=jmaher
Update crashtest expectations to avoid troublesome wr_moz2d_render_cb crashes more effectively.

Differential Revision: https://phabricator.services.mozilla.com/D72966
2020-04-28 22:49:28 +00:00
Brindusan Cristian
7cee26a500 Backed out 3 changesets (bug 1625249) for bc failures at browser_test_hittest_svg_over_iframe.js. CLOSED TREE
Backed out changeset 5d9701c4fb3b (bug 1625249)
Backed out changeset 8c02d6099aa3 (bug 1625249)
Backed out changeset 7b3b764a0e4d (bug 1625249)
2020-04-29 00:41:31 +03:00
Brindusan Cristian
f3c4961c6d Backed out changeset e78e8f677ca0 (bug 1633645) for wrench bustage. CLOSED TREE 2020-04-29 00:05:42 +03:00
Glenn Watson
cdb7a90eda Bug 1633645 - Remove prim_origin from primitive dependency descriptor. r=Bert
It's no longer needed with the recent fix to how rectangle prim
and clip rects are stored. It's also a performance win, reducing
the amount of work done when comparing primitive dependencies.

Differential Revision: https://phabricator.services.mozilla.com/D72794
2020-04-28 17:33:21 +00:00
Yura Zenevich
1e609ab653 Bug 1625249 - test hittest with SVG in parent over OOP iframe. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D69664
2020-04-15 19:43:05 +00:00
Kartikaya Gupta
234654725c Bug 1625249 - Do a better job of setting hit-test info on blobs. r=jrmuizel
In particular this will pick up any hit-test flags set on individual items
inside a blob, and ensure the hit-test info emitted to APZ for the blob includes
those flags.

Differential Revision: https://phabricator.services.mozilla.com/D69205
2020-04-28 18:43:13 +00:00
Kartikaya Gupta
e89589086d Bug 1625249 - Reduce levels of indentation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D69204
2020-04-28 18:43:00 +00:00
Brindusan Cristian
f33d38c284 Backed out changeset 8433832c8f09 (bug 1628175) for reftest failures at 817019-1.html. CLOSED TREE 2020-04-28 21:33:46 +03:00
Lee Salzman
7f36735222 Bug 1633617 - offset SWGL's linear BlitFramebuffer to texel centers. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D72896
2020-04-28 17:36:31 +00:00
Bert Peers
b91a3eabe0 Bug 1628175 - WebGL is drawn into the picture cache and then onto the screen r=gw
Part 1 - support RGB external surfaces for promotion to compositor
surfaces; add new shader permutations to handle all buffer kinds.
Set the promotion flag when the pixel format has no alpha, or when the
texture provider can guarantee all-solid alpha values.

Differential Revision: https://phabricator.services.mozilla.com/D71120
2020-04-27 19:38:02 +00:00
Csoregi Natalia
b073baab86 Backed out 30 changesets (bug 1556556, bug 1631568) for multiple mochitest failures. CLOSED TREE
Backed out changeset edd529f7a9c5 (bug 1631568)
Backed out changeset 1cc0881e244b (bug 1631568)
Backed out changeset ed3c1e85d5e3 (bug 1556556)
Backed out changeset 38ffc6215bbf (bug 1556556)
Backed out changeset 03c2c25d8023 (bug 1556556)
Backed out changeset 9c717eb067b8 (bug 1556556)
Backed out changeset 98e26bc98b85 (bug 1556556)
Backed out changeset 05a6a581e755 (bug 1556556)
Backed out changeset 867946cf05bb (bug 1556556)
Backed out changeset 20d72a334530 (bug 1556556)
Backed out changeset 2c62e61d9054 (bug 1556556)
Backed out changeset 62a223d057d2 (bug 1556556)
Backed out changeset 2c5d55a1f0b1 (bug 1556556)
Backed out changeset 700447945b4e (bug 1556556)
Backed out changeset 93190ae4f5ff (bug 1556556)
Backed out changeset a7bd34d961bb (bug 1556556)
Backed out changeset fccd1d3c7189 (bug 1556556)
Backed out changeset 24056e47183d (bug 1556556)
Backed out changeset 204881474cc1 (bug 1556556)
Backed out changeset 387320881876 (bug 1556556)
Backed out changeset be8f5eb58460 (bug 1556556)
Backed out changeset 629c58a9166b (bug 1556556)
Backed out changeset 4312b2b5dda8 (bug 1556556)
Backed out changeset d11dbf6403a5 (bug 1556556)
Backed out changeset 95c54c023779 (bug 1556556)
Backed out changeset 80fcb7e71188 (bug 1556556)
Backed out changeset d75a4ecb0d47 (bug 1556556)
Backed out changeset 903c4de34e7a (bug 1556556)
Backed out changeset f15334a3e803 (bug 1556556)
Backed out changeset 9553e99137ea (bug 1556556)
2020-04-28 12:43:11 +03:00
Botond Ballo
2cb46cfa4b Bug 1631568 - Have nsLayoutUtils::GetFrameForPoint() and GetFramesForArea() take a RelativeTo parameter. r=tnikkel
This removes the need for FrameForPointOptions::IsRelativeToLayoutViewport,
and makes sure each call site of these functions indicates whether the
input point/rect is in visual or layout coordinates.

Several call sites were passing in layout coordinates without setting the
IsRelativeToLayoutViewport flag, which this patch corrects.

Differential Revision: https://phabricator.services.mozilla.com/D71705
2020-04-28 01:44:43 +00:00
Botond Ballo
42e78685e5 Bug 1556556 - Run helper_drag_root_scrollbar.html with zooming enabled as well. r=kats
This is the anti-climactic end of the patch series.

I set out in this bug to get this test case to pass with apz.allow_zooming.
It took all these changes to do so without regressing other tests.

Differential Revision: https://phabricator.services.mozilla.com/D69644
2020-04-28 07:22:59 +00:00
Botond Ballo
405c8807cd Bug 1556556 - Propagate RelativeTo far and wide. r=kats,mattwoodrow
This "upgrades" various nsLayoutUtils functions which take as inputs
a set of coordinates and a frame that the coordinates are relative to,
to accept a RelativeTo object instead of a frame.

Most of the patch is just dumb propagation, but the few places where
we use an explicit ViewportType::Visual are important. There are
probably a few other places I've overlooked, but this seems to cover
the important ones that come up commonly.

There are undoubtedly other functions into which we can propagate
RelativeTo, in this patch I've propagated it as far as necessary
for my needs in this bug (mainly GetTransformToAncestor() and
GetEventCoordinatesRelativeTo()).

Differential Revision: https://phabricator.services.mozilla.com/D68919
2020-04-28 01:40:35 +00:00
Botond Ballo
b11a399d42 Bug 1556556 - Remove many uses of IgnoreRootScrollFrame. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D68913
2020-04-28 02:25:51 +00:00
Botond Ballo
20522092c5 Bug 1556556 - Move GetCallbackTransform() into a new ViewportUtils class. r=kats
This function (and helper functions that wrap it) will be used extensively
throughout layout code, so keeping it in APZCCallbackHelper seems awkward.

nsLayoutUtils would also be a reasonable place but has the downside that
adding a new function to it triggers recompiling the world.

Differential Revision: https://phabricator.services.mozilla.com/D68296
2020-04-28 01:35:05 +00:00
Botond Ballo
92101bb12f Bug 1556556 - Have GetCallbackTransform take just a scroll id rather than an entire guid. r=kats
The implementation was already only using the scroll id, so there is no
functional change, but this change will make it easier to new call sites
to come up with the function's inputs.

Differential Revision: https://phabricator.services.mozilla.com/D68277
2020-04-28 01:34:48 +00:00
Botond Ballo
09e7b83dc2 Bug 1556556 - Remove APZCCallbackHelper::ApplyCallbackTransform(). r=kats
It has no more callers.

Differential Revision: https://phabricator.services.mozilla.com/D68276
2020-04-28 01:34:35 +00:00
Botond Ballo
f9e919a8f4 Bug 1556556 - Remove applications of the visual-to-layout transform at the process boundary (and equivalent places for non-e10s). r=kats
Note that the propagation of the target guid to places where the transform
will be applied is best-effort at the moment. In particular, the
InputAPZContext will result in the correct guid being available in places
that are called synchronously from the Recv*() functions, but not places
called asynhcronously (e.g. via DelayedFireSingleTapEvent).

To mitigate this, places where the transform is applied fall back on the
RCD-RSF if a guid is not available via InputAPZContext (added in a
subsequent patch).

The cases that this gets wrong are fairly edge casey (it requires (a) an
asynchronous codepath, (b) an event targeting a subframe, and (c) that
subframe having a "could not accept the APZ scroll position" transform),
so we just punt on them for now. If it turns out to be important to handle,
then options for doing so include (1) propagating the guid through each of
the affected asynchronous codepaths, or (2) attaching the guid to the event
itself.

Differential Revision: https://phabricator.services.mozilla.com/D68723
2020-04-28 01:34:22 +00:00
Botond Ballo
ac1f44da5d Bug 1556556 - Change the default value of InputAPZContext::sApzResponse to nsEventStatus_eSentinel. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D70084
2020-04-28 01:34:05 +00:00
Botond Ballo
2290774510 Bug 1556556 - Factor out an APZCCallbackHelper::GetCallbackTransform() helper. r=kats
This is to facilitate call sites that need to incorporate the transform into
a larger transform matrix rather than immediately applying the callback
transform to a point.

Differential Revision: https://phabricator.services.mozilla.com/D68275
2020-04-28 01:33:57 +00:00
Botond Ballo
2037608c4a Bug 1556556 - Clarify the documentation of APZCCallbackHelper::ApplyCallbackTransform(). r=kats
Differential Revision: https://phabricator.services.mozilla.com/D68274
2020-04-28 01:33:40 +00:00
Botond Ballo
5e9a66a3de Bug 1556556 - Remove some cruft related to handling the resolution in non-e10s setups. r=tnikkel
Prior to this bug, it was necessary to handle non-e10s specially, because the
resolution was being unapplied at the process boundary, and in non-e10s there
was no process boundary.

The remaining patches in this bug move the resolution unapplication away from
the process boundary in all cases, making special handling for non-e10s
unnecessary.

Differential Revision: https://phabricator.services.mozilla.com/D68273
2020-04-28 02:03:18 +00:00
Lee Salzman
418deed8c5 Bug 1633617 - round quantized coordinates in SWGL bilinear filtering. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D72782
2020-04-28 03:32:10 +00:00
Josh Matthews
522ffb1f8e Bug 1633557 - Add Serialize/Deserialize for structs needed by Servo. r=jdm
[import_pr] From https://github.com/servo/webrender/pull/3936

Differential Revision: https://phabricator.services.mozilla.com/D72749
2020-04-27 21:06:36 +00:00
Dzmitry Malyshau
8f221fe39d Bug 1633553 - Update dwrote to 0.11 r=jdm
Differential Revision: https://phabricator.services.mozilla.com/D72748
2020-04-27 21:47:21 +00:00
Jamie Nicol
b994c9e30a Bug 1632795 - Ensure invalidate_rendered_frame is not overridden by the frame being a no-op. r=gw
The RenderBackend can be sent an `invalidate_rendered_frame` flag to
indicate that the current rendered frame is invalid. This is useful
when the platform requires a render, eg when starting or resuming the
app on Android. Upon receiving this flag, the render backend will set
a variable `doc.rendered_frame_is_valid = false`. Later on it will
decide to skip rendering only if this variable is true, so by setting
the invalidate flag we should be able to ensure the next render will
occur.

However, the RenderBackend also tries to skip renders which it
determines are not required. Currently it does this by setting
`doc.rendered_frame_is_valid = true` if it decides the frame is a
no-op. This overwrites the previous value set by the
`invalidate_rendered_frame` flag, meaning webrender skips renderering
even though the platform has requested it.

This was resulting in the GVE app showing a black screen on startup,
and Fenix temporarily showing a black screen whilst opening a new tab,
because despite WebRenderBridgeParent requesting an invalidation
immediately on startup, webrender ignored that request until it
decided it actually had content to paint.

To fix this, the logic should be flipped. The value of
`doc.rendered_frame_is_valid` must be remembered across document
updates rather than defaulting to false. And instead of setting it
true if webrender thinks the frame is a no-op, we must set it false if
webrender thinks the frame is *not* a no-op.

Differential Revision: https://phabricator.services.mozilla.com/D72600
2020-04-27 16:28:54 +00:00
Jonathan Kew
b51adde34b Bug 1633354 - Fix visibility attribute for language-pack fonts on windows. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D72609
2020-04-27 14:38:04 +00:00
Stefan Hindli
d66d0256bb Bug 1630774 - Disabled 1325159-1.html and 1317403-1.html on Android r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D72526
2020-04-25 10:04:47 +00:00
Kartikaya Gupta
bd8d6597c2 Bug 1630781 - Reorder operations to increase idempotency of sampling APZ state during a vsync interval. r=botond
Refer to bug 1630781 comment 11 for a more detailed explanation of the problem.
A quick summary is that prior to this patch, the sampling operation involved
these steps:
- sample stored APZ state for composition
- advance animations to next vsync
- update stored APZ state to the one just computed
When sampling occured twice within a vsync interval, the stored APZ state
calculated at the end of the first sampling would be produced in the second
sampling, resulting in non-smooth scrolling. Note that the second and third
steps would only run once per vsync interval, but that was sufficient to cause
the problem.

With this patch, the order of the steps is reordered:
- update stored APZ state to that computed in the last vsync interval
- advance animations to next vsync and save it in the queue
- sample stored APZ state for composition
With this ordering (and with the first two steps only running once per vsync
interval), the third step now emits consistent data even if the steps are run
multiple times in a vsync interval. It does mean that the mSampledState deque
can have up to two items in it (front() being the state for the current vsync
interval, and back() being the state computed for the next vsync interval).

Although this problem only affected the WR codepath in practice, it could in
theory occur with the non-WR codepath too, if we for some reason ran the
TransformShadowTree code multiple times in a vsync interval. This patch updates
both codepaths with the new order of steps.

Differential Revision: https://phabricator.services.mozilla.com/D72046
2020-04-26 17:06:37 +00:00
Kartikaya Gupta
7a46942dee Bug 1630781 - Adjust test to account for extra composite required for WR hit-test. r=botond
We have had to apply this same fix in other tests in the past, for example in
helper_hittest_basic.html.

Differential Revision: https://phabricator.services.mozilla.com/D72045
2020-04-26 17:05:21 +00:00
Kartikaya Gupta
ead6b2732c Bug 1630781 - Allow mSampledState to temporarily hold more than one state. r=botond
Again, functionally this is a no-op since instead of replacing the back()
element, we do an emplace_back() followed by a pop_front().

Differential Revision: https://phabricator.services.mozilla.com/D72044
2020-04-27 01:02:34 +00:00
Kartikaya Gupta
6041ceee66 Bug 1630781 - Expand mSampledState into a deque. r=botond
The deque always has size 1, so this patch is functionally a no-op. It sets up
the usage of front() and back() to allow holding more than one item in a future
patch.

Depends on D72042

Differential Revision: https://phabricator.services.mozilla.com/D72043
2020-04-25 22:04:59 +00:00
Kartikaya Gupta
dba00154a9 Bug 1630781 - Encapsulate the mComposited* variables into a class. r=botond
No functional changes intended here, just code getting moved into a helper
class. Note that this patch folds RecalculateCompositedLayoutViewport into
ClampCompositedScrollOffset since there are no longer any independent callers
of the former function (as of bug 1627716).

Depends on D72041

Differential Revision: https://phabricator.services.mozilla.com/D72042
2020-04-25 01:00:07 +00:00
Kartikaya Gupta
5475382650 Bug 1630781 - Ensure the mComposited* fields are accessed safely across threads. r=botond
No functional change, since everything was safe already. But this propagates
the proof-of-lock a little further to make it more obvious that fields are
safely accessed.

Depends on D72040

Differential Revision: https://phabricator.services.mozilla.com/D72041
2020-04-25 00:49:23 +00:00
Kartikaya Gupta
5adfc0b92b Bug 1630781 - Eliminate the frame_delay pref, assume it true everywhere. r=botond,mstange
Having to think about multiple codepaths adds complexity and it doesn't seem
like we're going to turn this pref back off anytime soon.

Differential Revision: https://phabricator.services.mozilla.com/D72040
2020-04-25 00:47:54 +00:00