Commit Graph

714639 Commits

Author SHA1 Message Date
Nicolas Silva
429bda5d65 Bug 1642629 - Reserve GpuBlockData vector before pushing in a loop. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D80203
2020-06-24 12:49:13 +00:00
Nicolas Silva
440726b308 Bug 1642629 - Preallocate CompositeStateDescriptor vectors. r=kvark
Vector reallocations in CompositeState::push_surface are taking about 2% of total frame building time before this patch. There was an effort at preallocating some with constant values but I suspect these constants haven't been updated along with picture cachign heuristics.

Differential Revision: https://phabricator.services.mozilla.com/D80195
2020-06-24 12:48:22 +00:00
Nicolas Silva
cf618044db Bug 1642629 - Preallocate the primitive headers vector. r=kvark
This patch a simple utility to help with pre-allocating vectors that we can't recycle and use it with the primitive headers.

Differential Revision: https://phabricator.services.mozilla.com/D80194
2020-06-24 12:42:26 +00:00
Nicolas Silva
470f80670a Bug 1642629 - Recycle FrameVisibilityState's clip_chain_stack and surface_stack. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D80193
2020-06-24 12:42:03 +00:00
Nicolas Silva
6bbff60830 Bug 1642629 - Reserve items in SegmentBuilder before simple loops. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D80192
2020-06-24 12:41:50 +00:00
Nicolas Silva
79d0fcebc2 Bug 1642629 - Recycle shared clips allocation in picture.rs. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D80178
2020-06-24 12:41:37 +00:00
Nicolas Silva
b1d4b4878a Bug 1642629 - Regroup recycled data structures into scratch buffers. r=gw
This change just restructures the recycling added in previouscommits.

