Commit graph

6718 commits

Author SHA1 Message Date
Cameron McCormack
53649b19d0 Support flex-{grow,shrink}, stroke-miterlimit and -moz-box-flex in geckolib. 2016-05-03 10:01:31 +10:00
Cameron McCormack
3255bb809e Add a predefined Number type. 2016-05-03 10:01:30 +10:00
Cameron McCormack
d71e5c8b3d Support {fill,stroke,stop,flood}-opacity in geckolib. 2016-05-03 10:01:29 +10:00
Cameron McCormack
0f2dc53b0a Factor out opacity property to use an Opacity type. 2016-05-03 10:01:28 +10:00
Cameron McCormack
d69763b0c1 Generate geckolib setters for properties with simple predefined types. 2016-05-03 10:01:28 +10:00
Matt Brubeck
a2b0585ffd Update lazy_static, selectors, string_cache, futf, quickersort 2016-05-02 16:05:31 -07:00
Matt Brubeck
1e23d90631 Upgrade to bitflags 0.6.0 and selectors 0.5.6
Types generated by `bitflags!` are now private by default.  This PR marks them
`pub` where necessary.
2016-04-30 10:14:03 -07:00
bors-servo
407f991c8a Auto merge of #10815 - emilio:anonbox-gcs, r=SimonSapin,bholley
style: Support anonymous box pseudo-elements

This is a work-in-progress that:

 * Adds support for some pseudo-elements to skip the cascade entirely, in an analogous way to Gecko's anonymous box pseudo-elements.
 * Takes rid of `StylistWrapper`, and uses `Arc::get_mut` instead.
 * Uses the first bullet to precompute the `-servo-details-content` pseudo's style.

I'd like @bholley to take a look before following, do you think that the aproach is the correct?
Also, @SimonSapin could want to put some eyes on it.

Depends on https://github.com/servo/rust-selectors/pull/81

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10815)
<!-- Reviewable:end -->
2016-04-29 14:27:16 -07:00
Emilio Cobos Álvarez
41f3b1c2ba
style: Remove unneeded lifetime 2016-04-29 22:54:57 +02:00
Emilio Cobos Álvarez
f12e4b826f
style: Add doc-comment about is_eagerly_cascaded_pseudo_element 2016-04-29 22:54:56 +02:00
Emilio Cobos Álvarez
227e39d558
style: Reset the per-pseudo-element maps when update() is called
This was causing panics in stylo.
2016-04-29 22:54:53 +02:00
Emilio Cobos Álvarez
2a499d5a0b
layout: Stop storing PrecomputedStyleData in LayoutNode
Use the SharedStyleContext instead.
2016-04-29 22:54:48 +02:00
Emilio Cobos Álvarez
979c3a54b9
layout: Tidy a bit style pseudo-elements stuff 2016-04-29 22:54:47 +02:00
Emilio Cobos Álvarez
5a43c7e3cd
style: Allow inheritance when computing anonymous box styles
This is used a lot by Gecko, not still for servo though.
2016-04-29 22:54:46 +02:00
Emilio Cobos Álvarez
3563ecb770
style: Use precomputation for the -servo-details-content pseudo-element 2016-04-29 22:54:45 +02:00
Emilio Cobos Álvarez
b6402a81d0
style: Add infrastructure for non-eagerly-cascaded pseudo-elements
This commit also removes StylistWrapper and uses Arc::get_mut instead.
2016-04-29 22:54:45 +02:00
bors-servo
160a44c286 Auto merge of #10863 - perlun:improve-mako-file-structure-v4, r=SimonSapin
Extracted shorthands to separate files.

Following up on #10813, here is a similar extraction of the shorthand stuff as well.

I've deliberately tried to keep things similarly structured as in the longhand files. I.e. if a given property is in e.g. longhand/box.mako.rs, the shorthand stuff that relates to the same property is in shorthand/box.mako.rs and so forth.

----

The file is now down from ~7000 LoC to ~1750. A big improvement in my eyes, but there's still room for improving more. However, that shouldn't be done until we've had a bit of discussion about it. What we've done so far has been more-or-less obvious (after resolving the underlying Python/Mako issues with how to get things to properly communicate when things got split into multiple files etc). The remaining stuff is basically a plethora of anything from enums to structs to impls to... you name it.

