Commit Graph

1305 Commits

Author SHA1 Message Date
Kartikaya Gupta
2e785a4671 Bug 1462961 - Refactor to save a nsDisplayTransform* instead of just the transform matrix. r=jrmuizel
Instead of just storing the gfx::Matrix from the nsDisplayTransform on
the stacking context for scrolldata use, we now store a pointer to the
entire nsDisplayTransform item. We will need this in the next patch.
This patch should not have any functional changes.

MozReview-Commit-ID: 7qsZpL3Ka0X

--HG--
extra : rebase_source : b42957c83ef0591e72fa5b58ceb6650fda96e0b2
2018-05-23 16:08:18 -04:00
Matt Woodrow
6eda39ebfb Bug 1462497 - Part 4: Only use the MayHaveAnimation variants when computing useOpacity in case the more accurate version changes results between paints. r=hiro
I don't think this part is necessary, but putting the patch up in case we decide we want to take it.

MozReview-Commit-ID: G0JTNddvZma

--HG--
extra : rebase_source : 442a6a563044c2c510f332f881d9fab55c4455be
2018-05-23 11:03:54 +12:00
Matt Woodrow
44fcf86181 Bug 1462497 - Part 3: Don't condition useOpacity on values that might change silently between paints (HasAnimationsForCompositor, and the will-change budget). r=hiro
MozReview-Commit-ID: Kry5YIAIAHt

--HG--
extra : rebase_source : ccc1085ad534da882a9f5ef03a5b7675bc39ed08
2018-05-23 11:03:42 +12:00
Matt Woodrow
fa6ba0bd5b Bug 1462497 - Part 1: Don't crash if we find an item from the wrong list, and keep looking instead r=miko
We will still crash in Nightly/DevEdition builds (so that we can fix the bug), but we'll just accept the possible duplication of items (and maybe minor rendering issues) for releases.

MozReview-Commit-ID: LNzjO8vJjGp

--HG--
extra : rebase_source : 3a755c0929bba42c0f6148e50f8d16567eea87e5
2018-05-23 10:59:11 +12:00
Kartikaya Gupta
63feb7051a Bug 1425565 - Use the container ASR for sticky items when building WebRender clips. r=mstange
Even if the sticky item has a fixed descendant, we want to use the
sticky container item's "real" ASR when computing the WR clips because
otherwise the WR item doesn't get attached to the correct scrolling
layer.

MozReview-Commit-ID: JVnzEIBeLKp

--HG--
extra : rebase_source : 806e43eb65d46eb5151e21b0a5eb09168b2df82d
2018-05-18 15:19:47 -04:00
Matt Woodrow
52baaee863 Bug 1462497 - Add assertions to try diagnose which wrapper item went away. r=mstange
MozReview-Commit-ID: BkU5tTlgFum

--HG--
extra : rebase_source : f376fb94a99adfe92ae61f6a06a79d872885a5b3
2018-05-18 20:50:04 +12:00
Matt Woodrow
58713b3583 Bug 1462477 - Always initialize the value of aOutIsTransformedFixed, even we don't have an image to paint. r=mstange
This value is used to determine whether we should create nsDisplayFixedPosition, and if the result changes without an invalidation, then retained-dl gets confused with the insertion/removal of a wrap list.

MozReview-Commit-ID: JuXwCzKOxec

--HG--
extra : rebase_source : a62a2ce003eb57582c8a11bffb6c0cb766c6db15
2018-05-18 13:16:42 +12:00
Botond Ballo
9faccb4911 Bug 1462177 - Do not condition dumping of inactive layer trees on MOZ_DUMP_PAINTING. r=mstange
MozReview-Commit-ID: t38JkoVfQl

--HG--
extra : rebase_source : 37f9f9893519ccc5a59d5f2ce2c4409aca89ed7a
2018-05-16 19:02:27 -04:00
Matt Woodrow
6d94d6c09f Bug 1459997 - Add much more rigorous assertions for retained-dl assumptions. r=miko
This adds an assertion checking for duplicate items whenever we create an item, and when we merge an item into the final list.

