Commit Graph

1960 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
0fe081bb39 Bug 1550554 - Add bindings for box shadows, and remove nsCSSShadowArray and friends. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D30547
2019-05-16 16:24:28 +02:00
Matt Woodrow
3e231add81 Bug 1549909 - Use display list building order for walking parents in AddFramesForContainingBlock. r=kamidphish
Differential Revision: https://phabricator.services.mozilla.com/D30453

--HG--
extra : moz-landing-system : lando
2019-05-15 03:33:26 +00:00
Narcis Beleuzu
94512af92c Backed out changeset 9d6897b968f6 (bug 1551389) for crashtest failures on 1551389-1.html 2019-05-15 06:15:35 +03:00
Matt Woodrow
e470ac5993 Bug 1551389 - Compare line lists as well as lines when deciding if two frames are on the same line. r=mats
Differential Revision: https://phabricator.services.mozilla.com/D31152

--HG--
extra : moz-landing-system : lando
2019-05-14 22:26:17 +00:00
Matt Woodrow
11e9f771db Bug 1551061 - Don't reuse a single DisplayItemData for all items that were previously part of a merged item. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D31004

--HG--
extra : moz-landing-system : lando
2019-05-13 23:40:47 +00:00
Miko Mynttinen
4a60cbef9c Bug 1551053 - Check both list end and non-container items separately during display item merging r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D30941

--HG--
extra : moz-landing-system : lando
2019-05-13 21:13:01 +00:00
Nicolas Silva
92e099dc31 Bug 1536021 - Gecko side changes. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D30618

--HG--
extra : source : d9c8971de6ad11a2f5c4331775c2d17c98a12b7e
extra : intermediate-source : b0fc3130f34b72fe01230ae0b231131111a9a9f1
2019-05-10 22:13:31 +02:00
Csoregi Natalia
6b3623045e Backed out changeset 7c1fce459b7a (bug 1549909) for crashtest failures on 1458028.html. CLOSED TREE 2019-05-10 14:21:07 +03:00
Matt Woodrow
6f7852c76c Bug 1549909 - Use display list building order for walking parents in AddFramesForContainingBlock. r=kamidphish
Differential Revision: https://phabricator.services.mozilla.com/D30453

--HG--
extra : moz-landing-system : lando
2019-05-10 04:58:39 +00:00
Emilio Cobos Álvarez
38065025d9 Bug 1548691 - Use the owned slice type for basic shape polygon coordinates. r=TYLin,heycam
This enables destructors for tagged unions in cbindgen, implemented in:

 * https://github.com/eqrion/cbindgen/pull/333

Which allow us to properly generate a destructor for the cbindgen-generated
StyleBasicShape (which now contains an OwnedSlice).

For now, we still use the glue code to go from Box<BasicShape> to
UniquePtr<BasicShape>. But that will change in the future when we generate even
more stuff and remove all the glue.

I could add support for copy-constructor generation to cbindgen for tagged
enums, but I'm not sure if it'll end up being needed, and copy-constructing
unions in C++ is always very tricky.

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

--HG--
extra : moz-landing-system : lando
2019-05-09 11:24:57 +00:00
Miko Mynttinen
e74a435226 Bug 1549860 - Make display item merging nsDisplayWrapList specific operation r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D30283

--HG--
extra : moz-landing-system : lando
2019-05-08 15:51:23 +00:00
Miko Mynttinen
1ad7ab6372 Bug 1549751 - Part 3: Use nsPaintedDisplayItem in WR and FLB r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D30226

--HG--
extra : moz-landing-system : lando
2019-05-08 13:50:09 +00:00
Miko Mynttinen
2c5cb1519c Bug 1549751 - Part 2: Add nsPaintedDisplayItem r=mattwoodrow
Move ApplyOpacity(), CanApplyOpacity(), Paint() and PaintWithClip() methods to nsPaintedDisplayItem

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

--HG--
extra : moz-landing-system : lando
2019-05-08 13:49:56 +00:00
Miko Mynttinen
d31f4467e4 Bug 1549751 - Part 1: Add nsDisplayList::Iterator r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D30224

--HG--
extra : moz-landing-system : lando
2019-05-08 14:11:40 +00:00
Alexis Beingessner
0feadff33f Bug 1545768 - Re-enable good text bounds for webrender. r=kats
This just reverts commit 580a7e38c60491123f3e7bba82904008ab0262d1.

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

--HG--
extra : moz-landing-system : lando
2019-05-07 11:20:34 +00:00
Miko Mynttinen
4818bf20d6 Bug 1546955 - Part 2: Make all display item constructors take nsDisplayListBuilder and frame as the first two parameters r=mattwoodrow
Depends on D28844

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

--HG--
extra : moz-landing-system : lando
2019-05-05 21:45:31 +00:00
Miko Mynttinen
1d36aadb94 Bug 1546955 - Part 1: Invoke display item copy-constructors through MakeClone() r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D28844

--HG--
extra : moz-landing-system : lando
2019-05-05 21:05:33 +00:00
Matt Woodrow
ca8d64ee34 Bug 1522455 - Position sticky can be handled by the compositor, so should be considered an async AGR. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D29796

--HG--
extra : moz-landing-system : lando
2019-05-03 13:22:27 +00:00
Miko Mynttinen
85748ab45f Bug 1547420 - Handle bounds overflow in FrameLayerBuilder::PaintItems() r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D29754

--HG--
extra : moz-landing-system : lando
2019-05-03 15:15:44 +00:00
Emilio Cobos Álvarez
b3863ed908 Bug 1547792 - AspectRatio should be a single ratio, not a size. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D29244

--HG--
extra : moz-landing-system : lando
2019-05-02 23:28:21 +00:00
Masayuki Nakano
c842b7b133 Bug 253889 - part 4: Finally, get rid of nsIPresShell r=emilio
And also this cleans up some legacy comments of PresShell users.

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

--HG--
extra : moz-landing-system : lando
2019-05-01 02:28:59 +00:00
violet
96e3a70dc5 Bug 608812 - GetTransformForRendering() should have the same rounding behavior r=emilio
The comment in nsDisplayTransform::GetTransformForRendering() clearly
says that |aOutOrigin| should return the same offset as GetTransform().

GetTransform() will pass the offset to GetResultingTransformMatrix()
which will round it in many cases to avoid subpixel blurry rendering.

But GetTransformForRendering() doesn't take this rounding into account,
thus contradicting the intent described by the comment.

This rounding is important to keep subpixel behavior consistent with
or without webrender enabled. Currently, SVG will be rendered blurry
in some cases if it's at a subpixel position. After fixing the problem
in non-webrender case, the strange blur still occurs in webrender case.
It turns out to be caused by this inconsistency.

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

