Commit graph

1007 commits

Author SHA1 Message Date
Benjamin Dahse
8db0fcaa29 Make writing-mode affect computed display
If a box has a different writing-mode than its containing block, and has a specified display of inline, change the computed display to inline-block.
Also adds the second manual testcase from #15754 as a WPT to assert that the computed display does in fact change.
2017-03-20 18:20:15 +01:00
bors-servo
4a63581fad Auto merge of #15918 - munyari:whitespace, r=emilio
PropertyDeclaration with CSSWideKeyword is parsed

Addresses #15401

<!-- 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/15918)
<!-- Reviewable:end -->
2017-03-20 04:23:28 -07:00
bors-servo
50fd39f068 Auto merge of #16016 - Manishearth:graft-font-size, r=upsuper
Add separate specified value for keyword font sizes

In Gecko, these keywords compute to different values depending on the
font.

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

<!-- 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/16016)
<!-- Reviewable:end -->
2017-03-20 00:28:46 -07:00
Manish Goregaokar
c9198d92d5 Add separate specified value for keyword font sizes
In Gecko, these keywords compute to different values depending on the
font.

See https://bugzilla.mozilla.org/show_bug.cgi?id=1341775
2017-03-20 00:06:04 -07:00
Jeremy Chen
615c8cb5e6 stylo: Add support for text-size-adjust property 2017-03-20 11:34:48 +08:00
Panashe M. Fundira
ec87545774
PropertyDeclaration with CSSWideKeyword is parsed
Addresses #15401

The desired result is for `CSSWideKeyword`s to return false (they are
parsed) and other Custom declaration values to return true (they are unparsed).
2017-03-19 18:37:40 -04:00
Simon Sapin
d5074136e3 Rename ReadGuards to StylesheetGuards 2017-03-19 22:30:42 +01:00
Simon Sapin
aeffca2a59 Replace RwLock<StyleRule> with Locked<StyleRule> 2017-03-19 22:30:37 +01:00
Zach Ploskey
cbaa6e262c Serialize font to "" on some nondefault properties
Fixes font shorthand serialization so that it serializes to "" when
certain subproperties of the font shorthand are set to non-default
values. These subproperties are:
- font-size-adjust
- font-kerning
- font-variant-caps
- font-variant-position
- font-language-override

Additionally, enable the above subproperties in the tests.
2017-03-19 00:16:19 -07:00
George White
00da1eb810 Add parsing/serialisation for 'grid-auto-flow' 2017-03-18 23:38:31 +05:30
Emilio Cobos Álvarez
fe9d88326e
style: Fix alignment of the padding properties. 2017-03-18 15:05:25 +01:00
Bobby Holley
97dd3a1b08 Box more specified values to bring SpecifiedValue/PropertyDeclaration sizes down to 24/32 bytes.
MozReview-Commit-ID: xstAfjVQqi
2017-03-17 22:18:19 -07:00
bors-servo
8f3f8098c3 Auto merge of #16006 - upsuper:box-ordinal-group, r=Manishearth
Implement -moz-box-ordinal-group property

This PR fixes #16000.

<!-- 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/16006)
<!-- Reviewable:end -->
2017-03-17 15:15:01 -07:00
Xidorn Quan
a1acb29aed Add support for -moz-box-ordinal-group 2017-03-17 23:08:07 +11:00
Xidorn Quan
ab0e5c9d99 Switch column-count to use predefined integer type 2017-03-17 23:08:05 +11:00
Xidorn Quan
9233882d49 Switch z-index to use predefined integer type 2017-03-17 23:08:03 +11:00
Xidorn Quan
b489c4ed90 Make Interpolate impl generic for Either 2017-03-17 23:08:00 +11:00
Xidorn Quan
0d556ddbf0 Add a predefined integer type 2017-03-17 23:07:57 +11:00
cku
6ccbf499b8 stylo: Update transform-box glue. 2017-03-17 20:00:28 +08:00
cku
e8d8b9984f stylo: Update clip-path glue. 2017-03-17 19:55:31 +08:00
bors-servo
36234d717f Auto merge of #16005 - hiikezoe:animation-compose, r=heycam
Compose animation with servo's hashmap