I had to disable tracking for the anonymous inner list for nsDisplayPerspective and nsDisplayTransform (and manually forward RemoveFrame to them), as well as skipping the assertion for multi-page (since we can end up duplicating wrap lists, but isn't a problem, since we don't retain these).

MozReview-Commit-ID: 4n6rx9bQNan

--HG--
extra : source : ff93cd94b7c548ef57fa13b7eaf85992a0a60587
2018-05-01 11:56:40 -04:00
Matt Woodrow
b4687fa515 Bug 1460526 - Don't attempt to do a partial rebuild when a sublist DAG gets too complex, always rebuild the whole display list. r=miko
MozReview-Commit-ID: 5u3sBSepgJa

--HG--
extra : rebase_source : f08034d384cac0353017ff6dd6fe4f152d77d48d
extra : source : 21ab7bb3b993f2b2778f9dde10ff16c3c20f320f
2018-05-15 14:21:05 +12:00
Xidorn Quan
5896b33074 Bug 1461933 - Remove ServoBindings.h from ComputedStyleInline.h. r=emilio
For doing this, ServoComputedData is split into separate files, so that
files don't need to include ServoBindings.h just for accessing style
structs from ComputedStyles.

MozReview-Commit-ID: DPAd7PUUCl9

--HG--
extra : rebase_source : 7d6f739b7fb58a46e1624ba62e717412057ea9c1
2018-05-16 15:35:59 +10:00
Matt Woodrow
5412f4e50b Bug 1461812 - Make sure we fully cleanup any partially constructed display lists when returning a failure from AttemptPartialUpdate. r=miko
MozReview-Commit-ID: DJBG6UFcoyR

--HG--
extra : rebase_source : 38e33ad785556b92b8058f00a85d48c27fb4d2e3
2018-05-16 12:55:08 +12:00
Margareta Eliza Balazs
d4b9e50875 Merge inbound to mozilla-central. a=merge 2018-05-16 13:00:51 +03:00
Andreea Pavel
9badaa53d2 Backed out changeset ff93cd94b7c5 (bug 1459997) for assertion failures at builds/worker/workspace/build/src/layout/painting/nsDisplayList.cpp:141 on a CLOSED TREE 2018-05-16 09:48:56 +03:00
Matt Woodrow
33d829994f Bug 1460491 - Part 2: Only recompute visibility for items if they are newly added to this layer, or intersect one that changed. r=jnicol
MozReview-Commit-ID: EAgvVQGsSPE

--HG--
extra : rebase_source : 44bc132a95d6d1b7e9cc3c22adcd4166a099237c
2018-05-16 16:02:37 +12:00
Matt Woodrow
0d65266918 Bug 1460491 - Part 1: Split nsDisplayItem::mVisibleRect into two members, one for each stated purpose. Gets rid of the save/restore since we no longer modify the building rect. r=jnicol
MozReview-Commit-ID: 5wcsSoZRN44

--HG--
extra : rebase_source : 1bf7d655b048a972e392514542aee171e20afe82
2018-05-16 15:56:32 +12:00
Hiroyuki Ikezoe
ea397e2c09 Bug 1460389 - Use non-animated (static) value if the animation is in not in-effect. r=birtles,kats
MozReview-Commit-ID: 87YgNy0RkKt

--HG--
extra : rebase_source : ac77b639a558197082f4ac52c02a9988bb2a9194
2018-05-15 09:02:38 +09:00
arthur.iakab
5a50fe880e Backed out changeset 21ab7bb3b993 (bug 1460526) for failing reftest on worker/workspace/build/src/layout/painting/RetainedDisplayListBuilder 2018-05-16 04:51:23 +03:00
Matt Woodrow
840b789b4b Bug 1459997 - Add much more rigorous assertions for retained-dl assumptions. r=miko
This adds an assertion checking for duplicate items whenever we create an item, and when we merge an item into the final list.

I had to disable tracking for the anonymous inner list for nsDisplayPerspective and nsDisplayTransform (and manually forward RemoveFrame to them), as well as skipping the assertion for multi-page (since we can end up duplicating wrap lists, but isn't a problem, since we don't retain these).

MozReview-Commit-ID: 4n6rx9bQNan

