Commit graph

6718 commits

Author SHA1 Message Date
Ethan Glasser-Camp
76de979231 Implement a MinLength type
Implement an ExtremumLength type which contains all the enumerated
keyword values for min-width, min-height, max-width, and
max-height. Then, implement a MinLength which can be used for min-width
and min-height. So far this just maps to Gecko values.

Refs #13821.
2017-02-23 16:28:26 -05:00
Glenn Watson
30ff2f8f0d Introduce CSSPixel as a replacement for ViewportPx and PagePx. 2017-02-24 06:58:10 +10:00
Anthony Ramine
8a8ee2888c Remove rustc-serialize from style and style_traits 2017-02-23 21:47:23 +01:00
bors-servo
ad2ca516a2 Auto merge of #15695 - canaltinova:stylo-font-face, r=Manishearth
Stylo: Add constructors for @font-face descriptors

<!-- Please describe your changes on the following line: -->
Part of https://bugzilla.mozilla.org/show_bug.cgi?id=1340728

---
<!-- 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 #1340728](https://bugzilla.mozilla.org/show_bug.cgi?id=1340728)

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15695)
<!-- Reviewable:end -->
2017-02-23 12:37:06 -08:00
bors-servo
56a99577b3 Auto merge of #15535 - froydnj:global-style-thread-pool, r=bholley
geckolib: use a global thread pool for styling

By having a single thread pool, rather than one per document, we use less memory.  This addresses https://bugzilla.mozilla.org/show_bug.cgi?id=1324250.

This may be obvious to an experienced Rust programmer, but I went with raw pointers because trying to use `Option` global variables resulted in complaints about turning on feature flags in nightly Rust.  Since this is for stylo, nightly features are not appropriate 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
- [ ] 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15535)
<!-- Reviewable:end -->
2017-02-23 10:15:41 -08:00
Nazım Can Altınova
9c28f21251
stylo: add constructors for @font-face descriptors 2017-02-23 18:38:14 +03:00
bors-servo
65624dbfc2 Auto merge of #15692 - servo:moz-table-border-nonzero, r=upsuper
Stylo: add :-moz-table-border-nonzero pseudo-class.

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

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

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15692)
<!-- Reviewable:end -->
2017-02-22 23:41:26 -08:00
Simon Sapin
1a30c98f5f Stylo: add :-moz-table-border-nonzero pseudo-class. 2017-02-23 08:40:51 +01:00
Michael Nelson
a0998d30d4 Update PropertyDeclarationBlock::to_css so that the iteration of
possible shorthands matches the linked spec.

Previously substep 5 attempted to serialize the complete shorthand
declaration and substep 6 skipped to the next shorthand only if the
current shorthand was not serialized, but this did not catch empty
serializations. The spec on the other hand specifically says that the
*value* should be evaluated first and if the value is empty substep 6
should skip to the next shorthand - which is what happens now.

