Commit Graph

23 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
9aec6d7a36 No bug - Appease Servo's tidy lint. r=me
MozReview-Commit-ID: WPZYZPzuCK
2018-06-23 20:46:42 +02:00
Emilio Cobos Álvarez
241876eb00 Bug 1468651: Generate different files for different structs. r=heycam
MozReview-Commit-ID: KEDJ1zJVwMx
2018-06-20 11:26:56 +02:00
Xidorn Quan
ccaac7107a Bug 1452542 part 5 - Generate property list from Servo data. r=emilio,froydnj
With this change, we first generate a data file ServoCSSPropList.py from
Servo data, and then use this data to generate ServoCSSPropList.h.

This change itself serves as a checkpoint with a runtime check that all
information generated from Servo side matches what we have in the Gecko
side. Following patches will start replacing uses of nsCSSPropList.h
with either the data file or the header file.

The reason that it generates data file rather than header directly is
that, many users of PythonCSSProps.h invokes C++ preprocessor manually
to extract data from nsCSSPropList.h without passing in search paths,
so it is non-trivial to replace the use of nsCSSPropList.h there with
a generated header. Generating a Python data file would hopefully
simplify those users rather than adding more complexity to them.

I also thought about generating JSON rather than plain Python file, but
JSON doesn't allow trailing comma in array, which makes it less pretty
to generate via mako template.

MozReview-Commit-ID: CwK2oL88r6F
2018-04-16 14:08:20 +10:00
Andreea Pavel
09076bc3fd Backed out 7 changesets (bug 1452542) for failing toolkit/content/tests/chrome/test_arrowpanel.xul on a CLOSED TREE
Backed out changeset f206acff283f (bug 1452542)
Backed out changeset be97e652391f (bug 1452542)
Backed out changeset 4d3a028edaed (bug 1452542)
Backed out changeset 5619bba37cdd (bug 1452542)
Backed out changeset e83a797bdc61 (bug 1452542)
Backed out changeset 255e2feff19f (bug 1452542)
Backed out changeset fac55b1a0706 (bug 1452542)
2018-04-18 20:10:35 +03:00
Xidorn Quan
531901c25f Bug 1452542 part 5 - Generate property list from Servo data. r=emilio,froydnj
With this change, we first generate a data file ServoCSSPropList.py from
Servo data, and then use this data to generate ServoCSSPropList.h.

This change itself serves as a checkpoint with a runtime check that all
information generated from Servo side matches what we have in the Gecko
side. Following patches will start replacing uses of nsCSSPropList.h
with either the data file or the header file.

The reason that it generates data file rather than header directly is
that, many users of PythonCSSProps.h invokes C++ preprocessor manually
to extract data from nsCSSPropList.h without passing in search paths,
so it is non-trivial to replace the use of nsCSSPropList.h there with
a generated header. Generating a Python data file would hopefully
simplify those users rather than adding more complexity to them.

I also thought about generating JSON rather than plain Python file, but
JSON doesn't allow trailing comma in array, which makes it less pretty
to generate via mako template.

MozReview-Commit-ID: CwK2oL88r6F
2018-04-16 14:08:20 +10:00
Anthony Ramine
0540275fc8 servo: Merge #20145 - Kill RUSTC_HAS_PR45225 🎉 (from servo:rm-rustc-hack); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 30f33eba9665f5ffdc0648515db7cede68778202
2018-03-01 08:49:03 -05:00
Simon Sapin
ed5b680e0a servo: Merge #19316 - Fix Stylo tests to pass on both Stable and Nightly Rust (from servo:stylo-size-of); r=emilio
This is on top of https://github.com/servo/servo/pull/19285.

Rust Nightly has new enum memory layout optimizations: https://github.com/rust-lang/rust/pull/45225

Source-Repo: https://github.com/servo/servo
Source-Revision: 17e97b9320fdb7cdb33bbc5f4d0fde0653bbf2e4
2017-11-21 05:41:12 -06:00
Emilio Cobos Álvarez
14ac0cc523 servo: Merge #19235 - style: Add infra to differentiate chrome and UA sheets (from emilio:chrome-props); r=xidorn
This keeps the behavior of stuff being accessible from chrome stylesheets being
the same of content sheets except on the UA origin. That will be changed in a
followup.

Source-Repo: https://github.com/servo/servo
Source-Revision: e07245cabacdb0cfb597bfc3864abea6d567a1c6
2017-11-16 14:01:39 -06:00
Manish Goregaokar
8ecda34549 servo: Merge #17984 - Remove style/testing feature (from Manishearth:rm-testing); r=SimonSapin
We added this because a year ago we had no reliable Gecko CI. This meant that Gecko-only properties needed to be tested *somehow*, and we solved that by making it so that for unit tests we compile all properties, not just the servo ones.

