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

393 Коммитов

Автор SHA1 Сообщение Дата
Emilio Cobos Álvarez 5bb3038c05 Bug 1475511: UrlMatchingFunction -> DocumentMatchingFunction. r=xidorn
MozReview-Commit-ID: HLcaVmehFW7
2018-07-21 23:02:12 +02:00
Xidorn Quan 2c5c2a4e44 Bug 1475229 - Remove unused parent parameter in ComputedValues::new. r=emilio
MozReview-Commit-ID: EBG0TS7tI4P

--HG--
extra : source : 9e548c6bf4a2c9f7795b30ac84e2251b86fb637f
2018-07-13 22:06:05 +10:00
Emilio Cobos Álvarez fac54cd7df Bug 1472443: Make StyleContentType an enum class. r=xidorn
Most of it is automated by:

  %s/eStyleContentType_/StyleContentType::/g
  %s/nsStyleContentType/StyleContentType/g

But I removed some parentheses by hand.

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

MozReview-Commit-ID: 3IcirjIYX5p
2018-06-30 17:13:07 +02:00
Hiroyuki Ikezoe 0b9b61abdd Bug 1418806 - Try to allocate possible size for AnimationValueMap before composing. r=birtles
The EffectSet count does not exactly represent the count what we really need
for AnimationValueMap, but in most cases it matches.  For example;

1) The element has two different keyframes animations

 @keyframes anim1 {
   to { opacity: 0; }
 }
 @keyframes anim2 {
   to { transform: rotate(360deg); }
 }

 In this case the number matches.

2) The element has two animations but both keyframes have the same CSS property

 @keyframes anim1 {
   to { opacity: 0; }
 }
 @keyframes anim2 {
   to { opacity: 0.1; }
 }

 In this case the number doesn't match, moreover it results more memory than we
 ever needed, but this case is presumably less common.

3) The element has an animation having keyframes for two different CSS
   properties.

 @keyframes anim {
   from { opacity: 0; transform: rotate(360deg); }
 }

 In this kind of cases, the number doesn't match.  But even so, this patch
 reduces the opportunities that the AnimationValueMap tries to allocate a new
 memory (i.e. less opportunities on expanding the map).

Note that when the hash map is expanded, we do allocate a new RawTable with the
new size then replace the old one with the new one [1], so I believe this
change will reduce the crash rate to some extent.

[1] https://hg.mozilla.org/mozilla-central/file/15c95df467be/servo/components/hashglobe/src/hash_map.rs#l734

MozReview-Commit-ID: 6tcF9aqXh7a

--HG--
extra : rebase_source : 366989d3a2756f5a5711503a57f42f3b746d93a5
2018-06-26 11:08:24 +09:00
Emilio Cobos Álvarez cc409b08eb Bug 1470145: Better debugging for stylesheets and URLs. r=xidorn
MozReview-Commit-ID: FIcz2K1ZYX0
2018-06-22 02:33:07 +02:00
Emilio Cobos Álvarez f46383f8bd Bug 1466656: Make ErrorReporter a smaller Rust type. r=heycam
And use the C++ ErrorReporter only to actually output errors.

ErrorReporter was so complicated because well, it was always enabled and had to
do a bunch of caching to not be (more) slow.

But since bug 1452143 it's disabled by default, so we can simplify this setup a
lot.

Also while at it make the error reporting pref a static pref so that we don't
mutate globals from CSS parsing unless we're actually reporting errors.

MozReview-Commit-ID: AuIyvJwt7AU
2018-06-05 11:09:39 +02:00
Emilio Cobos Álvarez bb628e2970 Bug 1466406: Work around a bindgen bug on Android. r=xidorn
MozReview-Commit-ID: 2lltjH7IoZu
2018-06-05 01:57:31 +02:00
Jonathan Kew d4b7d95206 Bug 1464400 - Keep track of CSS generics when resolving to actual font families and faces, and expose as a new CSSGeneric attribute on InspectorFontFace. r=jwatt 2018-05-25 14:07:57 +01:00
Brindusan Cristian 2c5b7db570 Backed out changeset f8dbb1d2d07c (bug 1464400) for mochitest failures on test_font_whitelist.html. CLOSED TREE 2018-06-01 19:07:24 +03:00
Jonathan Kew 0cc7412d4f Bug 1464400 - Keep track of CSS generics when resolving to actual font families and faces, and expose as a new CSSGeneric attribute on InspectorFontFace. r=jwatt 2018-05-25 14:07:57 +01:00
Emilio Cobos Álvarez 54c29475e9 Bug 1464428: Optimize QuerySelector in shadow trees. r=xidorn
Pretty much the same setup we have for document.

