Commit Graph

405 Commits

Author SHA1 Message Date
Xidorn Quan
0ef2494ef2 Bug 1463408 part 2 - Add profiler feature seqstyle for forcing sequential styling when profiling. r=emilio,mstange
MozReview-Commit-ID: 6fm8j7z1EbJ
2018-05-23 19:35:03 +10:00
Emilio Cobos Álvarez
2eb6c582d6 Bug 1459529: Remove UPDATE_STYLE. r=heycam
Now that BeginUpdate is useless for the UPDATE_STYLE case, we don't need the
update mechanism at all. Just ensure that ApplicableStylesChanged is called on
the pres shell via the relevant RuleChanged, etc. notifications.

There's a big hidden gotcha here. nsIDocument::BeginUpdate does put a script
blocker on the stack for these updates. However it's not needed, since no script
can run during these notifications (only the stylesheet events we post for
devtools, but those use AsyncEventDispatcher and PostDOMEvents, so they don't
try to run immediately).

nsIDocument::BeginUpdate also does XBL binding attached queue stuff, but we
can't change bindings during these notifications anyway, so it also doesn't
matter.

MozReview-Commit-ID: HJvK6zQfloh
2018-05-15 18:44:29 +02:00
Emilio Cobos Álvarez
54e9db5bd7 Bug 1459529: Remove ServoStyleSet::{Begin,End}Update. r=heycam
They're empty, and make PresShell::BeginUpdate useless. Now we don't have
document observers that listen for these anymore.

MozReview-Commit-ID: GpDDNonFUFC
2018-05-15 18:44:26 +02:00
Emilio Cobos Álvarez
be43ec910e Bug 1457920: Remove ServoStyleSheet usage. r=xidorn
MozReview-Commit-ID: LIBkovuQ6MB
2018-05-02 04:13:26 +02:00
Emilio Cobos Álvarez
bfbd62eb51 Bug 1018269: Handle Shadow DOM in keyframes lookup. r=heycam
MozReview-Commit-ID: AeUmsOHOUYR
2018-05-01 13:01:23 +02:00
Emilio Cobos Álvarez
2593d2e5d0 Bug 1454747: Assert more tightly about StyleNewChildRange. r=bz
After bug 1303605 we can assert this, since we make sure all children have the
same flattened tree parent, and thus insertion point.

MozReview-Commit-ID: 7AHuGGw2uJI
2018-04-23 11:38:38 +02:00
Emilio Cobos Álvarez
bf14ceaba3 Bug 1454233: Remove nsINode::eDOCUMENT. r=bz
MozReview-Commit-ID: ItjdI79zme7
2018-04-20 01:30:11 +02:00
Emilio Cobos Álvarez
7ce7c7e357 Bug 1452143: Make InspectorUtils.getAllStyleSheets handle Shadow DOM, and also optionally not return UA / User sheets. r=bholley
We don't want to reparse over and over shared sheets, and that confused code
pretty heavily.

MozReview-Commit-ID: 7qkXoCoPNFW
2018-04-17 11:23:36 +02:00
Andrew McCreight
7a07e0c48b Bug 1449670, part 1 - Convert IsNodeOfType(nsINode::eTEXT) to IsText(). r=bz
This method is not a virtual call, and also looks nicer.

This patch was mostly generated by a Python script, but I manually
cleaned up the code in a few places where statements didn't need to be
split across multiple lines any more.

MozReview-Commit-ID: 8JExxqSRc59
2018-04-12 15:41:00 -07:00
Emilio Cobos Álvarez
6154f318b1 Bug 1452525: Deduplicate proto bindings, not bindings. r=xidorn
MozReview-Commit-ID: 2NWALzUhDjn
2018-04-09 15:25:41 +02:00
Emilio Cobos Álvarez
2183d84858 Bug 1452080: Rename ComputedStyle::PresContext to PresContextForFrame. r=xidorn
And make nsIFrame its only caller, modulo a safety assertion.

The safety assertion will be removed at the same time as the pres context
member, since the only purpose of it is to ensure we don't keep a pres context
reference for too long.

MozReview-Commit-ID: CD5zOHVO9ub
2018-04-09 11:19:50 +02:00
Noemi Erli
b15aabf388 Backed out 3 changesets (bug 1452080) for bustage in /builds/worker/workspace/build/src/layout/base/nsCSSFrameConstructor.cpp on a CLOSED TREE
Backed out changeset 7f5104c7a242 (bug 1452080)
Backed out changeset 806a9c95a243 (bug 1452080)
Backed out changeset bffebe8aa254 (bug 1452080)
2018-04-09 11:18:12 +03:00
Emilio Cobos Álvarez
263ba5ae8f Bug 1452080: Rename ComputedStyle::PresContext to PresContextForFrame. r=xidorn
And make nsIFrame its only caller, modulo a safety assertion.