--HG--
extra : moz-landing-system : lando
2019-05-01 15:20:31 +00:00
violet
3c2c9a686e Bug 608812 - Should snap subpixel value for outer svg and anon child r=longsonr
We should  snap subpixel value at nsDisplayTransform::GetResultingTransformMatrix
for outer svg and the anon child. This will solve blurry rendering for subpixel position
when webrender is __not__ enabled.

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

--HG--
extra : moz-landing-system : lando
2019-05-01 17:53:32 +00:00
Matt Woodrow
5e7af24291 Bug 1547986 - Don't early return in PreProcessDisplayList if we need to re-link the display list on exit. r=miko
This early return is just an optimization to prevent the DAG from becoming too complex, and if we're keeping the list linked, then we know it won't be getting more complex on the current paint.
Future paints that actually modify the list will still take this path.

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

--HG--
extra : moz-landing-system : lando
2019-05-01 17:34:45 +00:00
Emilio Cobos Álvarez
0593b77cc0 Bug 1547674 - Use rust types for gradient stops. r=boris
This doesn't clean up all that much, yet, but it's a step in the right
direction.

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

--HG--
extra : moz-landing-system : lando
2019-04-30 20:37:54 +00:00
Matt Woodrow
450f1a6f89 Bug 1544948 - Skip merging display lists that we're sure can't have changed. r=miko
ComputeRebuildRegion sets ForceDescendIntoIfVisible on all modified frames and their ancestors,
so we can use this to detect if a display list might have modified children by looking for this
flag on the container item.

We still need to run PreProcessDisplayList on the list, so that we can remove items that belong
to a deleted frame, and build the old items array (including placeholders for the deleted items)
so that it matches our DAG.

If we wanted to skip serialization to the old items array, then we'd need to remove the deleted
item entries from the DAG too, including connecting predecessors of the deleted entry to entries
that have that deleted entry as their predecessor. That's hard to do in-place, so we leave
the empty entries in the old items list to act as placeholders until we next merge this list
properly.

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

--HG--
extra : moz-landing-system : lando
2019-04-29 03:14:49 +00:00
Botond Ballo
990ed4ad66 Bug 1529892 - Limit the area of a fixed-position element that's painted to the displayport. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D28775

--HG--
extra : moz-landing-system : lando
2019-04-26 05:12:33 +00:00
Botond Ballo
798222c284 Bug 1529892 - Add a mochitest to check that the rendered area for a fixed-position element matches our expectations. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D28774

--HG--
extra : moz-landing-system : lando
2019-04-26 05:12:28 +00:00
Botond Ballo
f250152f55 Bug 1529892 - Use zooming pref rather than platform ifdef in OutOfFlowDisplayData::ComputeVisibleRectForFrame(). r=kats
Differential Revision: https://phabricator.services.mozilla.com/D28772

--HG--
extra : moz-landing-system : lando
2019-04-26 05:10:34 +00:00
Emilio Cobos Álvarez
11ea945833 Bug 1546697 - Use a consistent style for enum classes in layout. r=dholbert
Per the discussion in:

  https://groups.google.com/d/msg/mozilla.dev.platform/P79pwa9z5m8/iPYPAWPHCAAJ

They should be CamelCase, and that's what most of them already do. This converts
the rest, which are a few.

For the ones that already used `e` or `k` prefixes, I've mostly done:

 for file in $(rg Type::e layout | cut -d : -f 1 | sort | uniq); do sed -i 's#Type::e#Type::#g' $file; done

For the ones that used uppercase, I've removed the prefix if it was already in
the type name, and turn them into CamelCase.

Depends on D28680

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

--HG--
extra : moz-landing-system : lando
2019-04-25 23:03:04 +00:00
Brindusan Cristian
f92b05e5f0 Merge inbound to mozilla-central. a=merge
--HG--
rename : dom/ipc/TabParent.cpp => dom/ipc/BrowserParent.cpp
2019-04-25 00:54:01 +03:00
Miko Mynttinen
85b1e55dd4 Bug 1544798 - Do not paint items with empty truncated bounds in DebugPaintItem() r=kamidphish
Differential Revision: https://phabricator.services.mozilla.com/D28465

--HG--
extra : moz-landing-system : lando
2019-04-24 02:39:03 +00:00
Alexis Beingessner
8289701d8c Bug 1536121 - rearchitect the webrender display-list. r=gw
disclaimer: this isn't an *amazing* cleanup, but more of a major step that
unlocks the ability to do more minor cleanups and refinements. There's some
messy things and inconsistencies here and there, but we can hopefully iron
them out over time.

1. The primary change here is to move from
    struct { common_fields, enum(specific_fields) }
to
    enum (maybe_common_fields, specific_fields)

most notably this drops the common fields from a ton of things
that don't need them PopXXX, SetXXX, ClipChain, etc.

2. Additionally some types have had some redundant states shaved off,
for instance, rect no longer has *both* bounds and a clip_rect, as
the intersection of the two can be used. This was done a bit conservatively
as some adjustments will need to be done to the backend to fully eliminate
some states, and this can be done more incrementally.

2.5. As a minor side-effect of 2, we now early-reject some primitives whose
bounds and clip_rect are disjoint.

3. A HitTest display item has been added, which is just a Rect without
color. In addition to the minor space wins from this, this makes it much
easier to debug display lists

4. Adds a bunch of comments to the display list, making it easier to understand
things.

The end result of all these changes is a significantly smaller and easier to
understand display list. Especially on pages like gmail which have so many
clip chains. However this ultimately just makes text an even greater percentage
of pages (often 70-80%).

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

--HG--
extra : moz-landing-system : lando
2019-04-23 17:29:58 +00:00
Dorel Luca
0caaab0f1e Backed out 2 changesets (bug 1536121) for Reftest failures
Backed out changeset 0fc395a2ac71 (bug 1536121)
Backed out changeset 430032511561 (bug 1536121)

--HG--
extra : rebase_source : 95c710b24ec5b76da20ddb5573036c8c73873e9e
2019-04-23 10:05:14 +03:00
Alexis Beingessner
ee4e394f45 Bug 1536121 - rearchitect the webrender display-list. r=gw
disclaimer: this isn't an *amazing* cleanup, but more of a major step that
unlocks the ability to do more minor cleanups and refinements. There's some
messy things and inconsistencies here and there, but we can hopefully iron
them out over time.

1. The primary change here is to move from
    struct { common_fields, enum(specific_fields) }
to
    enum (maybe_common_fields, specific_fields)

most notably this drops the common fields from a ton of things
that don't need them PopXXX, SetXXX, ClipChain, etc.

2. Additionally some types have had some redundant states shaved off,
for instance, rect no longer has *both* bounds and a clip_rect, as
the intersection of the two can be used. This was done a bit conservatively
as some adjustments will need to be done to the backend to fully eliminate
some states, and this can be done more incrementally.

2.5. As a minor side-effect of 2, we now early-reject some primitives whose
bounds and clip_rect are disjoint.