We have the awkwardness of having to check containing shadow manually for
ShadowRoot because it's not available in TNode (and making it available added a
bit more complexity that wasn't worth it IMO).

MozReview-Commit-ID: CqOh0sLHf6o
2018-05-28 14:30:34 +02:00
arthur.iakab 436cd55b31 Backed out changeset 8fb0fa2dca36 (bug 1464428) for Reftest crashes on a CLOSED TREE
--HG--
extra : amend_source : 023931e140119e040f5ca1c5b24bc4def5b0c215
2018-05-28 13:17:34 +03:00
Emilio Cobos Álvarez 2fe6f39529 Bug 1464428: Optimize QuerySelector in shadow trees. r=xidorn
Pretty much the same setup we have for document.

We have the awkwardness of having to check containing shadow manually for
ShadowRoot because it's not available in TNode (and making it available added a
bit more complexity that wasn't worth it IMO).

MozReview-Commit-ID: CqOh0sLHf6o
2018-05-28 10:08:35 +02:00
Xidorn Quan 5896b33074 Bug 1461933 - Remove ServoBindings.h from ComputedStyleInline.h. r=emilio
For doing this, ServoComputedData is split into separate files, so that
files don't need to include ServoBindings.h just for accessing style
structs from ComputedStyles.

MozReview-Commit-ID: DPAd7PUUCl9

--HG--
extra : rebase_source : 7d6f739b7fb58a46e1624ba62e717412057ea9c1
2018-05-16 15:35:59 +10:00
Xidorn Quan 07df897bae Bug 1461858 part 3 - Have from_image_request reuse ImageValue from image request directly. r=emilio
And also remove ComputedImageUrl::from_url_value_data.

MozReview-Commit-ID: 5zifQlU7tOz

--HG--
extra : rebase_source : 23631ad2e9144cf30951a3d07421a8e5ae0ba8ec
2018-05-16 14:01:25 +10:00
Emilio Cobos Álvarez a6a7ba02de Bug 1461288: Distinguish between specified and computed URLs. r=xidorn
This is needed to serialize computed URLs correctly from getComputedStyle.

MozReview-Commit-ID: 9wakhqNrszb

--HG--
extra : rebase_source : 7d120ac0917a5e13de4e52b7dfa0d784495fd8f7
2018-05-14 12:29:40 +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
Jonathan Watt 156c4af1ec Bug 1436048: Use user defined types for font-stretch / font-style. r=jfkthame,jwatt
Co-authored-by: Emilio Cobos Álvarez <emilio@crisal.io>

MozReview-Commit-ID: 7ONYtICeAqb
2018-04-23 18:22:05 +02:00
Bobby Holley 38a23e8931 Bug 1346988 - Parse sheets on the thread pool. r=bz,r=emilio
Note that we also drop the dead optional aReusableSheets argument from
the async parsing path, since it was always null.

MozReview-Commit-ID: KddpGFdaqEe
2018-04-18 13:52:57 -07:00
Jonathan Watt 1e7f76576a Bug 1436048 part 1 - Use a user defined type for font weight everywhere. r=jfkthame,emilio
--HG--
extra : rebase_source : 2e267ff99de6f52484e34ac15c39e5ca8b473394
2018-04-13 20:34:37 +01:00
Cameron McCormack 9e26b4d88e Bug 1375536 - Remove nsStyleVariables. r=emilio,xidorn
MozReview-Commit-ID: BqyhXc4W4Aq

--HG--
extra : rebase_source : f2e00ba1e52437a9e7041aa35e2095038812fc4d
2018-04-10 15:11:12 +10:00
Bobby Holley 5c354190dc Bug 1451421 - Stop using Gecko namespace ids in servo. r=xidorn
MozReview-Commit-ID: 2532dHCGPXW
2018-04-06 15:30:58 -07: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
Xidorn Quan 67fd806b66 Bug 1449087 part 2 - Use Servo data to back @font-face rule. r=emilio
This patch does the following things:
* Create a new class ServoFontFaceRule for CSSOM of @font-face rule
  which mostly follows how nsCSSFontFaceRule was implemented.
