Commit graph

16155 commits

Author SHA1 Message Date
Hiroyuki Ikezoe
88c69206eb Do not call get_animation_rules for pseudo elements other than ::before and ::after. 2017-03-17 12:27:51 +09:00
Hiroyuki Ikezoe
bcdd1c1739 binding-update 2017-03-17 12:26:26 +09:00
bors-servo
f53692cd03 Auto merge of #15993 - servo:utf84eva, r=Manishearth
Remove rust-encoding from geckolib.

It wasn’t used, gecko always passes UTF-8 for parsing stylesheets.

<!-- 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/15993)
<!-- Reviewable:end -->
2017-03-16 20:07:37 -07: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
bors-servo
47f0b4155c Auto merge of #15987 - nox:h5e, r=Ms2ger
Fix a couple of HTML parsing issues

<!-- 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/15987)
<!-- Reviewable:end -->
2017-03-16 17:36:00 -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
bors-servo
0a747e23c6 Auto merge of #15966 - mbrubeck:any, r=emilio
Bug 1340683 - stylo: Implement the :-moz-any pseudo-class

Adds support for the non-standard [:-moz-any](https://developer.mozilla.org/en-US/docs/Web/CSS/:any) selector.

---

- [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=1340683
- [x] These changes do not require tests because they are gecko-only

<!-- 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/15966)
<!-- Reviewable:end -->
2017-03-16 16:19:12 -07:00
bors-servo
e62d029ed6 Auto merge of #15906 - mchv:mchv-safe-browsing-context, r=asajeffrey
Access browsing context safely

Current browsing context accessor in `Document` unwraps the browsing context `Option` which prevents document to handle correctly the case when there is no browsing context.

This is the reason servo panics with `session-history.max-length=1` (https://github.com/servo/servo/issues/15877).

As it is my first contribution, I added a `safe` method to retrieve the browsing context rather than change the existing method, but I am happy to change if you think this is the right approach. I did not as well replace all existing method call to the `safe` method, to focus on fixing the issue.

If someone can give me a bit of guidance for the test, I will try to contribute one.

---
<!-- 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
- [ ] `./mach test-tidy` does not report any errors
- [X] These changes fix #15877.
- [ ] 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/15906)
<!-- Reviewable:end -->
2017-03-16 15:41:07 -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
n0max
6f470e497f Fix crop_area_byte_length calculation in crop_image and add tests 2017-03-16 21:43:31 +01:00
Simon Sapin
19c71a9082 Remove rust-encoding from geckolib.
It wasn’t used, gecko always passes UTF-8 for parsing stylesheets.
2017-03-16 20:22:40 +01:00
Matt Brubeck
2872c8bfab Bug 1340683 - stylo: Implement the :-moz-any pseudo-class 2017-03-16 11:44:47 -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
Anthony Ramine
6b43624a71 Properly handle annotation-xml integration points (fixes #15980) 2017-03-16 16:35:38 +01:00
Alan Jeffrey
f05577cb29 Disabled tinyfiledialogs when running headless. 2017-03-16 08:48:33 -05:00
bors-servo
403bfdaaee Auto merge of #15983 - canaltinova:pseudo-classes, r=upsuper
Stylo: Add some missing pseudo classes

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

<!-- Either: -->
- [X] These changes do not require tests because they are stylo 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/15983)
<!-- Reviewable:end -->
2017-03-16 05:21:29 -07:00
Nazım Can Altınova
bd7c8eb513
Stylo: Add support for :valid/:invalid/:-moz-ui-valid pseudo-classes 2017-03-16 13:44:50 +03:00
Nazım Can Altınova
04af68a4b4
Stylo: Add placeholder-shown/target pseudo-classes to pseudo_class_list 2017-03-16 13:44:23 +03: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
b37f991cb8 stylo: Add parsing support for functional non-ts pseudoclasses, add stub -moz-system-metric pseudo
MozReview-Commit-ID: KADDH6adZqR
2017-03-16 00:00:37 -07:00
Manish Goregaokar
6b9a6806b8 stylo: Support system colors
MozReview-Commit-ID: HUfTdcMRoEx
2017-03-15 22:33:45 -07:00
Manish Goregaokar
c4f5f469b8 Replace non_ts_pseudo_class_list include hack with higher order macro
MozReview-Commit-ID: IBGhult0Ujv
2017-03-15 16:46:14 -07:00
Alan Jeffrey
f9c5d0c117 Implement dissimilar-origin postMessage. 2017-03-15 14:57:25 -05: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
304cafe57d Auto merge of #15941 - emilio:media, r=heycam
style: Fix media query parsing when invalid queries are present.

Fixes [bug 1347273](https://bugzil.la/1347273).

<!-- 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/15941)
<!-- Reviewable:end -->
2017-03-15 09:56:40 -07:00
Emilio Cobos Álvarez
f69983930d
style: Fix media query parsing when invalid queries are present. 2017-03-15 17:45:39 +01:00
bors-servo
ed98cb9c0a Auto merge of #15938 - servo:form-owner, r=nox,jdm
Implement the form owner concept

<!-- 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/15938)
<!-- Reviewable:end -->
2017-03-15 09:16:08 -07:00
Mukilan Thiyagarajan
38a61712e4 Implement the form owner concept 2017-03-15 16:39:55 +01:00
bors-servo
e600e0495c Auto merge of #15536 - asajeffrey:script-document-domain-setter, r=nox
Implement setter for document.domain

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

