Commit Graph

1960 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
d1a9b44ea6 Bug 1560188 - Fix and improve display list memory reporting. r=mattwoodrow,njn
I missed in bug 1487216 that the pres arena memory reporting assumes that the
entry indices are frame class ids, which means that we're reporting some display
list arena entries as frames, which is obviously wrong.

Cleanup a bit nsPresArena to remove the custom id concept, and report also
individual display item type memory usage.

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

--HG--
extra : moz-landing-system : lando
2019-07-02 02:46:09 +00:00
Sylvestre Ledru
131d0c6a02 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-07-06 08:18:28 +00:00
Kartikaya Gupta
45dff4d7bb Bug 1554985 - Prevent the WebRenderUserData on the render root item from getting discarded prematurely. r=jrmuizel
With retained display lists, a content render root might get marked as not
needing a build, in which case the nsDisplayRenderRoot::CreateWRCommands
function does an early exit. In this case, we don't mark the associated
WebRenderUserData as used during the display list build, which causes it to
get deleted at the end of the transaction. The next transaction that
doesn't early-exit will re-create the WebRenderUserData with a new boundary
object. The compositor therefore thinks it's a brand new thing and, if
conditions are right, could end up destroying and re-creating much of the
APZC tree. That in turn can have effects like discarding paint-skipped
scrolling.

This patch ensures we always touch the WebRenderUserData during the display
list build, so we don't discard it. This problem may still affect nested
nsDisplayRenderRoot instances but I don't think we ever cases where those
occur.

Depends on D36386

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

--HG--
extra : moz-landing-system : lando
2019-07-01 01:23:03 +00:00
Kartikaya Gupta
e1bbcf0b32 Bug 1554985 - Invert condition to reduce indentation. r=jrmuizel
No functional changes here.

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

--HG--
extra : moz-landing-system : lando
2019-06-30 01:36:54 +00:00
Doug Thayer
9e8f08b278 Bug 1549976 - Implement popover render root r=kats,Gijs
If we decide to just go with an overlay that sits fully over the
window (which I don't personally see a perf problem with right now,
but correct me if you can think of one), then this should be all
we need.

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

--HG--
extra : rebase_source : 44a5af47f9c10071b0933931fbf3708978f549e4
2019-06-21 19:15:11 +01:00
Nicholas Nethercote
59dde0c47e Bug 1561825 - Make layout.* static prefs follow the naming convention. r=KrisWright
Differential Revision: https://phabricator.services.mozilla.com/D36160

--HG--
extra : rebase_source : 25ec3d8bd549a9229ec8789f2ca604c27082f228
2019-06-27 16:28:25 +10:00
Nicholas Nethercote
4008f58653 Bug 1561825 - Make layers.* static prefs follow the naming convention. r=KrisWright
The patch also removes the layers.mlgpu.enable-container-resizing pref, because
it's dead.

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

--HG--
extra : rebase_source : e215d584aed18f865d2e8d00a78e76e9b0323e6e
2019-06-27 14:48:58 +10:00
Coroiu Cristina
f91bd38732 Merge inbound to mozilla-central a=merge 2019-06-27 12:36:00 +03:00
Nicholas Nethercote
ca8e78069d Bug 1561491 - Make gfx.* static prefs follow the naming convention. r=KrisWright
Differential Revision: https://phabricator.services.mozilla.com/D35975

--HG--
extra : rebase_source : 9090ac828f1da9582510975047d5ad59a228dda5
2019-06-26 10:38:09 +10:00
Charlie Marlow
b695380455 Bug 1440014: Part 1: Implemented rendering for text-decoration-width CSS property r=jfkthame
reftests will be added later

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

--HG--
extra : moz-landing-system : lando
2019-06-26 21:21:57 +00:00
Nicholas Nethercote
9f0b35cc2a Bug 1560837 - Make APZ static prefs follow the naming convention. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D35633

--HG--
extra : rebase_source : e71193756486b148d479e90b324f73dc35756429
2019-06-24 13:57:06 +10:00
Ryan Hunt
6b6abd3a36 Bug 1554861 - Disable clipping and scaling for top-level remote browsers to resolve regressions. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D35702

--HG--
extra : moz-landing-system : lando
2019-06-25 03:16:31 +00:00
Matt Woodrow
8f12c70442 Bug 1558937 - Don't allow duplicate items for printing. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D34775

--HG--
extra : moz-landing-system : lando
2019-06-24 08:00:41 +00:00
Brindusan Cristian
928742d3ea Backed out changeset c872cc627115 (bug 1558937) for reftest failures at 1558937-1.html. 2019-06-24 06:09:11 +03:00
Matt Woodrow
e2458a8e7c Bug 1558937 - Don't allow duplicate items for printing. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D34775