3. A HitTest display item has been added, which is just a Rect without
color. In addition to the minor space wins from this, this makes it much
easier to debug display lists

4. Adds a bunch of comments to the display list, making it easier to understand
things.

The end result of all these changes is a significantly smaller and easier to
understand display list. Especially on pages like gmail which have so many
clip chains. However this ultimately just makes text an even greater percentage
of pages (often 70-80%).

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

--HG--
extra : moz-landing-system : lando
2019-04-23 02:32:50 +00:00
Miko Mynttinen
84624b4a42 Bug 1540785 - Part 2: Devirtualize nsDisplayItemBase::GetPerFrameKey() r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D27580

--HG--
extra : moz-landing-system : lando
2019-04-22 19:58:01 +00:00
Miko Mynttinen
f579c8f5c5 Bug 1540785 - Part 1: Introduce nsDisplayItemBase r=mattwoodrow
***

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

--HG--
extra : moz-landing-system : lando
2019-04-22 19:57:59 +00:00
Sylvestre Ledru
a1dce6440a Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-22 16:35:03 +00:00
Ryan Hunt
d6509bb237 Bug 1534395 - Rename TabChild to BrowserChild. r=nika
This commit renames TabChild to BrowserChild.

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

--HG--
rename : dom/base/InProcessTabChildMessageManager.cpp => dom/base/InProcessBrowserChildMessageManager.cpp
rename : dom/base/InProcessTabChildMessageManager.h => dom/base/InProcessBrowserChildMessageManager.h
rename : dom/ipc/TabChild.cpp => dom/ipc/BrowserChild.cpp
rename : dom/ipc/TabChild.h => dom/ipc/BrowserChild.h
extra : rebase_source : e7fcfb845a971a2760e73d517e24da18ce2551b5
extra : histedit_source : d1991334ccb107fe56e478865f22fd97b041a317
2019-04-09 17:39:01 -05:00
Alexis Beingessner
72aa57aea1 Bug 1544895 - revert back to old bad bounds to pick lesser evil for now. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D27965

--HG--
extra : moz-landing-system : lando
2019-04-18 13:03:28 +00:00
Dan Glastonbury
ea351adb8a Bug 1526972 - P8: Reset InInvalidSubtree when processing unrelated frames. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D26141

--HG--
extra : moz-landing-system : lando
2019-04-18 02:41:33 +00:00
Dan Glastonbury
4c428d9c74 Bug 1526972 - P7: Move AutoBuildingDisplayList constructor into .cpp r=miko
Differential Revision: https://phabricator.services.mozilla.com/D26140

--HG--
extra : moz-landing-system : lando
2019-04-18 02:38:26 +00:00
Dan Glastonbury
def88697c2 Bug 1526972 - P6: Mark invalidated SubDocument frame as modified. r=miko,mattwoodrow
Depends on D24463

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

--HG--
extra : moz-landing-system : lando
2019-04-18 02:38:24 +00:00
Dan Glastonbury
d28e1631fd Bug 1526972 - P5: Avoid HasModifiedFrame check for new nsDisplayItems. r=miko
aBuilder->InInvalidSubtree() tracks the modified state. Save the state
during construction of nsDisplayItem and use in ProcessItemFromNewList.

Depends on D24462

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

--HG--
extra : moz-landing-system : lando
2019-04-18 02:38:22 +00:00
Dan Glastonbury
4bc88f78ba Bug 1526972 - P4: Limit AnyContentAncestorModified frame walk to frame of outer item. r=miko
Don't walk frame tree all the way to the root.

Depends on D24461

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

--HG--
extra : moz-landing-system : lando
2019-04-18 02:38:20 +00:00
Dan Glastonbury
a3fd49025b Bug 1526972 - P3: De-virtualize HasDeletedFrame(). r=miko
To avoid expensive virtual dispatch in PreProcessDisplayList().

Depends on D24460

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

--HG--
extra : moz-landing-system : lando
2019-04-18 02:38:17 +00:00
Dan Glastonbury
b8327e00aa Bug 1526972 - P2: Re-order mItem->CanBeReused()/mItem->HasDeletedFrame(). r=miko
To short-circuit the expensive call with a flag check.

Depends on D24459

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

--HG--
extra : moz-landing-system : lando
2019-04-18 02:38:15 +00:00
Dan Glastonbury
d361d6bc8e Bug 1526972 - P1: Compress bool state into bit flags. r=miko
Also move to first cache-line (64-bytes) of nsDisplayItem to improve D-cache hit
when accessing mFrame, mItemFlags, etc.

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

--HG--
extra : moz-landing-system : lando
2019-04-18 02:38:13 +00:00
Masayuki Nakano
f5737567dd Bug 1544343 - part 3: Make layout use mozilla::PresShell instead of nsIPresShell as far as possible r=emilio
This patch changes remaining things under `layout/`.  However, there are some
places which still need to use `nsIPresShell`.  That will be fixed in a
follow up bug.

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

--HG--
extra : moz-landing-system : lando
2019-04-16 07:25:10 +00:00
Miko Mynttinen
49e63bdf19 Bug 1544583 - Change RDL list index to uint32_t r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D27623

--HG--
extra : moz-landing-system : lando
2019-04-15 23:16:30 +00:00
Alexis Beingessner
92010a39a6 Bug 1529992 - don't apply shadow adjustment to text bounds in gecko with WR r=mattwoodrow
And tell webrender to do them itself (they have fundamental mismatches in how they
define shadow bounds).

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

--HG--
extra : moz-landing-system : lando
2019-04-15 23:13:47 +00:00
Daniel Varga
e452ed972c Backed out 2 changesets (bug 1529992) for reftest failure at http://10.0.2.2:8854/tests/layout/reftests/bugs/1529992-1.html == http://10.0.2.2:8854/tests/layout/reftests/bugs/1529992-1-ref.html. On a CLOSED TREE
Backed out changeset 87b64e169b1b (bug 1529992)
Backed out changeset ddf29d68efb2 (bug 1529992)
2019-04-15 23:22:29 +03:00
Alexis Beingessner
f901a109e4 Bug 1529992 - don't apply shadow adjustment to text bounds in gecko with WR r=mattwoodrow
And tell webrender to do them itself (they have fundamental mismatches in how they
define shadow bounds).

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

--HG--
extra : moz-landing-system : lando
2019-04-15 17:25:26 +00:00
Kartikaya Gupta
25f7a03029 Bug 1543482 - Extract a helper to identify clip paths WR can handle without masks. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D27454