The safety assertion will be removed at the same time as the pres context
member, since the only purpose of it is to ensure we don't keep a pres context
reference for too long.

MozReview-Commit-ID: CD5zOHVO9ub
2018-04-09 09:57:57 +02:00
Emilio Cobos Álvarez
3284a9dda8 Bug 1447827: Remove ServoRestyleManager. r=xidorn
MozReview-Commit-ID: CFafQsb4rQn
2018-04-07 15:50:06 +02:00
Emilio Cobos Álvarez
8e43075fd5 Bug 1447827: Move members from ServoRestyleManager to RestyleManager. r=xidorn
This leaves ServoRestyleManager as just a typedef.

MozReview-Commit-ID: 5wfTkiDc2Nr
2018-04-07 15:40:00 +02:00
Xidorn Quan
ec8553a3f8 Bug 1449068 part 2 - Use Servo data to back @counter-style rule. r=emilio
This patch basically does:
* Add descriptor setters and generation count to CounterStyleRule in
  Servo. (This code is mostly based on the old code inside
  nsCSSCounterStyleRule for handling mutation.)
* Use RawServoCounterStyleRule in CounterStyleManager.
* Add ServoCounterStyleRule and remove nsCSSCounterStyleRule.

Test change:
* "fixed" was parsed as and thus serialized to "fixed 1", but Servo
  doesn't do so. It preserves whether the number presents. Either way
  is probably fine.

MozReview-Commit-ID: EtKTeu32isi
2018-04-05 08:41:28 +10:00
Emilio Cobos Álvarez
c94e7011c1 Bug 1441136: Add a fast way to enumerate ShadowRoots in a document. r=smaug
MozReview-Commit-ID: 7QffP56jsyk
2018-04-04 07:40:34 +02:00
Emilio Cobos Álvarez
ea593f5a1c Bug 1420680: Rework how the loadability of font-faces is computed. r=jfkthame,bz
This reworks bug 1440561 so that we only precompute loads that belong to our
user font set, avoiding messing up with fonts in the cache that belong to other
pages.

The loadability of a font is precomputed in PreTraverse in the same way as we
did, but only for the fonts that we may end up loading. This is stored in
FontFaceSet now.

Also, the principal shenanigans that this code did are reworked to be explicit
about when the document principal changes in ResetToURI, instead of having a
member around and a mutable variable. This makes the code easier to follow.

MozReview-Commit-ID: 9ofTbaLDUF7
2018-04-03 16:22:43 +02:00
Xidorn Quan
e493ad2ae2 Bug 1449400 part 4 - Split some inline functions from ServoStyleSet.h into an Inlines header. r=emilio
To remove the dependency from ServoStyleSet.h to ServoBindings.h.

MozReview-Commit-ID: 6YJ71AnQklL
2018-03-29 22:15:46 +11:00
Xidorn Quan
dfa82002f9 Bug 1448728 part 3 - Remove mention of servo in memory report as it's the only style system now. r=njn
MozReview-Commit-ID: CJl0LboV1Gj
2018-03-28 10:44:49 +11:00
Xidorn Quan
99b3d4120a Bug 1448728 part 1 - Make popular headers not include nsWindowSizes.h. r=njn
MozReview-Commit-ID: EC5J9Im3gfu
2018-03-28 10:44:49 +11:00
Emilio Cobos Álvarez
1800e02ed5 Bug 1448665: Simplify the unanimated style setup in nsComputedDOMStyle. r=xidorn
We never create nsComputedDOMStyle objects with an unanimated computed style, so
this can be much simpler.

MozReview-Commit-ID: 2NyBoErxRtV
2018-03-26 09:43:58 +02:00
Emilio Cobos Álvarez
1d4859a89a Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt on a CLOSED TREE
MozReview-Commit-ID: JPopq0LudD
2018-03-22 20:06:24 +01:00
Emilio Cobos Álvarez
97286b35c8 Back out changeset b683bb3f22a1 (Bug 1447483) for not landing with all the files. r=me on a CLOSED TREE
This reverts commit 1808914126bb9f9e4a82d2c3d7ac961885fe7d62.

MozReview-Commit-ID: 5skESBseEvo
2018-03-22 20:05:22 +01:00
Emilio Cobos Álvarez
1f5d8de5cc Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt
MozReview-Commit-ID: JPopq0LudD
2018-03-22 19:48:42 +01:00
Emilio Cobos Álvarez
c42ad1a43f Bug 1447476: Inline ResolveServoStyle. r=xidorn
We already pay a function call for it, no point in paying two.

