Commit Graph

5487 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
97c8f86462 servo: Merge #16056 - Revendor rust nsstring bindings (from emilio:nsstring-vendor); r=mystor
r? @mystor

Source-Repo: https://github.com/servo/servo
Source-Revision: 6d3f1666711670f061367aa560c1263a9546f2ab
2017-03-21 07:13:28 -07:00
Jonathan Turner
b093c31871 servo: Merge #16034 - Fix Windows UI and font squishing (from jonathandturner:fix_font); r=metajack
<!-- Please describe your changes on the following line: -->

This PR:

* updates the browserhtml dep (fixes https://github.com/servo/servo/issues/15255)
* updates the Windows font metric calculation (fixes https://github.com/servo/servo/issues/15698, based on codec-abc https://github.com/servo/servo/pull/15937#issuecomment-286513712)
* may address https://github.com/servo/servo/issues/15933.  With this PR, I was not able to repro

---
<!-- 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 tests because change are to UI/visual results of font drawing

<!-- 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: cea1760eb7689d88b18525fac7d53f9a12fdb8a1
2017-03-21 03:15:10 -07:00
Boris Chiou
72b73f9f97 servo: Merge #16055 - stylo: Bug 1343153 - Use servo css-parser for ParseEasing (from BorisChiou:stylo/animation/parse_easing); r=emilio
These patches fix [Bug 1343153](https://bugzilla.mozilla.org/show_bug.cgi?id=1343153).

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix Bug 1343153
- [X] These changes do not require tests because gecko has enough test cases for web animations.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5a656cfa54c7c125b309721f587d591d515999c2
2017-03-21 01:36:49 -07:00
Elliott Pardee
218f6fd478 servo: Merge #16054 - Making a few lines in layout_wrapper.rs a bit nicer, fixing #15811 (from vypr:master); r=Wafflespeanut
Source-Repo: https://github.com/servo/servo
Source-Revision: 3b15efd2ba72a69520320da99de9f1a0b4100d53
2017-03-20 20:15:31 -07:00
Simon Sapin
9da1c75af7 servo: Merge #16053 - Use AtomicRefCell instead of RwLock inside SharedRwLock for stylo (from bholley:shared_lock_atomic_refcell); r=bholley
@SimonSapin wrote the original patch in [1], and I tweaked it to conditionally compile. Just waiting for the try run to come back green before landing.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1348587

Source-Repo: https://github.com/servo/servo
Source-Revision: 32ca5f354030f68934e9c4f90cd5503da8ae16cc
2017-03-20 17:00:31 -07:00
Nazım Can Altınova
e6d10af7dc servo: Merge #16047 - Stylo: Update bindings for ServoType (from canaltinova:eventstate-bindings); r=emilio
This is needed for https://bugzilla.mozilla.org/show_bug.cgi?id=1348873

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

<!-- 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: 315e2dd1611928126e49ad610ccd5a447a4a65cc
2017-03-20 15:17:48 -07:00
Lucjan Suski
6e4af16136 servo: Merge #16051 - Make ImageData::new return Fallible instead of unwrapping a result (from methyl:master); r=jdm
Instead of unwrapping `new_with_jsobject` result, `ImageData::new` will just pass the error along.

It required tweaking `canvasrenderingcontext2d` as it no longer needs to assume the result is `Ok`.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because this is small and purely refactoring change

Source-Repo: https://github.com/servo/servo
Source-Revision: 22d40e3680ef9c237d56736012ec73c2e31abfc5
2017-03-20 13:25:20 -07:00
Matt Brubeck
2601014868 servo: Merge #16045 - Bug 1348487 - stylo: Don't allow combinators in :-moz-any (from mbrubeck:any); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1348487

Source-Repo: https://github.com/servo/servo
Source-Revision: 17098ddc8ffde03945387f98f52d1856ff1a8cd8
2017-03-20 08:31:25 -07:00
Emilio Cobos Álvarez
f0c2a4fc7f servo: Merge #15890 - selectors: Check the bloom filter at most once per complex selector (from emilio:bloom); r=heycam
Fixes https://github.com/servo/rust-selectors/issues/107

Source-Repo: https://github.com/servo/servo
Source-Revision: 4fa40c77036c0635abb6a567146a101d11521cb0
2017-03-20 06:26:38 -07:00
Panashe M. Fundira
fef89b9484 servo: Merge #15918 - PropertyDeclaration with CSSWideKeyword is parsed (from munyari:whitespace); r=emilio
Addresses #15401

Source-Repo: https://github.com/servo/servo
Source-Revision: 4a63581fadd41f9a1901498e47672c59d44b5fb0
2017-03-20 04:23:28 -07:00
Emilio Cobos Álvarez
4ca9c7b464 servo: Merge #16035 - stylo: Sequentialize binding generation if logging is enabled (from emilio:parallel-log-no-fun); r=upsuper
Otherwise the log is useless, and it's even slower than in parallel mode due to
the high lock contention.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9fdebf0934bd4fa97414756b9690a88ae63a991c
2017-03-20 03:43:26 -07:00
Manish Goregaokar
4251772b2a servo: Merge #16016 - Add separate specified value for keyword font sizes (from Manishearth:graft-font-size); r=upsuper
In Gecko, these keywords compute to different values depending on the
font.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 50fd39f068fe5a4a018bb4e7a602f50f10590524
2017-03-20 00:28:46 -07:00
Jeremy Chen
b3c33d07b8 servo: Merge #16036 - Stylo: Add support for text-size-adjust property (from chenpighead:text-size-adjust); r=upsuper
<!-- Please describe your changes on the following line: -->

Gecko supports -{moz,webkit}-text-size-adjust properties, but it only supports auto and none value.
Implement parsing/serialization for text-size-adjust property and its gecko glue.

---
<!-- 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 #16002 (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: 103e827948e4c3592ee93cbed8adf270588b559e
2017-03-19 20:56:00 -07:00
Simon Sapin
f1c7cf2486 servo: Merge #16033 - Per-document shared lock for author-origin stylesheets (from servo:per-document-locks); r=emilio
Fix #16027

Source-Repo: https://github.com/servo/servo
Source-Revision: 8d25dcb8b5f83728987171fe7a5b4905df741e58
2017-03-19 18:22:23 -07:00
Paul Rouget
6bd2618a33 servo: Merge #16030 - Expose a method to toggle wr profiler (from paulrouget:toggle-wr-profiler); r=glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: bea126fb7333ca4ffaa9e7556141bc68b01ffd53
2017-03-19 17:42:16 -07:00
Simon Sapin
80dfe1b881 servo: Merge #16014 - Per-process lock for CSSOM objects (from servo:style-ref); r=emilio
<!-- Please describe your changes on the following line: -->

Before this PR, every object reflected in CSSOM is in `Arc<RwLock<_>>` to enable safe (synchronized) mutable aliasing. Acquiring all these locks has significant cost during selector matching:

* https://bugzilla.mozilla.org/show_bug.cgi?id=1311469
* https://bugzilla.mozilla.org/show_bug.cgi?id=1335941
* https://bugzilla.mozilla.org/show_bug.cgi?id=1339703

This PR introduce a mechanism to protect many objects with the same `RwLock` that only needs to be acquired once.

In Stylo, there is one such lock per process (in a `lazy_static`), used for everything.

I non-Stylo Servo, I originally intended to have one such lock per document (for author-origin stylesheets, and one per process for user-agent and user sytlesheets since they’re shared across documents, and never mutated anyway). However I failed to have the same document-specific (or pipeline-specific) `Arc` reachable from both `Document` nodes and `LayoutThread`. Recursively following callers lead me to include this `Arc` in `UnprivilegedPipelineContent`, but that needs to be serializable. So there is a second process-wide lock.

This was previously #15998, closed accidentally.

---
<!-- 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: bb54f0a429de0e8b8861f8071b6cf82f73622664
2017-03-19 14:31:19 -07:00
Zach Ploskey
d01ee12ac7 servo: Merge #15604 - serialize font: to empty on non-default subprops (from zploskey:reset_font_shorthand_serialization); r=SimonSapin
Fixes font shorthand serialization so that it serializes to "" when non-default subproperties are defined. These subproperties are those defined in #15033.

Adds tests:
- font_should_serialize_to_empty_if_there_are_nondefault_subproperties
- font_should_serialize_all_available_properties

The second test was previously commented out and underwent some cleanup to make it run.

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

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

Source-Repo: https://github.com/servo/servo
Source-Revision: fbd561bc2fc2d5529f805c5ae07c04b3c343bc40
2017-03-19 08:26:43 -07:00
Simon Sapin
3e61b7ce40 servo: Merge #16029 - Remove never-sent ReflowWithNewlyLoadedWebFont message, fix #16026 (from servo:dead-code); r=nox
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #16026 (github issue number if applicable).

Source-Repo: https://github.com/servo/servo
Source-Revision: 058b93640f03a8ba434e54f891a4d51d79965c8c
2017-03-19 05:48:39 -07:00
Nazım Can Altınova
326a1ece85 servo: Merge #16028 - Stylo: Add support for -moz-* pseudo-classes for alt text (from canaltinova:pseudos-for-alt); r=Manishearth
<!-- 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 [Bug 1341642](https://bugzilla.mozilla.org/show_bug.cgi?id=1341642)

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

Source-Repo: https://github.com/servo/servo
Source-Revision: a2c33ac6e6e18c186e9af45274a7b8499ba1bc4c
2017-03-18 13:45:01 -07:00
George White
9e90e9167c servo: Merge #16024 - Add parsing/serialisation for 'grid-auto-flow' (from Wafflespeanut:gal); r=Wafflespeanut
Didn't want the work (and review comments) in #15364 to go wasted. Fixes #15313

Source-Repo: https://github.com/servo/servo
Source-Revision: e2aecc3ed7c66a49f2baf13c16e56c3fb6c990cd
2017-03-18 11:25:03 -07:00
Emilio Cobos Álvarez
30e6344e65 servo: Merge #16023 - style: Fix some nits (from emilio:nits); r=emilio
I was looking at the code that used Length for #16015, and found these two.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7fcba10614941d2c703c710227ec7367574e892f
2017-03-18 07:24:52 -07:00
Emilio Cobos Álvarez
f0bf9a2e63 servo: Merge #16022 - stylo: Add a build log mechanism (from emilio:stylo-build-log); r=upsuper
This will allow us to debug bindgen problems.

Source-Repo: https://github.com/servo/servo
Source-Revision: aa8b602f9e4b9fb205ec1859a0c733d4713e20bf
2017-03-18 06:45:01 -07:00
Bobby Holley
9cf05de86e servo: Merge #16015 - Box more specified values to bring SpecifiedValue/PropertyDeclaration sizes down to 24/32 bytes (from bholley:box_more_properties); r=Manishearth
I think these properties are generally rare enough that they're not worth adding 8 bytes of memmove overhead on every PropertyDeclaration. There are a _lot_ of 24-byte properties though, so I think that's probably a good sustainable level.

Source-Repo: https://github.com/servo/servo
Source-Revision: ae1a7cc7b8079491c2140d694467113dcc1f44a6
2017-03-17 22:19:51 -07:00
Xidorn Quan
66dba69571 servo: Merge #16006 - Implement -moz-box-ordinal-group property (from upsuper:box-ordinal-group); r=Manishearth
This PR fixes #16000.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8f3f8098c3c7e88dd851531f51e63f84437f9cf4
2017-03-17 15:15:01 -07:00
Alan Jeffrey
407cf3e44a servo: Merge #15799 - Implement dissimilar-origin window.parent and window.top (from asajeffrey:script-window-xorigin-parent); r=nox
<!-- Please describe your changes on the following line: -->

This PR implements `window.parent` and `window.top` for dissimilar-origin windows.

This PR builds on #15536, only the last commit is part of this PR.

---
<!-- 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 #14996 and fix #11660.
- [X] These changes do not require tests because there's already a parentage test in `mozilla/cross-origin-objects/cross-origin-objects.html`.

<!-- 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: 0a3b373a6ae4fdd68ab9d2a7386733ab0bdebe4b
2017-03-17 09:18:38 -07:00
Anthony Ramine
0fe16c6f53 servo: Merge #16013 - Enable the debugger on Android (from nox:mio); r=larsbergstrom
Apparently mio 0.6.5 now fully supports Android.

Source-Repo: https://github.com/servo/servo
Source-Revision: c2f4a59474692c5e75a388d1c47a2ca0e069bac0
2017-03-17 08:36:27 -07:00
cku
08bd86f6c5 servo: Merge #16004 - stylo: Update clip-path and transform-box glue (from CJKu:bug-1339674); r=heycam
<!-- Please describe your changes on the following line: -->
Gecko bug1340044 should be land immediately after this PR been merged.

---
<!-- 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 tests because it changes only the declaration type of mTransformBox

<!-- 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: 0b590aeed73df3c1f1891fbb276010b29a8d7051
2017-03-17 05:53:10 -07:00
Anthony Ramine
065f27b190 servo: Merge #16010 - Properly coalesce whitespace when given a reference child (fixes #15979) (from nox:h5e); r=KiChjang
Source-Repo: https://github.com/servo/servo
Source-Revision: 32784c5fa8f30f007a45122dae5ae16d06d1733d
2017-03-17 04:25:20 -07:00
Hiroyuki Ikezoe
a26c163d32 servo: Merge #16005 - Compose animation with servo's hashmap (from hiikezoe:animation-compose); r=heycam
<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 36234d717f7155d61a631e98f0a435110e1ec161
2017-03-17 03:09:31 -07:00
n0max
b8f070088b servo: Merge #15929 - Fix crop_area_bytes_length calculation and add tests (from n0max:canvas_drawimage_crop_fix); r=nox
<!-- Please describe your changes on the following line: -->
- Fix crop_area_bytes_length calculation (the height was multiplied by itself)
- Add tests for this error and for the case that the width is multiplied by itself

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

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 594a679002a5d74da761c17574ad5383a130b55a
2017-03-17 01:55:16 -07:00
Simon Sapin
53943a7cc8 servo: Merge #15993 - Remove rust-encoding from geckolib (from servo:utf84eva); r=Manishearth
It wasn’t used, gecko always passes UTF-8 for parsing stylesheets.

Source-Repo: https://github.com/servo/servo
Source-Revision: f53692cd03e19c30a2a6a3e0775798ed50d481e9
2017-03-16 20:07:37 -07:00
Simon Sapin
53dac67f5e servo: Merge #15992 - Rewrite PropertyDeclaration::id to help the optimizer (from servo:id-table); r=bholley
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
```

Source-Repo: https://github.com/servo/servo
Source-Revision: 9e8e1a47241c6906b4f5777da0d04e3655982fae
2017-03-16 19:13:37 -07:00
Anthony Ramine
690d4ab6e5 servo: Merge #15987 - Fix a couple of HTML parsing issues (from nox:h5e); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 47f0b4155cb2925dc0702aedf1a539b5ac22a286
2017-03-16 17:36:00 -07:00
Stefano Chiodino
483d8965d7 servo: Merge #15970 - #15842 Add gecko glue for caret-color (from 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: b1275591a08bec3888ee843d1f3638f63c5078a0
2017-03-16 16:55:51 -07:00
Matt Brubeck
ffc5796ae9 servo: Merge #15966 - Bug 1340683 - stylo: Implement the :-moz-any pseudo-class (from mbrubeck:any); r=emilio
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

Source-Repo: https://github.com/servo/servo
Source-Revision: 0a747e23c6adc1b49c2861bbf7e2969c62dc2c47
2017-03-16 16:19:12 -07:00
Mariot Chauvin
57ea0fa490 servo: Merge #15906 - Access browsing context safely (from mchv:mchv-safe-browsing-context); r=asajeffrey
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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: e62d029ed643e5ce503cfbc7525da75a705ccf71
2017-03-16 15:41:07 -07:00
Bobby Holley
431ef9a6ff servo: Merge #15997 - Rearrange PropertyDeclaration to avoid embedding DeclaredValue (from bholley:rearrange_propdecl); r=mbrubeck
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.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5d61afd11876fc82e3d3c52ddd8f7aa3e2c3de47
2017-03-16 14:48:53 -07:00
Alan Jeffrey
8daa23cd26 servo: Merge #15967 - Disabled tinyfiledialogs when running headless (from asajeffrey:headless-disable-tinyfd); r=jdm
<!-- Please describe your changes on the following line: -->

Disable tinyfiledialogs when running in headless mode.

---
<!-- 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 #15965 and #15962.
- [X] These changes do not require tests because we don't test tinyfiledialog pop-ups.

<!-- 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: e34aac03ffc1cff060eef26b7ed96a69dfd5b08f
2017-03-16 06:50:14 -07:00
Nazım Can Altınova
6bc8c9a9b9 servo: Merge #15983 - Stylo: Add some missing pseudo classes (from canaltinova:pseudo-classes); r=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
- [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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 403bfdaaeef567904c7b8d55784fd5db8f60ed8a
2017-03-16 05:21:29 -07:00
Boris Chiou
3efc83b39e servo: Merge #15978 - stylo: Fix shorthand parser for transition none (from BorisChiou:animation/transition_shorthand); r=upsuper
These changes fix [Bug 1347053](https://bugzilla.mozilla.org/show_bug.cgi?id=1347053) if we have the transition shorthand: `transition: none`.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes do not require tests because this is for stylo and Gecko side has enough tests.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4dab2b5dbcf6833a7c44b6450062d557b46dc5a6
2017-03-16 02:17:08 -07:00
Manish Goregaokar
dae7fa4c8e servo: Merge #15976 - stylo: Add parsing support for functional non-ts pseudoclasses, add stub -moz-system-metric pseudo (from Manishearth:stylo-stub-system-metric); r=heycam
r=heycam from https://bugzilla.mozilla.org/show_bug.cgi?id=1341086

Source-Repo: https://github.com/servo/servo
Source-Revision: 78c8edfb0a0556b3a579214c42b5bae37f0d73fd
2017-03-16 00:01:19 -07:00
Manish Goregaokar
9a1b6f3231 servo: Merge #15974 - stylo: Support system colors (from Manishearth:stylo-system-colors); r=heycam
r=heycam from https://bugzilla.mozilla.org/show_bug.cgi?id=1340696

Source-Repo: https://github.com/servo/servo
Source-Revision: 261a51a13a4a7742a7362534ae92023dfe38e630
2017-03-15 22:34:19 -07:00
Manish Goregaokar
860fbf886b servo: Merge #15971 - Replace non_ts_pseudo_class_list include hack with higher order macro (from Manishearth:nonts); r=nox
Cleaner, and easier to work with.

We may need to expand the functionality to support integer and string pseudo classes like -moz-system-metric

Source-Repo: https://github.com/servo/servo
Source-Revision: d30978246162e8a9bfad42b43ab6a05c90421c6e
2017-03-15 16:55:43 -07:00
Alan Jeffrey
d497b7cef8 servo: Merge #15679 - Implement cross-thread postMessage (from asajeffrey:script-postMessage-xorigin); r=emilio
<!-- Please describe your changes on the following line: -->

This PR implements cross-thread postMessage,

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

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 1caf8a71dcdb9d749ad2d2c9d82fe0d913d7e17c
2017-03-15 12:59:15 -07:00
Bobby Holley
966130a4d8 servo: Merge #15953 - Make size_of tests measure stylo and reduce the size of stylo PropertyDeclarations by 16 bytes (from bholley:size_of_stylo); r=Manishearth
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.

Source-Repo: https://github.com/servo/servo
Source-Revision: f5c67fda04195bd6d8ef10a73b9158eb60dbd6d7
2017-03-15 11:23:24 -07:00
Emilio Cobos Álvarez
f4413e94c8 servo: Merge #15941 - style: Fix media query parsing when invalid queries are present (from emilio:media); r=heycam
Fixes [bug 1347273](https://bugzil.la/1347273).

Source-Repo: https://github.com/servo/servo
Source-Revision: 304cafe57d45921e460ff408ae18138f4eca10df
2017-03-15 09:56:40 -07:00
Mukilan Thiyagarajan
8c2fe2e716 servo: Merge #15938 - Implement the form owner concept (from servo:form-owner); r=nox,jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: ed98cb9c0a0ce66e2580773c0716ce86fa1f5377
2017-03-15 09:16:08 -07:00
Alan Jeffrey
c9f3ef23e6 servo: Merge #15536 - Implement setter for document.domain (from asajeffrey:script-document-domain-setter); r=nox
<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: e600e0495ce4ab0f1bb798689f8ebeab84258ec3
2017-03-15 08:35:41 -07:00
Xidorn Quan
feae274d32 servo: Merge #15956 - Fix -moz-user-select: tri-state (from upsuper:user-select-tri-state); r=heycam
Source-Repo: https://github.com/servo/servo
Source-Revision: 31d44d3f311af8b7ee9b9b3e9cfcc663466aabdb
2017-03-15 06:37:18 -07:00
Xidorn Quan
923f03a2aa servo: Merge #15961 - Implement access to CSSNamespaceRule for stylo (from upsuper:bug1345698); r=heycam
This is the Servo side changes of [bug 1345698](https://bugzilla.mozilla.org/show_bug.cgi?id=1345698).

Source-Repo: https://github.com/servo/servo
Source-Revision: 9986b42333a7438c02debd7fe8395a5c146a58df
2017-03-15 03:58:06 -07:00