--HG--
extra : moz-landing-system : lando
2019-04-15 11:24:53 +00:00
Csoregi Natalia
612325227f Backed out 8 changesets (bug 1526972) for causing crashes (bug 1544406). a=backout
Backed out changeset 815543d81a1d (bug 1526972)
Backed out changeset a895c9028b31 (bug 1526972)
Backed out changeset 2ea2f8533078 (bug 1526972)
Backed out changeset 2fb940b13971 (bug 1526972)
Backed out changeset 8543b9d46521 (bug 1526972)
Backed out changeset ddd57e437228 (bug 1526972)
Backed out changeset 54b14df56e6f (bug 1526972)
Backed out changeset a59f06022a95 (bug 1526972)
2019-04-15 18:15:49 +03:00
Dan Glastonbury
a114224ced Bug 1526972 - P8: Reset InInvalidSubtree when processing unrelated frames. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D26141

--HG--
extra : moz-landing-system : lando
2019-04-15 00:23:21 +00:00
Dan Glastonbury
d0154f8169 Bug 1526972 - P7: Move AutoBuildingDisplayList constructor into .cpp r=miko
Differential Revision: https://phabricator.services.mozilla.com/D26140

--HG--
extra : moz-landing-system : lando
2019-04-15 00:23:19 +00:00
Dan Glastonbury
a161bca51c Bug 1526972 - P6: Mark invalidated SubDocument frame as modified. r=miko,mattwoodrow
Depends on D24463

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

--HG--
extra : moz-landing-system : lando
2019-04-15 00:23:17 +00:00
Dan Glastonbury
fe78904f60 Bug 1526972 - P5: Avoid HasModifiedFrame check for new nsDisplayItems. r=miko
aBuilder->InInvalidSubtree() tracks the modified state. Save the state
during construction of nsDisplayItem and use in ProcessItemFromNewList.

Depends on D24462

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

--HG--
extra : moz-landing-system : lando
2019-04-15 00:23:15 +00:00
Dan Glastonbury
ec2db657b0 Bug 1526972 - P4: Limit AnyContentAncestorModified frame walk to frame of outer item. r=miko
Don't walk frame tree all the way to the root.

Depends on D24461

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

--HG--
extra : moz-landing-system : lando
2019-04-15 00:23:13 +00:00
Dan Glastonbury
821a5af7e1 Bug 1526972 - P3: De-virtualize HasDeletedFrame(). r=miko
To avoid expensive virtual dispatch in PreProcessDisplayList().

Depends on D24460

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

--HG--
extra : moz-landing-system : lando
2019-04-15 00:23:11 +00:00
Dan Glastonbury
d6813ac163 Bug 1526972 - P2: Re-order mItem->CanBeReused()/mItem->HasDeletedFrame(). r=miko
To short-circuit the expensive call with a flag check.

Depends on D24459

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

--HG--
extra : moz-landing-system : lando
2019-04-15 00:23:09 +00:00
Dan Glastonbury
a9319e3ae3 Bug 1526972 - P1: Compress bool state into bit flags. r=miko
Also move to first cache-line (64-bytes) of nsDisplayItem to improve D-cache hit
when accessing mFrame, mItemFlags, etc.

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

--HG--
extra : moz-landing-system : lando
2019-04-15 00:23:07 +00:00
Kartikaya Gupta
937b89a55a Bug 1542019 - Split the dispatch-to-content flag into three. r=botond,hsivonen
This patch extracts two additional CompositorHitTestInfo flags from the
eDispatchToContent flag; eApzAwareListeners for elements that have
APZ-aware listeners, and eInactiveScrollframe for inactive scrollframe
or unlayerized scrollthumbs. The eDispatchToContent is then renamed to
eIrregularArea to reflect the fact that it is used for irregular-shaped
areas that require main-thread hit-testing.

Additionally, it is important to note that when using the non-WebRender
codepath, all three of these flags still end up gettings squashed into
the "dispatch to content" region on the EventRegions; when APZ
reconstructs a CompositorHitTestInfo it will turn anything in this
region back into an eIrregularArea. So this is a lossy round-trip
conversion for the non-WebRender case. However it should still result in
correct behaviour because the semantics of eIrregularArea result in APZ
relying on the main-thread to do hit-testing and so any APZ-aware
listeners and inactive scrollframes are also handled by the main-thread.

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

--HG--
extra : moz-landing-system : lando
2019-04-11 13:31:53 +00:00
violet
ed94c070ef Bug 1543577 - Remove useless parameter aImageSize from nsLayoutUtils::DrawBackgroundImage r=emilio
aImageSize parameter is only used for SVG background image to pass the intrinsic size.
After bug 1524901, it becomes useless. Let's remove it.

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

--HG--
extra : moz-landing-system : lando
2019-04-11 11:52:03 +00:00
violet
995f337626 Bug 1524901 - Should not set SVG viewport to intrinsic size when painting background image r=longsonr
When an SVG is used as a CSS background-image, we previously used the same behavior as
a normal image. It will stretch if the background-size is incompatible with the intrinsic
size of the SVG. This is a webcompat issue.

Now we use the painting destination rect size instead to avoid stretching.

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

--HG--
extra : moz-landing-system : lando
2019-04-11 01:05:02 +00:00
Boris Chiou
8ae5a0f189 Bug 1533968 - Don't add animations to layer for TYPE_TABLE_BACKRGOUND_COLOR. r=hiro
nsDisplayTableBackgroundColor inherits from nsDisplayBackgroundColor,
and both display item types are mapped to background_color property.
However, nsDisplayTableBackgroundColor is not animated on the
compositor, so we shouldn't add animations for TYPE_TABLE_BACKRGOUND_COLOR.

It seems the test case has a weird timeout in Android test-verify-opt. I
checked the live.log and the tests are passed, but got a final time-out.
It is not related to our change because this still happens if we skip
the test, and I saw that other intermittent bugs have the same issue.

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

--HG--
extra : moz-landing-system : lando
2019-04-10 18:50:34 +00:00
Miko Mynttinen
76ab5cf265 Bug 1541985 - Merge nsCharClipDisplayItem and nsDisplayText r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D26843

--HG--
extra : moz-landing-system : lando
2019-04-10 01:41:22 +00:00
Emilio Cobos Álvarez
7980a72d0a Bug 760345 - Remove the last usage of lossy currentcolor. r=heycam
We don't have lossy currentcolor in the style system anymore, except for a
single property -moz-font-smoothing-background-color.

I could've converted it into a proper StyleColor and thread down all the
necessary information to the font metrics code.

But it doesn't really seem worth it given it's not exposed to the web, so I just
did the simplest thing, which is making currentcolor compute to transparent to
that specific property.

This patch also removes the stores_complex_colors_lossily code and related,
since now we always can cache computed colors.

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

--HG--
extra : moz-landing-system : lando
2019-04-06 17:47:58 +00:00
Masayuki Nakano
e8446480e1 Bug 1542407 - Make nsIFrame use mozilla::PresShell directly rather than via nsIPresShell r=emilio
Except retrieving from weak reference, `nsIFrame` should treat
`mozilla::PresShell` directly rather than via `nsIPresShell`.

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

