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

342 Коммитов

Автор SHA1 Сообщение Дата
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
Boris Chiou a43997fa7b Bug 1303235 - Part 1: Add ResolveServoStyleByAddingAnimation. r=hiro
We need to create a temporary ServoStyleContext with the animation value for
calculating the Cumulative change hints.

MozReview-Commit-ID: JzArnaGqVeV

--HG--
extra : rebase_source : 2947910e07f0aab6b385ca60cef927966d15bcf6
2017-10-19 10:51:55 +08:00
Hiroyuki Ikezoe 2b54925c5c Bug 1407463 - Drop unused pseudo atom argument from GetBaseContextForElement. r=heycam
MozReview-Commit-ID: JJ2Jh1I6y4h

--HG--
extra : rebase_source : 99c458dfffee88103e5f2b01f9ff9ae0256b8c62
2017-10-11 10:00:37 +09:00
Hiroyuki Ikezoe a5c66d4d97 Bug 1407463 - Drop unused pseudo atom argument from ResolveStyleLazily and ResolveStyleLazilyInternal. r=heycam
MozReview-Commit-ID: Lmjqbr7QsTU

--HG--
extra : rebase_source : dc1587cd9058bf279f21116a843928289b2602f2
2017-10-11 10:00:28 +09:00
Hiroyuki Ikezoe 4b0a430d0d Bug 1405544 - Propagate existing bits to the parent element as well when switch the restyle root for invalidation siblings in post-traversal. r=emilio
MozReview-Commit-ID: 8Rmg2FSytlp

--HG--
extra : rebase_source : 9c61187b6d9879383c531e630490c92fb5ec8745
2017-10-10 10:05:54 +09:00
Hiroyuki Ikezoe 5e34bc1f57 Bug 1329169 - Use atom for animation-name property. r=xidorn
MozReview-Commit-ID: 9yVWXVi1oXf

--HG--
extra : rebase_source : f0d8a731c3e6caaf248a0b0e25ef96370af3ecd8
2017-10-10 17:00:28 +09:00
Nicholas Nethercote d225f7151b Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Hiroyuki Ikezoe 9d610320fe Bug 1406284 - Remove unused parent context argument. r=heycam
MozReview-Commit-ID: A1yIOZ1bWjY

--HG--
extra : rebase_source : a4daa3466382b64f50256d1c081f886b98f4f80d
2017-10-06 13:51:02 +09:00
Brad Werth 4560a2c23f Bug 1374181 Part 1: Don't attempt EnsureUniqueInner on incomplete sheets in a StyleSet. r=xidorn
One remaining issue is that requesters of CSSRules might also want to know if those rules are complete, and to listen for completion if the rules are incomplete. Bug 1404538 will fix this up at least for devtools.

MozReview-Commit-ID: COnkS40Ooe2

--HG--
extra : rebase_source : 453bed12805fec668e90d5194fcd3df2d48af56e
2017-10-03 11:15:26 -07:00
Bobby Holley ef26283b2d Bug 1403397 - Revert: Add a testing API. r=bholley
This reverts commit 4194b7dd8ec748c044a9b8b0967fd9d652ea342c.
2017-10-03 14:05:56 -07:00
Bobby Holley bd4be52f46 Bug 1403397 - Add a testing API. r=bz,r=Manishearth
This will allow us to verify the entire detection pipeline in real nightly
builds, which will give us confidence that real heap corruption will be
detected and reported properly.

MozReview-Commit-ID: 43Fp2HT8RYy
2017-09-28 18:23:15 -07:00
Emilio Cobos Álvarez 1ae8fc2d3a Bug 1403078: Lazily tweak the traversal root to account for sibling invalidations. r=heycam
MozReview-Commit-ID: Ij3nMOKu5FO
2017-09-26 14:20:11 +02:00
Bobby Holley cb69588ef2 Bug 1402285 - Don't try to cache pseudo styles with an unstyled originating element. r=emilio
MozReview-Commit-ID: C4JNZFtYHBH
2017-09-22 18:02:24 -07:00
Bobby Holley 51ff1b0b2b Bug 1401317 - Disable lazy pseudo caching when the originating element's primary style was reused via the rule node. r=emilio
MozReview-Commit-ID: IkBa39E1bR1
2017-09-20 10:09:59 -07:00
Bobby Holley 8d10314a67 Bug 1400435 - Use a more precise check in the nsCSSValue destructor. r=xidorn
MozReview-Commit-ID: KFdgtxyOZ01
2017-09-19 22:53:23 -07:00
Nicholas Nethercote 5036b9133e Bug 1400078 - Measure the UA cache. r=njn.
ServoStyleSetSizes now has two uses, one for the Stylist, and one for the UA
cache, and so the patch removes 'Stylist' from the field names.

