Commit Graph

87 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
4adea46644 Bug 1469957: Move the error reporter into ParserContext. r=xidorn
Summary:
This should make it easier to report errors, and also reduce codesize.

The reason this was so generic is that error reporting was unconditionally
enabled and was super-hot, but now that's no longer the case after bug 1452143,
so we can afford the virtual call in the "error reporting enabled" case.

This opens the possibility of simplifying a lot the error setup as well, though
this patch doesn't do it.

Test Plan: No behavior change, so no new tests.

Reviewers: xidorn

Bug #: 1469957

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

MozReview-Commit-ID: F3wTdhX9MB5
2018-06-21 09:24:07 +02:00
Boris Zbarsky
fa89bbebdc Bug 1467134. Use Atomic<bool> for the staticpref version of layout.css.font-variations.enabled. r=emilio
Atomic<bool> is implemented in terms of AtomicBase<uint32_t>, because that way
you don't need to depend on atomic 1-byte operations.  That means that the rust
bindgen sees it as a u32, not a bool.

It's a bit concerning that the rust code seems to be doing an unsynchronized
read here, but given this is a RelaxedAtomic, that's probably ok.
2018-06-06 11:34:30 -04:00
Emilio Cobos Álvarez
a73abc551d No bug - sync some changes from servo. r=me
MozReview-Commit-ID: HyRI5CfZh5w
2018-04-29 01:59:00 +02:00
Emilio Cobos Álvarez
72c7312d1a Bug 1455358: Use a generic type in preparation to fix animation. r=xidorn
Apart from a bit more code reuse.

MozReview-Commit-ID: 2BNOK6v30lX
2018-04-23 16:56:56 +02:00
Emilio Cobos Álvarez
359e56062e Bug 1455358: Update font-style to css-fonts-4. r=xidorn
This patch is meant to be squashed with the following two. This is an initial
strawman implementation that I wrote to unblock jwatt, cleanups and fixes
follow.

Note that this is style pretty much untested until jwatt's patches are ready,
since Gecko doesn't understand the angle at all, but I expect the fixes to be
minor.

MozReview-Commit-ID: 1Nq5DyCjaZe
2018-04-23 16:56:56 +02:00
Emilio Cobos Álvarez
062c72f2a1 Bug 1454883: Update font-stretch to css-fonts-4. r=xidorn
These won't "just work", pending changes from bug 1436048 to use a floating
point representation for those.

MozReview-Commit-ID: Bi5iTdFreMA
2018-04-23 16:56:55 +02:00
Emilio Cobos Álvarez
da9635e9a0 Bug 1454596: Update font-weight property and descriptor to css-fonts-4. r=xidorn
Need to change the tests still, but that should be trivial.

MozReview-Commit-ID: 27aS2UrgXjs
2018-04-19 12:49:37 +02:00
Bobby Holley
196912c9bf servo: Merge #20603 - Run rustfmt on selectors, servo_arc, and style (from bholley:rustfmt_style); r=Manishearth
Now that rustfmt is getting close to stable, and work on the style system has died down a bit, it seemed like an opportune time to auto-format the style crates.

The first commit disables import reordering, since tidy and rustfmt don't currently agree on the correct ordering. The second commit does a bunch of manual fixups such that the output of rustfmt passes tidy. The third commit runs rustfmt on the three aforementioned crate.

