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

36916 Коммитов

Автор SHA1 Сообщение Дата
Yura Zenevich f558d21f4d Bug 1625249 - test hittest with SVG in parent over OOP iframe. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D69664
2020-05-06 20:14:51 +00:00
Chris Martin 06d9dd2b05 Bug 1400317 - Use gfxVars to mirror DWM status to content processes r=jrmuizel
The only caveat here is that gfxVars are not atomic, but multiple threads can
query DWM status. To solve this, changes to the var are mirrored into an atomic
and that is read instead.

DWM status changes are indicated by Windows via a window message. We use that
window message to cause the update to propagate

Differential Revision: https://phabricator.services.mozilla.com/D73743
2020-05-06 14:16:21 +00:00
Chris Martin 1093edd76c Bug 1400317 - Create single source of truth for DWM status r=jrmuizel
Currently, There are multiple places that call the Win32 APIs for DWM status.

Once Win32k lockdown is enabled, this API will be unavailable and will need
to be remoted. This new function will be made to work in both parent and
content processes, and therefore all DWM queries must be directed to it.

Also, some minor cleanup because... Why not?

Differential Revision: https://phabricator.services.mozilla.com/D73742
2020-05-06 14:15:58 +00:00
Kartikaya Gupta b498c75baa Bug 1627010 - Disallow user from zooming out past initial zoom on desktop. r=botond
THis should continue allowing users to zoom out in RDM mode, or any time that
we are respecting the meta-viewport tag. It's only when we don't respect the
meta-viewport tag that we disable zooming out past initial zoom.

Differential Revision: https://phabricator.services.mozilla.com/D73461
2020-05-06 14:40:23 +00:00
Chris Martin 07a0652222 Bug 1347710 - Enable Windows GPU sandbox for supported hardware r=gcp
Currently, there is an outstanding issue where enabling the GPU sandbox breaks
scrolling using the the mouse wheel on laptops with Intel GPUs.

This will enable the GPU sandbox on Nightly for non-Intel GPUs to prevent any
sandbox regressions while we try and figure out what the scrolling issue is.

See Bug 1630860 for more info

Differential Revision: https://phabricator.services.mozilla.com/D73923
2020-05-06 14:03:09 +00:00
Simon Giesecke 612625f997 Bug 1626570 - Improve handling of copying arrays in gfx/vr/. r=kip
Differential Revision: https://phabricator.services.mozilla.com/D73674
2020-05-06 11:55:46 +00:00
Hiroyuki Ikezoe df5af7007e Bug 1634943 - Move animation related stuff in nsDisplayList.cpp into AnimationInfo class. r=boris
Depends on D73573

Differential Revision: https://phabricator.services.mozilla.com/D73574
2020-05-06 01:42:05 +00:00
Glenn Watson e9fb825993 Bug 1634243 - Remove ScrollNodeAndClipChain type from WR internals. r=Bert
The spatial node index and clip chain id are no longer directly
related concepts, since they now exist in different representations
(the spatial tree and clip store).

Removing the grouping of these during scene building simplifies
some work in progress to refactor how WR internally represents
clips, in order to allow future optimization work.

Differential Revision: https://phabricator.services.mozilla.com/D73187
2020-05-04 20:44:24 +00:00
Botond Ballo 5cffd06241 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-05-05 15:24:12 +00:00
Botond Ballo 88d2c4249d 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-05-05 19:33:40 +00:00
Botond Ballo 173d001b86 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-05-05 19:26:38 +00:00
Botond Ballo 7cf10dca6d Bug 1556556 - Remove many uses of IgnoreRootScrollFrame. r=mstange,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D68913
2020-05-05 19:23:35 +00:00
Botond Ballo f32f10a719 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-05-05 19:37:26 +00:00
Botond Ballo f02fcb17b4 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-05-05 19:22:12 +00:00
Botond Ballo 6a461317ca 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-05-05 19:22:00 +00:00
Botond Ballo dd4ac2120d Bug 1556556 - Remove APZCCallbackHelper::ApplyCallbackTransform(). r=kats
It has no more callers.