Example output from about:memory:

> +----1,359,608 B (00.55%) -- layout
> |    +----756,488 B (00.31%) -- style-sheet-cache [2]
> |    +----393,968 B (00.16%) -- servo-ua-cache
> |    |    +--234,496 B (00.10%) -- element-and-pseudos-maps
> |    |    +---59,648 B (00.02%) -- revalidation-selectors
> |    |    +---58,320 B (00.02%) -- invalidation-map
> |    |    +---30,752 B (00.01%) -- other
> |    |    +---10,752 B (00.00%) -- precomputed-pseudos

MozReview-Commit-ID: 8oxuJO0ojp

--HG--
extra : rebase_source : 7d86216967259b71df7280261d025cc65bf00ba4
2017-09-19 09:25:00 +10:00
Emilio Cobos Álvarez 1ce36be939 Bug 1399546: Remove broken code for handling the body text color. r=bholley,Manishearth
MozReview-Commit-ID: AfAT9DgzvI7
2017-09-16 02:38:58 +02:00
Neerja Pancholi 519d87d216 Bug 1389029 - Undo code changes in Bug 1388234 which is unnecessary now that we post restyle events for rowspan/colspan changes. r=emilio
MozReview-Commit-ID: 5eTW5dCcxzP

This patch reverts the code changes, but not the test changes from changeset bf9cf6f393eb. There is a crashtest here which is valuable to keep.

--HG--
extra : rebase_source : e6f5d7234eca396a0302c1d562fc54663b274c6c
2017-09-06 12:56:53 -07:00
Bobby Holley 977fd4a02a Bug 1397500 - Disable the ActiveElementUsesStyle optimization for stylo. r=emilio
MozReview-Commit-ID: 20aqaFv9fxE
2017-09-06 15:30:53 -07:00
Nazım Can Altınova 39c02b31f3 Bug 1394551 - stylo: Dont unnecessarily construct gfxFontFeatureValueSet r=xidorn
If there is no font feature values inside document we should avoid creating
unnecessary objects.

MozReview-Commit-ID: HJKMzQvQAPR

--HG--
extra : rebase_source : 06dc792d2c4848c4c8ca49b9eb98630d5d475006
2017-08-30 17:08:50 -07:00
Nicholas Nethercote fb0b046a21 Bug 1387958 - Measure the stylist during memory reporting. r=heycam.
Example output from the Obama Wikipedia page:

> ├──2,315,600 B (01.16%) -- stylist
> │  ├──1,916,928 B (00.96%) ── invalidation-map
> │  ├────228,800 B (00.11%) ── rule-tree
> │  ├────142,336 B (00.07%) ── element-and-pseudos-maps
> │  ├─────14,336 B (00.01%) ── revalidation-selectors
> │  ├──────9,648 B (00.00%) ── other
> │  └──────3,552 B (00.00%) ── precomputed-pseudos

This change requires new code to measure HashMaps, which uses the new
'malloc_enclosing_size_of' functions that can measure a heap block from an
interior pointer.

The patch changes MallocSizeOfFn to a newtype, and introduces
MallocEnclosingSizeOfFn alongside.

