Commit Graph

520 Commits

Author SHA1 Message Date
Jonathan Watt
9243470005 Bug 1436048 part 1 - Use a user defined type for font weight everywhere. r=jfkthame,emilio 2018-04-13 20:34:37 +01:00
Cameron McCormack
2b2a573d3a Bug 1375536 - Remove nsStyleVariables. r=emilio,xidorn
MozReview-Commit-ID: BqyhXc4W4Aq
2018-04-10 15:11:12 +10:00
Emilio Cobos Álvarez
843338b8ac Bug 1452916: Expose the error reporting pref. r=bholley
MozReview-Commit-ID: wkUSJ50Nne
2018-04-10 23:57:39 +02:00
Hiroyuki Ikezoe
596b3319a9 Bug 1412716 - De-templatize functions in nsTransitionManager. r=emilio
MozReview-Commit-ID: 6u1fOrIH8PA
2018-04-10 07:03:00 +09:00
Emilio Cobos Álvarez
3284a9dda8 Bug 1447827: Remove ServoRestyleManager. r=xidorn
MozReview-Commit-ID: CFafQsb4rQn
2018-04-07 15:50:06 +02:00
Bobby Holley
2fd8051265 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
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
Xidorn Quan
431f177e6f 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
2018-04-04 08:42:10 +10:00
Xidorn Quan
d69b8b4b54 Bug 1447828 part 1 - Remove StyleBackendType uses from dom/animation. r=emilio
MozReview-Commit-ID: 3INWUuocNPm
2018-03-29 02:29:42 +11:00
Jonathan Watt
33207c9b80 Bug 1449565 - Remove the aGeckoParentRule parameter from css::Loader's InsertChildSheet and LoadChildSheet. r=emilio 2018-03-23 17:02:35 +00:00
Jonathan Watt
44d37e68d5 Bug 1449321 - Remove the IsServo and IsGecko methods from the style system code. r=emilio 2018-03-23 16:01:34 +00:00
Cosmin Sabou
60829caa7f Merge inbound to mozilla-central. a=merge 2018-03-28 12:49:56 +03:00
Xidorn Quan
f5233979e3 Bug 1449089 part 4 - Move logic of nsCSSPseudoClasses::LangPseudoMatches into Gecko_MatchLang. r=emilio
MozReview-Commit-ID: 6c6TooaU6dQ
2018-03-28 09:41:04 +11:00
Xidorn Quan
f0a2a355af 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
2018-03-28 09:41:04 +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
Xidorn Quan
e74c1e1696 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
2018-03-26 20:09:17 +11:00
Emilio Cobos Álvarez
fb9a0faf99 Bug 1448559: Cleanup CalcStyleDifference. r=xidorn
The aSamePointerStructs argument is unused now.

Also, aIgnoreVariables can be true everywhere now, since variable changes can't
generate change hints, and anonymous boxes and such don't care about whether
they really changed or not.

Only one caller cares about struct equality, and that already compares variables
manually as an optimization on the rust side.

We had this optimization inconsistently in some cases but not others.

