Commit Graph

2663 Commits

Author SHA1 Message Date
Matt Woodrow
0808c084f3 Bug 1468021 - Handle anonymous content when comparing using DoCompareTreePosition. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D20596
2019-02-25 05:22:43 +00:00
Boris Chiou
5d1b93e052 Bug 1529422 - Part 1: Add all transform-like properties into ActiveLayerTracker. r=hiro,mattwoodrow
Let ActiveLayerTracker track individual transforms. (Will add
motion-path in the future.)

Besides, using a property set for transform and opacity is more efficient,
so let's change it. For background position, we use a different code path,
so we can have more restrictions in IsStyleAnimated.

Differential Revision: https://phabricator.services.mozilla.com/D19631
2019-02-23 00:21:45 +00:00
Boris Chiou
03e0c65876 Bug 1505225 - Part 1: Make sure we also check the existence of individual transform animations. r=hiro
nsIFrame::BuildDisplayListForStackingContext() will check the existence
of transform animations, so we need to update
nsLayoutUtils::HasAnimationsOfPoperty(). However, checking only
eCSSProperty_transform is not enough. We have to check all the transform-like
properties. Therefore, we update these functions to accept a property
set as the argument, and pass a collection of transform-like properties
into them.

Differential Revision: https://phabricator.services.mozilla.com/D20412
2019-02-20 02:14:39 +00:00
Emilio Cobos Álvarez
c4cd8ffdb0 Bug 1529058 - Use Rust types from transform-origin / perspective-origin. r=mattwoodrow
Depends on D20381

Differential Revision: https://phabricator.services.mozilla.com/D20382
2019-02-19 20:28:47 +00:00
Emilio Cobos Álvarez
f1dfdc68d8 Bug 1528712 - Remove nsFont::featureValueLookup. r=jfkthame
It's a global object, it doesn't have to be stored in nsFont. Pass it from the
caller like the user font set and co.

Depends on D20141

Differential Revision: https://phabricator.services.mozilla.com/D20142
2019-02-19 14:54:04 +01:00
Emilio Cobos Álvarez
e0f9ed6fc3 Bug 1528712 - Remove a couple trivial dependencies on nsPresContext. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D20141
2019-02-19 14:54:01 +01:00
Emilio Cobos Álvarez
e9ff37af55 Bug 1525955 - Include anon boxes in CSSPseudoElementType, to remove ComputedStyle::mPseudoTag. r=heycam
This is more consistent with what the Rust bits of the style system do, and
removes a pointer from ComputedStyle which is always nice.

This also aligns the Rust bits with the C++ bits re. not treating xul pseudos as
anonymous boxes. See the comment in nsTreeStyleCache.cpp regarding those.

Can't wait for XUL trees to die.

Depends on D19001

Differential Revision: https://phabricator.services.mozilla.com/D19002
2019-02-19 13:44:33 +00:00
Ciure Andrei
9199c48c47 Backed out 2 changesets (bug 1528712) for Linux spcshell and reftest failures (test_ext_browserSettings.js, 1022481-1.html) CLOSED TREE
Backed out changeset 2d5c4e71e258 (bug 1528712)
Backed out changeset d981515b874b (bug 1528712)
2019-02-19 14:25:57 +02:00
Emilio Cobos Álvarez
26f0ca5d6b Bug 1528712 - Remove nsFont::featureValueLookup. r=jfkthame
It's a global object, it doesn't have to be stored in nsFont. Pass it from the
caller like the user font set and co.

Depends on D20141

Differential Revision: https://phabricator.services.mozilla.com/D20142
2019-02-18 14:03:47 +00:00
Emilio Cobos Álvarez
7471311874 Bug 1528712 - Remove a couple trivial dependencies on nsPresContext. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D20141
2019-02-19 11:17:28 +00:00
Miko Mynttinen
851e2b7530 Bug 1526957 - Part 1: Remove unused mIsAtRootOfPseudoStackingContext from nsDisplayListBuilder and AutoBuildingDisplayList r=mattwoodrow
unused

Differential Revision: https://phabricator.services.mozilla.com/D19857
2019-02-18 15:32:10 +00:00
Markus Stange
73de60b1d7 Bug 1500692 - Add GRAPHICS subcategories. r=njn,mattwoodrow
r?njn only because this is the first example that adds any actual subcategories.