To do this required some refactoring which mostly simplifies the code.
Specifically:
 - append_declaration_value was refactored so that importance is not
   required as a arg (by moving it to the end of append_serialization)
   and is_overflow_with_name was removed as an arg also (initially I
   refactored it elsewhere, but it turns out it's no longer required at
   all - more below). With these changes, append_declaration_value can
   be used within the algorithm for to_css to obtain just the value for
   substep 5.
 - Substeps 7 and 8 of the algorithm become explicit (they were implicit
   before) by passing the value, shorthand and importance to
   append_serialization.
 - serialize_shorthand_to_buffer is no longer required (as the algorithm
   serializes the value first instead, as per the spec.

A surprising result of this was that I could also remove a lot of code
handling the special case of the overflow properties serialization. This
is because the overflow's LonghandToCss implementation of
to_css_declared already does the right thing according to the spec - it
writes the single value if both overflow-x and -y are equal, and
writes nothing otherwise - so that the algorithm now skips that shorthand
instead rendering the longhands.
2017-02-23 17:26:59 +11:00
shubDhond
ddc189c820 Invalid three value positions are no longer accepted 2017-02-23 00:21:19 -05:00
Glenn Watson
ffcb319324 Add support for most of the border-image properties, pass to WR.
This adds support for:
 * border-image (images, not gradients yet)
 * border-image-source
 * border-image-slice
 * border-image-repeat (stretch + repeat only for now)

Remaining work:
 * Connect border-image-outset (WR supports this).
 * border-image-width
2017-02-23 14:15:20 +10:00
bors-servo
af292c4a71 Auto merge of #15682 - upsuper:arc-types, r=Manishearth
Simplify defining arc ffi types

r? @Manishearth

I don't have a good sense for creating syntax... so if you have any suggestion for the syntax of `impl_arc_ffi` macro, it would be appreciated.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15682)
<!-- Reviewable:end -->
2017-02-22 15:58:35 -08:00
Xidorn Quan
0cac276891 Simplify defining arc ffi types 2017-02-23 10:22:39 +11:00
Simon Sapin
d2e0098a03 Stylo: add content: -moz-alt-content 2017-02-22 17:36:00 +01:00
Nathan Froyd
fafcdda16a geckolib: move NUM_THREADS from style to geckolib
This change eliminates some gecko-only configuration in the style
component and moves NUM_THREADS closer to its only uses.
2017-02-22 11:35:08 -05:00
Nathan Froyd
3e81f8431e geckolib: use a global thread pool for styling
By having a single thread pool, rather than one per document, we use
less memory.  This addresses
https://bugzilla.mozilla.org/show_bug.cgi?id=1324250.
2017-02-22 11:25:07 -05:00
Hiroyuki Ikezoe
396db281e3 Fill computed property values where the propery is missing in initial and final keyframes.
@keyframes anim {
  from { opacity: 0; transform: none; }
  to { transform: none; }
}

In above case, we have to add opacity property and value in the 'to' keyframe.
2017-02-22 19:04:50 +09:00
Hiroyuki Ikezoe
501edfdbdb Get all animated properties in *all* keyframes.
@keyframes anim {
  from { transform: none; }
  to { opacity: 0; transform: none; }
}

In above case, we have to add opacity property and value in the 'from' keyframe.
2017-02-22 19:04:49 +09:00
Hiroyuki Ikezoe
279a50fb74 Make PropertyFiledBit usable for TransitionProperty. 2017-02-22 19:04:43 +09:00
bors-servo
07debf5dc0 Auto merge of #15669 - upsuper:bindgen-arc-type, r=heycam
Read ServoArcTypeList.h for list of arc types

r? @heycam

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15669)
<!-- Reviewable:end -->
2017-02-21 18:56:41 -08:00
Xidorn Quan
c2de28de1a Read ServoArcTypeList.h for list of arc types 2017-02-22 11:51:44 +11:00
bors-servo
ed731c80d7 Auto merge of #15675 - Manishearth:resync, r=mbrubeck
Resync bindings, use StyleShapeSource for clip-path

The bindings are getting harder to rebase over since the checked-in bindings differ from the generated ones.

Also includes https://bugzilla.mozilla.org/show_bug.cgi?id=1339314

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15675)
<!-- Reviewable:end -->
2017-02-21 10:05:01 -08:00
Manish Goregaokar
c49c5ec224 Update clip-path glue to use StyleShapeSource 2017-02-21 09:44:47 -08:00
Manish Goregaokar
a68f656e62 Resync bindings 2017-02-21 09:44:17 -08:00
bors-servo
d724bffde8 Auto merge of #15612 - UnICorN21:master, r=canaltinova
fixed the wrong behavior of border-spacing

fixed the wrong behavior of border-spacing
---
<!-- 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 #15489.

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15612)
<!-- Reviewable:end -->
2017-02-21 01:09:35 -08:00
bors-servo
f86e711506 Auto merge of #15662 - canaltinova:column, r=Manishearth
Fix parsing methods of column-{gap,width}

<!-- Please describe your changes on the following line: -->
They weren't accepting {normal, auto} keywords. Fixed parsing methods of these properties.