Differential Revision: https://phabricator.services.mozilla.com/D68276
2020-05-05 19:36:28 +00:00
Botond Ballo 209295c33c 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-05-05 19:36:28 +00:00
Botond Ballo 545fa94c8b Bug 1556556 - Clarify the documentation of APZCCallbackHelper::ApplyCallbackTransform(). r=kats
Differential Revision: https://phabricator.services.mozilla.com/D68274
2020-05-05 19:20:15 +00:00
Botond Ballo f7fde53875 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-05-05 19:20:00 +00:00
Kartikaya Gupta 5db69b1b8c Bug 1622360 - Downgrade mApis from a RenderRootArray. r=jrmuizel
This is a bigger patch but it was hard to split. Some of the changes look
non-trivial; the guiding principle in these changes was "look at what the code
was like before document splitting landed".

Differential Revision: https://phabricator.services.mozilla.com/D73879
2020-05-05 18:15:43 +00:00
Kartikaya Gupta 9b72e95f96 Bug 1622360 - Drop the document frames counter stuff. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D73878
2020-05-05 18:15:36 +00:00
Kartikaya Gupta 0330256448 Bug 1622360 - Downgrade transactions from RenderRootArrays. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D73877
2020-05-05 18:15:33 +00:00
Kartikaya Gupta fc6265e6fa Bug 1622360 - Downgrade mAsyncCompositables from RenderRootArray. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D73876
2020-05-05 18:15:26 +00:00
Kartikaya Gupta 6784eba710 Bug 1622360 - Downgrade animation arrays from RenderRootArrays. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D73875
2020-05-05 18:15:18 +00:00
Botond Ballo 98c8fdcd38 Bug 1634206 - Change the default value of InputAPZContext::sApzResponse to nsEventStatus_eSentinel. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D70084
2020-05-05 17:22:01 +00:00
Kartikaya Gupta 2a35f96fd5 Bug 1635430 - Stop running webrender github CI on AppVeyor. r=jdm,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D73881
2020-05-05 15:58:49 +00:00
Simon Giesecke 2e6385ca34 Bug 1626570 - Improve handling of copying arrays in gfx/. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D73635
2020-05-05 12:55:27 +00:00
Simon Giesecke f87a1f858f Bug 1626570 - Improve handling of copying arrays in gfx/layers/. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D73633
2020-05-05 12:59:26 +00:00
Simon Giesecke ea61234b3c Bug 1626570 - Improve handling of copying arrays in gfx/thebes. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D72345
2020-05-05 10:56:14 +00:00
Razvan Maries 0a5bb478ea Backed out 8 changesets (bug 1634943) for build bustages on AnimationInfo.h. CLOSED TREE
Backed out changeset 2ee9c0fc07bf (bug 1634943)
Backed out changeset 812f8cfff1b2 (bug 1634943)
Backed out changeset c446c1edc943 (bug 1634943)
Backed out changeset 6ef1fcc1d428 (bug 1634943)
Backed out changeset 5e4ccd0bffac (bug 1634943)
Backed out changeset bf3c4e7b4691 (bug 1634943)
Backed out changeset 8f310f49a366 (bug 1634943)
Backed out changeset 421cd778da3d (bug 1634943)
2020-05-05 13:50:47 +03:00
Hiroyuki Ikezoe 01c26cd0d3 Bug 1634943 - Move animation related stuff in nsDisplayList.cpp into AnimationInfo class. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D73574
2020-05-05 10:27:07 +00:00
Razvan Maries 2632be905a Backed out 6 changesets (bug 1630912) for build bustages on gfxAndroidPlatform.cpp. CLOSED TREE
Backed out changeset 21dc02bc12b9 (bug 1630912)
Backed out changeset 08a6a1f1c4c7 (bug 1630912)
Backed out changeset 108b1a07929b (bug 1630912)
Backed out changeset e202ddeb4e40 (bug 1630912)
Backed out changeset f7d9852a3d09 (bug 1630912)
Backed out changeset e6cd2ceab183 (bug 1630912)
2020-05-05 09:04:37 +03:00
Kartikaya Gupta 7908209483 Bug 1630912. Add a simple way to observe vsync on the mainthread. r=jrmuizel
I had to mess with the refcounting of Display (and hence destructors) because we create a NewRunnableMethod inside Display that holds a pointer to |this|. There are versions of NewRunnableMethod that don't take a ref but I'm not sure of the lifetime of Display, so easier to just take a ref since several of the subclasses are already refcounted.

