Commit Graph

2547 Commits

Author SHA1 Message Date
Hiroyuki Ikezoe
078d71cb9c servo: Merge #16421 - Font variant shorthand (from hiikezoe:font-variant-shorthand); r=heycam
<!-- Please describe your changes on the following line: -->
This is a PR of https://bugzilla.mozilla.org/show_bug.cgi?id=1354876

---
<!-- 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 gecko has a bunch of test cases.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 8bd07ec5861b2e245dbd1fea388e87488cb69106
2017-04-13 20:48:14 -05:00
mckaymatt
4f97ea43f7 servo: Merge #16394 - Support line number offsets for inline stylesheets (from mckaymatt:line_num_offset__issue_15693); r=SimonSapin
<!-- Please describe your changes on the following line: -->
This allows accurate line numbers when reporting stylesheet errors.

@jdm This is going to require some effort to merge my changes with other recent changes to `ParserContext`. Because of that I would appreciate a quick sanity check before I put the time into performing the merge.
For example, should I store the `offset` as a u64, or should it be an Option?

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

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 94397ff0b4fed138241760770ff2d230985bed8a
2017-04-13 20:12:08 -05:00
Imanol Fernandez
a0cf2377cc servo: Merge #16260 - Gamepad API implementation (from MortimerGoro:gamepad); r=nox,larsbergstrom
<!-- Please describe your changes on the following line: -->