<!-- Please describe your changes on the following line: -->
This is a PR for https://bugzilla.mozilla.org/show_bug.cgi?id=1340958

---
<!-- 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] These changes do not require tests because it's for stylo.

<!-- 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/16005)
<!-- Reviewable:end -->
2017-03-17 03:09:31 -07:00
Hiroyuki Ikezoe
c0baac4194 Add a function to convert AnimationValueMap to PropertyDeclarationBlock.
We need to convert all AnimationValue (AnimationValueMap) on an element
to PropertyDeclarationBlock in order to push the value inside the CSS cascade.

Two reasons we did not add the function in AnimationValueMap:

 1) All members of PropertyDeclarationBlock are private.
 2) Rust does not allow us impl for type alias, so if we do impl the function
    in AnimationValueMap we need to make AnimationValueMap as a tuple or struct.
2017-03-17 12:30:01 +09:00
Hiroyuki Ikezoe
52bee9a4cf Add AnimationValueMap and expose it in FFI.
Current Gecko composes all of effects in the composite order at once.
We can put each computed value into this AnimationValueMap every time composing
an effect.
2017-03-17 12:29:34 +09:00
bors-servo
9e8e1a4724 Auto merge of #15992 - servo:id-table, r=bholley
Rewrite PropertyDeclaration::id to help the optimizer.

If I’m reading the release-mode assembly correctly, before this change `PropertyDeclaration::id` is implemented with a computed jump:

```assembly
	lea	rcx, [rip + .LJTI117_0]
	movsxd	rax, dword ptr [rcx + 4*rax]
	add	rax, rcx
	jmp	rax
.LBB117_3:
	mov	dword ptr [rdi], 65536
	mov	rax, rdi
	ret
.LBB117_2:
	mov	dword ptr [rdi], 0
	mov	rax, rdi
	ret
.LBB117_4:
	mov	dword ptr [rdi], 131072
	mov	rax, rdi
	ret
.LBB117_6:
	mov	dword ptr [rdi], 262144
	mov	rax, rdi
	ret
.LBB117_7:
	mov	dword ptr [rdi], 327680
	mov	rax, rdi
	ret

; Four similar lines repeated for each of the few hundred variants...
```

With Rust 1.15 (currently used for geckolib) this doesn’t change significantly. In Nightly 1.17 however, the compiled code uses a lookup table, possibly thanks to https://github.com/rust-lang/rust/pull/39456.

```assembly
	movq	(%rsi), %rax
	cmpq	$171, %rax
	jne	.LBB23_1
	addq	$8, %rsi
	movq	%rsi, 8(%rdi)
	movb	$1, %al
	jmp	.LBB23_3
.LBB23_1:
	xorq	$128, %rax
	leaq	.Lswitch.table.6(%rip), %rcx
	movb	(%rax,%rcx), %al
	movb	%al, 1(%rdi)
	xorl	%eax, %eax
.LBB23_3:
	movb	%al, (%rdi)
	movq	%rdi, %rax
	retq
```

<!-- 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/15992)
<!-- Reviewable:end -->
2017-03-16 19:13:37 -07:00
Simon Sapin
9ff0153dda Rewrite PropertyDeclaration::id to help the optimizer.
If I’m reading the release-mode assembly correctly, before this change
PropertyDeclaration::id is implemented with a computed jump:

```assembly
	lea	rcx, [rip + .LJTI117_0]
	movsxd	rax, dword ptr [rcx + 4*rax]
	add	rax, rcx
	jmp	rax
.LBB117_3:
	mov	dword ptr [rdi], 65536
	mov	rax, rdi
	ret
.LBB117_2:
	mov	dword ptr [rdi], 0
	mov	rax, rdi
	ret
.LBB117_4:
	mov	dword ptr [rdi], 131072
	mov	rax, rdi
	ret
.LBB117_6:
	mov	dword ptr [rdi], 262144
	mov	rax, rdi
	ret
.LBB117_7:
	mov	dword ptr [rdi], 327680
	mov	rax, rdi
	ret

; Four similar lines repeated for each of the few hundred variants...
```