--HG--
extra : moz-landing-system : lando
2019-04-06 06:02:28 +00:00
Sylvestre Ledru
03c8e8c2dd Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-05 21:41:42 +00:00
violet
14a3ded377 Bug 1523343 - Should not round translation for SVG frame r=longsonr
When computing transform matrix, translation in SVG should not be rounded.
Checking !IsSVGTransformed() isn't the correct way, since an SVG frame may
have CSS transform applied.

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

--HG--
extra : moz-landing-system : lando
2019-04-05 09:03:52 +00:00
Csoregi Natalia
ba58e936bd Backed out changeset 4ad80127f89f (bug 1519636) for bustage on MarkupMap.h and nsAccessibilityService.cpp. CLOSED TREE 2019-04-05 09:48:19 +03:00
Sylvestre Ledru
d1c1878603 Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-04 21:36:16 +00:00
Brindusan Cristian
c298fe167e Backed out changeset 1ea4b3582033 (bug 760345) for build bustages at ia2AccessibleComponent.cpp. 2019-04-05 07:49:09 +03:00
Emilio Cobos Álvarez
993731e44b Bug 760345 - Remove the last usage of lossy currentcolor. r=heycam
We don't have lossy currentcolor in the style system anymore, except for a
single property -moz-font-smoothing-background-color.

I could've converted it into a proper StyleColor and thread down all the
necessary information to the font metrics code.

But it doesn't really seem worth it given it's not exposed to the web, so I just
did the simplest thing, which is making currentcolor compute to transparent to
that specific property.

This patch also removes the stores_complex_colors_lossily code and related,
since now we always can cache computed colors.

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

--HG--
extra : moz-landing-system : lando
2019-04-04 22:06:03 +00:00
Narcis Beleuzu
24dbe577a5 Backed out changeset 389b6bbd76db (bug 1519636) for bustages on MarkupMap.h . CLOSED TREE 2019-04-05 00:27:56 +03:00
Sylvestre Ledru
399dbd28fe Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-04 20:12:23 +00:00
Emilio Cobos Álvarez
e63fdb7c97 Bug 1541913 - Use rust lengths for outline-offset. r=boris
Depends on D26155

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

--HG--
extra : moz-landing-system : lando
2019-04-04 18:32:09 +00:00
Miko Mynttinen
5463d7f522 Bug 1536423 - Remove SVGCharClipDisplayItem r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D26191

--HG--
extra : moz-landing-system : lando
2019-04-04 18:04:49 +00:00
Miko Mynttinen
eafdaefb2c Bug 1541426 - Part 2: Remove unused display item constructor parameter aAnonymous r=mattwoodrow
Depends on D25953

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

--HG--
extra : moz-landing-system : lando
2019-04-04 17:36:53 +00:00
Miko Mynttinen
ac07a61899 Bug 1541426 - Part 1: Remove nsDisplayWrapList from nsDisplayPerspective r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D25953

--HG--
extra : moz-landing-system : lando
2019-04-04 17:36:51 +00:00
Emilio Cobos Álvarez
68aa7a9c80 Bug 1541546 - Use only the new name for StyleColor. r=heycam
That is, change all uses of StyleComplexColor to just StyleColor.

Differential Revision: https://phabricator.services.mozilla.com/D25977
2019-04-04 14:53:47 +02:00
Emilio Cobos Álvarez
3a1e1a41c4 Bug 1541546 - Use the rust color representation. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D25976
2019-04-04 14:53:44 +02:00
Cosmin Sabou
8731816b89 Backed out 3 changesets (bug 1541546) for causing build bustages. CLOSED TREE
Backed out changeset 895863144707 (bug 1541546)
Backed out changeset 4da6fb98e8f9 (bug 1541546)
Backed out changeset ba71816514eb (bug 1541546)

--HG--
rename : layout/style/StyleColor.cpp => layout/style/StyleComplexColor.cpp
rename : layout/style/StyleColorInlines.h => layout/style/StyleComplexColor.h
2019-04-04 15:04:25 +03:00
Emilio Cobos Álvarez
271376a85f Bug 1541546 - Use only the new name for StyleColor. r=heycam
That is, change all uses of StyleComplexColor to just StyleColor.

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

--HG--
rename : layout/style/StyleComplexColor.cpp => layout/style/StyleColor.cpp
rename : layout/style/StyleComplexColor.h => layout/style/StyleColorInlines.h
extra : moz-landing-system : lando
2019-04-04 11:35:33 +00:00
Emilio Cobos Álvarez
bc41ea853c Bug 1541546 - Use the rust color representation. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D25976

--HG--
extra : moz-landing-system : lando
2019-04-04 11:35:16 +00:00
Masayuki Nakano
9165a150a1 Bug 1540930 - Make nsPresContext use mozilla::PresShell directly rather than via nsIPresShell r=emilio
`nsPresContext` should use `mozilla::PresShell` directly instead of
`nsIPresShell`.  This patch makes it.

Unfortunately, `nsPresContext` and `nsIFrame` have `PresShell()`.  Therefore,
we cannot use `PresShell*` in its methods so that this patch uses `mozilla::`
namespace prefix.

It might be better to rename them as `PresShellPtr()` in another bug.

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

--HG--
extra : moz-landing-system : lando
2019-04-03 12:40:26 +00:00
Matt Woodrow
b7d051a4cb Bug 1539673 - Make sure we build layers for empty items, since they might contain hit test information. r=miko
Depends on D25169

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

--HG--
extra : moz-landing-system : lando
2019-04-01 16:54:51 +00:00
Matt Woodrow
fed842fadd Bug 1539673 - Remove old code for handling opacity:0 within the consumers. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D25169

--HG--
extra : moz-landing-system : lando
2019-04-01 16:54:07 +00:00
Matt Woodrow
52f583d371 Bug 1539673 - Don't build normal items when within opacity:0. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D25168

--HG--
extra : moz-landing-system : lando
2019-04-01 16:53:34 +00:00
Matt Woodrow
d99a15fae2 Bug 1539673 - Support fallible display item construction. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D25167

--HG--
extra : moz-landing-system : lando
2019-04-01 16:53:11 +00:00
Matt Woodrow
2497edd2ee Bug 1535585 - Make sure empty app unit rectangles get converted to empty pixel rectangles. r=jnicol
Differential Revision: https://phabricator.services.mozilla.com/D24800

--HG--
extra : moz-landing-system : lando
2019-03-29 14:44:55 +00:00
Alex Gaynor
44989b091f Bug 1540190 - replace the AnimationData IPDL union with native Maybe syntax; r=kats
Differential Revision: https://phabricator.services.mozilla.com/D25425