Differential Revision: https://phabricator.services.mozilla.com/D11340
2019-02-16 17:38:23 +00:00
Botond Ballo
8fd81a7783 Bug 1526486 - Build an async zoom container for event delivery as well. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D19219
2019-02-16 00:51:40 +00:00
Razvan Maries
a0f464735e Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE 2019-02-15 11:59:08 +02:00
Emilio Cobos Álvarez
c22f1c443a Bug 1527438 - Use Rust types for Position. r=jwatt
This one should be much easier to review / much more pleasant to see :-)

Differential Revision: https://phabricator.services.mozilla.com/D19563
2019-02-15 04:05:32 +01:00
Emilio Cobos Álvarez
9f26fc9ab4 Bug 1527410 - Use Rust sizes for flex-basis, width, height, and their min/max properties. r=jwatt
Really sorry for the size of the patch :(

Only intentional behavior change is in the uses of HasLengthAndPercentage(),
where it's easier to do the right thing. The checks that used to check for
(IsCalcUnit() && CalcHasPercentage()) are wrong since bug 957915.

Differential Revision: https://phabricator.services.mozilla.com/D19553
2019-02-15 03:59:31 +01:00
Emilio Cobos Álvarez
8d3f985f2f Bug 1526294 - Should not need a pres context to get a system font. r=jfkthame
The only caller wants CSS pixels, no need to go back and forth.

This is the last dependency on the pres context, I think, from the style system
font code.

Differential Revision: https://phabricator.services.mozilla.com/D19147
2019-02-15 01:35:13 +01:00
Emilio Cobos Álvarez
4f202b9bdf Bug 1528098 - Remove content-select code. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D19869
2019-02-15 01:51:33 +00:00
Ting-Yu Lin
5fc4ae9007 Bug 1527519 Part 3 - Replace remaining nsLayoutUtils::GetAsBlock() with do_QueryFrame(), and delete nsLayoutUtils::GetAsBlock(). r=mats
Depends on D19861

Differential Revision: https://phabricator.services.mozilla.com/D19863
2019-02-15 01:38:05 +00:00
Ting-Yu Lin
e7c211a933 Bug 1527519 Part 2 - Replace some nsLayoutUtils::GetAsBlock() with nsIFrame::IsBlockFrameOrSubclass(). r=mats
Depends on D19860

Differential Revision: https://phabricator.services.mozilla.com/D19861
2019-02-15 01:38:04 +00:00
Emilio Cobos Álvarez
ce3d5d43c1 Bug 1523071 - Use Rust lengths for margin / padding / inset. r=jwatt
Also for the intersection observer root margin, since it was easier to fix it
up and clean it up than not doing it.

This is the first big step to get rid of nscoord. It duplicates a bit of logic
in nsLayoutUtils since for now max/min-width/height are still represented with
nsStyleCoord, but I think I prefer to land this incrementally.

I didn't add helpers for the physical accessors of the style rect sides that
nsStyleSides has (top/bottom/left/right) since I think we generally should
encourage the logical versions, but let me know if you want me to do that.

Differential Revision: https://phabricator.services.mozilla.com/D17739
2019-02-10 04:11:58 +01:00
Emilio Cobos Álvarez
1c2c94c72b Bug 1523181 - Don't implicitly flush the user font set.
Summary:
Flushing it at a bad time can cancel loads whose timer / completion
handler is in progress, which makes no sense.

Reviewers: jfkthame, jwatt, heycam

Tags: #secure-revision

Bug #: 1523181

Differential Revision: https://phabricator.services.mozilla.com/D17856
2019-02-05 13:30:13 +01:00
Botond Ballo
7d5b3ce08c Bug 1521644 - Trigger a full display list rebuild when transition to or from using an async zoom container. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D17168
2019-02-01 18:30:28 +00:00
Brindusan Cristian
a9b8001ad8 Backed out changeset 1885a467de3c (bug 1523500) for mochitest assertion failures at /mochitest/general/test_resizeby.html. 2019-01-30 00:25:00 +02:00
Emilio Cobos Álvarez
a50251a843 Bug 1523500 - Don't use cross-doc checks for perspective scrolling. r=mattwoodrow
Would be pretty surprising if a perspective transform scrolled stuff in an
iframe for example.

Differential Revision: https://phabricator.services.mozilla.com/D17905
2019-01-29 19:39:50 +00:00
Glenn Watson
f4bf7514be Bug 1522395 - Fix double inflation of text shadow bounds. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D17468
2019-01-25 00:28:46 +00:00
Cosmin Sabou
57bb107987 Merge mozilla-inbound to mozilla-central. a=merge 2019-01-19 11:57:49 +02:00
Greg Tatum
7ced9eb1ec Bug 1520526 - Add categories to all profiler markers; r=mstange
This commit adds categories to all markers. This way the profiler's
marker categories and frame label categories agree. There are a few
duplicate category properties on some of the marker payloads, but
this could be cleaned up in a follow-up if needed.

Differential Revision: https://phabricator.services.mozilla.com/D16864
2019-01-18 15:40:15 +00:00
sotaro
f342513ae1 Bug 1508522 - Relax aysnc animation size restriction with WebRender r=mattwoodrow
Performance of sync animation with large images is worse with WebRender than non-WebRender case. We want to use async animation as much as possible and relax aysnc animation size restriction. With WebRender, memory usage increase for async animation is limited compared to non-WebRender case.  Image does not needs additional TextureClient allocation for async animation and majority of frames are comverted to WebRenderCommands. Then we could relax aysnc animation size restriction with WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D16791
2019-01-17 23:59:44 +00:00
Margareta Eliza Balazs
7fe3543679 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-01-18 12:31:59 +02:00
Ehsan Akhgari
498e2df734 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset
2019-01-18 10:16:18 +01:00
Andrew Osmond
273b2ac29e Bug 1453747 - Use rounded dest rect in simplified image decode size calculations for WebRender. r=mstange
We are using the unrounded dest rect to calculate the image decode size
in ComputeImageContainerDrawingParameters, while passing the rounded
dest rect to WebRender. This mismatch causes images to be decoded to one
size and display at another, cause some visual distortions. Using the
correct rect seems to allow us to remove the extra snapping logic added
to work around this.

At this time, how we snap is different between WebRender and
non-WebRender in general. This patch will likely morph again once we
bring the two models closer together.

Differential Revision: https://phabricator.services.mozilla.com/D15739
2019-01-15 16:36:42 -05:00
Botond Ballo
0248244fd3 Bug 1509575 - Restore the visual viewport offset from the main thread during a first paint. r=kats
During a "first paint" transaction, compositor-side state such as APZ's copy
of the visual viewport offset is overwritten. However, the scroll frame may
persist on the main thread, and in such a case we want to restore the visual
viewport offset stored in the scroll frame. This comes into play during e.g.
navigation back to a page.

Differential Revision: https://phabricator.services.mozilla.com/D16238
2019-01-15 01:30:53 +00:00
Botond Ballo
de57a984b6 Bug 1509575 - Extend the internal visual scroll API to allow specifying "restore" vs. regular priority. r=kats
The distinction is not exposed at the JS level which currently always uses
"restore", but it could be if necessary.

Differential Revision: https://phabricator.services.mozilla.com/D16346
2019-01-15 01:30:43 +00:00
Hiroyuki Ikezoe
67e179be53 Bug 1519607 - Use GetScrollPortRect() size for the root scroll frame in nsLayoutUtils::GetRootMetadata. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D16384
2019-01-13 01:27:15 +00:00
Daniel Varga
6406ac0729 Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE 2019-01-11 06:23:02 +02:00
Botond Ballo
dae45663b6 Bug 1507279 - Add a mechanism for the main thread to set a visual viewport offset. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D16141
2019-01-10 20:59:13 +00:00
Botond Ballo
c15c4cf3ba Bug 1518953 - Remove non-ASCII characters from comments in nsLayoutUtils.cpp. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D16113
2019-01-09 23:21:44 +00:00
Botond Ballo
80f55db304 Bug 1518584 - Rename {FrameMetrics,RepaintRequest}::mViewport to mLayoutViewport. r=kats
Depends on D15972

Differential Revision: https://phabricator.services.mozilla.com/D15973
2019-01-09 15:34:34 +00:00
Botond Ballo
2e2e60180f Bug 1518584 - Remove {FrameMetrics,RepaintRequest}::mUseDisplayPortMargins. r=kats
It was always true.

Depends on D15971

Differential Revision: https://phabricator.services.mozilla.com/D15972
2019-01-09 15:33:10 +00:00
Brian Birtles
3c9b019a21 Bug 1518374 - Drop unused aEffectSet parameter from EffectCompositor::AllowCompositorAnimationsOnFrame; r=hiro
Depends on D15900

Differential Revision: https://phabricator.services.mozilla.com/D15901
2019-01-08 06:42:56 +00:00
Ryan Hunt
cdb872be1a Bug 1305957 part 5 - Add implementation of scroll anchor selection and invalidation. r=hiro,dbaron,dholbert
This commit implements candidate selection for a scroll frame using a frame tree
traversal. It roughly tries to follow the algorithm given in the scroll
anchoring draft specification, adapted to operate on the frame tree [1].

Some details, such as not selecting an anchor if the user hasn't scrolled are
not currently in the specification but will be to match Blink's implementation.

Once a scroll anchor has been selected, we maintain a bit on it and its ancestor
frame's states. This is used in a later commit to detect changes to position
during a reflow so the scroll frame can perform an adjustment.

A scroll anchor will be invalidated when the user scrolls the frame or the
scroll anchor is destroyed. Later commits will add logic to drive selection and
invalidation appropriately.

[1] https://drafts.csswg.org/css-scroll-anchoring/#anchor-node-selection

Differential Revision: https://phabricator.services.mozilla.com/D13268
2018-11-27 15:45:16 -06:00
Bogdan Tara
0943ddbffb Backed out 15 changesets (bug 1305957) for ASAN failures CLOSED TREE
Backed out changeset 4d5eb85d3155 (bug 1305957)
Backed out changeset 51c86d025ecb (bug 1305957)
Backed out changeset d8eef8f3e396 (bug 1305957)
Backed out changeset 950bf6ad1ef2 (bug 1305957)
Backed out changeset b4cb2cbebdb6 (bug 1305957)
Backed out changeset bfca5019a9cc (bug 1305957)
Backed out changeset e76b842c7b7f (bug 1305957)
Backed out changeset d9445a5f3458 (bug 1305957)
Backed out changeset d9052f7b34d9 (bug 1305957)
Backed out changeset e7124fecb721 (bug 1305957)
Backed out changeset bdb766faa867 (bug 1305957)
Backed out changeset 3033401ef320 (bug 1305957)
Backed out changeset 6b96050386f6 (bug 1305957)
Backed out changeset c66c00f73296 (bug 1305957)
Backed out changeset 6bd0bdab93cb (bug 1305957)
2019-01-10 18:49:22 +02:00
Ryan Hunt
f0f142207e Bug 1305957 part 5 - Add implementation of scroll anchor selection and invalidation. r=hiro,dbaron,dholbert
This commit implements candidate selection for a scroll frame using a frame tree
traversal. It roughly tries to follow the algorithm given in the scroll
anchoring draft specification, adapted to operate on the frame tree [1].

Some details, such as not selecting an anchor if the user hasn't scrolled are
not currently in the specification but will be to match Blink's implementation.

Once a scroll anchor has been selected, we maintain a bit on it and its ancestor
frame's states. This is used in a later commit to detect changes to position
during a reflow so the scroll frame can perform an adjustment.

A scroll anchor will be invalidated when the user scrolls the frame or the
scroll anchor is destroyed. Later commits will add logic to drive selection and
invalidation appropriately.

[1] https://drafts.csswg.org/css-scroll-anchoring/#anchor-node-selection

Differential Revision: https://phabricator.services.mozilla.com/D13268
2018-11-27 15:45:16 -06:00
longsonr
0814f26721 Bug 1518000 - Move nsSVGString and nsSVGViewBox to the mozilla namespace r=jwatt 2019-01-06 17:52:55 +00:00
Emilio Cobos Álvarez
dc336a73ba Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Emilio Cobos Álvarez
e461afa617 Bug 1516853 - Merge nsIDocument and nsDocument. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D15498
2018-12-31 14:10:19 +00:00
Emilio Cobos Álvarez
b26d7730f0 Bug 1516366 - Move base classes from nsDocument to nsIDocument. r=smaug
This is a big step in order to merge both.

Also allows to remove some very silly casts, though it causes us to add some
ToSupports around to deal with ambiguity of casts from nsIDocument to
nsISupports, and add a dummy nsISupports implementation that will go away later
in the series.

Differential Revision: https://phabricator.services.mozilla.com/D15352
2018-12-29 20:41:28 +01:00
Gurzau Raul
363d011b45 Merge inbound to mozilla-central. a=merge 2018-12-21 18:36:36 +02:00
Emilio Cobos Álvarez
c1c595d59c Bug 1513749 - Modernize a bit nsLayoutUtils::GetFrameForPoint / GetFrameForArea. r=mats
Also add an IsElement check in GetElementFromPoint in the APZ code since I think
the element cast is unsound in presence of Shadow DOM.

Differential Revision: https://phabricator.services.mozilla.com/D14355
2018-12-21 11:22:07 +00:00