Differential Revision: https://phabricator.services.mozilla.com/D71303
2020-05-01 23:32:30 +00:00
Stephen A Pohl ee3fa26401 Bug 1616404: Change macOS version detection to accommodate major versions between 10 and 255 as well as minor and bugfix versions between 0 and 255. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D73180
2020-05-04 21:11:09 +00:00
Dzmitry Malyshau 5fd43ff44d Bug 1634439 - Update RON dependency to 0.5 r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D73291
2020-05-04 18:49:46 +00:00
Glenn Watson fb839d472b Bug 1635022 - Add support for specifying blend container r=kats,Bert
Previously, WR would internally mark a parent stacking context
as requiring isolation when a stacking context with mix-blend-mode
was encountered.

However, this adds significant complexity to scene building in
WR, meaning that several decisions related to stacking context
redundancy, clip chain roots must be delayed until the stacking
context is popped.

By requiring the display list to annotate blend containers (Gecko
already has all this information available), we will be able to
simplify this scene building logic, which will unblock some
ongoing improvements to how clips are handled.

The patch introduces stacking context flags, and ports the existing
is_backdrop_root bool to be part of these flags. It also removes
an unused old field, cache_tiles.

Differential Revision: https://phabricator.services.mozilla.com/D73597
2020-05-04 20:28:44 +00:00
Bert Peers 49849153e7 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-30 07:08:17 +00:00
Dorel Luca 34f3c60771 Backed out changeset 06fadee788b3 (bug 1616404) for XPCShell failures on OSX in xpcshell/rs-blocklist/test_gfxBlacklist_OK.js. CLOSED TREE 2020-05-04 22:46:01 +03:00
Stephen A Pohl 056c89cd8c Bug 1616404: Change macOS version detection to accommodate major versions between 10 and 255 as well as minor and bugfix versions between 0 and 255. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D73180
2020-05-04 17:01:45 +00:00
Jonathan Kew 0939ecd87d Bug 1633627 - Ignore an empty 'language' atom when retrieving the nsFontMetrics for a style, so it doesn't result in using x-unicode font prefs. r=lsalzman
Instead, let it fall back to the system locale language (just as we do if no language has been specified).

Differential Revision: https://phabricator.services.mozilla.com/D72858
2020-05-04 14:55:49 +00:00
Andrew Osmond 45bcfa5e37 Bug 1635069 - Fix beta build with new gfxConfigManager.
Differential Revision: https://phabricator.services.mozilla.com/D73614
2020-05-04 10:44:18 +00:00
Andrew Osmond f5baf0eea6 Bug 1632259 - Refactor WebRender configuration logic in gfxPlatform to be testable. r=jrmuizel
We have encountered issues when rolling out WebRender because the
configuration logic is quite complicated. It would serve us well to have
it in a form that we can easily test. This patch does said refactor, as
well as adds an initial set of tests.