There are a few dozen warnings in the style crate about lines longer than 100 characters. It would be good to fix these, but I don't have time for that now.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9a900ef019cd643bff961d7b20db6da69f3edb29
2018-04-10 21:00:11 -04:00
Xidorn Quan
5cd2b45919 servo: Merge #20519 - Use Servo data to back @font-face rule in Gecko (from upsuper:font-face-rule); r=emilio
This is the Servo side change of [bug 1449087](https://bugzilla.mozilla.org/show_bug.cgi?id=1449087).

Source-Repo: https://github.com/servo/servo
Source-Revision: 34b13dac66b48790003ccd069f4636f1def77e7d
2018-04-03 19:33:59 -04:00
Nicholas Nethercote
8decdb3fdd servo: Merge #20508 - Convert StylePrefs to StaticPrefs (from nnethercote:bug-1448225); r=emilio
<!-- Please describe your changes on the following line: -->

This is the Servo part of https://bugzilla.mozilla.org/show_bug.cgi?id=1448225.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix https://bugzilla.mozilla.org/show_bug.cgi?id=1448225

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because tested on the Gecko side.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

r? emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: 0a3ffc0c6045eb6983273010d91a35267d8ec3fa
2018-04-03 01:54:24 -04:00
Anthony Ramine
c1ded86a36 servo: Merge #20200 - Derive some more ToCss stuff again (from servo:derive-all-the-things); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 17b5a8332b4309188ea7ce9c1aa5919aeb7834e6
2018-03-06 03:33:18 -05:00
Jonathan Kew
144a00eedc servo: Merge #20191 - style: Make 'font' shorthand reset 'font-variation-settings' property (from jfkthame:font-shorthand-resets-variation-settings); r=emilio
As required by the spec: https://drafts.csswg.org/css-fonts-4/#font-prop

See https://bugzilla.mozilla.org/show_bug.cgi?id=1435983

Basically, make font-variation-settings work in the same way as font-feature-settings
already does.

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

- [ ] There are tests for these changes OR
- [X] These changes do not require tests because font-variation-settings isn't supported in servo; it is implemented here for gecko/stylo, and will be tested by mozilla-central mochitests.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1783e41f34c75bc7dfb158b4aa2628fd945eceb3
2018-03-04 11:50:56 -05:00
Xidorn Quan
67288a3f03 servo: Merge #20044 - Remove initial values from font-face descriptors (from upsuper:font-face-initial); r=SimonSapin
They are not used anyway.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9f3ce51d50401ed6a2472e7d020ba9dcc47fa9a9
2018-02-14 02:19:22 -05:00
Xidorn Quan
54554ed0ed servo: Merge #20042 - Integrate font-variation-settings descriptor with stylo (from upsuper:font-variation-desc); r=emilio
This is the Servo side change for [bug 1435984](https://bugzilla.mozilla.org/show_bug.cgi?id=1435984).

Source-Repo: https://github.com/servo/servo
Source-Revision: 27cd4f7b5387f188570a355c58bf87b9a029d76e
2018-02-13 19:16:34 -05:00
Emilio Cobos Álvarez
e9bb176ad6 servo: Merge #19918 - style: Refactor font-feature-settings and font-variation-settings (from emilio:font-stuff-is-a-mess); r=nox
This fixes all known issues with serialization and parsing of these two
properties, and in particular calc handling and such:

  https://bugzilla.mozilla.org/show_bug.cgi?id=1434692
  https://bugzilla.mozilla.org/show_bug.cgi?id=1434724

Also does a fair amount of cleanup and all that, which was needed, this code
was a mess.

There are further cleanups that can be done, like renaming the
font-variation-settings animation stuff.

Source-Repo: https://github.com/servo/servo
Source-Revision: dcd13b857cc5085dcec5047433637af3d9013920
2018-02-01 06:45:20 -06:00
Anthony Ramine
752e14e980 servo: Merge #19903 - Derive more Parse implementations (fixes #19827) (from servo:derive-all-the-things); r=emilio
Fixes #19827.

Source-Repo: https://github.com/servo/servo
Source-Revision: b4339ab5c8fc31d5eeb7e1fae55cab05e400ec9e
2018-02-01 05:52:08 -06:00
Anthony Ramine
3ac08c3f7f servo: Merge #19838 - Make ToCss' SequenceWriter not monomorphise like a maniac anymore (from servo:rm-sequence-writer-as-it-was); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 6b2e5283c9e810ac316c203849b6ea25544a62c7
2018-01-23 12:03:41 -06:00
Bobby Holley
49c5f801a7 servo: Merge #19841 - stylo: Avoid separate monomorphizations of CSS serialization for utf-8 and utf-16 (from bholley:single_tocss); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1431268

Source-Repo: https://github.com/servo/servo
Source-Revision: 6f543d3de1658e3cacf7fc2caed7b9bda69e1d23
2018-01-22 16:58:30 -06:00
CYBAI
9a4963f721 servo: Merge #19366 - style: Move font-family outside of mako (from CYBAI:font-family-out-of-mako); r=emilio
This is a sub-PR of #19015
Besides, this is the last PR for `font.mako.rs`! 🎉
r? emilio

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #19355
- [x] These changes do not require tests

Source-Repo: https://github.com/servo/servo
Source-Revision: 8f61fde3907f2dde3e697791ccfb9a4d86d1a48c
2017-11-25 13:06:31 -06:00
Matt Brubeck
8cc50002a2 servo: Merge #18924 - Fix commonmark Markdown warnings in docs, part 1 (from mbrubeck:doc); r=Manishearth
Fixes warnings from rust-lang/rust#44229 when `--enable-commonmark` is passed to rustdoc.

This is mostly a global find-and-replace for bare URIs on lines by themselves in doc comments.

---

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they are doc formatting changes only

Source-Repo: https://github.com/servo/servo
Source-Revision: 0e62a5829b7c29ae2667a21a439aff1e89201bf3
2017-10-17 16:04:10 -05:00
Simon Sapin
a917619a4a servo: Merge #18808 - Use the current parser location for CSS error (from servo:error-location_); r=emilio
… rather than the start location of the current construct. This likely places the error just *after* of the unexpected token whereas before would be best, but that’s likely a much bigger change.

See https://bugzilla.mozilla.org/show_bug.cgi?id=1378861

Source-Repo: https://github.com/servo/servo
Source-Revision: c79a54dbd9d3a590f5fd8191b8e57a0b9d1d0fdb
2017-10-10 12:31:24 -05:00
Corey Farwell
d3e3a66de5 servo: Merge #18494 - Implement size_hint for more iterators (from frewsxcv:frewsxcv-size-hint); r=jdm
```
implement size hint for
more iterators because why
not we like fast things
```

Source-Repo: https://github.com/servo/servo
Source-Revision: bb2030a49314433c1b31f853e4fa50afa241b596
2017-09-13 19:38:32 -05:00
Xidorn Quan
a0c3ea5588 servo: Merge #18336 - Parse at-rule without block in two stages (from upsuper:two-stage-at-rule); r=SimonSapin
This is the Servo side change necessary for servo/rust-cssparser#180.

----

This also pulls in other changes from cssparser 0.20.0.

Source-Repo: https://github.com/servo/servo
Source-Revision: f2e5b4992658db504db0f6176d3bfa580ced6fd0
2017-09-01 17:56:57 -05:00
Josh Matthews
ab437a0352 servo: Merge #18209 - Devirtualize CSS error reporting (from jdm:devirtualize); r=mbrubeck
This removes a trait object from the path of reporting a CSS error.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: d4ddec8d33dbdaa248ae45d7c8ff58cfca7d7a5e
2017-08-24 13:19:25 -05:00
Clément DAVID
a6c6efb7e6 servo: Merge #18179 - Automatically verify that derive() lists are alphabetically ordered #… (from davidcl:master); r=jdm
<!-- Please describe your changes on the following line: -->
Automatically verify that derive() lists are alphabetically ordered #18172

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #18172 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 474369618965569407d127b1e8c481e757cc59d3
2017-08-23 17:18:31 -05:00
Simon Sapin
dd160d6417 servo: Merge #18025 - Update to cssparser 0.19, count line numbers during tokenization (from servo:line-counting); r=jdm
https://github.com/servo/rust-cssparser/pull/177

Also simplify the `ParseErrorReporter` trait a bit.

Source-Repo: https://github.com/servo/servo
Source-Revision: 845131c425ebd50eea2fe5bf6005b6c304664242
2017-08-09 16:16:33 -05:00
Xidorn Quan
206c526189 servo: Merge #17961 - Make font-display descriptor behind the pref (from upsuper:font-display-pref); r=heycam
This is the Servo side change of [bug 1386871](https://bugzilla.mozilla.org/show_bug.cgi?id=1386871).

Source-Repo: https://github.com/servo/servo
Source-Revision: 24b2cd89c124457e837bcde7cc9101747b96e9d4
2017-08-03 04:46:52 -05:00
Nazım Can Altınova
706dfb5db5 servo: Merge #17877 - Cleanup @font-face rule constructor (from canaltinova:font-face-refactoring); r=jdm
Passing SourceLocation into constructor instead of assigning
immediately after construction cleans up the code and helps to
prevent leaving an invalid SourceLocation in the future.

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

<!-- Either: -->
- [X] These changes do not require tests because it's just a cleanup.

Source-Repo: https://github.com/servo/servo
Source-Revision: a15d13a6ec7b1f1ffeef86484ee483ec253ed0ba
2017-07-26 14:13:02 -05:00
Simon Sapin
6e4b1519ff servo: Merge #17820 - Update cssparser to 0.18 (from servo:token-cache); r=emilio
Do not merge yet, depends on https://github.com/servo/rust-cssparser/pull/171.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4f0821192c112943bb53b4fb04303c1afdde06e6
2017-07-24 06:27:00 -07:00
Anthony Ramine
4e80fc699e servo: Merge #17662 - Improve derivation of ToCss again (from servo:derive-all-the-things); r=emilio,SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: f9fad3d9593e45189408ba1caf10fc0d528c763f
2017-07-12 04:56:31 -07:00
Xidorn Quan
bda898671b servo: Merge #17430 - Store font-weight as integer directly (from upsuper:font-weight-int); r=nox
It doesn't make much sense to store `font-weight` as separate enums, especially given that we would need to support (somehow) arbitrary font weight value when we implement CSS Fonts Level 4.

This PR refactors the `font-weight` a bit to make it store as `u16` directly.

Source-Repo: https://github.com/servo/servo
Source-Revision: f11a922760a08ffb956607d9ab447f8f2a319a25
2017-07-06 16:18:36 -07:00
Anthony Ramine
4ad9d8e802 servo: Merge #17530 - Improve sequence values in style (from servo:derive-all-the-things); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: de0ee6cebfcaad720cd3568b19d2992349c8825c
2017-06-27 15:34:15 -07:00
Nazım Can Altınova
4686fe711f servo: Merge #17517 - stylo: Implement font-language-override descriptor for @font-face rule (from canaltinova:font-lang-override); r=SimonSapin
Generally  we use computed values for `@font-face` rule descriptors but that descriptor is a bit different than the others in gecko side. It accepts strings instead of unsigned integer(which is computed value of this property). So we had to use SpecifiedValue for that in here.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1355364](https://bugzilla.mozilla.org/show_bug.cgi?id=1355364)

Source-Repo: https://github.com/servo/servo
Source-Revision: 2843eb5ddf0c8170854eb420774bd5a34bc6710d
2017-06-27 11:35:33 -07:00
Fernando Jiménez Moreno
a470b7bda4 servo: Merge #17343 - stylo: make font-weight descriptor in @font-face preserve keyword values (from ferjm:bug1355368.fontweight.keyword); r=upsuper
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix https://bugzilla.mozilla.org/show_bug.cgi?id=1355368

Source-Repo: https://github.com/servo/servo
Source-Revision: 3e698340ac704921cb7bd98e623c8eaf349dfff4
2017-06-21 10:40:35 -07:00
Jonathan Chan
17d32bd914 servo: Merge #17414 - style: Have OneOrMoreSeparated replace OneOrMoreCommaSeparated (from jyc:space-separator); r=nox
**NOTE** The alternative for me is just to duplicate the ToCss code, which is not bad and is less code changed! Don't know what others would think, though. Looking for feedback!

A future patch series has some values that should be separated by spaces. This
allows us to re-use the code for serialization, but the types do get a little
clunky. The separator is now indicated with an associated type.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because they shoudl be tested by existing serialization code

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 40a3826dd6ec6908f9fd145ba79985d3b4b8636e
2017-06-20 03:08:11 -07:00
Anthony Ramine
f31295978e servo: Merge #17382 - Derive more ToCss impls (from servo:derive-all-the-things); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: effd6f2f877e767352b45fc35c8066a56c1612b7
2017-06-17 04:53:32 -07:00
Simon Sapin
494bca10cf servo: Merge #17345 - Upgrade cssparser to 0.15 (from servo:cssparserup); r=<try>
Depends on https://github.com/servo/rust-cssparser/pull/159

Source-Repo: https://github.com/servo/servo
Source-Revision: 75876a0e2220b7b95541feef4393288b195b090e
2017-06-16 06:09:52 -07:00
Josh Matthews
dfb3ae3e5e servo: Merge #16752 - Report more informative CSS errors (from jdm:css-parse-error); r=SimonSapin
This requires https://github.com/servo/rust-cssparser/pull/143 for the final commit. There's no better way to split that work up, unfortunately, and it's extremely easy to bitrot. I would appreciate if we could expedite reviewing this work.

This is the work necessary to enable https://bugzilla.mozilla.org/show_bug.cgi?id=1352669. It makes sense to merge it separately because it's so much effort to keep it up to date with the ongoing Stylo work.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [x] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 061cb5f48e5c93a5decf39e530aea4a566e97341
2017-06-09 14:31:48 -07:00
Brad Werth
6d4c70db93 servo: Merge #17028 - Stylo: Deep clone ServoStyleSheets (from bradwerth:innerClone); r=heycam
MozReview-Commit-ID: 6hYIcOa86Y

<!-- Please describe your changes on the following line: -->
https://bugzilla.mozilla.org/show_bug.cgi?id=1339629
https://reviewboard.mozilla.org/r/135314/

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 0d6b0da3544359343b191354ecc258e42394c5dd
2017-05-24 23:26:23 -05:00
Fernando Jiménez Moreno
1cf5aaca99 servo: Merge #16931 - Support font-feature-settings as a @font-face descriptor (from nox:font-feature-descriptor); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 61d64daf4c5831e5e4428f76faaea874d8d5f4cd
2017-05-19 07:49:27 -05:00
Xidorn Quan
40e0a1f5fe servo: Merge #16888 - Implement @counter-style for stylo (from upsuper:bug1328319); r=heycam,Manishearth,SimonSapin
Servo side change of [bug 1328319](https://bugzilla.mozilla.org/show_bug.cgi?id=1328319).

Source-Repo: https://github.com/servo/servo
Source-Revision: 1afc89e944c7ea7e4510b4b678a95a8faaa309b1
2017-05-16 01:17:07 -05:00
Fernando Jiménez Moreno
5237876c6d servo: Merge #16835 - Stylo: Bug 1350175 - Support getting line / column number of CSS rules (from ferjm:bug1350175.line.column.css.rules); r=upsuper,SimonSapin
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

Bugzilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1350175

Source-Repo: https://github.com/servo/servo
Source-Revision: 5cd8265f9a279e1cebe84218e691e7f80a541fb9
2017-05-15 05:28:50 -05:00
Simon Sapin
aa7e1030b3 servo: Merge #16224 - Make the parser accept @font-face rules without font-family or src (from servo:valid-fontface); r=upsuper
Fix #16165.

Also, it turns out that the CSSFontFaceRule IDL specified in the css-fonts spec is not web-compatible. Instead browsers implement a .style attribute like in CSSStyleRule: https://github.com/w3c/csswg-drafts/issues/825

This in turn requires preserving data about which descriptors were set or not (distinguishing unset from set to a value that happens to be the initial value), so this commit also makes every field `Option<_>`.

Source-Repo: https://github.com/servo/servo
Source-Revision: fac0d17fd6edf996876d6e6379e48ef4f9cb43d6
2017-04-03 03:53:09 -05:00
Nazım Can Altınova
c32938990b servo: Merge #16194 - stylo: Serialize unquoted font-family without quote (from canaltinova:font-family); r=Manishearth
<!-- Please describe your changes on the following line: -->
Reviewed by Manishearth

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1351262](https://bugzilla.mozilla.org/show_bug.cgi?id=1351262)

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: ecf42ca6e94bc50b835defc084a357152c24cdaf
2017-03-30 15:45:39 -05:00
Xidorn Quan
4f43b83d45 servo: Merge #16187 - Implement access to CSSFontFaceRule for stylo (from upsuper:bug1345696); r=Manishearth,heycam
This is the Servo part of [bug 1345696](https://bugzilla.mozilla.org/show_bug.cgi?id=1345696) which has been reviewed on Bugzilla.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2084ee29c40291c9abf9b0922e05f0663b215333
2017-03-29 20:50:47 -05:00
Simon Sapin
80dfe1b881 servo: Merge #16014 - Per-process lock for CSSOM objects (from servo:style-ref); r=emilio
<!-- Please describe your changes on the following line: -->

Before this PR, every object reflected in CSSOM is in `Arc<RwLock<_>>` to enable safe (synchronized) mutable aliasing. Acquiring all these locks has significant cost during selector matching:

* https://bugzilla.mozilla.org/show_bug.cgi?id=1311469
* https://bugzilla.mozilla.org/show_bug.cgi?id=1335941
* https://bugzilla.mozilla.org/show_bug.cgi?id=1339703

This PR introduce a mechanism to protect many objects with the same `RwLock` that only needs to be acquired once.

In Stylo, there is one such lock per process (in a `lazy_static`), used for everything.

I non-Stylo Servo, I originally intended to have one such lock per document (for author-origin stylesheets, and one per process for user-agent and user sytlesheets since they’re shared across documents, and never mutated anyway). However I failed to have the same document-specific (or pipeline-specific) `Arc` reachable from both `Document` nodes and `LayoutThread`. Recursively following callers lead me to include this `Arc` in `UnprivilegedPipelineContent`, but that needs to be serializable. So there is a second process-wide lock.

This was previously #15998, closed accidentally.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: bb54f0a429de0e8b8861f8071b6cf82f73622664
2017-03-19 14:31:19 -07:00
Simon Sapin
6391a40872 servo: Merge #15856 - Deduplicate declarations on insertion, not at the end of parsing a block (from servo:dedup); r=Manishearth
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #15558 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 4fc7034370b3d9c3511607968b7ce724b59c4817
2017-03-08 03:07:04 -08:00
Simon Sapin
631a2da0c3 servo: Merge #15552 - Update cssparser to 0.9 (from servo:cssparserup); r=nox
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 216a89f7766dd366c4afbeae42cf6e1fb4f67349
2017-02-15 03:58:38 -08:00
Simon Sapin
120f82ad5f servo: Merge #15356 - Add support for more @font-face descriptors (from servo:font-face-descriptors); r=Manishearth
<!-- Please describe your changes on the following line: -->

Part of https://bugzilla.mozilla.org/show_bug.cgi?id=1290237. I’ll add conversions to `nsCSSValue` separately because that requires new C++ functions in the stylo repository.

r? @bholley

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 48f3cc83257554dc09c4489fbfaf2f702a1083f3
2017-02-03 05:09:30 -08:00
Emilio Cobos Álvarez
23c52968bd servo: Merge #14819 - Document most of the remaining parts of the style system, make docs-by-default for the whole style system (from emilio:no-missing-docs); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 87847324a0815e2214fd34da89bbefa4222b1197
2017-01-02 04:10:56 -08:00