MozReview-Commit-ID: 4odPqnPfrNF
2018-03-21 17:23:15 +01:00
Emilio Cobos Álvarez
b1a35fbef7 Bug 1447358: Unifdef the old style system code. r=jwatt
Summary:
This has been automatically generated using:

  http://dotat.at/prog/unifdef/

And:

find $OBJDIR -type f -name '*.h' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

find $OBJDIR -type f -name '*.cpp' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

MozReview-Commit-ID: I4NdKqbMXzJ

Reviewers: jwatt

Bug #: 1447358

Differential Revision: https://phabricator.services.mozilla.com/D779
2018-03-21 10:20:34 +01:00
Jeff Muizelaar
3370a80065 Bug 1439006. Allow multiple kinds of WebRenderUserData on a DisplayItem. r=mstange
Currently we can only have one type of WebRenderUserData on an Item. We already
have a hash table of WebRenderUserData so it's not hard to include type in the
hash to support one per type.

MozReview-Commit-ID: geJ0BeWv8b
2018-03-16 19:15:27 -04:00
Emilio Cobos Álvarez
23e91e805a Bug 1425759: Make Shadow DOM not use XBL anymore. r=smaug,xidorn
More improvements to come. In particular, this still iterates through Shadow DOM
in each_xbl_cascade_data, but that should be changed later. That allows to
cleanup a bunch of stuff and finally fix Shadow DOM cascade order.

We still rely on the binding parent to be setup properly in the shadow tree, but
that requirement can go away later (we can walk the containing shadow chain
instead).

This mostly focuses on removing the XBL binding from the Shadow host.

It'd be nice to do EnumerateShadowRoots faster. I think that should also be a
followup, if needed.

MozReview-Commit-ID: Jf2iGvLC5de
2018-02-27 12:39:35 +01:00
Emilio Cobos Álvarez
d00e8b29d9 No bug - Remove always-false argument from a binding function. r=me
MozReview-Commit-ID: EyRtQ92HjsV
2018-02-21 13:04:24 +01:00
Hiroyuki Ikezoe
b1da8534e8 Bug 1417354 - Introduce nsIDocument::GetPresContext(). r=smaug
It would be convenient to get nsPresContext from nsIDocument.

MozReview-Commit-ID: Ei6V3UE8XGr
2018-02-21 07:00:10 +09:00
Emilio Cobos Álvarez
74d2dd20e6 Bug 1439224: Make shadow root style changes not restyle the whole document. r=xidorn
Also, make them not rebuild the CascadeData synchronously, via the
FlushSkinSheets call, since that's broken. That fixes bug 1413119.

This is a little step in getting rid of XBL usage for Shadow DOM.

MozReview-Commit-ID: HJ7FeUZlRTW
2018-02-18 14:35:57 +01:00
Emilio Cobos Álvarez
988f582cbd Bug 1436059: Cleanup a bit after ourselves. r=xidorn
on a CLOSED TREE

MozReview-Commit-ID: DWWmdtigIkk
2018-02-16 16:56:26 +01:00
Emilio Cobos Álvarez
13ef01eb59 Bug 1436059: Fix inspector. r=xidorn
This removes a hack, but adds slightly more complex code in inspector-only code.

I'm not excited about this code, but this fixes ServoStyleRuleMap for XBL.

MozReview-Commit-ID: 6h0dCsiIWKU
2018-02-16 16:54:55 +01:00
Emilio Cobos Álvarez
ecb3f4b7fb Bug 1436059: Make XBL / Shadow DOM use AuthorStyles. r=xidorn
It's just a struct aggregating stylesheets + CascadeData, with a quirks_mode
parameter because XBL sucks so bad.

MozReview-Commit-ID: 7q99tSNXo0K
2018-02-16 16:54:34 +01:00
Xidorn Quan
26eb91a254 Bug 1437774 - Mark stylist dirty when author style disabled state changes. r=emilio
This is a workaround for regression from bug 1436798.

MozReview-Commit-ID: BJzk5cjjPd5
2018-02-13 18:33:00 +11:00
Emilio Cobos Álvarez
2d2d930376 Bug 1437244: Try to assert a bit more about stylist accesses. r=hiro
The keyframe stuff runs from animation building, which needs clean styles
already.

Same for counter styles, they run from a well-defined point in time where rules
should be up-to-date already.

The canvas stuff needs no stylist access mostly, since it's only used to compute
a couple font-related things.