* Remove the old nsCSSFontFaceRule and binding code to create it.
* Have FontFace backed by Servo data via making mRule and mDescriptors
  of the class hold RawServoFontFaceRule like ServoFontFaceRule.

To keep this patch small, it effectively just delays the conversion
from Servo data to nsCSSValue from parsing to using. This may cause
worse performance if the font set is flushed repeatedly. Supposing we
don't flush font set very frequently, it may not be a big deal.

We may still want to remove the intermediate nsCSSValue conversion at
some point, and have everything converted to their final form directly
when used, but that can happen in followups.

There are some unfortunate bits from this change:
* We lose style sheet for logging in FontFaceSet. This is probably not
  all that worse, because we wouldn't have that before either if the
  page doesn't use CSSOM to visit it. But we should figure out some
  approach to fix it anyway.
* InspectorFontFace no longer shares the same rule object as CSSOM.
  This isn't really a problem if the @font-face rule isn't very mutable.
  Unless we want to make the rule returned from InspectorFontFace to be
  mutable (i.e. via inspector), not using the same object probably isn't
  too bad.

This patch switches the code we use to serialize stuff in FontFace and
CSSFontFaceRule, which leads to some failures in tests. Specifically,
the expected changes including:
* Value of font-family now can be serialized to identifier sequence like
  font-family property. The old code always serializes it to string,
  but it doesn't seem to have different requirement than the property.
  Blink can serialize to identifier as well.
* Family name inside local() is also changed to use the same way as
  family names elsewhere (i.e. can be identifier sequence). Blink has
  the same behavior as the old code, but I don't think it's a big deal.
* The order of descriptors serialized gets changed. I don't think it
  matters at all.
* Empty string as font-family via using string syntax is no longer
  considered invalid for FontFace. I don't find it is mentioned anywhere
  that it should be specifically treated invalid.


MozReview-Commit-ID: 32Fk3Fi9uTs

--HG--
extra : rebase_source : 6221ec8fc56de357b06dd27e770fb175348a2f77
2018-04-04 08:42:10 +10:00
Xidorn Quan 0cd2404617 Bug 1449089 part 5 - Remove nsCSSPseudoClasses.{h,cpp} and nsCSSPseudoClassList.h. r=emilio
MozReview-Commit-ID: 7KYFiQ5vUxg

--HG--
extra : rebase_source : 9f3a61b3cb240d2fdf23ccc056762c169eaf42e2
2018-03-28 09:41:04 +11:00
Xidorn Quan 395e66570e Bug 1449089 part 2 - Move matching logic of :-moz-table-border-nonzero and :-moz-browser-frame into individual binding functions. r=emilio
MozReview-Commit-ID: Ic3EjtwSve0

--HG--
extra : rebase_source : 6365e8a9f727842b7c4cc3547a102d6300600e38
2018-03-28 09:41:04 +11:00
Xidorn Quan 051a0fc278 Bug 1448526 part 2 - Make nsStyleStructList.h not generated. r=emilio
nsStyleStructList.h was initially made generated in bug 873368 to avoid
manually maintaining boilerplate for if-dispatch, while the if-dispatch
was replaced by jump table in bug 1171842, so the boilerplate went away.

However, in bug 1122781 (before bug 1171842), boilerplate for dependency
check, so it still needs to be generated.

The dependency table is removed in the previous patch, so we no longer
have any boilerplate in the style struct list, and thus it doesn't need
to be generated anymore.

MozReview-Commit-ID: GkbJZ98ojbE

--HG--
extra : rebase_source : a148b97c051bb6c88846cf6ba617c4edef70ca24
extra : source : f1c7d19cde195fb90ac2627d16ed69d020de01b9
2018-03-26 20:09:17 +11: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 ba8a820351 Bug 1444507: Remove unused binding functions. r=bholley
MozReview-Commit-ID: EGceLrhKVIm

--HG--
extra : rebase_source : ce46652a15b9e7700cd2f1c5235f77439ffeb246
2018-03-09 20:10:22 +01:00
Xidorn Quan ae0176dff3 Bug 1443046 - Construct URLValue eagerly and share it between specified value and style structs. r=emilio
MozReview-Commit-ID: CxbAsRzTNYm