Gamepad API implementation. Tested with HTC Vive and Daydream controllers ;)

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because : current gamepad tests are manual (https://github.com/w3c/web-platform-tests/tree/master/gamepad). There is a  open issue about the best way to test WebVR/Gamepad without real devices https://github.com/w3c/webvr/issues/187. We'll work on the testing suite & mock devices/data on a separate issue.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 26c45275ffaccf746e47606a74b3aee519673e54
2017-04-13 16:10:42 -05:00
Josh Matthews
4b78ea0523 servo: Merge #16407 - Allow loading multiple stylesheets for the same link element (from jdm:style_panic); r=emilio
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #16399
- [x] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: ebc61bb2c3ac682ca366019b21160819ec3c7882
2017-04-13 11:29:58 -05:00
Emilio Cobos Álvarez
97397a1a44 servo: Merge #16424 - style: relax assertions in dom::element when setting selector flags (from servo:assert-layout); r=bholley
Source-Repo: https://github.com/servo/servo
Source-Revision: 3011f7613929052acd84c0936a89cc7a8e6acd44
2017-04-13 04:49:30 -05:00
Fernando Jiménez Moreno
eefa3097a4 servo: Merge #16348 - Unminify JS and dump it to a file before executing it (from ferjm:issue-14824-unminify-js); r=jdm
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #14824

Source-Repo: https://github.com/servo/servo
Source-Revision: bc9d7863b6763e59f7efed3d5c9870b19bafb195
2017-04-12 11:11:23 -05:00
Emilio Cobos Álvarez
70d11196ed servo: Merge #16378 - stylo: A bunch of media query fixes (from emilio:media-fixes); r=upsuper
Source-Repo: https://github.com/servo/servo
Source-Revision: bb66bf81d5b699f40c8b59ea5eb7390dc23579bb
2017-04-12 10:00:26 -05:00
Lucjan Suski
049681962e servo: Merge #16063 - Avoid panics for empty or multibyte image usemap (from methyl:image-usemap-panics); r=nox
<!-- Please describe your changes on the following line: -->
Some check were added to make sure we can call `split_at` with no risk of panics (when value is empty or the first char is multibyte).

---
<!-- 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 #15883 (github issue number if applicable).
- [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: 69eda6a60cece433e91d4bc578e94d8d5dfc9544
2017-04-12 07:34:27 -05:00
J. Ryan Stinnett
9f2106c618 servo: Merge #16373 - Stylo: Disable viewport units for @page (from jryans:at-page-viewport-units); r=emilio
Reviewed by @emilio in [bug 1353191](https://bugzilla.mozilla.org/show_bug.cgi?id=1353191).

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors

Source-Repo: https://github.com/servo/servo
Source-Revision: 5f6c27bb945eba1242be2fb4812ea5095ef26377
2017-04-12 05:38:50 -05:00
Tom Houlé
f88800313a servo: Merge #16229 - style: Do not immediately convert absolute specified lengths (from tomhoule:fix-lengths); r=emilio
<!-- Please describe your changes on the following line: -->

This PR aims to solve issue #15729. I tried to follow the recommendations there as much as possible.

This is my first attempt at contributing to Servo, so this will probably need a lot of input, although I'm eager to make it as polished as possible.

- The base inaccuracy issue seems solved, as can be easily verified with the `console.log` based example in the issue.
- Very basic unit tests were added.

I have doubts mainly about the right way to represent these new enum variants for the various length units:

1. With new enum variants in `NoCalcLength` *and* newtypes (current solution)
2. With a `NoCalcLength::Absolute` variant that contains a new `AbsoluteLength` enum, but without newtypes
3. Same as solution 2 but with newtypes

- I mostly cared about unit tests until now but will investigate other types of tests
- Tests to check the clamping
- Write a proper commit message

Thanks for your time and feedback :)

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

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

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: c8cd70f333d41864ff7bf7dce84301509c71d1d6
2017-04-12 01:16:32 -05:00
Keith Yeung
0baeb993db servo: Merge #16325 - Fix formdata-blob.htm (from KiChjang:fix-formdata-wpt); r=cbrewster
The other failure is a legitimate WPT bug, will fix upstream.

Source-Repo: https://github.com/servo/servo
Source-Revision: 638e1dc40bc70c3c0d9cd2efdaef852fdb371382
2017-04-10 09:27:01 -05:00
J. Ryan Stinnett
a795218deb servo: Merge #16315 - Stylo: @page support (from jryans:at-page-stylo); r=xidorn
Reviewed by upsuper in https://bugzilla.mozilla.org/show_bug.cgi?id=1345206.

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors

Source-Repo: https://github.com/servo/servo
Source-Revision: 80f6160580477d5ca984071eeeef26866be5c68e
2017-04-09 21:47:59 -05:00
Emilio Cobos Álvarez
43200e34ed servo: Merge #16293 - style: Refactor the selectors crate to remove ad-hoc logic (from emilio:refactor-selectors); r=bholley
Also refactors a lot of the restyle hint code to use these new hooks, and removes a lot of hacks in servo that shouldn't be needed because of correct handling of restyles due to attribute changes.

I just smoketested this, so going for a full try run now.

Source-Repo: https://github.com/servo/servo
Source-Revision: 949931ec0caa20b9f38a12863f610da562950b90
2017-04-09 05:17:55 -05:00
Anthony Ramine
b7ae6ba202 servo: Merge #16288 - Kill ResourceGroup (from nox:net); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 8f2ceb41dd1a039f1d0150dcb1c4e2ba6b22afa2
2017-04-07 05:53:31 -05:00
SendilKumar N
17f5661fb5 servo: Merge #15904 - making image element areas good at finding areas (from sendilkumarn:image-area); r=jdm
<!-- 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 #15884

Source-Repo: https://github.com/servo/servo
Source-Revision: c12b17d276df5e6960358b33b9c9ff2fc414e083
2017-04-05 08:49:22 -05:00
Sumit
5b52b7579e servo: Merge #16268 - Basic MutationObserver interface stubs (from jdm:tmp); r=jdm
Rebase and squash of https://github.com/servo/servo/pull/16190.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8e2a1477ae800b86eae45fc9c6daf85615100854
2017-04-05 01:56:16 -05:00
mckaymatt
347a7c7d89 servo: Merge #16234 - Add as_void_ptr helper method to &T (from mckaymatt:as_void_ptr_helper_method_15252); r=jdm
<!-- Please describe your changes on the following line: -->
r? @jdm
issue https://github.com/servo/servo/issues/15252
The primary goal of this PR is to add add a generic trait method that returns a void ptr.

In addition to that change, I made the casting explicit in `components/script/dom/bindings/callback.rs`  and `components/script/dom/promise.rs`. I did not use the new trait method because `AddRawValueRoot` is not looking for a `c_void`. It's looking for `std::os::raw::c_char`.
```rust
pub fn AddRawValueRoot(cx: *mut JSContext, vp: *mut Value,
                                          name: *const ::std::os::raw::c_char) -> bool;
```
So I replace the `as *const _ ` with a more specific cast.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because
 This seems like code cleanup. It shouldn't change behaviour.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 8d8fea0b4bf323be42eff3ad5624ce33892fb6df
2017-04-04 18:12:31 -05:00
Simon Sapin
bf0f7c964d servo: Merge #16246 - Revert to per-process shared lock for author-origin stylesheets (from servo:revert-per-doc); r=jdm
Fixes https://github.com/servo/servo/issues/16097
Reopens https://github.com/servo/servo/issues/16027

Source-Repo: https://github.com/servo/servo
Source-Revision: b6b6608ca3a46113bb488e4da835b4ee743299fd
2017-04-03 16:16:07 -05:00
Anthony Ramine
59dd2e1fee servo: Merge #16214 - Improve the net crate (from nox:net); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: c31ee6e300d9c0eb1e5671abba14f0584a910460
2017-04-03 07:47:38 -05:00
Xidorn Quan
8844613a88 servo: Merge #16241 - Stop passing url as string into Servo side (from upsuper:bug1352763-bug1352025); r=Manishearth,emilio
This is the Servo side changes of [bug 1352763](https://bugzilla.mozilla.org/show_bug.cgi?id=1352763) and [bug 1352025](https://bugzilla.mozilla.org/show_bug.cgi?id=1352025) which have been reviewed on Bugzilla.

Source-Repo: https://github.com/servo/servo
Source-Revision: 679b41893782663f7a2294cdf94dcedcf1337f98
2017-04-03 07:05:42 -05:00
Simon Sapin
aa7e1030b3 servo: Merge #16224 - Make the parser accept @font-face rules without font-family or src (from servo:valid-fontface); r=upsuper
Fix #16165.

Also, it turns out that the CSSFontFaceRule IDL specified in the css-fonts spec is not web-compatible. Instead browsers implement a .style attribute like in CSSStyleRule: https://github.com/w3c/csswg-drafts/issues/825

This in turn requires preserving data about which descriptors were set or not (distinguishing unset from set to a value that happens to be the initial value), so this commit also makes every field `Option<_>`.

Source-Repo: https://github.com/servo/servo
Source-Revision: fac0d17fd6edf996876d6e6379e48ef4f9cb43d6
2017-04-03 03:53:09 -05:00
ddh
f4513cce0d servo: Merge #15868 - Update Hyper and OpenSSL (from servo:hyper); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 82b0d5ad54d94a29f595d59cbb37dcbab5d5a5c8
2017-03-31 11:46:09 -05:00
Ying-Ruei Liang(KK)
940f61d613 servo: Merge #16170 - Implement HTMLAnchorElement.rel getter and setter (from TheKK:implement_html_anchor_element_rel); r=jdm
This PR makes code below possible:

```javascript
a = document.createElement("a");
a.rel = "foo";
console.log(a.rel); // print out "foo"
```
---
- [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

Source-Repo: https://github.com/servo/servo
Source-Revision: 2e743c2c56d7841ed9135e72581bf7db5e1092b5
2017-03-30 17:25:31 -05:00
Fernando Jiménez Moreno
d3da68494b servo: Merge #16184 - Terminate timer scheduler thread during shutdown (from ferjm:issue-16153-terminate-time-scheduler-shutdown); r=jdm
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #16153

Source-Repo: https://github.com/servo/servo
Source-Revision: a3d968833ba3653dd2b91f67adeb6c3faa1a256c
2017-03-30 07:31:02 -05:00
Xidorn Quan
4f43b83d45 servo: Merge #16187 - Implement access to CSSFontFaceRule for stylo (from upsuper:bug1345696); r=Manishearth,heycam
This is the Servo part of [bug 1345696](https://bugzilla.mozilla.org/show_bug.cgi?id=1345696) which has been reviewed on Bugzilla.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2084ee29c40291c9abf9b0922e05f0663b215333
2017-03-29 20:50:47 -05:00
Simon Sapin
bb86b5e599 servo: Merge #16183 - Replace ParsedDeclaration::expand with non-generic method (from servo:expand-diet); r=emilio
... to reduce its code size impact.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: f3a5ad2f497a13aff0faf7873ce98f0868e56101
2017-03-29 13:43:06 -05:00
Fernando Jiménez Moreno
ee5075ddeb servo: Merge #16048 - Make image cache per-document rather than global (from ferjm:issue-15701-image-cache); r=jdm
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #15701.
- [X] These changes do not require new tests because there should already be WPTs for image loads.

Source-Repo: https://github.com/servo/servo
Source-Revision: c85a02b14431ce775024d8a8dae9d3e727dedfc4
2017-03-27 13:50:46 -07:00
Emilio Cobos Álvarez
34ec538705 servo: Merge #16144 - style: Make numbers keep track of whether they were specified as calc() (from emilio:number-calc); r=heycam
Fixes #15960

Source-Repo: https://github.com/servo/servo
Source-Revision: b6bc49225e31b7c1e3f9cc3be660bb37afe33a95
2017-03-27 06:13:39 -07:00
Anthony Ramine
6a1e0d43c6 servo: Merge #16137 - Replace use of rustc_serialize::base64 by base64 (from nox:die-rustc-serialize-die); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: d992442dc6bb0b0c006b516c36ef4c6664e6b74c
2017-03-26 12:23:17 -07:00
Anthony Ramine
0c1fb35457 servo: Merge #16139 - Update rustc to 1.17.0-nightly (7dd4e2db7 2017-03-26) (from servo:rustup); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 7f2a4e01b1c989f86a7a80af5ffe16ec93c34809
2017-03-26 11:36:51 -07:00
Anthony Ramine
019e46e7e3 servo: Merge #16131 - Use NetworkConnector directly to account for replaced hosts (from nox:tungstenite); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 1105100c3beb9cff3a71677937269ecc523f2924
2017-03-26 10:17:16 -07:00
Anthony Ramine
0d48d9525d servo: Merge #16114 - Only pass the protocol in use in to establish a WS connection (from nox:tungstenite); r=KiChjang
Source-Repo: https://github.com/servo/servo
Source-Revision: bfd2aab71e61d4d71a42211e16789cf3a13c914c
2017-03-24 03:10:50 -07:00
Anthony Ramine
2b360f83d2 servo: Merge #16099 - Properly follow the spec in WebSocket::Constructor (from nox:tungstenite); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 189b0d9094a8448aedd778ae2aac538a3a9e4871
2017-03-24 01:46:14 -07:00
Bobby Holley
e0221b84fc servo: Merge #16092 - Handle URLs more efficiently in stylo (from bholley:specified_urls); r=emilio
Approved in https://bugzilla.mozilla.org/show_bug.cgi?id=1347435

Source-Repo: https://github.com/servo/servo
Source-Revision: d4d8293f22aaa4a310abc818c26464abceab894f
2017-03-22 19:13:07 -07:00
Imanol Fernandez
aebfe32bef servo: Merge #16083 - Fix WebVR data race condition when calling GetFrameData outside of VRDisplay.requestAnimationFrame callback (from MortimerGoro:display_raf_check); r=emilio
<!-- Please describe your changes on the following line: -->
Fix WebVR data race condition when calling GetFrameData outside of VRDisplay.requestAnimationFrame callback. Fixes a possible deadlock during the interval when the requestAnimationFrame is moved from window to VRDisplay.

---
<!-- 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: -->
- [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: 851cef4a2b53ce1cc8dad7a86b1946509ff96210
2017-03-22 15:03:04 -07:00
Emilio Cobos Álvarez
b96bb79541 servo: Merge #16077 - Bug 1345950: stylo: Fix slow selector flags. r=bholley (from emilio:slow-flags); r=bholley
Source-Repo: https://github.com/servo/servo
Source-Revision: 545f8744126157d273158c5404d07fb09621d3ea
2017-03-22 03:23:51 -07:00
Gregory Terzian
6570ce3d13 servo: Merge #15519 - implement structured clone callbacks - support Blob cloning (from gterzian:implement_structuredclone_callbacks); r=jdm
<!-- Please describe your changes on the following line: -->
1. Implement stubs for structured clone callbacks.
2. Support Blob cloning.

Partial implementation of https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm

---
<!-- 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 #15021 (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: 7be9f0e7c4f16c5626180c3a6b07abdecea408fe
2017-03-21 21:17:25 -07:00
Lucjan Suski
910ab3f184 servo: Merge #16061 - Use servo_config::opts only on linux target (from methyl:master); r=Manishearth
It's not used for other architectures and triggers warnings.

<!-- 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 #16058
- [x] These changes do not require tests because it's purely refactoring task

<!-- 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: 2f6cf2e9c883d919b35d952f47d6bb1670f21def
2017-03-21 10:18:25 -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
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
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
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
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
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
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
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
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