Граф коммитов

376 Коммитов

Автор SHA1 Сообщение Дата
Emilio Cobos Álvarez 914f744eb1 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 1b0cba9367 Bug 1417354 - Introduce nsIDocument::GetPresContext(). r=smaug
It would be convenient to get nsPresContext from nsIDocument.

MozReview-Commit-ID: Ei6V3UE8XGr

--HG--
extra : rebase_source : 8d2a917eb62cf341e4e1810451fd01c01dbc3bad
2018-02-21 07:00:10 +09:00
Emilio Cobos Álvarez cc5a1b6c85 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

--HG--
extra : rebase_source : 0fcd0ed461856c1e87e45ef63c9e1d2e81281469
2018-02-18 14:35:57 +01:00
Emilio Cobos Álvarez c37c40b47d 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 37e9a4f2a2 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 d39c5388fc 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 1eaf423aa5 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

--HG--
extra : rebase_source : 456c88c7b26e077e4503bc1aa8a751f73fae4cef
2018-02-13 18:33:00 +11:00
Emilio Cobos Álvarez a8f0ea9625 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

--HG--
extra : rebase_source : 9de148782365e128222a46414d87235b596a1660
2018-02-09 22:09:59 +01:00
Emilio Cobos Álvarez 0e897301b5 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 66f99f62bd 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 c2f6e9ff37 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 75abcdb1ca 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 ee4bdd20be 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 d02e54b79b Bug 1430014 - Part 5: Stop building old style system classes when MOZ_OLD_STYLE is not defined. r=xidorn
MozReview-Commit-ID: CIHyPdF7Exl

--HG--
extra : source : 78a2fc781eead47af3923efcde58569c5d882ab1
2018-02-01 15:04:04 +11:00
Cameron McCormack cc7db5c40c Bug 1430014 - Part 4: #ifdef out unnecessary code when the old style system is not built. r=xidorn
MozReview-Commit-ID: 1FZ9VzjcPzN

--HG--
extra : source : de22d220635f8c059834b76f769d5215ab1a8b5b
2018-02-01 15:04:04 +11:00
Bobby Holley 0babee3ba1 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 09b3922d79 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 af5c08c014 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 e06ff3dbe2 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 e191632bd8 Bug 1409672: Hook in the invalidator stuff. r=xidorn
MozReview-Commit-ID: EoSMrYPS7dl
2018-01-17 21:51:53 +01:00
Emilio Cobos Álvarez 480dcc7f05 Bug 1428491: Remove redundant mBindingManager member in ServoStyleSet. r=heycam
MozReview-Commit-ID: KMiivgik0fr
2018-01-17 19:12:45 +01:00
Emilio Cobos Álvarez ae38d1cb24 Bug 1428491: Make the style set know about a document, not a pres context. r=heycam
MozReview-Commit-ID: I7T41NiHuJv
2018-01-17 19:12:40 +01:00
Emilio Cobos Álvarez 271544691d Bug 1430844: Add assertions that would've caught this. r=bz
MozReview-Commit-ID: 1UfhIRn2We2
2018-01-17 19:12:34 +01:00
Andreea Pavel c98c2f7291 Backed out 2 changesets (bug 1428491) for failing browser chrome mochitest at /builds/worker/workspace/build/src/layout/style/ServoStyleSet.cpp:941 on a CLOSED TREE
Backed out changeset 308e79e6c98f (bug 1428491)
Backed out changeset dbfd798e491b (bug 1428491)
2018-01-16 14:26:41 +02:00
Emilio Cobos Álvarez 4ce67178eb Bug 1428491: Remove redundant mBindingManager member in ServoStyleSet. r=heycam
MozReview-Commit-ID: KMiivgik0fr

--HG--
extra : rebase_source : 9cb1181c2b3c1fd5274af3d53042fa3a0966ad10
2018-01-05 20:17:26 +01:00
Emilio Cobos Álvarez bde9657140 Bug 1428491: Make the style set know about a document, not a pres context. r=heycam
MozReview-Commit-ID: I7T41NiHuJv