One way to try and sort this out is to continue abusing Mako %include:s for this. I'm not sure it's the right way, but it would be a reasonably _easy_ way to do it. Another way would be to use Rust modules/crates etc. for sorting it out. I feel like too much of a novice on the Rust side of stuff yet to have any sensible opinions on how to get that done, so here I'd very much like suggestions from other people in the project.

(This is more of an entry point for discussion, and we could very well move that to a separate issue if you like. I think the more important short-term point is to try and get this merged. 😊 Please let me know if you feel it is OK, and if not, feel free to suggest adjustments.)

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10863)
<!-- Reviewable:end -->
2016-04-29 10:57:21 -07:00
bors-servo
ac8406f4ae Auto merge of #10834 - yoava333:master, r=SimonSapin
added support for :read-only and :read-write pseudo-classes

partial fix for https://github.com/servo/servo/issues/10732

It's not a full fix because:
1. there's a bug in wpt-test https://github.com/w3c/web-platform-tests/issues/2889#issuecomment-214144420
2. we don't fully support all input types (namely image, color, hidden and range), which are defaulted to input text. this means that :read-write which is applicable to input text is mis-handled in those cases.
3. we don't support contenteditable, which is also possibly :read-write

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10834)
<!-- Reviewable:end -->
2016-04-29 08:12:18 -07:00
Cameron McCormack
dafc683aef Specialize text node style resolution so geckolib can avoid inheriting non-inherited structs. 2016-04-29 10:07:59 +10:00
bors-servo
e079e01320 Auto merge of #10848 - heycam:struct-accessor, r=bholley
Add Servo_GetStyleFoo functions to get style structs from GeckoComputedValues

r?@bholley

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10848)
<!-- Reviewable:end -->
2016-04-27 02:20:17 -07:00
Cameron McCormack
88f51af3f8 Add Servo_GetStyleFoo functions to get style structs from GeckoComputedValues.
While we're here we also:

* remove any code conditional on style_struct.gecko_ffi_name, since all
  style structs now do have a corresponding Geckos struct

* add new UIReset and XUL style structs, so that all Gecko structs are
  now present (apart from Variables, which is special)
2016-04-27 17:13:26 +10:00
Akshit Khurana
4a3addb72f Return a Result<i64, ()> from do_parse_integer
Fixes #10860
2016-04-26 23:03:16 -07:00
bors-servo
2729864af7 Auto merge of #10857 - servo:toml, r=nox
Simplify TOML syntax

* Sections like `[dependencies.foo]` can be entries in a `[dependencies]` section with the `{key = value}` syntax.
* Per-target dependencies can be expressed with more general `cfg(…)` conditions instead of exact target triples: https://github.com/rust-lang/cargo/pull/2328

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10857)
<!-- Reviewable:end -->
2016-04-26 15:46:37 -07:00
Yoav Alon
9bf909ac2f added support for :read-only and :read-write pseudo-classes
partial fix for https://github.com/servo/servo/issues/10732
2016-04-27 01:38:58 +03:00
Simon Sapin
83b3ebf6ac Simplify TOML syntax
* Sections like `[dependencies.foo]` can be entries in a `[dependencies]`
  section with the `{key = value}` syntax.
* Per-target dependencies can be expressed with more general `cfg(…)`
  conditions instead of exact target triples:
  https://github.com/rust-lang/cargo/pull/2328
2016-04-26 23:51:36 +02:00
Per Lundberg
38f90a3e2e Extracted shorthands to separate files.
I've deliberately tried to keep things similarly structured as in the longhand files. I.e. if a given property is in e.g. longhand/box.mako.rs, the shorthand stuff that relates to the same property is in shorthand/box.mako.rs and so forth.
2016-04-26 23:12:35 +03:00
bors-servo
ccba2d6841 Auto merge of #10608 - KiChjang:parse-double, r=nox
Add parsing of double values in style attributes

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10608)
<!-- Reviewable:end -->
2016-04-26 11:59:25 -07:00
Per Lundberg
4e8831457a Moved the rest of the longhand structs to separate files.
Sorry for the bulk size of this; I know already it's not going to be a fun thing to review. Nevertheless, it should be done so we finalize the split of this huge file into smaller, more maintable parts.

The content of stuff being moved to separate files is unchanged. Only some minor formatting changes have been made and similar, but nothing of particular interest. IMHO it should be safe to merge if all the tests are fine.
2016-04-25 21:36:58 +03:00
bors-servo
20dd8ba7ec Auto merge of #10817 - danlrobertson:flex-basis, r=mbrubeck
Add style property for flex-basis