With Rust 1.15 (currently used for geckolib)
this doesn’t change significantly.
In Nightly 1.17 however, the compiled code uses a lookup table,
possibly thanks to https://github.com/rust-lang/rust/pull/39456.

```assembly
	movq	(%rsi), %rax
	cmpq	$171, %rax
	jne	.LBB23_1
	addq	$8, %rsi
	movq	%rsi, 8(%rdi)
	movb	$1, %al
	jmp	.LBB23_3
.LBB23_1:
	xorq	$128, %rax
	leaq	.Lswitch.table.6(%rip), %rcx
	movb	(%rax,%rcx), %al
	movb	%al, 1(%rdi)
	xorl	%eax, %eax
.LBB23_3:
	movb	%al, (%rdi)
	movq	%rdi, %rax
	retq
```
2017-03-17 01:09:30 +01:00
bors-servo
b1275591a0 Auto merge of #15970 - StefanoChiodino:master, r=emilio
<!-- Please describe your changes on the following line: -->
I've mostly followed the description of #15842, but on the last line, where `copy` is mentioned, I'm assuming that `clone` was meant instead. It doesn't run successfully `./mach build-geckolib` because

`/Users/stefano/dev/rust/servo/target/geckolib/debug/build/style-bea86181fb38deda/out/gecko_properties.rs:10990:36
      |
10990 |             self.gecko.mCaretColor.into()
      |                                    ^^^^ the trait
std::convert::From<gecko_bindings::structs::root::mozilla::StyleComplexColor> is not implemented for values::Either<cssparser::Color, values::Auto>`

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [X] These changes fix #15842 (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. -->

<!-- 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/15970)
<!-- Reviewable:end -->
2017-03-16 16:55:51 -07:00
Bobby Holley
8cf331a498 Rearrange PropertyDeclaration to avoid embedding DeclaredValue.
From https://bugzilla.mozilla.org/show_bug.cgi?id=1347719

This effectively combines the discriminants of the two enums and reduces the
size of PropertyDeclaration by one word.

MozReview-Commit-ID: 9rCRiSVZTQT
2017-03-16 14:40:55 -07:00
Stefano Chiodino
f195b247c0 #15842 Add gecko glue for caret-color.
Implement from(StyleComplexColor) for ColorOrAuto. Thanks @emilio. (+4 squashed commits)
Squashed commits:
[baf7cc0] Add clone to caret-color
[9cb82ca] Correctly call methods to copy a color in a SympleComplexColor and getting its auto
[c483f07] Add set and copy functions for caret_color
[0aa20be] Move caret-color and set its product property to gecko
2017-03-16 16:13:34 +00:00
Boris Chiou
3d8420e31b Bug 1347053 - Fix shorthand parser for transition none. r=xidorn
MozReview-Commit-ID: GUs1ByQsiMF
2017-03-16 17:05:31 +08:00
Manish Goregaokar
6b9a6806b8 stylo: Support system colors
MozReview-Commit-ID: HUfTdcMRoEx
2017-03-15 22:33:45 -07:00
bors-servo
f5c67fda04 Auto merge of #15953 - bholley:size_of_stylo, r=Manishearth
Make size_of tests measure stylo and reduce the size of stylo PropertyDeclarations by 16 bytes

Right now they don't, which means that we have four properties making PropertyDeclaration 16 bytes bigger than it should be.

I'm not sure if there's a better way to get these tests to run against stylo than to hoist them into the properties file, but I couldn't figure it out. This seems good enough.