This was useful back then, but I don't think we need this anymore. We have reliable Gecko CI, and all the gecko-only stuff we tested is adequately handled by the properties-database parsing mochitests. It's a bit of annoying cruft that just complicates things; we probably should remove it.

r? @emilio or @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 32f835260cd3ea03a881f7a344a01f401c4db621
2017-08-08 07:35:29 -05:00
Xidorn Quan
e575761842 servo: Merge #17702 - Avoid random python address to be added to generated files (from upsuper:python-addr-in-generated); r=emilio
This would catch cases like #17691 and avoid regressing [bug 1380327](https://bugzilla.mozilla.org/show_bug.cgi?id=1380327) in this manner.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9451b41d33d00016cfd45b0c4fc7a999a83169a9
2017-07-12 23:34:58 -07:00
Simon Sapin
81883fd8ac servo: Merge #15735 - Update cssparser to 0.11 (from servo:cssparserup); r=emilio
<!-- Please describe your changes on the following line: -->

<s>Depends on https://github.com/servo/rust-cssparser/pull/122.</s>

---
<!-- 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: 94e563e4d9292d7b19ce061e070cda358e822172
2017-02-26 02:19:32 -08:00
Simon Sapin
6dd811e30d servo: Merge #15183 - Fix parsing and serialization of font-family (from servo:font-family); 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
- [x] These changes fix #15059 (github issue number if applicable).

<!-- Either: -->
- [x] 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: 58f4804ef5ae8d1aca1790a1567214b6443d23b2
2017-01-26 01:18:00 -08:00
Manish Goregaokar
26ba9ca483 servo: Merge #14893 - Support property aliases (from Manishearth:alias); r=emilio
Aliases now get forwarded to their "original" property name at parse time. CSSOM continues to provide access through alias getters.

We'll need to probably add `${"-webkit-foo -moz-foo" if gecko else ""}` all over the place. Might want to come up with a convenient attibute name for that (`gecko_prefix="mw"`) or something.

r? @heycam or @bholley

Source-Repo: https://github.com/servo/servo
Source-Revision: d14158a592faa40fa027540578cd2c680cd8caf4
2017-01-07 13:56:19 -08:00
Simon Sapin
275732a0fe servo: Merge #14535 - Introduce a PropertyId enum and use it instead of strings of property names (from servo:property-id); r=mbrubeck
<!-- Please describe your changes on the following line: -->

* `LonghandId` and `ShorthandId` are C-like enums
* `Atom` is used for the name of custom properties.
* `PropertyDeclarationId` is the identifier for `PropertyDeclaration`,
  after parsing and shorthand expansion. (Longhand or custom property.)
* `PropertyId` represents any CSS property, e.g. in CSSOM.
  (Longhand, shorthand, or custom.)

CC @upsuper

---
<!-- 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: 6dd4b4822fa788694153ee61a04dd9a5dfb748ec
2016-12-10 01:16:26 -08:00
Simon Sapin
f581447d38 servo: Merge #13616 - Move PropertyDeclarationBlock into its own module (from servo:PropertyDeclarationBlock_independence_day); r=Ms2ger
<!-- Please describe your changes on the following line: -->

`properties.mako.rs` (its previous location) is a fairly big file.

---
<!-- 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 new tests because refactor

<!-- 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: 3b853e57bfbd9df89aa3737080f28cdc42372c19
2016-10-06 11:13:41 -05:00
Manish Goregaokar
6a1ef325c8 servo: Merge #13386 - Run style tests with all properties included (from Manishearth:style-testing); r=emilio
This turns on all properties (including stylo-only ones) when the style unit tests are compiled. This lets us test the parsing of gecko-only properties.

These tests can't go in tests/stylo since this introduces dependencies on `Gecko_*` symbols. This method lets us test parsing and serialization of geckolib properties compiled in Servo mode (e.g. using Servo atoms, Servo URLs)

r? @emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: 28bce69d248995cc6ec83a2b4ada9cf17a888bb5
2016-09-24 00:36:28 -05:00
Emilio Cobos Álvarez
3ade85a49c servo: Merge #13171 - Revert "Remove mako.zip" (from emilio:mako-is-back); r=SimonSapin
<!-- Please describe your changes on the following line: -->

Stylo doesn't use Servo's virtualenv, so we need to integrate it into Gecko's build before doing this.