--HG--
extra : rebase_source : 49da303965d63258f4c6023a0b09ef0de7553724
2018-05-01 11:56:40 -04:00
Matt Woodrow
4216a1235a Bug 1460526 - Don't attempt to do a partial rebuild when a sublist DAG gets too complex, always rebuild the whole display list. r=miko
MozReview-Commit-ID: 5u3sBSepgJa

--HG--
extra : rebase_source : 860e147fdc463fec8ddb6c6d08cb86f1873a6326
2018-05-15 14:21:05 +12:00
Matt Woodrow
d7cebc698d Bug 1461231 - Don't omit deleted items when constructing the DAG, since we need to record that we made a modification during MergeDisplayLists. r=miko
We can unconditionally delete the item though, and just put a placeholder entry into the DAG.

MozReview-Commit-ID: 7a2UnaByIZu

--HG--
extra : rebase_source : f9cf83f09c1a6b9b23f469f7d3ab3a67f99f4018
2018-05-15 14:20:59 +12:00
Matt Woodrow
085d0bbe3b Bug 1459441 - Make sure we build the full display list when we have blend containers in order to get the correct sorting for them. r=mstange
MozReview-Commit-ID: ECTU7enMb1r

--HG--
extra : rebase_source : 70f1b6187c152e770c4e19539645174c62198dc0
2018-05-10 11:39:12 +12:00
Bas Schouten
bbc1a8c2c3 Bug 1460624: Switch FIFO buffer to use stl::deque instead of stl::list. r=mattwoodrow
MozReview-Commit-ID: 3oeH9WyRKBp
2018-05-12 22:21:38 +02:00
Margareta Eliza Balazs
4f9a2ba08e Merge inbound to mozilla-central. a=merge 2018-05-11 12:36:02 +03:00
Brian Birtles
3184f30162 Bug 1456394 - Merge KeyframeEffectReadOnly and KeyframeEffect; r=bz,hiro
MozReview-Commit-ID: FvTMGjxfRXk

--HG--
extra : rebase_source : 8f7fd0903c9ca2f545dce2633eb797345a7517f8
2018-05-07 11:08:59 +09:00
Brian Birtles
9622b88217 Bug 1456394 - Rename KeyframeEffectReadOnly.{h,cpp} to KeyframeEffect.{h,cpp}; r=bz,hiro
MozReview-Commit-ID: 5Q7oQV8vmgS

--HG--
rename : dom/animation/KeyframeEffectReadOnly.cpp => dom/animation/KeyframeEffect.cpp
rename : dom/animation/KeyframeEffectReadOnly.h => dom/animation/KeyframeEffect.h
extra : rebase_source : cdc8448e7d07376691ef9187f7d6f4424800b690
2018-05-07 11:07:06 +09:00
Kristen Wright
031610cc8e Bug 1459367 - Convert NS_STYLE_IMAGELAYER_ATTACHMENT_* to enum class. r=manishearth
Converted NS_STYLE_IMAGELAYER_ATTATCHMENT_* vals to enum class, StyleImageLayerAttachment.
2018-05-08 15:05:33 -07:00
Bas Schouten
f86cc21a3b Bug 1460279: Avoid copying clips during FrameLayerBuilder. r=mattwoodrow
MozReview-Commit-ID: DzQezU7BOML
2018-05-10 18:05:54 +02:00
Csoregi Natalia
f034c0ab5d Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-05-10 12:52:31 +03:00
Matt Woodrow
ca3bd0a315 Bug 1452464 - Followup to fix bustage. CLOSED TREE 2018-05-10 16:34:25 +12:00
Matt Woodrow
560dfcc99f Bug 1452464. r=miko a=abillings 2018-04-21 16:25:33 +12:00
Matt Woodrow
250e99f481 Bug 1453541 - Part 2: Look for Out Of Flow frames with modified ancestors during ProcessFrame instead of during display list building. r=mstange
MozReview-Commit-ID: KsgrFqr2gVN

--HG--
extra : rebase_source : c4c370a48cbc5d3955e4b4d815c1d2b91eeb5601
2018-04-15 16:38:45 +12:00
Matt Woodrow
52c6a96582 Bug 1453541 - Part 1: Move more code into ProcessFrame so that we can call it from multiple places. r=mstange
MozReview-Commit-ID: AOXPgteSgTL