--HG--
extra : rebase_source : 51136b3b596fa03b0814a82485399a7dad41c458
2018-03-08 15:08:13 +11:00
Xidorn Quan f276e38c01 Bug 1375913 - Do not disable thread pool in the parent process. r=bholley
MozReview-Commit-ID: 2EMq1IdlEof

--HG--
extra : source : cca6b27458bc7ffaaf59765907bd9ef8f62ee87d
extra : intermediate-source : 22231bda44877a5a5c17b65e1c9b750118eabe5d
2018-03-07 14:30:11 +11:00
Emilio Cobos Álvarez 844c66e0c8 Bug 1442246: Copy less URLs on stylo. r=jdm
MozReview-Commit-ID: NmHue1mGDq
2018-03-03 20:37:52 +01:00
Xidorn Quan 5b522decf1 Bug 1441729 - Remove aTextIsSignificant param from nsStyleUtil::IsSignificantChild and its friends. r=emilio
MozReview-Commit-ID: CEZmAwcnglg

--HG--
extra : rebase_source : 4b5526baaf6a5fdee658ae5bdecb46e719bb2d38
2018-02-28 12:54:01 +11:00
Bobby Holley 2ba333893c Bug 1441896 - Pass an explicit parent SheetLoadData for child stylesheet loads. r=bz CLOSED TREE
MozReview-Commit-ID: 7XNu42NtITm
2018-02-28 10:09:00 +02:00
Emilio Cobos Álvarez ba08cbdbdd Bug 1438811: Remove the remaining bits of the traversal telemetry stuff. r=manishearth
MozReview-Commit-ID: 2dA5usbGQRt

--HG--
extra : rebase_source : 47cc26f581e6b774de3ac27ef47d749ad1944dfe
2018-02-16 13:14:13 +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 a1e51ad3ec Bug 1435984 - patch 0 - Add binding function for setting float value to nsCSSValue. r=emilio
--HG--
extra : source : fbdfaaa58005e1dbd45d34de5a6429a7557a20f2
2018-02-14 22:02:05 +11: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 beaed0f565 Bug 1435214: Optimize @keyframes rule insertions. r=xidorn,hiro
Also add some missing test for the tag name invalidations (bug 1407522) and an
empty stylesheet just for sanity.

MozReview-Commit-ID: AHwhZynLBv
2018-02-05 20:01:32 +01:00
Jonathan Kew 0d85e1fefe Bug 1435285 - Remove invalid fwd-declaration of enum without explicit base type; while we're here, also remove an obsolete comment. r=emilio 2018-02-02 15:49:10 +00: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
Emilio Cobos Álvarez 437775c0ed Bug 1431421: Make GeckoElement::has_class more specialized. r=xidorn
MozReview-Commit-ID: 7LiSEamTCkX
2018-01-31 12:40:06 +01:00
Emilio Cobos Álvarez a2c0cd700d Bug 1429723: Remove -moz-border-*-colors. r=xidorn
MozReview-Commit-ID: 3P6f7rFcDa6
2018-01-22 18:14:07 +01:00
Bobby Holley 1ce8eb2531 Bug 1398119 - Add machinery to assert single-threadedness from geckolib. r=emilio
MozReview-Commit-ID: 9LBNm2h5Ct3
2018-01-12 12:05:01 -08:00
Emilio Cobos Álvarez 526d5c1370 No bug: Remove some unused functions. r=me
MozReview-Commit-ID: 3sUI1K0dIeA
2018-01-12 13:08:44 +01:00
Emilio Cobos Álvarez 1cda1ad876 Bug 1427511: Make GetFlattenedTreeParent more straight-forward. r=smaug
Now that accessing nsIContent slots is not a blob of virtual function calls, we
should be able to unify logic here, and speed up the not-so-rare case for
chrome, while keeping the usual case fast.

MozReview-Commit-ID: 87iY5Cbhx4T
2018-01-02 18:00:25 +01:00
Manish Goregaokar f87b01d03b Bug 1421195 - Add weighted telemetry probes for parallel restyles ; r=emilio
MozReview-Commit-ID: sVN7CWjgni
2017-12-12 11:30:34 -06:00
Manish Goregaokar b92ab8df04 Bug 1421195 - Add telemetry probe for fraction of restyles that are parallel ; r=emilio
MozReview-Commit-ID: sVN7CWjgni
2017-12-12 11:30:24 -06:00