Differential Revision: https://phabricator.services.mozilla.com/D80096
2020-06-24 12:41:14 +00:00
Nicolas Silva
9cac8b72d6 Bug 1642629 - Recycle dirty_region_stack in FrameBuilder. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D79858
2020-06-24 12:40:41 +00:00
Nicolas Silva
bbc46b7620 Bug 1642629 - Recycle a couple of vectors in PictureUpdateState. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D79857
2020-06-24 12:40:24 +00:00
Nicolas Silva
17be71bbe3 Bug 1642629 - Recycle the surface info vector in frame building. r=gw
This vector is usually small, but on some pages it can be fairly large (500+ in https://forum.xda-developers.com/redmi-note-3/development for example).

Differential Revision: https://phabricator.services.mozilla.com/D79855
2020-06-24 12:40:01 +00:00
Paul Adenot
fc302cd8b4 Bug 1647717 - Fix audio thread registration to the profiler in AudioStream.cpp. r=achronop
More or less the same as GraphDriver.cpp but simpler because there is only one
return statement.

Differential Revision: https://phabricator.services.mozilla.com/D80857
2020-06-24 12:45:36 +00:00
Lee Salzman
7ed00023cb Bug 1646835 - group RenderCompositorNative subclass methods together. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D80773
2020-06-24 04:24:18 +00:00
Lee Salzman
a6c3fcda13 Bug 1646835 - reuse depth buffers when rendering SWGL picture cache tiles. r=mstange
Bug 1592038 implemented a means for reducing memory usage resulting from needlessly
duplicated allocation of depth buffers when rendering WR picture cache tiles via
the NativeLayer interface. This aims to keep a similarly level of memory savings
even when using NativeLayer + SWGL.

SWGL allows, as an extension beyond OpenGL, specifying an allocation size separate
from the incidental size of a texture, which can be used to render to a smaller
valid rect of a texture without continually reallocating it every time the size
of the valid rect changes within the actual tile size. This functionality is used
to keep around only a single depth texture for the SWGL compositor that is resized
to accommodate the maximum requested tile size, so that any surface or tile can
use it as desired.

Differential Revision: https://phabricator.services.mozilla.com/D80274
2020-06-24 04:20:56 +00:00
Lee Salzman
6e8db72e54 Bug 1646835 - move SWGL context creation into specific SWGL RenderCompositors. r=jrmuizel
Currently RendererOGL has mixed-in details of SWGL context creation which becomes messy
and slightly unanticipated based on the nomenclature and structure of RendererOGL. Based
on other work in bug 1646835, it becomes more natural to move this context creation into
the specific SWGL RenderCompositors so that RendererOGL can be agnostic to any SWGL
details.

Differential Revision: https://phabricator.services.mozilla.com/D80273
2020-06-24 01:23:43 +00:00
Lee Salzman
6221028051 Bug 1646835 - refactor RenderCompositorOGL into RenderCompositorNative. r=mstange
RenderCompositorOGL currently has many responsibilities including supporting
OpenGL compositor for Linux, whole-window compositing for Mac NativeLayerCA,
and per-cache-tile compositing for Mac NativeLayerCA. With the addition of
support for SWGL, this becomes even further complicated.

It becomes advantageous to separate out RenderCompositorOGL specifically as
only the basic OpenGL compositing case, as that naturally yields a simple and
isolated RenderCompositor.

What is left over becomes RenderCompositorNative, a basis for implementing
NativeLayer-based RenderCompositors. To cleanly isolate state and details of
when HW compositing or SW compositing is being used, these are further split
off into RCNativeOGL and RCNativeSWGL versions that deal with specific
isolated details of OpenGL and SWGL respectively.

RCNativeOGL deals with just setting up OpenGL FBOs for NativeLayers.

RCNativeSWGL's new task is just to deal mapping NativeLayers and providing
SWGL FBOs for them without involving OpenGL.

Differential Revision: https://phabricator.services.mozilla.com/D80270
2020-06-23 23:54:24 +00:00
Lee Salzman
d879c564d6 Bug 1646835 - add MapTile/UnmapTile hooks to the WR compositor. r=mstange
RenderCompositors for SWGL that wish to provide accelerated compositing need to
subvert the existing Bind/Unbind hooks in the WR compositor. These compositors
need to keep track of their HW tiles without actually binding an OpenGL FBO
for WR to render picture cache tiles. SWGL needs to intervene and get a backing
buffer for tile from the RenderCompositor so that it can create a SWGL FBO for
WR to render the picture cache tile to.

To that end, this adds MapTile/UnmapTile as a replacement for Bind/Unbind for
those scenarios. This is done in a way that it affects only the WrCompositor of
webrender_bindings without actually altering WR's Compositor interface. This is
beneficial because WR does not have to understand the details of SWGL
integration and also so as not to complicate other users of WR such as Servo
who are not currently utilizing SWGL at all.

RenderCompositorOGL is initially modified to use these hooks in this patch. It
later became more convenient to restructure that in a follow-up patch.

Differential Revision: https://phabricator.services.mozilla.com/D80269
2020-06-23 23:55:11 +00:00
Lee Salzman
a8bc86a552 Bug 1646835 - implement basic SWGL compositor. r=jrmuizel
This is a first implementation of a software-only SWGL RenderCompositor
that relies on the existing widget hooks for Basic compositing. It attempts
to lock the widget and get a DT whose underlying data it can supply directly
to SWGL to composite to. Critically, it does not rely on OpenGL or any other
form of HW accel to function. The interface between the RenderCompositor and
SWGL will be further refined in follow-up patches.

Differential Revision: https://phabricator.services.mozilla.com/D80268
2020-06-24 00:53:39 +00:00
Lee Salzman
62ba932186 Bug 1646835 - allow specifying backing data and stride for SWGL default framebuffer. r=jimb
For performance reasons in SWGL software compositors. to avoid unnecessary
full-screen copies of the framembuffer, we need to allow those compositors to
map their underlying widget surfaces and pass that buffer to SWGL so that they
can be directly rendered to. That also requires supporting custom strides, as
we can't always enforce the particular layout of the buffers handed off to us.
To that end, InitDefaultFramebuffer is generalized to take such information
and then many places where we rely on a specific hard-coded SWGL-calculated
stride have been altered to deal with a caller-supplied stride.

Differential Revision: https://phabricator.services.mozilla.com/D80267
2020-06-23 01:44:00 +00:00
Razvan Maries
15c6376141 Backed out changeset 3a956cf3b8d3 (bug 1645416) for build bustages on MPSCQueue.h. CLOSED TREE 2020-06-24 15:31:34 +03:00
Andrea Marchesini
88086d4c44 Bug 1645588 -/fetch/http-cache/split-cache.tentative.html requires network-state isolation on, r=michal
Differential Revision: https://phabricator.services.mozilla.com/D80867
2020-06-24 12:48:31 +00:00
Paul Adenot
1a80554253 Bug 1645416 - Fix the TracePayload layout on 32bits and re-enable the static assert that check the struct has a size that is a power of two. r=achronop
Differential Revision: https://phabricator.services.mozilla.com/D80696
2020-06-24 12:05:04 +00:00
Corentin Arnould
76419cd0d4 Bug 1618225 - Added wpt test for loop with duration r=padenot
Silenced the mochitest

Differential Revision: https://phabricator.services.mozilla.com/D79875
2020-06-24 12:00:18 +00:00
Corentin Arnould
2ef567c825 Bug 1618225 - Updated mochitest for loop with duration r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D79874
2020-06-24 12:00:11 +00:00
Corentin Arnould
d3cc80aa8c Bug 1618225 - Set stop time when using loop with duration. r=padenot
The AudioBufferSourceNode can now be looping and stop after duration.

Differential Revision: https://phabricator.services.mozilla.com/D79873
2020-06-24 11:59:53 +00:00
Mihai Alexandru Michis
c509eace0d Backed out changeset 461c861e1190 (bug 1633710) for causing failures in /browser_cookiePermission*.js
CLOSED TREE
2020-06-24 14:50:00 +03:00
Jason Orendorff
7eb9e6c8e0 Bug 1647066 - Fix interfaces tests for shipping AggregateError to beta. r=jwalden.
Differential Revision: https://phabricator.services.mozilla.com/D80755
2020-06-24 00:52:46 +00:00
VandanRogheliya
1979f2279c Bug 1645197 - Type pageload added to browsertime visualmetrics data. r=sparky
Differential Revision: https://phabricator.services.mozilla.com/D80647
2020-06-24 11:12:15 +00:00
Florian Quèze
0a6859916e Bug 1647238 - Replace Services.profiler.AddMarker with ChromeUtils.addProfilerMarker in browser/, r=Gijs.
Depends on D80651

Differential Revision: https://phabricator.services.mozilla.com/D80652
2020-06-23 13:44:48 +00:00
Florian Quèze
5bf701d122 Bug 1647704 - Add profiler markers for Telemetry Stopwatch, r=chutten.
Differential Revision: https://phabricator.services.mozilla.com/D80651
2020-06-23 20:24:59 +00:00
Gijs Kruitbosch
5dd1896056 Bug 1647727 - make SelectParent find ZoomManager on the top window (fix dropdowns in add-on manager), r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D80837
2020-06-24 10:41:40 +00:00
Razvan Maries
592b80d333 Backed out changeset 7ff5210dae5e (bug 1645896) for build bustages. CLOSED TREE 2020-06-24 13:39:43 +03:00
longsonr
0a29054e26 Bug 1647101 - Move SVGTextFrame SVGViewFrame SVGFEContainerFrame SVGFEImageFrame SVGFELeafFrame SVGFEUnstyledLeafFrame into the mozilla namespace r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D80383
2020-06-23 22:59:34 +00:00
Tom Schuster
366e3067b4 Bug 1647895 - Remove inputType from MTypeof. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D80746
2020-06-24 08:12:22 +00:00
Emilio Cobos Álvarez
45dcbc2d5c Bug 1645987 - Isolate sheet cache by partitioned principal. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D80678
2020-06-24 06:47:38 +00:00
Razvan Maries
c54f50f342 Backed out changeset a10fc7b299ff (bug 1614969) for build bustages on nsContentSecurityUtils.cpp. CLOSED TREE 2020-06-24 13:23:02 +03:00
Valentin Gosu
63042412c1 Bug 1647638 - Fix static-analysis warnings in nsStandardURL r=mayhemer,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D80624
2020-06-24 10:18:49 +00:00
Valentin Gosu
e956550085 Bug 1647638 - Add nsStandardURL assertions r=mayhemer,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D80600
2020-06-24 10:12:15 +00:00
Nihanth Subramanya
6be693b933 Bug 1645896 - Add a console log origins that have their cookies partitioned by dFPI. r=timhuang
Differential Revision: https://phabricator.services.mozilla.com/D80675
2020-06-24 10:11:45 +00:00
Sebastian Streich
a9516ee4f5 Bug 1614969 - Check download with MixedContentBlocker r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D73302
2020-06-24 09:54:50 +00:00
Sebastian Streich
77655c5463 Bug 1633710 - principal.URI in Sanitizer.jsm r=ckerschb,johannh
Differential Revision: https://phabricator.services.mozilla.com/D75801
2020-06-24 09:58:10 +00:00
Nicolas Chevobbe
efe9743fe7 Bug 1495728 - Remove unused ActorPool class. r=ochameau.
This class isn't used anymore, and it's safe to remove it.
We take this as an opportunity to remove Pool#cleanup and
Pool#isEmpty, which each only had one callsite.
Some comments are updated to not mention ActorPool.

Differential Revision: https://phabricator.services.mozilla.com/D80602
2020-06-24 07:39:06 +00:00
Nicolas Chevobbe
a67f596fa2 Bug 1621713 - Don't create extra ActorPools in devtools/server. r=jdescottes.
Remove pools and make target actors manage themselves.
devtools/server/tests/browser/browser_navigateEvents.js was modified
since the targetActor can't be retrieved with `searchAllConnectionsForActor`
anymore.

Differential Revision: https://phabricator.services.mozilla.com/D67510
2020-06-24 07:38:09 +00:00
Michael Weghorn
1b52f1f63a Bug 1646499 - Fix GTK_USE_PORTAL env variable evaluation. r=stransky
While the comment for 'GetFlatpakPortalEnv' said
"We use the same code as gtk_should_use_portal() to detect
if we're in flatpak env", this was not actually true, since the
code only checked whether the environment variable 'GTK_USE_PORTAL'
was set at all, ignoring its value, while the gtk implementation
checks that it is set and that the first character is '1'
(which was already true in the gtk as of the commit that the
comment refers to, [1]).

Adapt it to check for the actual value here, according to what
is also done at [2], so that setting 'GTK_USE_PORTAL=0' or
'GTK_USE_PORTAL=1' in the environment works as expected.

I ran into this while looking at why bug 1517074 still occured
with the native file chooser presumably having been disabled by
starting Firefox using

    GTK_USE_PORTAL=0 firefox

with gtk 3.24.20 that does not yet have the fix for gtk issue [3].

[1] e0ce028c88/gtk/gtkprivate.c (L272)
[2] https://searchfox.org/mozilla-central/rev/37932bfc600f97ec923464086dc12cdaa72aefde/widget/gtk/nsFilePicker.cpp#608
[3] https://gitlab.gnome.org/GNOME/gtk/-/issues/1820

Differential Revision: https://phabricator.services.mozilla.com/D80073
2020-06-24 08:06:00 +00:00
Martin Stransky
f2821c99e1 Bug 1645776 [Linux/Gtk] Check XWindow id for XGetWindowProperty(), r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D80827
2020-06-24 09:09:07 +00:00
James Teh
a047283d38 Bug 1647666: test_doc_busy.html: Handle the case where we get a load event for about:blank before the download prompt itself. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D80828
2020-06-24 09:30:14 +00:00
Jan de Mooij
31af427a90 Bug 1646302 - Only create a template object if prototype is an object in getTemplateObjectForScripted. r=evilpie
Differential Revision: https://phabricator.services.mozilla.com/D80595
2020-06-23 10:11:10 +00:00
Nihanth Subramanya
62a1db641a Bug 1630093 - Don't run heuristics until internet connectivity has been established. r=valentin
Differential Revision: https://phabricator.services.mozilla.com/D80809
2020-06-24 09:13:28 +00:00
Nicolas Silva
c5e5e1cbac Bug 1647742 - Move the prepare pass out of prim_store/mod.rs. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D80692
2020-06-24 09:04:09 +00:00
Nicolas Silva
60ac872184 Bug 1647742 - Move the visibility pass out of prim_store/mod.rs. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D80693
2020-06-24 09:03:08 +00:00
Nicolas Silva
0e4d3e634f Bug 1647299 - Store a single array of primitives per prim list instead of per-cluster. r=gw
After this change, clusters just keep a range of indices in the prim list's instance array.

Differential Revision: https://phabricator.services.mozilla.com/D80461
2020-06-24 09:02:50 +00:00