--HG--
extra : rebase_source : 88da959b50c5ca9681482854e40d5d913aeac57d
2018-04-15 16:38:44 +12:00
Dan Glastonbury
ee3d63760a Bug 1457810: Move CalcComplexColor to StyleComplexColor. r=xidorn
Move from nsStyleColor::CalcComplexColor to StyleComplexColor::CalcColor.

MozReview-Commit-ID: FkYovvPZLc8

--HG--
extra : rebase_source : 54f1966e0ef9258f20e954cd6250774008eca04c
2018-05-09 17:03:02 +10:00
Bas Schouten
c04589f5de Bug 1458655: Do not copy DisplayItemClip onto AssignedDisplayItemData. r=mattwoodrow 2018-05-09 12:29:01 +00:00
Hiroyuki Ikezoe
a21f1eb9c8 Bug 1320608 - Use style frame for animation stuff in AddAnimationsForProperty. r=birtles,mattwoodrow
In case of table element, display item has the primary frame for the element,
whereas for animation stuff we basically use the style frame instead.

MozReview-Commit-ID: GT6yaXv3wM4

--HG--
extra : rebase_source : e6c68949d80a3deb51309c1bd1d8a3d2142f0e9f
2018-05-09 05:54:15 +09:00
Ciure Andrei
de05fd66c8 Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-05-09 02:02:05 +03:00
Ciure Andrei
61548f81d6 Merge inbound to mozilla-central. a=merge
--HG--
rename : testing/web-platform/meta/webdriver/tests/navigation/get_title.py.ini => testing/web-platform/meta/webdriver/tests/get_title/user_prompts.py.ini
2018-05-09 01:58:44 +03:00
Boris Zbarsky
30e5cc5d8b Bug 1387143 part 24. Remove nsISelection::ContainsNode. r=mats 2018-05-08 13:52:42 -04:00
Boris Zbarsky
46cae9462a Bug 1387143 part 3. Stop using nsISelection in nsISelectionController. r=mats 2018-05-08 13:52:36 -04:00
Hiroyuki Ikezoe
8a0839c09a Bug 1456679 - Don't set non-animated values as AnimatedValue in delay phase. r=kats
We no longer need them since in the previous commit we make sure subsequent
ticks happens for animations in delay phase.

MozReview-Commit-ID: F68wCCsCEiE