--HG--
extra : moz-landing-system : lando
2019-06-24 01:38:37 +00:00
Emilio Cobos Álvarez
ef914bd2f8 Bug 1559094 - Restore old behavior for background-size: cover + zero-sized background positioning area. r=dholbert
This restores our previous and per-spec behavior. Comparing only ratios was not
correct in the case one of the dimensions was zero and thus not scaled.

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

--HG--
extra : moz-landing-system : lando
2019-06-23 10:08:16 +00:00
Jeff Muizelaar
0b68652b49 Bug 1539702. Improve CreateClippedDrawTarget API r=jwatt,rhunt
This changes CreateClippedDrawTarget so that instead of taking
a max size and a transform it just takes a user space rect of
the desired bounds.

This change allows the caller to not worry about the computing
a max size based on the current clip. Instead this responsibility
is lowered into the specific backends.

The main motivation for this work is to allow blob recoordination
to create recordings that don't depend on the current clip.

Some additional benefits are that the API is easier to use and
as can be seen simplifies the SVG masking code because it doesn't
need to track surface offsets manually.

It's also an important step towards removing all the uses of
gfxContext::GetClipExtents which will let us get rid of the separate
clipping stack in gfxContext and help us move off of gfxContext
completely.

Most backend implementations of CreateClippedDrawTarget are relatively
simple. DrawTargetCapture is modified to track the current clip rect
so that it can create a new DrawTargetCapture of the appropriate size
without needing to worry about lazy resolution.

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

--HG--
extra : moz-landing-system : lando
2019-06-21 09:51:00 +00:00
Emilio Cobos Álvarez
35c4440f0b Back out changeset 7ae44e68ef10 (Bug 1559094) for landing too soon, since I understand what the spec is trying to say now. r=me 2019-06-22 12:23:26 +02:00
Emilio Cobos Álvarez
65347f45e1 Bug 1559094 - Restore old behavior for background-size: cover + zero-height background positioning area. r=dholbert
This restores our previous behavior and adds a .tentative test because I
couldn't see how the spec makes any sense.

Filed https://github.com/w3c/csswg-drafts/issues/4049 about that.

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

--HG--
extra : moz-landing-system : lando
2019-06-22 00:47:45 +00:00
Narcis Beleuzu
767a7b2616 Backed out changeset 88e6c989e783 (bug 1539702) for multiple reftest failures. CLOSED TREE 2019-06-21 12:46:16 +03:00
Jeff Muizelaar
afe9ee5a45 Bug 1539702. Improve CreateClippedDrawTarget API r=jwatt,rhunt
This changes CreateClippedDrawTarget so that instead of taking
a max size and a transform it just takes a user space rect of
the desired bounds.

This change allows the caller to not worry about the computing
a max size based on the current clip. Instead this responsibility
is lowered into the specific backends.

The main motivation for this work is to allow blob recoordination
to create recordings that don't depend on the current clip.

Some additional benefits are that the API is easier to use and
as can be seen simplifies the SVG masking code because it doesn't
need to track surface offsets manually.

It's also an important step towards removing all the uses of
gfxContext::GetClipExtents which will let us get rid of the separate
clipping stack in gfxContext and help us move off of gfxContext
completely.

Most backend implementations of CreateClippedDrawTarget are relatively
simple. DrawTargetCapture is modified to track the current clip rect
so that it can create a new DrawTargetCapture of the appropriate size
without needing to worry about lazy resolution.

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

--HG--
extra : moz-landing-system : lando
2019-06-20 22:34:31 +00:00
Andreea Pavel
8c09b0389f Merge mozilla-inbound to mozilla-central. a=merge
--HG--
rename : mobile/android/base/java/org/mozilla/gecko/util/OnboardingStringUtil.java => mobile/android/base/java/org/mozilla/gecko/util/OnboardingResources.java
rename : toolkit/components/normandy/test/browser/addons/normandydriver-1.0/manifest.json => toolkit/components/normandy/test/browser/addons/normandydriver-a-1.0/manifest.json
rename : toolkit/components/normandy/test/browser/addons/normandydriver-2.0/manifest.json => toolkit/components/normandy/test/browser/addons/normandydriver-a-2.0/manifest.json
rename : toolkit/components/normandy/test/browser/addons/normandydriver-1.0/manifest.json => toolkit/components/normandy/test/browser/addons/normandydriver-b-1.0/manifest.json
2019-06-15 12:54:47 +03:00
Matt Woodrow
0d50f63b8f Bug 1348503 - Retrieve the FrameLayerBuilder pointer from the LayerManager when we need it. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D34772