---
<!-- 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 #15088 (github issue number if applicable).

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

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15662)
<!-- Reviewable:end -->
2017-02-20 10:28:03 -08:00
Nazım Can Altınova
19978f2087
Fix parsing methods of column-{gap,width} 2017-02-20 21:07:19 +03:00
Ravi Shankar
c70fb42cea Add docs for grid types 2017-02-20 14:31:30 +05:30
Ravi Shankar
5d740e4edd Add gecko glue for grid <track-size> 2017-02-20 14:31:28 +05:30
Ravi Shankar
6d4cf7424c Regen bindings to include StyleGridTrackBreadth 2017-02-20 14:30:47 +05:30
Ravi Shankar
048f1f3316 Auto-generate parsing/serialization code for grid-auto-{rows,columns} 2017-02-20 14:30:46 +05:30
Ravi Shankar
7099743bbf Cleanup grid mako 2017-02-20 14:29:46 +05:30
Ravi Shankar
b55cc7f9da Computed value for TrackBreadth and TrackSize 2017-02-20 14:29:45 +05:30
Ravi Shankar
76d4a48885 Add parsing/serialization for <track-size> 2017-02-20 14:28:21 +05:30
Ravi Shankar
cf80c07d6d Add parsing/serialization for <track-breadth> 2017-02-20 14:28:20 +05:30
bors-servo
58aa6ce7ae Auto merge of #15629 - heycam:variables-leak, r=bholley,emilio
stylo: Destroy static Variables struct on shutdown.

Fix for https://bugzilla.mozilla.org/show_bug.cgi?id=1340457.

r? @emilio

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15629)
<!-- Reviewable:end -->
2017-02-19 21:12:57 -08:00
bors-servo
978a603190 Auto merge of #15516 - absoludity:fix-animation-serialization-15398, r=upsuper
Animation longhand serialization should be a list of each animation rather than a list of lists for each longhand.

Fixes part of #15398 -  serialization should be a list of each animation, rather than a list of lists for each longhand.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes are prework for #15398

- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15516)
<!-- Reviewable:end -->
2017-02-19 19:41:19 -08:00
Huxley
06650f8428 fixed the wrong behavior of border-spacing 2017-02-19 22:59:51 +08:00
bors-servo
d88e275f1f Auto merge of #15646 - Manishearth:marker, r=heycam
Actually include file with marker shorthand

This wasn't being included so nothing was actually happening.

r? @heycam or @mbrubeck

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15646)
<!-- Reviewable:end -->
2017-02-19 00:07:40 -08:00
Manish Goregaokar
1541a2d154 Actually include file with marker shorthand 2017-02-18 23:20:39 -08:00
bors-servo
72b76458b7 Auto merge of #15606 - mbrubeck:align-items, r=Manishearth
stylo: Implement align-items and justify-items

Stylo-only patch to match Gecko property support. Part of #15001. r? @Manishearth

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15606)
<!-- Reviewable:end -->
2017-02-18 22:26:06 -08:00
Nazım Can Altınova
d7941d5e35 stylo: Support lang property 2017-02-18 20:37:07 -08:00
Manish Goregaokar
ade09844b7 stylo: Support quirksmode text-decoration color override 2017-02-18 20:37:05 -08:00
Manish Goregaokar
f27cd541b3 stylo: Support -x-span for <col span> 2017-02-18 20:37:04 -08:00
Manish Goregaokar
b85e1f5f0c stylo: Add helpers for converting Gecko keywords to Servo, use to support keyword pres attrs 2017-02-18 20:31:08 -08:00
Manish Goregaokar
afccbf4a8c stylo: Support font-family presentation attribute 2017-02-18 20:31:06 -08:00
Manish Goregaokar
5cc0fa5ec2 stylo: Support pixel and percent presentation attributes 2017-02-18 20:31:01 -08:00
Manish Goregaokar
31945c287f stylo: Add necessary stubbed-out bindings for ServoSpecifiedValues 2017-02-18 20:30:59 -08:00
Cameron McCormack
58fcd5155e stylo: Destroy static Variables struct on shutdown. 2017-02-19 09:24:48 +08:00
bors-servo
7f3a75fa80 Auto merge of #15588 - servo:serde, r=SimonSapin
Update serde to 0.9

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15588)
<!-- Reviewable:end -->
2017-02-18 12:10:26 -08:00