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

251 Коммитов

Автор SHA1 Сообщение Дата
Emilio Cobos Álvarez d8e2990d8a Bug 1535788 - Make the Document own the StyleSet. r=heycam
This is the last step to be able to call matchMedia on display: none iframes.

This is green, except for some startup preference query tests that I'm going to
address in a blocking bug (making LangGroupFontPrefs global, basically).

The setup is similar to the ShadowRoot one, except we don't eagerly keep the
StyleSet around up-to-date, we only fill it if it ever had a pres context.

Differential Revision: https://phabricator.services.mozilla.com/D23903

--HG--
extra : moz-landing-system : lando
2019-04-03 07:02:00 +00:00
Emilio Cobos Álvarez ad066f1df7 Bug 1536586 - Simplify a bit our generated bindings by getting rid of FooBorrowed and FooBorrowedMut. r=heycam
This reduces a lot the boilerplate that's needed in order to add simple binding
functions.

This starts using &Foo and Option<&Foo> instead, and as a result we need to
remove the servo_function_signatures test, which is a bit unfortunate.

I think it's worth though, this causes problems on some platforms (see bug
1534844), and messing up the functions signature is not something that I've ever
seen (other than bug 1308234, which already had all the FooBorrowed mess which
I'm removing).

Also, cbindgen understands references and Option<&Foo>, so it will be the way to
go in the future.

After this patch we can also remove HasSimpleFFI, but I've kept it for now since
I still use it in a few places, and this patch is quite big on its own.

Differential Revision: https://phabricator.services.mozilla.com/D24092

--HG--
extra : moz-landing-system : lando
2019-03-21 17:00:27 +00:00
Emilio Cobos Álvarez 5aa8533517 Bug 1533963 - Use a single RestyleHint representation. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D22828

--HG--
extra : moz-landing-system : lando
2019-03-14 11:47:50 +00:00
Emilio Cobos Álvarez dad3a20b22 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

--HG--
extra : moz-landing-system : lando
2019-02-19 13:44:33 +00:00
Cameron McCormack 7fc8e05804 Bug 1519296 - Part 4: Remove ServoStyleSet::PrependStyleSheet r=emilio
Depends on D16283

Differential Revision: https://phabricator.services.mozilla.com/D16284

--HG--
extra : moz-landing-system : lando
2019-01-12 06:45:45 +00:00
Emilio Cobos Álvarez d2ed260822 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
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Nicholas Nethercote 67bc77d4cf Bug 1497734 - Rename nsStaticAtom subclasses. r=heycam
Specifically:
- nsICSSAnonBoxPseudo --> nsCSSAnonBoxPseudoStaticAtom
- nsICSSPseudoElement --> nsCSSPseudoElementStaticAtom

The `nsI` prefix isn't necessary because these are no longer XPIDL types, and
the `StaticAtom` suffix makes their meaning clearer.

--HG--
extra : rebase_source : b68dd7c73f5036dcd6be4c3700b757441f59f9f2
2018-10-10 16:49:13 +11:00
Jean-Luc Bonnafoux 85700276c1 Bug 1481098 - Remove Unused aParentContext Parameter in ServoStyleSet::ResolveStyleFor Function r=dbaron
Remove Unused aParentContext Parameter in ServoStyleSet::ResolveStyleFor Function

Differential Revision: https://phabricator.services.mozilla.com/D5979

--HG--
extra : moz-landing-system : lando
2018-09-18 08:01:36 +00:00
Cameron McCormack 99d9013b12 Bug 1482782 - Part 5: Move CSS anonymous box atoms to nsGkAtoms. r=njn,emilio
Summary: Depends On D3283

Reviewers: njn!, emilio!

Tags: #secure-revision

Bug #: 1482782

Differential Revision: https://phabricator.services.mozilla.com/D3284
2018-08-15 15:46:39 +10:00
Narcis Beleuzu d20e8e7674 Backed out 8 changesets (bug 1483121, bug 1482782) for build bustages on nsDirectoryService.cpp. CLOSED TREE
Backed out changeset 0a8334bbcf45 (bug 1483121)
Backed out changeset cb2dcb859071 (bug 1482782)
Backed out changeset c834d4ca2eef (bug 1482782)
Backed out changeset 887de0efbb67 (bug 1482782)
Backed out changeset 018fdb50a6be (bug 1482782)
Backed out changeset 33a8aa8096c9 (bug 1482782)
Backed out changeset e3632354f16e (bug 1482782)
Backed out changeset 46f8319bee82 (bug 1482782)
2018-08-15 09:14:41 +03:00
Cameron McCormack d9edae8bde Bug 1482782 - Part 5: Move CSS anonymous box atoms to nsGkAtoms. r=njn,emilio
Summary: Depends On D3283

Reviewers: njn!, emilio!

Tags: #secure-revision

Bug #: 1482782

Differential Revision: https://phabricator.services.mozilla.com/D3284
2018-08-15 15:46:39 +10:00
Emilio Cobos Álvarez 26b508d03c Bug 1478069: Trivial frame constructor cleanup. r=TYLin
Using references helps to see when stuff can and cannot be null.

I removed useless aTag / aNamespaceId arguments which are useless now that XBL
can't override them (bug 1450617), so FindXULData is the only one that keeps
them alive.

Also, I took the liberty of renaming a few fooComputedStyle variables to just
fooStyle, and clarify naming in some pseudo-element-related functions to say
originating element (the spec term) and avoid confusing it with the generated
_moz_generated_content_before / _moz_generated_content_after element.

Note that this is a partial state, more stuff will come in the future.

Differential Revision: https://phabricator.services.mozilla.com/D2326

MozReview-Commit-ID: 39B30doREUH
2018-07-25 11:31:18 +02:00
Emilio Cobos Álvarez 9b504cb749 Bug 1309752: Animate logical properties. r=birtles
The setup is that AnimationValue only contains physical properties, and
we physicalize when building keyframes and transitions.

MozReview-Commit-ID: 9dI20N0LFrk
2018-07-18 12:10:16 +02:00
Nazım Can Altınova 361380987c Bug 1464496 - Part 1: Merge ServoDeclarationBlock and DeclarationBlock r=emilio
MozReview-Commit-ID: By9fV70Oq0K

--HG--
extra : rebase_source : 837afe9c33b21d7db41ff19d3aaf6cf3e9eedbdf
2018-05-30 18:15:25 +02:00
Emilio Cobos Álvarez cb56e2c9f3 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 00ee40fe4c 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 2a42c4ed18 Bug 1457920: Merge ServoStyleSheet and StyleSheet. r=xidorn
These are the most minimal changes I could make. More cleanups incoming.

MozReview-Commit-ID: AdMOA1acQIH
2018-05-02 04:13:10 +02:00
Emilio Cobos Álvarez adc46229a3 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 ec2824c99f 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
Emilio Cobos Álvarez b508e66696 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 d7f3530f07 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

--HG--
extra : rebase_source : ec44f01c581003ce4b6ef69435a05de7f3da5469
2018-04-05 08:41:28 +10:00
Emilio Cobos Álvarez a4433a4de8 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 d026c664c3 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

--HG--
extra : rebase_source : 20e1ead4438f3e3e457af2a4ae4e614992b5f050
extra : source : 53aae6abf7482d4366b66fc8b14d89bf762c19f3
2018-03-29 22:15:46 +11:00
Xidorn Quan b332985cd4 Bug 1449400 part 3 - Remove ServoStyleSet::RecordStyleSheetChange and its trivial callsites. r=emilio
It is no longer used, and removing this from ServoStyleSet allows us to
remove dependency from ServoStyleSet.h to StyleSheetInlines.h.

MozReview-Commit-ID: HzYNulJF7tf

--HG--
extra : rebase_source : f54811369fd7af27b2ee61d54143726e473c6640
extra : source : f872ca0df2d0a71508eeba67c2b922b87bdcbe01
2018-03-29 22:15:46 +11:00
Xidorn Quan 3181988f2e Bug 1449400 part 2 - Remove some dependencies from ServoStyleSet.h and add some random stuff to fix breakage. r=emilio
Some of the definitions are needed for the headers removal in
following patches.

MozReview-Commit-ID: BCj7U7RgBLj

--HG--
extra : rebase_source : e8e437f76c4db6ec930ea0481b6c1a38129a5477
extra : source : a1c42220e5070fa4beea438859ab0daec3f3fe7b
2018-03-29 22:15:46 +11:00
Emilio Cobos Álvarez 87edb889e1 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 e341b20ec4 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 5dd797f154 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 ca5ac79cca 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 87089c18e5 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 ebdc39ab30 Bug 1447476: Simplify ResolveStyleContext. r=xidorn,bz
We don't need the parent style context, nor the pseudo-element dance or anything
like that. All end up in the same place, Servo_ResolveStyle.

We cannot assert for text style resolution because of non-lazy frame
construction, and we cannot remove non-lazy frame construction because of XBL.

This is effectively the same code, since the old code passed the parent style
around from the frame tree / display contents map, which didn't have a similar
assertion either...  Slow steps.

I'll improve and cleanup LazyFC in bug 1447506.

MozReview-Commit-ID: Ck4RCoFLGOi
2018-03-21 17:22:56 +01: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 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 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
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 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
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 8e7a2e8d51 Bug 1422634: followup: fix typo in the comment. r=comment-only
DONTBUILD

MozReview-Commit-ID: FG6XfLAKGcs
2017-12-04 11:40:46 +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 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