Commit Graph

37523 Commits

Author SHA1 Message Date
Nicolas Silva
a4fc3e389e Bug 1650403 - Skip invisible clusters in the batching pass. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D82194
2020-07-06 08:43:15 +00:00
Nicolas Silva
a99ab630fd Bug 1650403 - Skip invisible clusters in the prepare pass. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D82192
2020-07-05 20:41:24 +00:00
Mihai Alexandru Michis
87cb0ad6fa Backed out 6 changesets (bug 1627075) for causing bustages in StartupCache.cpp
CLOSED TREE

Backed out changeset fc144caf5d06 (bug 1627075)
Backed out changeset a345e05df151 (bug 1627075)
Backed out changeset 288a67aed661 (bug 1627075)
Backed out changeset 2cb021a493d8 (bug 1627075)
Backed out changeset 920398d1c3d3 (bug 1627075)
Backed out changeset ebdcd96a9d20 (bug 1627075)
2020-07-07 08:47:14 +03:00
Doug Thayer
e3f3b7b80b Bug 1627075 - Route Omnijar requests through StartupCache r=froydnj
This should be a relatively straightforward patch. Essentially, we implement
a wrapper class (and friends) around nsZipArchive (and friends), which transparently
caches entries from the underlying zip archive in the StartupCache. This will break
without changes to the StartupCache, made in the patch after this, which allow it
to be used off of the main thread, and outside the main process.

Depends on D77635

Differential Revision: https://phabricator.services.mozilla.com/D77634
2020-07-07 04:36:27 +00:00
Nick Alexander
9d1281ef52 Bug 1641291 - Part 1: Allow cross-compiling from host macOS -> Windows target. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D77117
2020-07-07 02:13:35 +00:00
Kartikaya Gupta
bf0c5bbdbe Bug 1650868 - Make the async zoom containment checks subtree-specific. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D82438
2020-07-07 00:24:26 +00:00
Kagami Sascha Rosylight
f6d17b63b5 Bug 1630704 - Part 28: Remove nsFrame r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D81865
2020-07-06 22:38:11 +00:00
Glenn Watson
dbd0071486 Bug 1650706 - Add profiler annotations for scene building. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D82316
2020-07-06 22:29:44 +00:00
Andreea Pavel
ddb0d07cd3 Backed out changeset 6555b65ef4cc (bug 1650801) for build bustages on a CLOSED TREE 2020-07-07 00:16:47 +03:00
sotaro
1369377c0a Bug 1650389 - Add gfx::BackendType check to GetTextureType() r=jrmuizel
TextureType::AndroidHardwareBuffer usage needs gfx::BackendType check. gfxVars::UseAHardwareBufferContent() requests BackendSelector::Content.

Differential Revision: https://phabricator.services.mozilla.com/D82191
2020-07-06 14:50:14 +00:00
Jeff Muizelaar
ca9bed50d3 Bug 1650801 - Panic instead of failing gracefully if FreeType failed to initialize. r=gw
Bug 1650662 makes us RELEASE_ASSERT on FreeType initialization earlier
so I think it's unlikely that we ever hit this case in the future.

Differential Revision: https://phabricator.services.mozilla.com/D82390
2020-07-06 20:27:38 +00:00
Kartikaya Gupta
d3b52921d1 Bug 1650848 - Make the root scroller actually scrollable in the test. r=botond
The body tag has special behaviour and this page doesn't behave as one might
expect if the body tag were a div, for example. The root scroller here is still
the html element, and if the browser window is taller than 1000px it's not
considered scrollable. And on Android, with the initial-scale that gets applied,
the root scroller is actually not scrollable. This patch fixes it to ensure the
root scroller is actually scrollable in testing scenarios.

Differential Revision: https://phabricator.services.mozilla.com/D82411
2020-07-06 17:45:36 +00:00
Imanol Fernandez
41f5efde8f Bug 1374571 - Ensure ANativeWindow is not null before calling eglCreateWindowSurface r=jgilbert
ANativeWindow_fromSurface can return null. This leads to a crash in the eglCreateWindowSurface call.

Differential Revision: https://phabricator.services.mozilla.com/D82369
2020-07-06 17:07:35 +00:00
Jonathan Kew
94f1922418 Bug 1649527 - Initialize character map when creating a gfxFontEntry if it is already available from a shared font-list Face record. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D81822
2020-07-06 14:29:23 +00:00
aardgoose
63856c61b2 Bug 1536674 - Expose KHR_parallel_shader_compile in glx/gl r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D32056
2020-07-06 12:48:47 +00:00
Jonathan Kew
2ac8d8b91b Bug 1633254 - Don't allow dwrite fonts to use GDI table access if the font family is non-simple, as it might access the wrong resource. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D81819
2020-07-06 14:00:58 +00:00
Jonathan Kew
2e5d0e7cd2 Bug 1650414 - Cherry-pick commit 1e6027e29cd5d900337b23a20886b2a8d81bb2de from upstream harfbuzz to fix AAT mark anchoring. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D82318
2020-07-06 09:03:29 +00:00
Nicolas Silva
9220520d09 Bug 1650359 - Move GpuCacheHandle and GpuCacheAddress impls back close to their type definitions. r=gw
Depends on D82181