This PR implements the setter for `document.domain`.

It builds on #15438 and #15478, only the last commit is part of this PR.

It includes tests for similar-origin security checks.

---
<!-- 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 #934.
- [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/15536)
<!-- Reviewable:end -->
2017-03-15 08:35:41 -07:00
Alan Jeffrey
5348b63e38 Implement setter for document.domain 2017-03-15 10:34:23 -05: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
bors-servo
9986b42333 Auto merge of #15961 - upsuper:bug1345698, r=heycam
Implement access to CSSNamespaceRule for stylo

This is the Servo side changes of [bug 1345698](https://bugzilla.mozilla.org/show_bug.cgi?id=1345698).

<!-- 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/15961)
<!-- Reviewable:end -->
2017-03-15 03:58:06 -07:00
Xidorn Quan
c9c21e72b1 Add bindings for namespace rule. 2017-03-15 21:56:59 +11:00
bors-servo
5bfa87a8e2 Auto merge of #15821 - montrivo:ImDataConstructors, r=Ms2ger
Implement ImageData constructors #15671 -- 1

<!-- Please describe your changes on the following line: -->
Implement ImageData constructors
* new constructors in the imagedata.rs file
* modification of the ImageData::new method
* new method ImageData::from_vec
* new wpt test file imagedata.html

---
<!-- 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 affect #15671  (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/15821)
<!-- Reviewable:end -->
2017-03-15 02:23:48 -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
montrivo
46a25d621c Implement ImageData constructors #15671 2017-03-14 23:16:17 +01:00
Hiroyuki Ikezoe
60fadb2d2c Use computed styles of the pseudo and its parent when calling Gecko_UpdateAnimations to update CSS Animations on pseudo-elements. 2017-03-15 06:35:32 +09: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
Alan Jeffrey
1f61a549a3 Added some same-origin-domain checks. 2017-03-14 14:36:03 -05:00
bors-servo
569d51dc30 Auto merge of #15878 - asajeffrey:constellation-frames-store-loaddata, r=cbrewster
Frames in the constellation store LoadData rather than just URLs.

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

Include LoadData in each session history entry, so that when we reload discarded documents we can include POST data etc.

---
<!-- 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 #14888
- [X] These changes do not require tests because we don't test document discarding.

<!-- 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/15878)
<!-- Reviewable:end -->
2017-03-14 12:30:20 -07:00
Alan Jeffrey
1a44a76b57 Frames in the constellation store LoadData rather than just URLs. 2017-03-14 14:28:21 -05: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