--HG--
extra : rebase_source : d6ebe9bfa90a767154cea04255dbf4a5403674fe
2018-05-08 15:59:01 +09:00
Coroiu Cristina
f39a811db2 Merge mozilla-central to autoland a=merge on a CLOSED TREE
--HG--
rename : third_party/rust/core-foundation/.cargo-checksum.json => third_party/rust/core-foundation-0.5.1/.cargo-checksum.json
rename : third_party/rust/core-foundation/Cargo.toml => third_party/rust/core-foundation-0.5.1/Cargo.toml
rename : third_party/rust/core-foundation/src/array.rs => third_party/rust/core-foundation-0.5.1/src/array.rs
rename : third_party/rust/core-foundation/src/base.rs => third_party/rust/core-foundation-0.5.1/src/base.rs
rename : third_party/rust/core-foundation/src/bundle.rs => third_party/rust/core-foundation-0.5.1/src/bundle.rs
rename : third_party/rust/core-foundation/src/dictionary.rs => third_party/rust/core-foundation-0.5.1/src/dictionary.rs
rename : third_party/rust/core-foundation/src/filedescriptor.rs => third_party/rust/core-foundation-0.5.1/src/filedescriptor.rs
rename : third_party/rust/core-foundation/src/lib.rs => third_party/rust/core-foundation-0.5.1/src/lib.rs
rename : third_party/rust/core-foundation/src/propertylist.rs => third_party/rust/core-foundation-0.5.1/src/propertylist.rs
rename : third_party/rust/core-foundation/src/runloop.rs => third_party/rust/core-foundation-0.5.1/src/runloop.rs
rename : third_party/rust/core-foundation/src/set.rs => third_party/rust/core-foundation-0.5.1/src/set.rs
rename : third_party/rust/core-foundation/tests/use_macro_outside_crate.rs => third_party/rust/core-foundation-0.5.1/tests/use_macro_outside_crate.rs
rename : third_party/rust/core-foundation-sys/.cargo-checksum.json => third_party/rust/core-foundation-sys-0.5.1/.cargo-checksum.json
rename : third_party/rust/core-foundation-sys/Cargo.toml => third_party/rust/core-foundation-sys-0.5.1/Cargo.toml
rename : third_party/rust/core-foundation-sys/src/array.rs => third_party/rust/core-foundation-sys-0.5.1/src/array.rs
rename : third_party/rust/core-foundation-sys/src/base.rs => third_party/rust/core-foundation-sys-0.5.1/src/base.rs
rename : third_party/rust/core-foundation-sys/src/bundle.rs => third_party/rust/core-foundation-sys-0.5.1/src/bundle.rs
rename : third_party/rust/core-foundation-sys/src/data.rs => third_party/rust/core-foundation-sys-0.5.1/src/data.rs
rename : third_party/rust/core-foundation-sys/src/date.rs => third_party/rust/core-foundation-sys-0.5.1/src/date.rs
rename : third_party/rust/core-foundation-sys/src/dictionary.rs => third_party/rust/core-foundation-sys-0.5.1/src/dictionary.rs
rename : third_party/rust/core-foundation-sys/src/error.rs => third_party/rust/core-foundation-sys-0.5.1/src/error.rs
rename : third_party/rust/core-foundation-sys/src/filedescriptor.rs => third_party/rust/core-foundation-sys-0.5.1/src/filedescriptor.rs
rename : third_party/rust/core-foundation-sys/src/lib.rs => third_party/rust/core-foundation-sys-0.5.1/src/lib.rs
rename : third_party/rust/core-foundation-sys/src/messageport.rs => third_party/rust/core-foundation-sys-0.5.1/src/messageport.rs
rename : third_party/rust/core-foundation-sys/src/number.rs => third_party/rust/core-foundation-sys-0.5.1/src/number.rs
rename : third_party/rust/core-foundation-sys/src/propertylist.rs => third_party/rust/core-foundation-sys-0.5.1/src/propertylist.rs
rename : third_party/rust/core-foundation-sys/src/runloop.rs => third_party/rust/core-foundation-sys-0.5.1/src/runloop.rs
rename : third_party/rust/core-foundation-sys/src/set.rs => third_party/rust/core-foundation-sys-0.5.1/src/set.rs
rename : third_party/rust/core-foundation-sys/src/string.rs => third_party/rust/core-foundation-sys-0.5.1/src/string.rs
rename : third_party/rust/core-foundation-sys/src/timezone.rs => third_party/rust/core-foundation-sys-0.5.1/src/timezone.rs
rename : third_party/rust/core-foundation-sys/src/url.rs => third_party/rust/core-foundation-sys-0.5.1/src/url.rs
rename : third_party/rust/core-foundation-sys/src/uuid.rs => third_party/rust/core-foundation-sys-0.5.1/src/uuid.rs
rename : toolkit/mozapps/extensions/internal/UpdateRDFConverter.jsm => toolkit/mozapps/extensions/internal/RDFManifestConverter.jsm
extra : rebase_source : 82ff5278cf9bd559763cc24e3f6d87139466bfe5
2018-05-08 18:54:28 +03:00
Chris Peterson
71422dcaa9 Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj
s/NS_PRECONDITION/MOZ_ASSERT/ and reindent

MozReview-Commit-ID: KuUsnVe2h8L

--HG--
extra : source : c14655ab3df2c9b1465dd8102b9d25683359a37b
2018-04-28 12:50:58 -07:00
Martin Robinson
2d70c66a68 Bug 1458870 - Changes necessary to deal with new WebRender nine-patch API from PR 2724. r=jrmuizel
MozReview-Commit-ID: 9217FeM4VJH

--HG--
extra : rebase_source : 72f5ab352a8d70149a2306eed9c7afc87405636e
2018-05-08 10:36:23 -04:00
Kartikaya Gupta
1eb717ccf5 Bug 1377187 - Rewrite the clipping code to use the new clipchain API. r=mstange
The clip chain API in webrender allows us to build the clip state in WR
so that it matches the gecko display list more closely. This patch throws
away ScrollingLayersHelper.* and introduces ClipManager.* which pushes
the clip state to WR using the new method. A quick summary of the new
method is below.