--HG--
extra : moz-landing-system : lando
2019-06-13 17:02:54 +00:00
Oana Pop Rus
b93335c27f Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-06-13 13:04:19 +03:00
Peter Van der Beken
8b00dd9ff2 Bug 1490044 - Move all prefs used in WebIDL to StaticPrefs. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D33507

--HG--
extra : moz-landing-system : lando
2019-06-13 09:00:59 +00:00
Ryan Hunt
d4e1195aed Bug 1558482 - Apply visibleRect and scaling when painting. r=mattwoodrow
visibleRect should affect both WR/layers, and scaling will only affect
layers.

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

--HG--
extra : rebase_source : 49273db3e10088c9493f693d5f8b58864dcb01aa
2019-06-11 07:52:12 -05:00
Ryan Hunt
99aaa4e6c6 Bug 1558482 - Add visibleRect and scaling to EffectsInfo and compute them when using layers. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D34523

--HG--
extra : rebase_source : 3bbef496359ae108e1f4adc2548e0140cfd7b0a8
2019-06-11 07:50:40 -05:00
Kartikaya Gupta
1cccbb6069 Bug 1557970 - Put the root metadata on the zoom container if there is one, for the WR codepath. r=botond
Same fix as in bug 1553045, but for the WebRender codepath.

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

--HG--
extra : moz-landing-system : lando
2019-06-12 16:51:22 +00:00
Boris Zbarsky
d5a8a4a595 Bug 1557793 part 3. Change the signatures of various nsContentUtils localization methods to play nicer with the new stringbundle API. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D34201

--HG--
extra : moz-landing-system : lando
2019-06-08 21:26:12 +00:00
Matt Woodrow
d35146931b Bug 1555819 - Remove invalidated display items during PreProcessDisplayLists, since we might not merge their display list. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D33881

--HG--
extra : moz-landing-system : lando
2019-06-11 04:39:17 +00:00
Matt Woodrow
f6b0435e84 Bug 1547802 - Compute a single caret frame for the entire display list, and remove the option to invalidate frames during painting. r=miko,smaug
Previously we computed a caret frame each time we started display list building for a pres shell, and tracked a stack of these as we descended through subdocuments.
This meant that we couldn't know if the caret frame had changed before we started building, and we instead had to support invalidations in the middle of building.

Since there should only ever be one focused document, we can instead retrieve this from the focus manager, and find the sole caret frame for all documents we want to paint.

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

--HG--
extra : moz-landing-system : lando
2019-06-11 04:39:00 +00:00
Cosmin Sabou
3d72a8ffe7 Backed out 2 changesets (bug 1547802, bug 1555819) for build bustages on nsDisplayList.
Backed out changeset aea91be6ce82 (bug 1555819)
Backed out changeset 11a69daedddb (bug 1547802)
2019-06-11 06:52:46 +03:00
Matt Woodrow
5dc2d83f7b Bug 1555819 - Remove invalidated display items during PreProcessDisplayLists, since we might not merge their display list. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D33881

--HG--
extra : moz-landing-system : lando
2019-06-11 02:20:21 +00:00
Matt Woodrow
72068e14f5 Bug 1547802 - Compute a single caret frame for the entire display list, and remove the option to invalidate frames during painting. r=miko,smaug
Previously we computed a caret frame each time we started display list building for a pres shell, and tracked a stack of these as we descended through subdocuments.
This meant that we couldn't know if the caret frame had changed before we started building, and we instead had to support invalidations in the middle of building.

Since there should only ever be one focused document, we can instead retrieve this from the focus manager, and find the sole caret frame for all documents we want to paint.

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

--HG--
extra : moz-landing-system : lando
2019-06-11 02:20:09 +00:00
Bas Schouten
88c1c3d944 Bug 1553254 - Part 2: Add some first performance probes to our codebase for some basic, easy to measure things. r=brennie
Differential Revision: https://phabricator.services.mozilla.com/D32877

--HG--
extra : rebase_source : b2d474400a2b09eeb5194845c1c4cd717de00513
2019-05-28 20:58:06 +02:00
Emilio Cobos Álvarez
95bca607dd Bug 1487216 - Measure memory usage of RDL. r=mattwoodrow,miko
For now I added everything to the same bucket, but I wrote this so it should be
easy to add more buckets as needed (either to mArenaSizes, or more specific ones
like the style system has). But this is probably enough for now.

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

--HG--
extra : moz-landing-system : lando
2019-06-09 22:58:24 +00:00
Botond Ballo
1eb526e657 Bug 1553045 - Place the fallback scroll metadata onto the async zoom container layer if there is one. r=kats
This preserves the APZ invariant that if there is an async zoom container,
then the RCD-RSF scroll metadata is on the same layer or descendant layers.

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