--HG--
extra : moz-landing-system : lando
2019-03-29 19:54:14 +00:00
Masayuki Nakano
de2d589e58 Bug 1540015 - part 3: Rename Document::GetShell() to Document::GetPresShell() and make it return PresShell* rather than nsIPresShell* r=smaug,emilio
This makes `Document::GetShell()` return `PresShell*` instead of `nsIPresShell`.

Additonally, "shell" is unclear ("docshell" vs. "presshell").  Therefore, this
also renames `Document::GetShell()` to `Document::GetPresShell()`.

Similarly, some other method names of `Document` are also renamed from
`*Shell*` to `*PresShell*`.

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

--HG--
extra : moz-landing-system : lando
2019-03-29 15:12:47 +00:00
Dorel Luca
5a0fa68b78 Backed out 3 changesets (bug 1540015) for build bustage. CLOSED TREE
Backed out changeset 7b71c9da0214 (bug 1540015)
Backed out changeset 5723ddbc5c44 (bug 1540015)
Backed out changeset 9561d2c36fa5 (bug 1540015)
2019-03-29 16:14:26 +02:00
Masayuki Nakano
9273f25ce2 Bug 1540015 - part 3: Rename Document::GetShell() to Document::GetPresShell() and make it return PresShell* rather than nsIPresShell* r=smaug,emilio
This makes `Document::GetShell()` return `PresShell*` instead of `nsIPresShell`.

Additonally, "shell" is unclear ("docshell" vs. "presshell").  Therefore, this
also renames `Document::GetShell()` to `Document::GetPresShell()`.

Similarly, some other method names of `Document` are also renamed from
`*Shell*` to `*PresShell*`.

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

--HG--
extra : moz-landing-system : lando
2019-03-29 13:09:26 +00:00
Cameron McCormack
126b79c729 Bug 1534240 - Boost loading priority of CSS images similarly to how we do for HTML images. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D24814

--HG--
extra : moz-landing-system : lando
2019-03-28 02:54:16 +00:00
Matt Woodrow
6dc498e40b Bug 1535507 - Don't force display item rebuilding for ActiveLayerTracker expiry, since we should only need to update the Layer tree. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D23608

--HG--
extra : moz-landing-system : lando
2019-03-26 02:14:13 +00:00
Alex Gaynor
46926da383 Bug 1538796 - Part 3 - convert IPDL OptionalOpacity union to use native Maybe syntax; r=kats
Depends on D24748

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

--HG--
extra : moz-landing-system : lando
2019-03-25 19:29:46 +00:00
Hiroyuki Ikezoe
01e23b1896 Bug 1518802 - Treat background-color animation as non-opaque even if the alpha channel is 1.0 at the moment. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D24656

--HG--
extra : moz-landing-system : lando
2019-03-24 22:41:02 +00:00
Dan Glastonbury
bf3ac981c9 Bug 1429605 - Use single-param version of rect.Inflate when x == y. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D24467

--HG--
extra : moz-landing-system : lando
2019-03-22 15:52:07 +00:00
Doug Thayer
b172543596 Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
This is a large patch that contains all of the core changes for
renderroot splitting.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 18:28:42 +00:00
Ciure Andrei
3de853018a Backed out 7 changesets (bug 1441308)for causing webrender build bustages CLOSED TREE
Backed out changeset 1764701d11d1 (bug 1441308)
Backed out changeset 32f7793dfd1a (bug 1441308)
Backed out changeset d8b4d6ec9b40 (bug 1441308)
Backed out changeset e2f83e4816dd (bug 1441308)
Backed out changeset baee8ada680f (bug 1441308)
Backed out changeset c09a51622e98 (bug 1441308)
Backed out changeset 737807563dd5 (bug 1441308)
2019-03-22 10:52:44 +02:00
Doug Thayer
5b3a0454a4 Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
This is a large patch that contains all of the core changes for
renderroot splitting.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 03:15:14 +00:00
Boris Chiou
87c575a7ac Bug 1533594 - Set performance warning by a property set. r=hiro
We want to set the performance warning by a property set, so update it.
Besides, add more tests for individual transforms (translate, rotate,
scale).

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

--HG--
extra : moz-landing-system : lando
2019-03-21 17:40:11 +00:00
Miko Mynttinen
b9ba790058 Bug 1534805 - Unify FrameLayerBuilder and WR display list iterators r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D23230

--HG--
extra : moz-landing-system : lando
2019-03-21 03:15:16 +00:00
Boris Chiou
7333f55253 Bug 1425837 - Drop the redundant animation debug log. r=me 2019-03-19 17:04:49 -07:00
Boris Chiou
92fcc151e4 Bug 1425837 - Part 4: Implement compositor animations on translate/rotate/scale. r=hiro,birtles
On the sender side of transactions, we have to convert the individual transforms
to the proper types in layers::Animations, and this includes SetAnimatable and
the definition in LayersMessages.

On the compositor side (i.e. received side of transactions). Basically, we
convert the list of layers::Animation into a list of `PropertyAnimationGroup`,
which is an intermediate value. And then use this list to do interpolation for
each property in `SampleAnimationForEachNode`, which will return a list of
`RefPtr<RawServoAnimationValue>`.

Depends on D23062

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

--HG--
extra : moz-landing-system : lando
2019-03-18 18:04:50 +00:00
Emilio Cobos Álvarez
5bf307c2a8 Bug 1535165 - Make the will-change bitfield use cbindgen. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D23414

--HG--
extra : moz-landing-system : lando
2019-03-18 18:08:08 +00:00
Emilio Cobos Álvarez
e66fb8488c Bug 1535165 - Use cbindgen for text-decoration-line. r=dholbert,boris
Differential Revision: https://phabricator.services.mozilla.com/D23412

--HG--
extra : moz-landing-system : lando
2019-03-18 17:58:16 +00:00
Bogdan Tara
df46c029a4 Backed out 3 changesets (bug 1535507) for webvtt/rendering/cues-with-video/processing-model/selectors/cue* failures CLOSED TREE
Backed out changeset f7a60828b0ad (bug 1535507)
Backed out changeset a9c6e9e27b17 (bug 1535507)
Backed out changeset f2061889974a (bug 1535507)
2019-03-19 02:49:55 +02:00
Matt Woodrow
756b5124bc Bug 1525372 - Add background-clip:text rendering observer so that we get notified of changes to the clipped contents. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D20110

--HG--
extra : moz-landing-system : lando
2019-03-18 16:24:20 +00:00
Matt Woodrow
665134f322 Bug 1535507 - Don't force display item rebuilding for ActiveLayerTracker expiry, since we should only need to update the Layer tree. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D23608

--HG--
extra : moz-landing-system : lando
2019-03-18 21:10:46 +00:00
Brad Werth
c2c75edc72 Bug 1501665 Part 5: Change UpdateShouldBuildAsyncZoomContainer to check if document is zoomable. r=botond
Also update ScrollFrameHelper::LayoutScrollbars() to correctly handle
overlay scrollbars when zoomed in in RDM.

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