Each display item in gecko has a DisplayItemClipChain which is a chain
of individual clips. The individual clips are defined in WR, and the
clip ids for those clips are put into a WR clip chain using the new
define_clip_chain API. Furthermore, each clip chain can also have a
parent chain, which is used to link a DisplayItemClipChain to the parent
display item's DisplayItemClipChain. This allows the WR clip state to
closely match the structure of the gecko display list clip state,
resulting in more correct behaviour.

There are a few other major changes that are lumped into this patch and
that were tricky to separate into their own patches:
- The collapsing of WrScrollId and WrStickyId into WrClipId. On the WR
  side all the clip ids are treated the same anyway. Trying to preserve
  the arbitrary distinction on the gecko side was resulting in
  increasingly convoluted code, with different kinds of Variant<..>
  types in the method signatures. It was much simpler and resulted in a
  bunch of code deletion to just collapse the types.
- Moving the "override" mechanism from WebRenderAPI to ClipManager. The
  override mechanism (explained in ClipManager.h) was simplified by
  moving it into ClipManager, because it removed the need for tracking
  additional clip stack state in WebRenderAPI.

MozReview-Commit-ID: GGbdFyJGprK

--HG--
extra : rebase_source : baa56ff179e917b0ab5a5c186a3a415761f8050a
2018-05-08 09:08:39 -04:00
Alexis Beingessner
239a528013 Bug 1435094 - wire up GlyphRasterSpace to nsDisplayTransform. r=kats,mstange
When a transform thinks it's animated we should abandon screen rasterization
and instead favour local rasterization. This produces a more visually
pleasant rendering, as pixel-snapping "wobbles" the text between
frames.

The float scale of GlyphRasterSpace::Local is currently unused, but this
PR tries its best to set it to a reasonable value, based on discussion
with glennw about the intended semantics. We agreed it should specify
the scale *relative* to the parent stacking context, which means it's
just whatever scaling the stacking context's transform applies. It's
possible we'll need to clamp this value or make it properly 2-dimensional
later on.

Some book-keeping is added to StackingContextHelper to ensure that
GlyphRasterSpace::Screen is never requested by a descendent
of a stacking context using GlyphRasterSpace::Local.

nsDisplayMask is changed to use a StackingContextHelper to ensure
rasterSpace is properly propagated.

In addition, this is the first commit making use of cbindgen's new support
for bridging Rust enums natively into C++! This bumps our minimum cbindgen
to 6.0.0 (just released).

MozReview-Commit-ID: 9AlsB6nUheB

--HG--
extra : rebase_source : 247e5b197e998682cb4bb74f6f9319a9a4dd3264
2018-05-03 20:38:37 -04:00
Bas Schouten
2c2327c372 Bug 1427063: Have D2D interpret colors in premultiplied space. As it says is its default. r=rhunt
MozReview-Commit-ID: 5OWjHW1CqjN
2018-04-23 19:27:48 +02:00
Xidorn Quan
43eb5c8140 Bug 1456364 part 4 - Convert CSS_PROPERTY_* flags to a typed enum flags. r=emilio
MozReview-Commit-ID: 4mLPe5cH80N
2018-04-26 16:24:33 +02:00
Miko Mynttinen
ce747b87c6 Bug 1455944 - Do not paint nsDisplayOpacity children when opacity push/pop markers have empty paint rect r=mattwoodrow
MozReview-Commit-ID: 5BgHOFjW34H

--HG--
extra : rebase_source : 0fc76b610ee3149c525e342988fac5b5028feeeb
2018-04-25 22:54:18 +02:00
Miko Mynttinen
181215aa0f Bug 1454105 - Do not flatten opacity for IB splits r=mattwoodrow
MozReview-Commit-ID: 67nBRgzdSZ6

--HG--
extra : rebase_source : 5bd24b253e4d3c2638c38d745abf16abebabd302
2018-04-24 17:17:04 +02:00