--HG--
extra : rebase_source : 4642cf6f511f5c4e5ba285e2e865574a44459081
2018-01-05 13:51:08 +01:00
Emilio Cobos Álvarez 63b7c47b72 Bug 1428339: Make attribute mapping work without a pres context. r=heycam
MozReview-Commit-ID: FisYWoArX0N

--HG--
extra : rebase_source : b47cd6960b9bb44fc4573b295068fec01339322a
2018-01-05 13:47:04 +01:00
Emilio Cobos Álvarez aff5090202 Bug 1425769: Base class for ShadowRoot and Document to manage style state. r=smaug
This also removes some confusing comments around nsIDocument regarding some kind
of "special" stylesheets, which don't seem to exist anymore, and consolidates
StyleSheetList so that we only have one implementation.

I think that fixes a potential leak on the shadow root code (even though the API
is v0 only), given the pointer from the ShadowRootStyleSheetList to the
ShadowRoot wasn't being CCd.

Also, more stuff could be renamed, methods removed, etc, feel free to suggest
more cleanup, I've done mostly the minimal.

Next steps are moving the stylesets there and stop using the proto binding sheet
list / resources.

MozReview-Commit-ID: D9hnDgPQAS5
2017-12-19 11:09:59 +01:00
Dorel Luca e968e809aa Backed out changeset 13faabcf8e96 (bug 1425769) for Linux bustage on build/src/dom/base/nsLineBreaker.h 2017-12-19 11:07:44 +02:00
Emilio Cobos Álvarez 5ae586e759 Bug 1425769: Base class for ShadowRoot and Document to manage style state. r=smaug
This also removes some confusing comments around nsIDocument regarding some kind
of "special" stylesheets, which don't seem to exist anymore, and consolidates
StyleSheetList so that we only have one implementation.

I think that fixes a potential leak on the shadow root code (even though the API
is v0 only), given the pointer from the ShadowRootStyleSheetList to the
ShadowRoot wasn't being CCd.

Also, more stuff could be renamed, methods removed, etc, feel free to suggest
more cleanup, I've done mostly the minimal.

Next steps are moving the stylesets there and stop using the proto binding sheet
list / resources.

MozReview-Commit-ID: D9hnDgPQAS5

--HG--
extra : rebase_source : 0597917521894288c6b749e5d3ac6ac3b7db44a0
2017-12-17 22:29:10 +01:00
Emilio Cobos Álvarez b864765f92 Bug 1424816: Remove the document state cache. r=smaug
See bug 1422633, there are assertions missing, and servo doesn't assert at all
anymore.

I don't think it's worth optimizing / lazily resolving it, each time the
document state changes.

We usually just restyle the world anyway (which requires recomputing it), and
the changes that it's optimizing (nsWindow::SetActive() and XUL root element
localedir attribute changes) aren't common enough to warrant the complexity I'd
say.

This doesn't handle invalidating the cache in the case the root element goes
away, I haven't bothered because it was already broken, and GetRootElement() is
already gone in RemoveSubtreeFromDocument.

MozReview-Commit-ID: 9RuQhmmy7Kr
2017-12-14 16:07:36 +01:00
Emilio Cobos Álvarez 1367a2f87f Bug 1423832: Make sure to handle gracefully rule notifications when the styleset has been detached already. r=heycam
MozReview-Commit-ID: xA8dYJX2P6

--HG--
extra : rebase_source : 18b4c491785367c9bd04604fcaf2d22f5fea1762
2017-12-07 18:53:13 +01:00
Emilio Cobos Álvarez b8ef336994 Bug 1422634: Avoid sheet notifications to dereference a null restyle manager. r=heycam
MozReview-Commit-ID: 2BLUCEqnRDG

--HG--
extra : rebase_source : 00c701e6842d984f1508be93f77c1f8aebd96090
2017-12-04 11:22:33 +01:00
Emilio Cobos Álvarez 5604b99826 Bug 1420762: Make StyleSheets notify directly to their StyleSets. r=heycam
This also makes the rule map not process all the stylesheets for the document,
which would be a mess with shadow DOM.