--HG--
extra : source : 6a84e97d0e62839c3028a3c3ac89cd944f8e39e5
2019-03-18 14:57:20 +00:00
shindli
b7de66af4f Backed out 13 changesets (bug 1501665) for failing a11y tests in accessible/tests/mochitest/relations/test_tabbrowser.xul CLOSED TREE
Backed out changeset 2fa518cb0dfc (bug 1501665)
Backed out changeset afaf26d7df42 (bug 1501665)
Backed out changeset 5bdf0ad9dc66 (bug 1501665)
Backed out changeset 520dd24a73fc (bug 1501665)
Backed out changeset 3542bf2b89dd (bug 1501665)
Backed out changeset 088dc24eabc7 (bug 1501665)
Backed out changeset 178210eb72ba (bug 1501665)
Backed out changeset 9eebe767ef20 (bug 1501665)
Backed out changeset 6a84e97d0e62 (bug 1501665)
Backed out changeset cf42ea4e8443 (bug 1501665)
Backed out changeset 731d7ee06d86 (bug 1501665)
Backed out changeset 8e0afe4a041a (bug 1501665)
Backed out changeset be1026de486b (bug 1501665)
2019-03-18 18:08:58 +02:00
Brad Werth
6c983e6a60 Bug 1501665 Part 5: Change UpdateShouldBuildAsyncZoomContainer to check if document is zoomable. r=botond
Also update ScrollFrameHelper::LayoutScrollbars() to correctly handle
overlay scrollbars when zoomed in in RDM.

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

--HG--
extra : moz-landing-system : lando
2019-03-18 14:57:20 +00:00
Brian Birtles
15d4d3276b Bug 1518816 - Rework AnimationUtils::EffectSetContainsAnimatedScale to handle looking up the effect set correctly; r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D23284

--HG--
extra : moz-landing-system : lando
2019-03-18 04:12:10 +00:00
Brian Birtles
04e79479f6 Bug 1518816 - Add EffectSet::GetEffectSetForFrame and use it in FindAnimationsForCompositor; r=hiro
There are many bugs regarding our use of EffectSet::GetEffectSet(nsIFrame*)
because the intention of the caller is not clear. If it is called for the
primary frame of display:table content do we expect it to get the EffectSet
associated with the style frame or not? Generally it depends on if we are
looking for transform animations or not.

Rather than inspecting each call site and making it choose the appropriate frame
to use, this patch introduces a new method to EffectSet to get the appropriate
EffectSet based on the properties the caller is interested in.

This patch also uses this function in FindAnimationsForCompositor which in turns
fixes the glitching observed on Tumblr that arose since a number of places in
our display list code were passing the style frame to
EffectCompositor::HasAnimationsForCompositor.

Over the remainder of this patch series we will convert more callers of
EffectSet::GetEffectSet(nsIFrame*) to this new method before renaming
EffectSet::GetEffectSet to GetEffectSetForStyleFrame to make clear how the
method is intended to work.

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

--HG--
extra : moz-landing-system : lando
2019-03-18 04:10:30 +00:00
Brian Birtles
8e3d3cbf03 Bug 1518816 - Clarify when and why KeyframeEffect::HasEffectiveAnimationOfPropertySet might return false even when there are effective animations in a property set; r=boris
It took me a long time to understand why
KeyframeEffect::HasEffectiveAnimationOfPropertySet behaved so differently to
KeyframeEffect::HasAnimationOfPropertySet. This patch attempts to clarify that
while making KeyframeEffect::HasEffectiveAnimationOnPropertySet a little more
generally useful. This will allow us to tidy up the various animation checks in
nsLayoutUtils later in this patch series.

Ultimately, however, we should make this check part of the regular compositor
animation vetting machinery in bug 1534884. That should remove a number of
inconsistencies such that we don't need the extended comments added in this
patch.

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

--HG--
extra : moz-landing-system : lando
2019-03-18 04:10:10 +00:00
Brian Birtles
738f8c74d1 Bug 1518816 - Look up the will-change style on the _style_ frame for will-change: transform; r=mattwoodrow
I was unable to create a failing reftest for this since this method is not
used when determining whether or not to create a stacking context.
However, I verified that for content with animated transforms and
will-change:transform on display:table content this change does cause us to
return true from the will-change check in this method when previously it would
not.

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

--HG--
extra : moz-landing-system : lando
2019-03-18 04:09:35 +00:00
Sylvestre Ledru
4aa92e3091 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D22514
2019-03-13 10:19:06 +01:00
Andrew Osmond
bc278165ae Bug 1534188 - Use high quality downscaling for raster images embedded in SVGs. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D23374
2019-03-14 07:16:29 -04:00
David Major
e5773183d6 Bug 1528074 - Remove MSVC warning flags that clang-cl doesn't understand r=chmanchester
Per the previous patch, clang-cl only understands five MSVC-style warning flags: 7219c7e9af/clang/include/clang/Driver/CLCompatOptions.td (L188-L197)

This patch removes the flags that clang-cl doesn't understand.

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

--HG--
extra : moz-landing-system : lando
2019-03-13 20:19:08 +00:00
Miko Mynttinen
33522c484e Bug 1510286 - Cache nsIFrame::BackfaceIsHidden() and nsIFrame::Combines3DTransformWithAncestors() in display items r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D13077

--HG--
extra : moz-landing-system : lando
2019-03-13 16:52:18 +00:00
Doug Thayer
cb0fa9cf3b Bug 1441308 - Remove unnecessary StackingContextHelper params from clips r=kats
These aren't used, so I'm just getting rid of them as cleanup.

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

--HG--
extra : moz-landing-system : lando
2019-03-13 16:44:05 +00:00
Miko Mynttinen
a44f50e1ed Bug 1534821 - Add early exit from CollectItemsWithOpacity() for large nsDisplayOpacities r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D23237

--HG--
extra : moz-landing-system : lando
2019-03-13 16:17:19 +00:00
Jeff Muizelaar
a00f951356 Bug 1534250. Always paint the entire mask. r=mattwoodrow
Previously we would only paint the building area but we
would not do anything to check that the building area had
changed. Since, we're already allocating a surface for the entire
item it's better to just paint it and not worry about doing extra
invalidations.

Originally, we used mVisibleRect here. That was changed to GetPaintRect()
in part 1 of 1460491 and then to GetBuildingRect in part 2. However,
I think the original code was always wrong and we should've been using
mBounds the whole time.

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

--HG--
extra : moz-landing-system : lando
2019-03-13 15:43:56 +00:00
Miko Mynttinen
cbfb3b6b0b Bug 1534450 - Remove nsDisplayBackgroundColor::mBackgroundStyle r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D23055

--HG--
extra : moz-landing-system : lando
2019-03-11 23:03:09 +00:00
Matt Woodrow
c9e19a7db0 Bug 1529458 - Only create new hit test info for positioned frame if they might be sorted into a different location. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D22649