It also adds new traits: MallocSizeOfBox, MallocSizeOfVec, MallocSizeOfHash.
These each contain a single method that does shallow measurement of the
relevant type, which is often useful. (This is a different style to the
existing MallocSizeOf trait, which does deep measurement, but I'm moving away
from the always-deep-measurement style because it's less flexible.)

MozReview-Commit-ID: FgJCCmdw0ZF

--HG--
extra : rebase_source : c692c2073aa66020224489b97247c49de95a99a4
2017-09-05 11:38:45 +10:00
Ting-Yu Lin 748cb71860 Bug 1396700 - Add a method to ServoStyleSet for creating XBL style set. r=xidorn
The motivation of this patch is that clearing mPresContext should be an
implementation detail of XBL style set, so I create a method for that, and
remove ClearPresContext().

MozReview-Commit-ID: Ftta0rcAqu6

--HG--
extra : rebase_source : 0bdb1ac3e2c988e5a0220172f19ab4b006e883d7
2017-09-01 16:45:39 +08:00
Ting-Yu Lin 0facc17a51 Bug 1396700 - Remove ServoStyleSet::UpdateStyleSheet(). r=xidorn
This is no longer used.

MozReview-Commit-ID: G7cUcz9CKeQ

--HG--
extra : rebase_source : 3f13913863c8d8c4db14d02763781f3037d64d22
2017-09-01 17:12:58 +08:00
Ting-Yu Lin 3b33ba27fb Bug 1382078 Part 4 - Avoid unneeded restyle when XBL styleset is utilized by different PresContext. r=emilio
This fixed layout/style/test/test_media_queries_dynamic.html after Part 3 is added.

MozReview-Commit-ID: 7ZpSunCnkIc

--HG--
extra : rebase_source : 6acab11ba784b801b90afc0558c32baabcc3f271
2017-09-04 17:57:00 +08:00
Ting-Yu Lin b6d71d0740 Bug 1382078 Part 3 - Support media changes for XBL stylesheets. r=emilio
MozReview-Commit-ID: EJp8EMyanBT

--HG--
extra : rebase_source : 0ea61ea1f649548158fa600e5e11190631ce447f
2017-09-02 15:25:45 +08:00
Sebastian Hengst 3764de542b Backed out changeset b49d8d47c3f1 (bug 1382078) 2017-09-02 20:43:36 +02:00
Ting-Yu Lin d537ea001c Bug 1382078 Part 3 - Support media changes for XBL stylesheets. r=emilio
MozReview-Commit-ID: EJp8EMyanBT

--HG--
extra : rebase_source : 524aaa95070c7708b3c24a0c9ee8a24344be2645
2017-09-02 15:25:45 +08:00
Emilio Cobos Álvarez dcdc508e66 Bug 1395351: Use the parallel traversal flag more often. r=bholley
MozReview-Commit-ID: JF6i0HDniR2

--HG--
extra : rebase_source : e917a604cf01d2fdafee5d52eb9878971e217cfe
2017-09-01 19:28:57 +02:00
Emilio Cobos Álvarez 7a147d3d24 Bug 1395351: Assert the root element is styled in StyleDocument. r=bholley
MozReview-Commit-ID: 6KncJ5IqLbt

--HG--
extra : rebase_source : d9c455e9e567d4647157192cc386403c2b343cba
2017-09-01 19:31:45 +02:00
Emilio Cobos Álvarez 80541449d2 Bug 1374235: style: Remove the for reconstruction traversals. r=bholley
One less hack, a few more to go.

MozReview-Commit-ID: 6katL1EGn2U
2017-09-01 18:46:23 +02:00
Sebastian Hengst df63e116bf Backed out changeset 35afffcb4182 (bug 1374235) for build bustage because it landed before its servo commit. r=backout 2017-09-01 14:07:47 +02:00
Emilio Cobos Álvarez fd2d4e8b6f Bug 1374235: style: Remove the for reconstruction traversals. r=bholley
One less hack, a few more to go.

MozReview-Commit-ID: 6katL1EGn2U
2017-09-01 13:16:09 +02:00
Emilio Cobos Álvarez 175b1c068d Bug 1384232: Don't post restyles when loading XBL stylesheets. r=TYLin
MozReview-Commit-ID: 3MCz4vuJb9q

--HG--
extra : rebase_source : 7b15ea991bf3f75c4c33d48080e3f936cf7b4a1b
2017-08-31 22:59:11 +02:00
Emilio Cobos Álvarez afe0dfdd27 Bug 1384232: Let ServoStyleset know what its purpose is. r=TYLin
MozReview-Commit-ID: IwC6FcxhYMT

--HG--
extra : rebase_source : 6d15a71b5bd3bbcce4c255b6993ac000daabe09e
2017-08-31 22:50:24 +02:00
Brian Birtles 670dfc03bf Bug 1395452 - Call HasAnimationController() before GetAnimationController(); r=hiro
nsDocument::GetAnimationController() will lazily create an animation controller
which, in some call sites, is unnecessary.

This patch first calls HasAnimationController() and only calls
GetAnimationController() if it returns true. This avoids creating an animation
controller in situations where one is not necessarily required.

MozReview-Commit-ID: 4cdpLRvMVJU

--HG--
extra : rebase_source : 125a59c0b0535d5df9a9964538b3784ddb1212c7
2017-08-31 15:00:39 +09:00