Differential Revision: https://phabricator.services.mozilla.com/D82182
2020-07-05 20:35:46 +00:00
Nicolas Silva
5b10a47920 Bug 1650359 - Move SpaceMapper and SpaceSnapper into space.rs. r=gw
Depends on D82180

Differential Revision: https://phabricator.services.mozilla.com/D82181
2020-07-05 20:35:08 +00:00
Nicolas Silva
d9170843e8 Bug 1650359 - Move get_line_decoration_size into prim_store/line_dec.rs. r=gw
Depends on D82179

Differential Revision: https://phabricator.services.mozilla.com/D82180
2020-07-05 20:34:50 +00:00
Nicolas Silva
275d45b706 Bug 1650359 - Move get_raster_rects to picture.rs. r=gw
It is only used there.

Differential Revision: https://phabricator.services.mozilla.com/D82179
2020-07-05 20:34:32 +00:00
Glenn Watson
9918711081 Bug 1623792 - Pt 6 - Always create picture caching slices. r=nical
Even when picture caching is disabled, we want to create the
wrapping picture elements for these slices, to simplify
some upcoming patches (we can assume that the picture cache
elements are always present).

The dynamic check at the start of FrameBuilder::build ensures
that these are pass-through pictures when picture caching is
disabled.

In future, we'll also take advantage of this to track dirty
regions in the disabled case, to allow partial present to
work in all scenarios.

Differential Revision: https://phabricator.services.mozilla.com/D82134
2020-07-05 20:23:25 +00:00
Glenn Watson
a9c83bb752 Bug 1623792 - Pt 5 - Determine no-op filters during scene building. r=nical
Previously, we would defer calculation of whether a filter was a
no-op until frame building. However, this complicates decisions
related to which clips apply to which surfaces.

Now, this decision is made during scene building. This makes things
more consistent during frame building, which we can take advantage
of in future. It also makes things like render target allocations
slightly more predictable.

Differential Revision: https://phabricator.services.mozilla.com/D82133
2020-07-05 20:23:22 +00:00
Jeff Muizelaar
1ccd29d935 Bug 1650662 - RELEASE_ASSERT that FT_Init_FreeType succeeds. r=lsalzman
I don't think we should bother trying to run without a working FreeType.

Differential Revision: https://phabricator.services.mozilla.com/D82298
2020-07-05 19:40:37 +00:00
Hiroyuki Ikezoe
4205879729 Bug 1324591 - Report janked animations to the main-thread and update them on the main-thread. r=botond,boris
The machinery to report janked animations is;

1) Store the partial pre-rendered animation id and the Animation object in a
   hashtable in LayerManager
2) Store the animation id in the Animation object as well
3) When we detect jank, we send the animation id to the main-thread via an IPC
   call
4) Find the Animation object with the id in the hashtable and update the
   Animaiton
5) Whenever the partial pre-rendered Animation stop running on the compositor
   i.e. the Animation finished normally, the Animation's target element is
   changed, etc. etc., remove the Animation from the hashtable

Depends on D75731

Differential Revision: https://phabricator.services.mozilla.com/D75732
2020-07-05 11:45:01 +00:00
Hiroyuki Ikezoe
85030f4af6 Bug 1324591 - Jank if we are trying to composite area which is outside of the the partial prerender rect on non WebRender. r=botond,jrmuizel
Depends on D81481

Differential Revision: https://phabricator.services.mozilla.com/D75731
2020-07-05 11:44:18 +00:00
Hiroyuki Ikezoe
80fc56a28e Bug 1324591 - Add APZSampler::GetCompositionBounds to get the composition bounds for a given pair of LayersId and scrollId. r=botond
Depends on D75730

Differential Revision: https://phabricator.services.mozilla.com/D81481
2020-07-05 11:43:45 +00:00
Hiroyuki Ikezoe
ec49c6a9a8 Bug 1324591 - Inform the partial prerender rect, the overflowed SideBits, the scroll id of the nearest scrollable frame and its rectable to the compositor. r=botond
nsDisplayTransform doesn't have enough room to store the partial prerender rect
and the overflowed SideBits unfortunately (it will exceed 512 bytes limit [1]).
So we get the partial prerender rect and calculate the overflowed SideBits just
before we send transform animation information to the compositor.