Differential Revision: https://phabricator.services.mozilla.com/D72027
2020-05-04 01:01:53 +00:00
Timothy Nikkel 005270cdd1 Bug 1619187. Handle content prevent defaulting pinch gestures. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D73217
2020-05-02 23:03:20 +00:00
Jonathan Kew a121521c76 Bug 1634834 - Update OTS to upstream commit bbd729f8f39c28db9818371b20f9e5ed44226c2f to fix invalid ligature component count check. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D73551
2020-05-02 21:14:21 +00:00
Cosmin Sabou b9a814e53b Backed out changeset 70d9a096070b (bug 1619187) for causing Gtest failures. CLOSED TREE 2020-05-02 03:29:43 +03:00
Daosheng Mu 540b9db4a6 Bug 1634808 - Revert Oculus Go controller transform for WebVR. r=kip
Differential Revision: https://phabricator.services.mozilla.com/D73515
2020-05-02 00:13:34 +00:00
Timothy Nikkel f9e267a4a7 Bug 1619187. Handle content prevent defaulting pinch gestures. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D73217
2020-05-01 23:21:08 +00:00
Dzmitry Malyshau 7bd6183491 Bug 1634239 - Keel WebGPU adapter alive r=groves
The internal logic accesses adapters during command recording.
This PR makes up to keep that reference for while the device lives.

Differential Revision: https://phabricator.services.mozilla.com/D73278
2020-05-01 14:29:04 +00:00
Lee Salzman c828a9b30a Bug 1634130 - avoid 0-length edges in SWGL rasterizer. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D73406
2020-05-01 04:59:08 +00:00
Lee Salzman 50f17f6abd Bug 1634447 - don't generate perspective code if SWGL fragment shader doesn't use it. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D73327
2020-05-01 00:33:39 +00:00
Lee Salzman d6438ad24b Bug 1634452 - allow SWGL vertex and fragment shaders to share data. r=jrmuizel
Currently SWGL stores separate copies of flat interpolants, uniforms, and samplers for vertex shaders and fragment shaders. We can just make the fragment shader inherit from the vertex shader, which allows us to only have to store one copy of these, and also obviates the need to store them out and read them back to transition from vertex shader to fragment shader per-primitive. This will help offset the performance cost of perspective checking in bug 1634447.

Differential Revision: https://phabricator.services.mozilla.com/D73299
2020-05-01 00:33:21 +00:00
Lee Salzman f9b1f690e4 Bug 1634447 - allow SWGL shaders to work with and without perspective. r=jrmuizel
Based on ideas discussed to solve bug 1633912, this patch implements allowing each shader to switch between no-perspective and perspective on per-primitive based on whether or not the primitive's W coordinates all match. This should be a sufficient stop-gap for now to unblock testing and development. Performance and memory usage costs of this approach will need to be evaluated before we decide whether to keep it long term.

Differential Revision: https://phabricator.services.mozilla.com/D73298
2020-05-01 00:32:55 +00:00
Lee Salzman 9873811aca Bug 1633953 - refactor draw_quad_spans edge stepping to make it easier to read. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D73041
2020-05-01 00:32:38 +00:00
Lee Salzman 8d59795c6c Bug 1633953 - check for duplicate vertices in SWGL quad rendering. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D72989
2020-05-01 00:32:20 +00:00
David Parks b18b3bfd97 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 22:23:48 +00:00
David Parks 8bd91e6a36 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 22:23:02 +00:00
Glenn Watson 88eb2e5226 Bug 1632705 - Part 5 - Port some more clips to explicit rect API. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D73179
2020-04-30 12:08:54 +00:00
Glenn Watson ca78f5a8c2 Bug 1632705 - Part 4 - Port clear prims to use rounded clip rect API. r=kats
The implementation of this was previously ignoring the aRegion
parameter, so was completely broken. This is only used by the
Win7 widget code. This may fix an issue with drawing of window
close buttons on Windows 7 with WebRender enabled.

Differential Revision: https://phabricator.services.mozilla.com/D73163
2020-04-30 11:50:59 +00:00
Jamie Nicol 1af6f33ce1 Bug 1634275 - Update glslopt to 0.1.2 to remove dependency on bindgen. r=jrmuizel,kats
Differential Revision: https://phabricator.services.mozilla.com/D73198
2020-04-30 12:25:17 +00:00
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