Add the style property for flex-basis. The property should allow all
values acceptable for `width` or `height` with the addition of `content`.

I also disabled the tests that I expect to pass. I am confused by [flexbox_computedstyle-flex-basis-0percent:20](https://github.com/servo/servo/blob/master/tests/wpt/css-tests/css-flexbox-1_dev/html/flexbox_computedstyle_flex-basis-0percent.htm#L20). Should that be `0%` instead of `0px`?

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10817)
<!-- Reviewable:end -->
2016-04-24 23:34:37 -07:00
Keith Yeung
48b2e9c055 Add parsing of double values in style attributes 2016-04-25 01:09:30 -04:00
Daniel Robertson
2d9d31ee04
Add style property for flex-basis
Add the style property for flex-basis. The property should allow all
values acceptable for `width`|`height` with the addition of `content`.
2016-04-24 14:04:40 -04:00
Simon Sapin
374679852c Make chrome: URLs have a "host". 2016-04-23 20:28:02 +02:00
Simon Sapin
7932ab6ac2 Upgrade to rust-url 1.0 and hyper 0.9 2016-04-23 20:27:58 +02:00
bors-servo
0a3a50a129 Auto merge of #10706 - zwn:unused-extern-crates, r=nox
Turn on unused-extern-crates warning.

As discussed in #9256. It should solve second half of the issue.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10706)
<!-- Reviewable:end -->
2016-04-22 13:40:38 -07:00
Zbynek Winkler
b021874ba0 Silence unused-extern-crates false positives.
Added #[allow(unused_extern_crates)] to silence false positives

 * bitflags, lazy_static and matches because macro_use
 * alloc_jemalloc because builtin crate

See https://github.com/rust-lang/rust/issues/30849
2016-04-22 22:20:05 +02:00
Bobby Holley
1a727225a6 Unstub text-orientation.
The spec has changed a bit since the servo implementation. We still need to alias
sideways-right to sideways and add other writing modes, but we can do that later.
2016-04-21 23:57:41 -07:00
Bobby Holley
bba4447637 Support the text-decoration-style property. 2016-04-21 23:57:35 -07:00
Bobby Holley
980c814e2a Manually implement the display property for now. 2016-04-21 23:57:31 -07:00
Bobby Holley
cc35d4fcce Get rid of some of our custom additional methods in favor of clonable keywords.
Now that I'm pretty convinced we can auto-generate these and make them fast, we can
ditch the additional complexity.
2016-04-21 23:57:29 -07:00
Bobby Holley
456b05e9cf Make predefined_type use kwargs. 2016-04-21 23:57:28 -07:00
Bobby Holley
a4ee11da0a Track cloning separately from additional_methods and auto-generate clone methods. 2016-04-21 23:57:27 -07:00
bors-servo
b080da474f Auto merge of #10791 - servo:explicit-python-path, r=KiChjang
Blind attempt at fixing a Python import error on Windows.

See #10789.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10791)
<!-- Reviewable:end -->
2016-04-21 17:26:11 -07:00
Per Lundberg
4643737a1b Applied a bunch of suggestions from Simon. 2016-04-21 22:42:35 +03:00
Per Lundberg
d0489f1160 Improve properties.mako.rs file structure, take 2
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.
2016-04-21 22:42:35 +03:00
Simon Sapin
ad95a1dd23 Blind attempt at fixing a Python import error on Windows.
See #10789.
2016-04-21 19:46:23 +02:00
bors-servo
3bfa4cc741 Auto merge of #10749 - servo:split-mako, r=nox
Prepare related files to make it easier to split up the Mako template

https://github.com/servo/servo/pull/10586#issuecomment-211490049

r? @nox

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10749)
<!-- Reviewable:end -->
2016-04-21 10:38:09 +05:30
Simon Sapin
515c5ef540 Tidy 2016-04-20 17:19:25 +02:00
Simon Sapin
2d8c17e600 Extract some Python code from properties.mako.rs into a separate file. 2016-04-20 15:30:27 +02:00
Ms2ger
0f2b83ca0f Use num-traits in style. 2016-04-20 15:11:41 +02:00
Simon Sapin
7787b21e30 Move Mako-related files into a new sub-directory.
There’s gonna be more of them.
2016-04-20 14:49:27 +02:00