--HG--
extra : moz-landing-system : lando
2019-06-08 17:49:38 +00:00
Emilio Cobos Álvarez
67c30d05d2 Bug 1557212 - Use cbindgen for gradients. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D33901

--HG--
extra : moz-landing-system : lando
2019-06-07 14:13:17 +00:00
Noemi Erli
5b41ddf5f2 Backed out 2 changesets (bug 1547802, bug 1555819) mochitest and marionette failures CLOSED TREE
Backed out changeset 10ba83441846 (bug 1555819)
Backed out changeset b9af6aea762d (bug 1547802)
2019-06-07 09:12:09 +03:00
Matt Woodrow
bc3e85dc75 Bug 1555819 - Remove invalidated display items during PreProcessDisplayLists, since we might not merge their display list. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D33881

--HG--
extra : moz-landing-system : lando
2019-06-07 01:55:57 +00:00
Matt Woodrow
d436383750 Bug 1547802 - Compute a single caret frame for the entire display list, and remove the option to invalidate frames during painting. r=miko,smaug
Previously we computed a caret frame each time we started display list building for a pres shell, and tracked a stack of these as we descended through subdocuments.
This meant that we couldn't know if the caret frame had changed before we started building, and we instead had to support invalidations in the middle of building.

Since there should only ever be one focused document, we can instead retrieve this from the focus manager, and find the sole caret frame for all documents we want to paint.

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

--HG--
extra : moz-landing-system : lando
2019-06-07 01:55:43 +00:00
Boris Chiou
d1f4ea261c Bug 1555548 - Send other transform-like properties as non-animating animation into compositor. r=hiro
Not only animating transform-like properties, but also non-animating ones have
to be passed into the compositor, so the final transform matrix could
take them into account (on the compositor).

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

--HG--
extra : moz-landing-system : lando
2019-06-06 18:29:46 +00:00
Miko Mynttinen
6c57050ada Bug 1490404 - Part 2: Add retained display list statistics r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D33680

--HG--
extra : moz-landing-system : lando
2019-06-06 17:54:14 +00:00
Miko Mynttinen
fbfcf25cc9 Bug 1490404 - Part 1: Be more consistent with display list and display list builder pointers and references r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D33679

--HG--
extra : moz-landing-system : lando
2019-06-06 17:54:13 +00:00
shindli
3caa33a7ea Merge inbound to mozilla-central. a=merge 2019-06-06 12:57:52 +03:00
Miko Mynttinen
6f5e91c151 Bug 1553828 - Compute intermediate bounds for transform items that do not extend 3D context r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D33724

--HG--
extra : moz-landing-system : lando
2019-06-05 20:04:08 +00:00
Ryan Hunt
4386b68e1c Bug 1556548 - Move nsDisplayRemote to nsSubDocumentFrame.cpp. r=mattwoodrow
nsDisplayRemote no longer has any direct ties to RenderFrame and should
be moved to nsSubDocumentFrame.cpp where it's actually used/created.

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

--HG--
extra : rebase_source : ae2e03108820bd14b5f2771da17cabfd95706f94
extra : source : b301161ab461cd46cea3f91749896686c50e9b9f
extra : histedit_source : 1c80f83d26734e56bd6353f0a50dcbc4bf894b4b
2019-06-02 13:00:16 -04:00
Ryan Hunt
e7da3a1bef Bug 1519546, part 7 - Gather EffectsInfo for remote browsers in a paint and apply them. r=mattwoodrow
WebRender support will be finished in the following commit.

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

--HG--
extra : rebase_source : f40ab9946e946d137aa2522f9fce0aa268e22937
extra : intermediate-source : ea63d3d6b85fd3c4456275638e968e0eed045b37
extra : source : 79be6c27e0f9e262b75723c120786e2256ee4700
2019-05-24 09:28:23 -05:00
Jeff Muizelaar
adeec705d8 Bug 1555827. Disable disabling blob invalidation. r=kvark
Not using blob invalidation is broken. Having this pref accidentally
flipped has wasted multiple people's time.

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

--HG--
extra : moz-landing-system : lando
2019-05-31 19:07:17 +00:00
Emilio Cobos Álvarez
19258bfbb4 Bug 1554716 - Remove nsStyleColor moving the color property to nsStyleText. r=jfkthame
I think this is a good change regardless of other discussion in bug 1552587. If
we decide to move `mColor` to the top-level of the struct that can be done
separately.

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

--HG--
extra : moz-landing-system : lando
2019-05-31 14:48:22 +00:00