Far from the final, ideal state, but hey, progress.

MozReview-Commit-ID: 7TrifME9VZ
2017-12-01 08:46:39 +01:00
Jeremy Chen 1e25caab99 Bug 1418433 - increment RestyleGeneration for undisplayed elements when invalidating servo stylist. r=heycam
In the current implementation, we call SetStylistStyleSheetsDirty() every time
a style sheet is changed. However, the dirty bit setting may or may not always
update the style data. For example, the style data for undisplayed elements are
deliberately not updated in Stylo. However, the getComputedStyle API is supposed
to provide a way to get the up-to-date computed style data, even for undisplayed
elements.

In this patch, we increment RestyleGeneration for undisplayed elements when we
call SetStylistStyleSheetsDirty(). This could flush the cached data that
getComputedStyle API holds, and ensures the getComputedStyle API computes a new
one.

MozReview-Commit-ID: JDDhACOG3z4

--HG--
extra : rebase_source : 39f56227201d435ad416fe21f4b0e0cad7d2d16c
2017-11-26 15:24:12 +00:00
Jeremy Chen 6096d1b540 Bug 1418433 - move the implementation of SetStylistStyleSheetsDirty to .cpp file. r=heycam
This is a pre-patch for the real fix of Bug 1418433.

In the real fix, we'll add a IncrementUndisplayedRestyleGeneration() call into
SetStylistStyleSheetsDirty(). However, the IncrementUndisplayedRestyleGeneration()
call needs get through some deep structures in nsPresContext, RestyleManager,...
etc., and doing so means we need to move bunches of related include files, forward
declarations, from .cpp file to .h file, which doesn't make sense.

Instead, we move the implementation parts of SetStylistStyleSheetsDirty() to .cpp
file (since it is now a bit more complicated than it was), so we can use the existing
include files in the .cpp file to add IncrementUndisplayedRestyleGeneration() call
(this is in a following patch).

MozReview-Commit-ID: 3Vp9qyCf8NA

--HG--
extra : rebase_source : 16386256e16a2ca98bf988d66d861cbea58490a3
2017-11-29 10:56:15 +00:00
Emilio Cobos Álvarez 429de3c639 Bug 1420713: Ensure ReparseStyleSheet refreshes the stylist even when there's no document. r=heycam
MozReview-Commit-ID: 1acIXdXOgO
2017-11-27 11:35:15 +01:00
Emilio Cobos Álvarez 72a1d3ff81 Bug 1419554: Teach the restyle root code about elements outside of the flattened tree. r=heycam
The textarea is inserted under a Shadow host, with no matching insertion point,
so its flattened tree parent node is null.

We're treating this case in the restyle root code as "the parent is the
document", but that's very wrong.

MozReview-Commit-ID: JlzUMRIYaYZ

--HG--
extra : rebase_source : feeaf7a7333097aa87b35358172472790f6c74a7
2017-11-22 14:15:34 +01:00
Hiroyuki Ikezoe 33e7b8838f Bug 1418867 - Pass element or pseudo element to Servo_StyleSet_GetBaseComputedValuesForElement(). r=emilio
MozReview-Commit-ID: Ae3iZ6g3x3c

--HG--
extra : rebase_source : 8d07ac08d63cfdb96cb07a73ed86b268d6b5026e
2017-11-22 11:03:40 +09:00
Emilio Cobos Álvarez ebfcd1dbd3 Bug 1414999: Synchronously clean style data from the DOM tree when the shell goes away. r=bz
There's nothing preventing the flat tree from changing while the document
doesn't have a shell. In that case, we really really don't want to lose track
of elements with stale style data, since then we'll mess up.

It's ok to _not_ clear the style data when the document goes into the BFCache
though, because the document is thrown away if other document runs script and
touches the cached DOM.

MozReview-Commit-ID: 4W3xDAnnLPL
2017-11-20 22:11:23 +01:00
Emilio Cobos Álvarez 6de5cb4bf8 Bug 1418456: Get rid of unstyled children only traversals. r=heycam
They're useless now, provided we remove the hack to not traverse XBL-bound
elements on initial styling.