[1] https://searchfox.org/mozilla-central/rev/fa52bedc4b401c12251513fa1c9df1753a29abb2/layout/painting/nsDisplayList.cpp#7318

Depends on D81480

Differential Revision: https://phabricator.services.mozilla.com/D75730
2020-07-05 11:43:33 +00:00
Hiroyuki Ikezoe
1c1e6e4963 Bug 1324591 - Store the corresponding LayersId for each animation on the compositor. r=kats
Depends on D75727

Differential Revision: https://phabricator.services.mozilla.com/D75728
2020-07-05 11:42:55 +00:00
Brindusan Cristian
7f75410fd7 Backed out 9 changesets (bug 1324591) for linux build bustages on central on nsDisplayList.h.
Backed out changeset 75966ee1fe65 (bug 1324591)
Backed out changeset d6a01c6bc40e (bug 1324591)
Backed out changeset fef36ff2ea3d (bug 1324591)
Backed out changeset 4a4ae4bd95d1 (bug 1324591)
Backed out changeset 732804c83add (bug 1324591)
Backed out changeset 84657a3522fb (bug 1324591)
Backed out changeset e6c74ba41007 (bug 1324591)
Backed out changeset 8e6d4e9f5aa0 (bug 1324591)
Backed out changeset 6bc284863aff (bug 1324591)
2020-07-05 13:45:35 +03:00
Hiroyuki Ikezoe
92208a9c28 Bug 1324591 - Report janked animations to the main-thread and update them on the main-thread. r=botond,boris
The machinery to report janked animations is;

1) Store the partial pre-rendered animation id and the Animation object in a
   hashtable in LayerManager
2) Store the animation id in the Animation object as well
3) When we detect jank, we send the animation id to the main-thread via an IPC
   call
4) Find the Animation object with the id in the hashtable and update the
   Animaiton
5) Whenever the partial pre-rendered Animation stop running on the compositor
   i.e. the Animation finished normally, the Animation's target element is
   changed, etc. etc., remove the Animation from the hashtable

Differential Revision: https://phabricator.services.mozilla.com/D75732
2020-07-05 02:21:01 +00:00
Hiroyuki Ikezoe
c350cb04ad Bug 1324591 - Jank if we are trying to composite area which is outside of the the partial prerender rect on non WebRender. r=botond,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D75731
2020-07-05 02:20:23 +00:00
Hiroyuki Ikezoe
efee5d73c6 Bug 1324591 - Add APZSampler::GetCompositionBounds to get the composition bounds for a given pair of LayersId and scrollId. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D81481
2020-07-05 02:19:45 +00:00
Hiroyuki Ikezoe
a32c79b20d Bug 1324591 - Inform the partial prerender rect, the overflowed SideBits, the scroll id of the nearest scrollable frame and its rectable to the compositor. r=botond
nsDisplayTransform doesn't have enough room to store the partial prerender rect
and the overflowed SideBits unfortunately (it will exceed 512 bytes limit [1]).
So we get the partial prerender rect and calculate the overflowed SideBits just
before we send transform animation information to the compositor.

[1] https://searchfox.org/mozilla-central/rev/fa52bedc4b401c12251513fa1c9df1753a29abb2/layout/painting/nsDisplayList.cpp#7318

Differential Revision: https://phabricator.services.mozilla.com/D75730
2020-07-05 02:19:38 +00:00
Hiroyuki Ikezoe
d37f48e250 Bug 1324591 - Store the corresponding LayersId for each animation on the compositor. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D75728
2020-07-05 02:48:51 +00:00
Sylvestre Ledru
caf785c695 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D82178
2020-07-04 09:38:43 +00:00
Hiroyuki Ikezoe
3039d13ffc Bug 1650354 - Clear color animation properties in flush_pending_updates. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D82173
2020-07-04 05:21:53 +00:00
Hiroyuki Ikezoe
0bd87d77fc Bug 1552923 - Clear out the last animated value if a new animation with the same id arrived and sampled but didn't produce any animated value. r=kats
A reftest for this issue will be added in bug 1650351.

Differential Revision: https://phabricator.services.mozilla.com/D82172
2020-07-03 21:42:06 +00:00
Kartikaya Gupta
bc6c7c9f34 Bug 1650081 - Use scrollbar-width:none instead of overflow:hidden to hide scrollbars. r=botond
Instead of using overflow:hidden on the body to hide the scrollbar, this
patch sets scrollbar-width:none on the html element. In some cases
overflow:hidden is set on non-root scrollers (i.e. div elements); in those
cases it is replaced by overflow:scroll;scrollbar-width:none to get an
equivalent effect.