<!-- 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/15953)
<!-- Reviewable:end -->
2017-03-15 11:23:24 -07:00
Bobby Holley
6744ed1639 Run size_of tests with test-stylo.
MozReview-Commit-ID: KapDMqX6OjH
2017-03-15 11:17:51 -07:00
Bobby Holley
9f44fd2d9d Box marker properties and list-style-image on stylo.
MozReview-Commit-ID: KnXLfHfITyG
2017-03-15 10:47:15 -07:00
bors-servo
31d44d3f31 Auto merge of #15956 - upsuper:user-select-tri-state, r=heycam
Fix -moz-user-select: tri-state

<!-- 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/15956)
<!-- Reviewable:end -->
2017-03-15 06:37:18 -07:00
Xidorn Quan
a304b5bfac Fix -moz-user-select: tri-state 2017-03-15 20:23:09 +11:00
Xidorn Quan
bd0109f8b9 Skip some parts of image-layer shorthands when they are initial
To make it closer to Gecko's serialization algorithm.
2017-03-15 17:27:46 +11:00
Xidorn Quan
a407b589db Don't serialize url() twice 2017-03-15 15:42:40 +11:00
bors-servo
de421216ad Auto merge of #15598 - abhiQmar:master, r=canaltinova
text-overflow accepts only valid values for the second part of value

… value #15491

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

<!-- 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/15598)
<!-- Reviewable:end -->
2017-03-14 16:03:27 -07:00
bors-servo
94a2262821 Auto merge of #15820 - snehasi:master, r=KiChjang
border-image no more accepting shorthand values

Fixes #15770

Added a check in border.mako.rs, if `w` and `o` are not none before returning Ok status

---
- [x] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #15770

- [ ] There are tests for these changes OR
- [X] These changes do not require tests because they fix the previous errors reported in #15770

<!-- 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/15820)
<!-- Reviewable:end -->
2017-03-14 13:20:08 -07:00
Manish Goregaokar
2ae317f526 stylo: Support counter-increment and counter-reset
MozReview-Commit-ID: DnSd8xAkidM
2017-03-14 09:25:02 -07:00
Manish Goregaokar
07723eba7a stylo: Implement remaining content values
MozReview-Commit-ID: 9fLM5bdR8hr
2017-03-14 09:24:58 -07:00
Manish Goregaokar
77d7490d59 stylo: Use ServoBundledURI everywhere else, fix from_ffi to handle the error case
MozReview-Commit-ID: DHNKLm3y5Gv
2017-03-14 09:16:30 -07:00
Sneha Sinha
30028959b8 border-image no more accepting shorthand values
Fixes #15770

Added a check in border.mako.rs, if w and o are not none before
returning Ok status
2017-03-14 21:38:41 +05:30
Emilio Cobos Álvarez
b4de69e3eb
style: Avoid cloning all over the error reporter. 2017-03-14 00:49:18 +01:00
Emilio Cobos Álvarez
eaf27ccfa0
style: Kill SharedStyleContext::default_computed_values.
Now that cascade() gets a Device, we can use the default computed values from
there to avoid propagating that state all over the place.

Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-03-14 00:49:16 +01:00
Matt Brubeck
16e318d055
Add support for non-standard -moz color keyword values.
Closes #15928
2017-03-14 00:49:08 +01:00
Emilio Cobos Álvarez
9c0424cca4
style: Remove unneeded indirection in default_computed_values. 2017-03-13 21:57:57 +01:00
Hiroyuki Ikezoe
1c607dcc2a Fill shortage values for animation/transition properties. 2017-03-13 12:42:38 +09:00
Hiroyuki Ikezoe
448b74ba18 Cascade animation-name property earlier than other animation properties.
As per the CSS Animations spec, in the case when multiple values for an
animation property are set, if the value length is less than the length
of animation-name property, then shortage values are filled up. Because
of this we need to know the length of animation-name proper before we
set other animation properties, so we need to cascade animation-name property
earlier than other animation properties.
We do the same thing for transition-property.
2017-03-13 12:42:18 +09:00
Hiroyuki Ikezoe
c9b0ea314f Don't set transition properties to mAnimations array. 2017-03-13 12:42:01 +09:00