This also allows us to get rid of the fallback case.

MozReview-Commit-ID: AvBVdyF1wb6
2017-11-20 13:05:35 +01:00
Emilio Cobos Álvarez 3d003a48ea Bug 1418456: Clear subtree element data when applying an XBL binding. r=heycam
We not only need to care about children getting inserted in the flat tree, but
also about children moving _out_ of the flat tree.

In particular, as of right now we may leave stale data on elements when they
disappear from the flattened tree.

We're lucky enough that in 99% of the situations we enter in[1] and that clears
all the stuff, including servo data. But my assertions for bug 1414999 caught
the template / observes case.

Thus, just clear the whole bound element subtree data, and restyle it in the
end, no need for StyleNewChildren. This matches what we do for shadow DOM
(though in the shadow DOM case we do it async in DestroyFramesForAndRestyle).

[1]: https://searchfox.org/mozilla-central/rev/9bab9dc5a9472e3c163ab279847d2249322c206e/dom/xbl/nsXBLBinding.cpp#368

MozReview-Commit-ID: 69A0aR0AFfU
2017-11-20 13:02:24 +01:00
Cameron McCormack 0c8270fed4 Bug 1418222 - Move system metrics handling to nsMediaFeatures. r=TYLin
MozReview-Commit-ID: 25yWc29Wt4R

--HG--
extra : rebase_source : 2f17bd7444de71c6e4d4cb2429ba85180425fc52
2017-11-17 15:35:26 +08:00
Cameron McCormack 12c5248d34 Bug 1418216 - Move IsCSSSheetType out of nsStyleSet. r=TYLin
MozReview-Commit-ID: 6OV5WHX4INb

--HG--
extra : rebase_source : 35bc872210252aeed011734aaa54b9e25da92c6f
2017-11-16 09:37:17 +08:00
Xidorn Quan ffd1cf2956 Bug 1417220 - Force re-resolve style for doc element when binding requires so. r=emilio
MozReview-Commit-ID: DdbpZnk7tCZ

--HG--
extra : rebase_source : 4672e37ea037d07651cd5cf5a136b9a38fedb3f2
2017-11-15 15:39:29 -08:00
Emilio Cobos Álvarez 0426e8e468 No bug - Remove unused variable. r=me
MozReview-Commit-ID: EuOqz9FLJyy
2017-11-02 06:36:45 +01:00
Cameron McCormack 1e2c9293c6 Bug 1390694 - Part 1: Add ServoStyleSet function for checking document state dependencies. r=emilio
MozReview-Commit-ID: G8Ju8yHtYx6

--HG--
extra : rebase_source : 11f25c9b9b9a45144170ff9e563e52577ca8cea2
extra : source : 38302acda5cdb8a808ee80430488d83527a415ff
2017-11-01 21:20:39 +11:00
Attila Craciun 03687d95f5 Backed out 4 changesets (bug 1390694) for failing crash test and in reftest/tests/layout/reftests/xul/mac-tab-toolbar.xul r=backout on a CLOSED TREE.
Backed out changeset b9cff3469bfd (bug 1390694)
Backed out changeset e13dd2a3651f (bug 1390694)
Backed out changeset 83ff9e245757 (bug 1390694)
Backed out changeset 484a2644318f (bug 1390694)
2017-10-20 14:49:52 +03:00
Xidorn Quan e175680895 Bug 1397644 part 1 - Implement XUL tree pseudo style resolution for stylo. r=emilio
MozReview-Commit-ID: 5JqvLv3tt5m

--HG--
extra : source : 23a7db4b7938b095947abeb41edb0cb6375f95da
2017-10-20 21:31:13 +11:00
Cameron McCormack 2559396ff5 Bug 1390694 - Part 1: Add ServoStyleSet function for checking document state dependencies. r=emilio
MozReview-Commit-ID: G8Ju8yHtYx6

--HG--
extra : rebase_source : fc55dfaa52acf490b65650a7101188115a6e4f18
2017-10-18 17:26:08 +08:00