MozReview-Commit-ID: 3Vh1wzeaYl3
2018-02-09 22:09:59 +01:00
Emilio Cobos Álvarez
ed98920662 Bug 1394233: Quirks mode changes can happen after a flush. r=xidorn
The reason why bug 1355721 regressed this is because in non-e10s we definitely
flush before parsing the standards quirks-mode. And bug 1355721 introduced an
unconditional UpdateStylistIfNeeded, unless the counter style / font
equivalents.

That means that the stylist wouldn't remain on its initial state after the first
flush, which itself means that when the compat mode changed, the UA and user
rules were already on the stylist with the quirks mode keys. That makes
class-names be keyed in ascii lowercase.

After that no user style changed, so no rebuild happens for the cascade data in
the user origin, so we keep looking at the wrong keys indefinitely.

MozReview-Commit-ID: 25dD2bca3tN
2018-02-11 20:06:28 +01:00
Emilio Cobos Álvarez
c74baed5c6 Bug 1436798: style: Move author-style-disabled handling to push_applicable_declarations. r=bholley
This will make it easier to handle it properly for Shadow DOM, though this patch
doesn't do that.

This also makes some method inline and infallible for convenience, since nobody
checks the errors anyway.

MozReview-Commit-ID: Hq3erAUs5tf
2018-02-10 00:36:53 +01:00
Emilio Cobos Álvarez
12278d0a15 Bug 1435939: Process all the MediumFeatureChanges at the same time. r=xidorn
This avoids resetting the computed values all the time, and paves the way to
avoid using a StyleSet on XBL bindings / Shadow DOM, which we should really
really do because it's super overkill.

There are some XBL bits that are kind of hacky, in particular the mStylistDirty,
but they'll go away soon, since I want to redo how we store styles in XBL.

The alternative, which was returning an array of indices or something was even
more hacky I think.

MozReview-Commit-ID: 6tEl5gebXVF
2018-02-07 15:27:56 +01:00
Emilio Cobos Álvarez
c204e2fc5b Bug 1435939: Don't reset the default computed values if they cannot change. r=xidorn
This actually fixes the bug.

MozReview-Commit-ID: AejqMLZzpQp
2018-02-07 15:27:51 +01:00
Emilio Cobos Álvarez
e565bbf9b0 Bug 1435939: Propagate the media feature change reason around. r=xidorn
Just some argument shuffling and such.

MozReview-Commit-ID: vPFoU2DUXb
2018-02-07 15:27:46 +01:00
Cameron McCormack
34288f7f48 Bug 1430014 - Part 5: Stop building old style system classes when MOZ_OLD_STYLE is not defined. r=xidorn
MozReview-Commit-ID: CIHyPdF7Exl
2018-02-01 15:04:04 +11:00
Cameron McCormack
02c617875f Bug 1430014 - Part 4: #ifdef out unnecessary code when the old style system is not built. r=xidorn
MozReview-Commit-ID: 1FZ9VzjcPzN
2018-02-01 15:04:04 +11:00
Bobby Holley
6910a0f2d4 Bug 1418161 - Hoist IsInServoTraversal into ServoUtils. r=emilio
This will allow us to invoke it from nsAttrValueInlines.h, which can't
include ServoStyleSet.h due to circular dependencies.

MozReview-Commit-ID: BgC7ExyWRn7
2018-01-30 14:11:03 -08:00
Emilio Cobos Álvarez
60dd06dfc1 Bug 1432850: Look at the snapshots when invalidating due to stylesheet changes. r=bz
The selectorText test happens to pass right now because well, we don't implement
the setter yet[1], but would fail if we implemented an specific invalidation in
the way I'd have done it yesterday.

[1]: https://bugzilla.mozilla.org/show_bug.cgi?id=37468

MozReview-Commit-ID: DrMTgLzQcnk
2018-01-27 04:21:11 +01:00
Emilio Cobos Álvarez
7ce02a51df Bug 1409672: Handle document state changes using the invalidation machinery. r=xidorn
MozReview-Commit-ID: EoSMrYPS7dl
2018-01-22 17:57:05 +01:00
Emilio Cobos Álvarez
a5afcee280 Backout changeset b54c60961def (Bug 1409672) for failing one OSX reftest on a CLOSED TREE. r=backout
MozReview-Commit-ID: 6ZHlFBpMOUo
2018-01-17 23:09:38 +01:00
Emilio Cobos Álvarez
b12066a877 Bug 1409672: Hook in the invalidator stuff. r=xidorn
MozReview-Commit-ID: EoSMrYPS7dl
2018-01-17 21:51:53 +01:00
Emilio Cobos Álvarez
6f35619cdb Bug 1428491: Remove redundant mBindingManager member in ServoStyleSet. r=heycam
MozReview-Commit-ID: KMiivgik0fr
2018-01-17 19:12:45 +01:00