MozReview-Commit-ID: F2EISKlxR3K
2018-03-26 09:47:33 +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
Boris Zbarsky
152cd3ba6e Bug 1447098 part 1. Rename FromContent on various DOM classes to FromNode. r=mystor
MozReview-Commit-ID: 202nkbmkwfR
2018-03-21 17:39:04 -04: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
Xidorn Quan
4df293b996 Bug 1444296 part 1 - Have servo report traversal statistics to gecko. r=bholley
MozReview-Commit-ID: 52YO9mzvneR
2018-03-15 11:59:22 +11:00
Emilio Cobos Álvarez
9885f5083f Bug 1444507: Remove unused binding functions. r=bholley
MozReview-Commit-ID: EGceLrhKVIm
2018-03-09 20:10:22 +01:00
Xidorn Quan
f5d226f345 Bug 1443046 - Construct URLValue eagerly and share it between specified value and style structs. r=emilio
MozReview-Commit-ID: CxbAsRzTNYm
2018-03-08 15:08:13 +11:00
Xidorn Quan
db4a1ad717 Bug 1375913 - Do not disable thread pool in the parent process. r=bholley
MozReview-Commit-ID: 2EMq1IdlEof
2018-03-07 14:30:11 +11:00
Chris Peterson
20b28f1d54 Bug 1443402 - Fix some -Wmissing-prototypes warnings in layout. r=dholbert
-Wmissing-prototypes is a new optional warning available in clang ToT. It warns about global functions that have no previous function declaration (e.g. from an #included header file). These functions can probably be made static (allowing the compiler to better optimize them) or they may be unused.

Confusingly, clang's -Wmissing-prototypes is equivalent to gcc's -Wmissing-declarations, not gcc's -Wmissing-prototypes. A function prototype is a function declaration that specifies the function's argument types. C++ requires that all function declarations specify their argument types, but C does not. As such, gcc's -Wmissing-prototypes is a C-only warning about C functions that have no previous function *prototypes* (with argument types), even if a previous function *declaration* (without argument types) was seen.

MozReview-Commit-ID: FGKVLzeQ2oK
2018-02-22 21:03:45 -08:00
Emilio Cobos Álvarez
b7779e5335 Bug 1443101: Assert Gecko_ContentList_AppendAll is main-thread-only. r=xidorn
It's only used for DOM APIs.

MozReview-Commit-ID: EFMLH4yDtBf
2018-03-05 12:01:31 +01:00
Emilio Cobos Álvarez
9bb6583fdb Bug 1442246: Copy less URLs on stylo. r=jdm
MozReview-Commit-ID: NmHue1mGDq
2018-03-03 20:37:52 +01:00
Xidorn Quan
813952c65e Bug 1441729 - Remove aTextIsSignificant param from nsStyleUtil::IsSignificantChild and its friends. r=emilio
MozReview-Commit-ID: CEZmAwcnglg
2018-02-28 12:54:01 +11:00
Bobby Holley
5656494d74 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
Hiroyuki Ikezoe
909df7fa74 Bug 1439428 - Call UpdateCascadeResults() directly instead of RestyleRestyle() at the end of Gecko_UpdateAnimations(). r=birtles
Calling RequestRestyle() for update cascade results is weird since in general
RequestRestyle() is a result of updating cascade results (e.g. when an
!important style is changed).  In the case where we already know that we need
to update cascade results we can do it right after all the other processes that
may need to update cascade results has done so that we don't need to worry about
the cases additional cascade results update happens.

MozReview-Commit-ID: 6lh0NgTPF9j
2018-02-23 09:05:26 +09:00
Hiroyuki Ikezoe
aea21db406 Bug 1439269 - Call RequestRestyle() if the display property is changed from 'none' in the case the element has script animations. r=birtles
MozReview-Commit-ID: 1anUTbvw3k4
2018-02-22 09:10:00 +09: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
6b8c1967bd Bug 1438811: Remove the remaining bits of the traversal telemetry stuff. r=manishearth
MozReview-Commit-ID: 2dA5usbGQRt
2018-02-16 13:14:13 +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
877a7d54e1 Bug 1435984 - patch 0 - Add binding function for setting float value to nsCSSValue. r=emilio 2018-02-14 22:02:05 +11:00
Brad Werth
f982f5ccce Bug 1418930 Part 3: Update css::ImageValue to carry a parameter that indicates anonymous CORS headers should be used during loading. r=emilio
MozReview-Commit-ID: JJ5lZRwS6Be
2018-01-29 13:55:38 -05:00
Emilio Cobos Álvarez
2e4f689d2b 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
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
Emilio Cobos Álvarez
7d2ccf0a6e 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
f085fb7158 Bug 1429723: Remove -moz-border-*-colors. r=xidorn
MozReview-Commit-ID: 3P6f7rFcDa6
2018-01-22 18:14:07 +01:00
Bobby Holley
f8cae827a3 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
2b29e5d039 No bug: Remove some unused functions. r=me
MozReview-Commit-ID: 3sUI1K0dIeA
2018-01-12 13:08:44 +01:00
Hiroyuki Ikezoe
e07c93d72c Bug 1420928 - Templatize functions that ensures nsStyleAutoArray length. r=boris
MozReview-Commit-ID: 7MvW9OCBkCP
2018-01-05 06:24:10 +09:00
Emilio Cobos Álvarez
ebc2e23e06 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
7950ea26ab 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
4d45077e65 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
Xidorn Quan
b002faee51 Bug 1267890 part 1 - Add @supports -moz-bool-pref() support for stylo. r=emilio
MozReview-Commit-ID: C9Pq2zLLaGp
2017-12-08 20:03:34 -06:00