---
<!-- 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

<!-- Either: -->
- [x] There are tests for these changes OR

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

This reverts commit 95e3f8333a116f9bd62fb071d08fcef269697804.

Source-Repo: https://github.com/servo/servo
Source-Revision: fe9d9096ec3e78e2d5d53d32f181dc519512a40a
2016-09-03 23:56:55 -05:00
crypto-universe
d8842c0208 servo: Merge #13097 - Mako task (from crypto-universe:mako_task); r=SimonSapin
<!-- Please describe your changes on the following line: -->
Remove mako zip

---
<!-- 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 #12958 (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. -->

r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: e4362356d29ab5b18cb6316a3a510dfa31f9ba7c
2016-09-01 16:47:10 -05:00
Simon Sapin
1f820224e4 servo: Merge #12515 - Make the style crate more concrete (from servo:concrete-style); r=bholley
Background:

The changes to Servo code to support Stylo began in the `selectors` crate with making pseudo-elements generic, defined be the user, so that different users (such as Servo and Gecko/Stylo) could have a different set of pseudo-elements supported and parsed. Adding a trait makes sense there since `selectors` is in its own repository and has others users (or at least [one](https://github.com/SimonSapin/kuchiki)).

Then we kind of kept going with the same pattern and added a bunch of traits in the `style` crate to make everything generic, allowing Servo and Gecko/Stylo to do things differently. But we’ve also added a `gecko` Cargo feature to do conditional compilation, at first to enable or disable some CSS properties and values in the Mako templates. Since we’re doing conditional compilation anyway, it’s often easier and simpler to do it more (with `#[cfg(feature = "gecko")]` and `#[cfg(feature = "servo")]`) that to keep adding traits and making everything generic. When a type is generic, any method that we want to call on it needs to be part of some trait.

----

The first several commits move some code around, mostly from `geckolib` to `style` (with `#[cfg(feature = "gecko")]`) but otherwise don’t change much.

The following commits remove some traits and many type parameters through the `style` crate, replacing them with pairs of conditionally-compiled API-compatible items (types, methods, …).

Simplifying code is nice to make it more maintainable, but this is motivated by another change described in https://github.com/servo/servo/pull/12391#issuecomment-232183942. (Porting Servo for that change proved difficult because some code in the `style` crate was becoming generic over `String` vs `Atom`, and this PR will help make that concrete. That change, in turn, is motivated by removing geckolib’s `[replace]` override for string-cache, in order to enable using a single Cargo "workspace" in this 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
- [x] These changes fix #__ (github issue number if applicable).

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

<!-- 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: 2d01d41a506bcbc7f26a2284b9f42390d6ef96ab
2016-07-20 02:58:34 -05:00
Xidorn Quan
a626ebfb3a servo: Merge #12338 - Fix geckolib build for Windows (from upsuper:win-geckolib-fix); r=bholley
It contains several fixes to make `./mach build-geckolib` work on Windows.

Source-Repo: https://github.com/servo/servo
Source-Revision: 35a23bfef394fe451879f09979167b048a7bdc88
2016-07-08 11:14:48 -07:00
Simon Sapin
9c9cf92c8d servo: Merge #10791 - Blind attempt at fixing a Python import error on Windows (from servo:explicit-python-path); r=KiChjang
See #10789.

Source-Repo: https://github.com/servo/servo
Source-Revision: b080da474f78a9689f3a6c64cc4091e425e2eb62
2016-04-21 17:26:11 -07:00
Per Lundberg
3267646ce3 servo: Merge #10774 - Improve properties.mako.rs file structure, take 2 (from perlun:improve-mako-file-structure-v2); r=SimonSapin
This is a new attempt of #10586, after Simon Sapin's great cleanups in #10749 has landed. I have adjusted the changes to the new structure that was introduced, and also only done a few of the longhand ones. Will certainly continue on this as soon as we have a basic agreement that this style is reasonable.

Source-Repo: https://github.com/servo/servo
Source-Revision: 69acd8e1ccba8ff01e8f7fde4305956ba5ab866d
2016-04-22 01:49:28 +05:00
Simon Sapin
c2199fe815 servo: Merge #10749 - Prepare related files to make it easier to split up the Mako template (from servo:split-mako); r=nox
https://github.com/servo/servo/pull/10586#issuecomment-211490049

r? @nox

Source-Repo: https://github.com/servo/servo
Source-Revision: 3bfa4cc7414fea760ce5c503bfbcf25262acb9d7
2016-04-21 10:08:09 +05:00