One test had a pre-existing visible scrollbar on a nested scrollframe, but
which started failing with a small fuzz difference. I left the scrollbar as-is
and added an annotation to the reftest.list file.

Note that this only updates the tests that use reftest-async-scroll as those
were the cases that were easily detectable, and causing problems with the
apz.allow_zooming=true pref.

Differential Revision: https://phabricator.services.mozilla.com/D82032
2020-07-03 19:50:11 +00:00
Mihai Alexandru Michis
fb3212f7cc Backed out changeset bd58cdafe3c9 (bug 1650081) for causing failures in offscreen-prerendered-active-opacity.html
CLOSED TREE
2020-07-03 22:30:50 +03:00
Kartikaya Gupta
3bc44b4a60 Bug 1650081 - Use scrollbar-width:none instead of overflow:hidden to hide scrollbars. r=botond
Instead of using overflow:hidden on the body to hide the scrollbar, this
patch sets scrollbar-width:none on the html element. In some cases
overflow:hidden is set on non-root scrollers (i.e. div elements); in those
cases it is replaced by overflow:scroll;scrollbar-width:none to get an
equivalent effect.

One test had a pre-existing visible scrollbar on a nested scrollframe, but
which started failing with a small fuzz difference. I left the scrollbar as-is
and added an annotation to the reftest.list file.

Note that this only updates the tests that use reftest-async-scroll as those
were the cases that were easily detectable, and causing problems with the
apz.allow_zooming=true pref.

Differential Revision: https://phabricator.services.mozilla.com/D82032
2020-07-03 16:07:51 +00:00
Martin Stransky
533d0807f0 Bug 1619523 [Linux] Remove Wayland check at gfxPlatformGtk::UseDMABufVideoTextures(), make VA-API decoding possible on X11 r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D82183
2020-07-03 12:23:43 +00:00
Martin Stransky
1c07029298 Bug 1650113 [Linux] Use DMABufTextures only when Wayland support is build, r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D82177
2020-07-03 12:59:53 +00:00
Martin Stransky
276e0a676b Bug 1619523 [Linux] Remove Wayland check at gfxPlatformGtk::UseHardwareVideoDecoding(), make VA-API decoding possible on X11 r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D82174
2020-07-03 11:27:56 +00:00
Jonathan Kew
0cfcdeb5d0 Bug 1648354 - Handle the fact that ToPtr() may return null in the child process. r=jwatt
Normally, if IsNull() is false, we'd expect ToPtr() to return a valid pointer,
but for code that may run on a stylo thread in the child process this is not
necessarily true: if resolving the pointer requires accessing a new shared-mem
block, we can't make that IPC call from the stylo thread. So in this case, we
let ToPtr() return null, and the caller needs to handle this safely.

Differential Revision: https://phabricator.services.mozilla.com/D81242
2020-07-03 09:02:54 +00:00
Edgar Chen
dc0bf3f975 Bug 1648630 - Part 3: Propagate layers id to touch event properly for Fission; r=kats
Differential Revision: https://phabricator.services.mozilla.com/D81869
2020-07-03 07:45:35 +00:00
Jean-Yves Avenard
e1424a9e65 Bug 1649977 - Use a nsThread for the VRService. r=kip
The logic was apparently initially copied from the compositor thread which too got migrated to nsThread in bug 1634253, so we re-use that same logic again.

This allows to remove all use of the Google's MessageLoop.

Differential Revision: https://phabricator.services.mozilla.com/D81974
2020-07-03 02:52:05 +00:00
Jean-Yves Avenard
8fd158d479 Bug 1649684 - Use the current nsISerialEventTarget with the various process hosts. r=nika
In all those cases, the current nsISerialEventTarget is either the main thread or the MessageChannel's nsISerialEventTarget (since bug 1634846)

Differential Revision: https://phabricator.services.mozilla.com/D81966
2020-07-02 22:59:24 +00:00
Jeff Gilbert
017fc801d8 Bug 1647167 - Run pre/post transaction triggers in BasicCanvasLayer::Paint. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D82116
2020-07-02 22:55:48 +00:00
Jeff Muizelaar
510bcf6329 Bug 1649040. Properly set the transform on the clipped surface. r=mstange
This changes DrawTargetWrapAndRecord::CreateClippedDrawTarget to
properly set the transform on the newly created DrawTarget
to match DrawTargetRecording::CreateClippedDrawTarget.

More interestingly, it adds a print reftest that
ensures that this code is actually excerised.

Differential Revision: https://phabricator.services.mozilla.com/D82114
2020-07-02 22:17:51 +00:00