--HG--
extra : moz-landing-system : lando
2019-03-11 18:36:42 +00:00
Matt Woodrow
6ae273bc63 Bug 1518524 - Don't try to restore the previous FrameLayerBuilder after a transaction since it should always be nullptr anyway. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D21879

--HG--
extra : moz-landing-system : lando
2019-03-06 15:56:55 +00:00
Matt Woodrow
d9bacb3214 Bug 1533317 - Only invalidate items from the current frame, not descendants when we start needing a wrap list during a partial display list build. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D22636

--HG--
extra : moz-landing-system : lando
2019-03-11 02:35:32 +00:00
shindli
1c03485629 Backed out changeset 200ab1e8d571 (bug 1533317) for multiple reftest failures 2019-03-11 02:26:27 +02:00
Matt Woodrow
fd0b75b269 Bug 1533317 - Only invalidate items from the current frame, not descendants when we start needing a wrap list during a partial display list build. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D22636

--HG--
extra : moz-landing-system : lando
2019-03-10 22:16:11 +00:00
Miko Mynttinen
8625692016 Bug 1526941 - Part 5: Rewrite nsDisplayTransform bounds calculations r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D22333

--HG--
extra : moz-landing-system : lando
2019-03-07 17:13:45 +00:00
Miko Mynttinen
2ab05c6458 Bug 1526941 - Part 4: Remove mStoredList from nsDisplayTransform r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D21187

--HG--
extra : moz-landing-system : lando
2019-03-07 17:13:17 +00:00
Miko Mynttinen
dd22737962 Bug 1526941 - Part 3: Use mozilla::UniquePtr for mTransformPreserves3D r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D21186

--HG--
extra : moz-landing-system : lando
2019-03-07 17:12:59 +00:00
Miko Mynttinen
11e49ee34d Bug 1526941 - Part 2: Refactor nsDisplayWrapList::GetComponentAlphaBounds() and nsDisplayWrapList::GetOpaqueRegion() and move some of the logic to nsDisplayList r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D21185

--HG--
extra : moz-landing-system : lando
2019-03-07 17:12:44 +00:00
Miko Mynttinen
d546ab5155 Bug 1526941 - Part 1: Simplify nsDisplayTransform constructors r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D21184

--HG--
extra : moz-landing-system : lando
2019-03-07 17:12:21 +00:00
Brian Birtles
b956fdbf9f Bug 1532568 - Don't pass the display item types to FrameLayerBuilder::EnumerateGenerationForDedicatedLayers; r=hiro
We always pass the same set of types so it seems simpler to just look it up
within the function itself.

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

--HG--
extra : moz-landing-system : lando
2019-03-07 05:40:24 +00:00
Brian Birtles
46f45a965b Bug 1532568 - Look up the animation generation on the primary frame for transform display items; r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D22443

--HG--
extra : moz-landing-system : lando
2019-03-07 05:40:51 +00:00
Emilio Cobos Álvarez
cb19991fd7 Bug 1533142 - Use more cbindgen features. r=kats
We can get back the fancy flag syntax as soon as we get C++17 inline variables,
which I sent an email to dev-platform@ about, with no reply.

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

--HG--
extra : moz-landing-system : lando
2019-03-06 23:01:11 +00:00
Csoregi Natalia
fbb251448f Merge inbound to mozilla-central. a=merge 2019-03-06 11:56:17 +02:00
Matt Woodrow
f1c492571e Bug 1529831 - Don't create wrap lists for positioned frames that are leaves. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D20773

--HG--
extra : moz-landing-system : lando
2019-03-05 20:45:40 +00:00
Ciure Andrei
698d0759ec Merge mozilla-central to mozilla-inbound. a=merge CLOSED TREE 2019-03-05 06:24:16 +02:00
Jeff Muizelaar
4febae72fc Bug 1495170. Use CreateClippedDrawTarget more. r=mstange
This lets us restrict the size of the mask surface that we allocate
to the destination tile size. This gives a large performance
improvement.

It also includes some miscelanous fixes to the CreateClippedDrawTarget
code path.

Differential Revision: https://phabricator.services.mozilla.com/D21750
2019-03-04 22:30:09 -05:00
Dan Glastonbury
ff5c70a292 Bug 1530584 - Correct placeholder overflow calculation. r=miko,mattwoodrow
The calculation of aOverflow rect for a placeholder contained in a transformed
stacking context didn't take the transform into account, leading to an incorrect
rect which artificially inflated the calculated rebuild region.

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

--HG--
extra : moz-landing-system : lando
2019-03-04 12:26:49 +00:00
Kartikaya Gupta
fecd1d365c Bug 1511740 - Use nsDisplayAsyncZoom items to insert zooming animations in WR. r=jrmuizel,botond
The way we control APZ zooming in WebRender is by inserting an animation
property placeholder on a WR stacking context, and then having APZ
update the animation transform value with the proper matrix at composite
time.

Previously, the stacking context being used was the rootmost
stacking context in the content process. However this doesn't work for
zoomable content in the UI process (e.g. about:support), and after
recent changes, also wraps display items that should not be affected by
zoom (e.g. scrollbars or the background color item).

This patch moves the animation property placeholder so that it
corresponds to the newly added nsDisplayAsyncZoom display item, which
corrects both of the above problems and is conceptually in line with the
desired behaviour.

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

--HG--
extra : moz-landing-system : lando
2019-03-04 20:55:46 +00:00
Chris Peterson
9b04fe7446 Bug 1532128 - layout: Make some global functions static. r=dholbert
clang's -Wmissing-prototypes option identifies global functions that can be made static (because they're only called from one compilation unit) or removed (if they're never called).

layout/painting/FrameLayerBuilder.cpp:2593:6 [-Wmissing-prototypes] no previous prototype for function 'ReleaseLayerUserData'
layout/painting/RetainedDisplayListBuilder.cpp:1084:6 [-Wmissing-prototypes] no previous prototype for function 'FindContainingBlocks'
layout/style/FontFaceSet.cpp:423:6 [-Wmissing-prototypes] no previous prototype for function 'IsPdfJs'
layout/svg/SVGObserverUtils.cpp:969:6 [-Wmissing-prototypes] no previous prototype for function 'DestroyFilterProperty'

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

--HG--
extra : rebase_source : 7b876a976087eef710ff70ca0ae42abb3c505e49
extra : histedit_source : 4254fd49e36bef38bbb6197861a4a22e040d17e0
2019-02-22 20:33:01 -08:00
Miko Mynttinen
c0ca483df6 Bug 1526958 - Cache dom::TouchEvent::PrefEnabled in nsDisplayListBuilder r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D20326

--HG--
extra : moz-landing-system : lando
2019-03-04 13:22:05 +00:00