Commit Graph

8244 Commits

Author SHA1 Message Date
Xidorn Quan
a5effe547c servo: Merge #14857 - Add support for -moz-top-layer (from upsuper:moz-top-layer); r=emilio
<!-- Please describe your changes on the following line: -->
r? @Manishearth

---
<!-- 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: 65497b493ae011d4787f5ca9a7e178d3e17fde8a
2017-01-05 04:45:40 -08:00
Hiroyuki Ikezoe
41946d7274 servo: Merge #14851 - animation-iteration-count property is a number instead of integer (from hiikezoe:float-iteration-count-rebased); r=emilio
<!-- Please describe your changes on the following line: -->
This is a revised PR  for #14732.
@emilio?
---
<!-- 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] 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: 1d9bbfa07b5aef22a318808e3796872ee12e665c
2017-01-05 03:44:20 -08:00
Eric Anholt
eaf4d76084 servo: Merge #14847 - webgl: implement bufferData (from anholt:webgl-bufferdata); r=emilio
<!-- Please describe your changes on the following line: -->

Adds support for the other overload of bufferData, fixing many conformance tests.  In the process I had to fix the webidl codegen in the overload-distinguished-by-an-object case.  Also includes a little fix for glEnable() validation.

---
<!-- 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: 4216c16879efb6e87b3ba3b7b4d5c2aeb8e2739d
2017-01-05 02:11:29 -08:00
Boris Zbarsky
d934174175 servo: Merge #14848 - Stop using global initial styles for stylo; the initial styles need to be per-document (from bzbarsky:initial-styles); r=bholley
<!-- 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 https://bugzilla.mozilla.org/show_bug.cgi?id=1298588

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests on the servo side because behavior is unchanged.  Gecko-side tests probably exist.

<!-- 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: 143dfc879e609603839502d61bc064fba96cc80f
2017-01-04 21:01:38 -08:00
Alan Jeffrey
71d121887c servo: Merge #14312 - Implement discarding Document objects to reclaim space (from asajeffrey:script-discard-documents); r=cbrewster
<!-- Please describe your changes on the following line: -->

This PR implements document discarding. Active documents are kept alive strongly, but inactive documents are only kept alive weakly. When a document is GCd, it is marked as discarded, and if it is every reactivated, a reload of the URL is triggered.

Note that this PR is pretty aggressive about discarding, and can any inactive document (other than those being kept alive by other same-origin pipelines). We might want to damp it down a bit.

Also note that this interacts with browser.html in that the reloading triggered by reactivating a document triggers mozbrowser events.

To test this, I added a `-Zdiscard-inactive-documents` debug flag, which discards all inactive documents, even ones which are reachable through other same-origin pipelines.

---
<!-- 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 #14262.
- [X] These changes do not require tests because we should be able to use the existing tests with `-Zdiscard-inactive-documents`.

<!-- 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: 16b0da5004fd730de87883daa35a78b6af01f042
2017-01-04 13:58:57 -08:00
Josh Matthews
a996fde1ee servo: Merge #14845 - Avoid restyling elements that aren't in a document (from jdm:restyle-ood); r=emilio
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #14480
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 2fe914e2fa68f44db903bc3de55d9823a44cdf0d
2017-01-04 12:19:00 -08:00
Ravi Shankar
09c2667a16 servo: Merge #14738 - Properly dispatch keypress event (from Wafflespeanut:keypress); r=jdm
<!-- Please describe your changes on the following line: -->

This was an attempt to fix #14659. It turned out that the problem wasn't what I thought it was. So, I didn't fix that. On the brighter side, this fixes two related issues.

- Previously, we were unable to launch `keypress` events from `input` and `textarea` elements, because [we'd been cancelling](1327ebd52f/components/script/dom/htmlinputelement.rs (L1120-L1124)) the key events, so that they don't trigger window navigation - #8400). I've introduced an enum to represent an additional state to an event's cancellation.
- [According to the spec](https://w3c.github.io/uievents/#keypress-event-order), `keypress` (if available) should be dispatched immediately after `keydown`, and it should be followed by `input`. Canceling `keypress` should also cancel `input`. But, we'd been dispatching `input` before `keypress`. We now dispatch `input` once the `keypress` event is on the respective elements.

---
<!-- 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 a refactor?

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

r? @jdm or anyone interested

Source-Repo: https://github.com/servo/servo
Source-Revision: 6f9ff7b8bf66cbeb7d539c6728db05f05aa8f85c
2017-01-04 10:52:06 -08:00
Emilio Cobos Álvarez
a6aefada7d servo: Merge #14844 - style: Simplify Debug impl for PropertyDeclaration reusing to_css (from emilio:to-css-simplification); r=SimonSapin
These two functions appear in the data from bug 1328497, and the second part of one is identical to the other.

I think the way to fix this is another one (either using static arrays to get
the interesting data, or making rust generate the equivalent code).

Source-Repo: https://github.com/servo/servo
Source-Revision: 96fd0837d3de70b1f0d8f2bff0253b0220e7e5ce
2017-01-04 09:37:48 -08:00
Josh Matthews
21f4c47f0f servo: Merge #14841 - Track stylesheet load's document instead of using element's current document (from jdm:stylesheet_document); r=emilio
For cases where a stylesheet load finishes in a different document than it started, we need to be more careful about which document we report the completion to. In this case we actually have separate requests for each document involved, but they previously used the same element to determine which document to interact with.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #14641
- [X] There are tests for these changes OR

Source-Repo: https://github.com/servo/servo
Source-Revision: 384e905be23cd10e7bc352da1171b9af9e6eaddc
2017-01-04 07:26:04 -08:00
Bobby Holley
b830eea173 servo: Merge #14835 - Switch to crates.io for atomic_refcell (from bholley:external_atomic_refcell); r=Manishearth
r? @Manishearth

See #14828 for backstory.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1e927ca88bf6622d5a87db75863f76976a1df56c
2017-01-03 19:20:59 -08:00
Manish Goregaokar
decaa4de10 servo: Merge #14827 - Add spec links to all CSS properties (from Manishearth:spec-doc); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 61f6454b9ccc053aa39ad4db4fc8ffb0c0432513
2017-01-03 14:28:29 -08:00
Bobby Holley
3e7b592e7b servo: Merge #14828 - Reimplement AtomicRefCell with pure atomics (from bholley:faster_atomic_refcell); r=Manishearth
While reviewing @bzbarsky's patches in [1], I started typing out some lore about how mutable AtomicRefCell borrows are actually cheaper than immutable ones, so we should prefer them where possible. But then I decided that this was a really dumb state of affairs and that we should just fix AtomicRefCell instead, and implement a proper AtomicRef{,Mut}::map while we were at it. So here we are.

This PR adds a from-scratch implementation of AtomicRefCell that aims to be 100% sound, even in unrealistic overflow scenarios. We should probably get this on crates.io eventually, but I want to land it landed in-tree first.

With this implementation, each operation (borrow or release) is one atomic instruction, and all borrow/release pairs (mutable or immutable) take 12 ns on my machine, which is what I'd expect. This is a 50% improvement over the previous implementation in the immutable case.

There may be some places where we could get away with Ordering::Release instead of Ordering::AcqRel, but it didn't seem worth it to try to reason it out.

r? @Manishearth

CC @emilio @SimonSapin @heycam @upsuper

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 57b2c2609eb05ab06291137904703565a25a1cca
2017-01-03 12:24:45 -08:00
Ms2ger
db3e1b39e3 servo: Merge #14831 - Rustfmt script_traits and net_traits (from servo:rustfmt-traits); r=nox
CC #8553.

Source-Repo: https://github.com/servo/servo
Source-Revision: 68ecb0484739ffacc4e76b4cbf54bcf20e5cca2b
2017-01-03 08:11:09 -08:00
Cameron McCormack
6243c29b80 servo: Merge #14830 - stylo: update bindings (from heycam:bindings-update-15); r=emilio
Bindings update for https://treeherder.mozilla.org/#/jobs?repo=stylo&revision=8ebbde564daf4f7019d874e4b888bd670c81e6cc.

r? @emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: 672f099c95f8b5b98b762beb2a36957e32713940
2017-01-03 06:08:30 -08:00
Anthony Ramine
864dd6aa8e servo: Merge #14686 - Improve dead_code handling a bit (from nox:dom); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 2694463b08f8f37b8a5351fa3199b3283b90cb3d
2017-01-03 05:13:23 -08:00
faineance
50d34566d3 servo: Merge #14706 - Allow passing --nocapture argument to test-unit mach command (from faineance:test_unit_no_capture); r=Wafflespeanut
This adds the ` --nocapture` argument to the test-unit mach command.
Defaulting to false, when given it passes `-- --nocapture` to cargo test to show stdout during test-unit runs.

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

<!-- 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: 955e2851bf715f2d7ec7898fdf9730b24fe69115
2017-01-03 00:36:13 -08:00
Ravi Shankar
460bbac31c servo: Merge #14829 - Fix browserhtml path (from Wafflespeanut:browserhtml); r=UK992
<!-- Please describe your changes on the following line: -->

I'd missed something in #14817, which now prevents us from running `./mach run -r -b`. @UK992 pointed this in the PR, but it got merged soon 😐

---
<!-- 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 a fix for mach

<!-- 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: 128aac921f4373b618418125ea6f7c6ac3797181
2017-01-02 23:44:19 -08:00
Matt McCoy
57552872cf servo: Merge #14784 - Updating http_network_or_cache_fetch to better match the fetch API spec (from mattnenterprise:fetch-api-updates); r=jdm,KiChjang
<!-- 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 #14742

<!-- 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: 987b640c54c86c020dc4948be2a41fd58e8ade02
2017-01-02 11:30:51 -08:00
Florent FAYOLLE
cc093decbd servo: Merge #14825 - Remove useless call to map() in constellation.rs (from fflorent:master); r=jdm
Remove a little bit useless call to map() in constellation.rs :)

Context: https://github.com/servo/servo/pull/14724/files#r94317893

---
<!-- 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 [this remark](https://github.com/servo/servo/pull/14724/files#r94317893)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because these are minor 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: b65eefe7d2f3a46e03c1c3ef6d893f8e3200ae77
2017-01-02 10:35:04 -08:00
Teodor Szente
57d6ec419b servo: Merge #14817 - Remove duplicate code in mach (from teosz:master); r=Wafflespeanut
<!-- Please describe your changes on the following line: -->
Move get_browserhtml_path to command_base

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because removing the duplicate code doesn't affect the behavior itself

<!-- 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: 2bf71800ef82ed0dad8668bad6f506d3744f1833
2017-01-02 06:41:00 -08:00
Emilio Cobos Álvarez
121224a608 servo: Merge #14819 - Document most of the remaining parts of the style system, make docs-by-default for the whole style system (from emilio:no-missing-docs); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 87847324a0815e2214fd34da89bbefa4222b1197
2017-01-02 04:10:56 -08:00
Simon Sapin
be2705247b servo: Merge #14689 - Update to rustc 1.16.0-nightly (4ecc85beb 2016-12-28) (from servo:rustup); r=Manishearth
<s>**This is not ready to land** since there is no corresponding Nightly build of Rust yet.</s> Update: we got a Nightly build on 2016-12-29: http://rusty-dash.com/nightlies

I made these changes to check that https://github.com/rust-lang/rust/pull/38566 fixes https://github.com/rust-lang/rust/issues/38535 (which it does, yay!) so I might as well publish them, we’ll need them soon enough.

---
<!-- 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: 9bdd0f401a89398fb2ecd4f6b54691a7c93b2e53
2017-01-02 03:03:40 -08:00
Simon Sapin
b9674a7721 servo: Merge #14821 - More docs in style (from servo:docs-in-style); r=emilio
Follow up to #14802.

r? @emilio

---
<!-- 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
- [ ] 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: 32eca899e6784a5ae440b2544a1b92bb238a7406
2017-01-02 02:08:01 -08:00
Cameron McCormack
b9d0a6a0ad servo: Merge #14790 - stylo: update bindings (from heycam:bindings-update-14); r=Manishearth
Bindings update for https://treeherder.mozilla.org/#/jobs?repo=stylo&revision=68a742b057d75c060fc7e37b8ab89bbffbbb9e2e.

r? @Manishearth

Source-Repo: https://github.com/servo/servo
Source-Revision: e995af9cff24801e3c2441f00cf65157b7c61b2c
2017-01-01 19:20:37 -08:00
Xidorn Quan
2b9b2c6976 servo: Merge #14769 - Update helper functions of StyleComplexColor (from upsuper:complex-color-update); r=heycam
<!-- Please describe your changes on the following line: -->
The definition of `StyleComplexColor` in the Gecko side was updated in [bug 1063162](https://bugzilla.mozilla.org/show_bug.cgi?id=1063162). The helper functions need update as well.

r? @Manishearth

Source-Repo: https://github.com/servo/servo
Source-Revision: bbe70c7c5f07a67c48523221cb5d9ba12cbb2151
2016-12-31 22:33:47 -08:00
Julien Levesy
4becda37bc servo: Merge #14796 - replace match by if let statements if possible (from jlevesy:jl-match-to-if-let); r=Wafflespeanut
<!-- Please describe your changes on the following line: -->
Hi there,

This PR replaces `match` statements by `if let` when possible.

Thanks for reviewing

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because this PR is a code cleanup patch.

<!-- 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: d967d89fc081ae0f48850f3e29e4a9848bd837c7
2016-12-31 21:28:41 -08:00
Emilio Cobos Álvarez
b5757b5057 servo: Merge #14802 - Document more style modules (from emilio:no-missing-docs); r=Wafflespeanut
Source-Repo: https://github.com/servo/servo
Source-Revision: 2ebcad10f58151a1c531d80794a0211ba12cbeb0
2016-12-31 15:34:51 -08:00
Eric Anholt
fe6309141e servo: Merge #14809 - webgl: Validate enums for blendEquation (from anholt:webgl-blend-enums); r=emilio
Improves a conformance test that tried passing in desktop GL enums for
blending.

---
<!-- 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: b29b33c84c366e38bbb0d2e887469f814bc4d876
2016-12-31 14:21:20 -08:00
Nazım Can Altınova
48031a5745 servo: Merge #14757 - Fix overflow serialization with CSS-wide keywords (from canaltinova:overflow); r=Manishearth
<!-- Please describe your changes on the following line: -->
Overflow does not behave like a normal shorthand. CSS-wide keywords were handled in their `to_css_declared` method. So I had to bypass this check to make it work.

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

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

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 62ff467be855f222829ec961a104a0fdd3e083b0
2016-12-31 11:26:21 -08:00
Emilio Cobos Álvarez
89013f9ba5 servo: Merge #14801 - style: Document and force documentation in a big chunk of the style crate (from emilio:no-missing-docs); r=mbrubeck,Manishearth,Wafflespeanut
Style no forced docs for the properties code and similar, but I ran out of time, and I think it's a nice improvement.

I'd appreciate a fast-ish turn-around time because this is pretty much prone to bitrot.

Source-Repo: https://github.com/servo/servo
Source-Revision: bd67163438317daa711b2411ce302aaf5bf4136a
2016-12-31 03:19:02 -08:00
Matt Brubeck
199f5d426d servo: Merge #14798 - Fix rowspan handling for rows that span to the end of the rowgroup (from mbrubeck:rowgroup); r=notriddle
This fixes `rowspan="0"` to behave as described in [the HTML spec](https://html.spec.whatwg.org/multipage/tables.html#attributes-common-to-td-and-th-elements):

> For this attribute, the value zero means that the cell is to span all the remaining rows in the row group.

It also prevents any `rowspan` from overlapping into another rowgroup, as required by [HTML § 4.9.12](https://html.spec.whatwg.org/multipage/tables.html#table-processing-model):

> Row groups cannot overlap each other. Similarly, column groups cannot overlap each other. A cell cannot cover slots that are from two or more row groups.

r? @notriddle or @pcwalton

---

- [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).
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because _____

Source-Repo: https://github.com/servo/servo
Source-Revision: c2ac495188efb5d2af75a0158a5f72614d5f6062
2016-12-30 21:56:00 -08:00
Emilio Cobos Álvarez
c6f610c9b9 servo: Merge #14793 - stylo: Support at-import (from emilio:stylo-at-import); r=heycam,Manishearth
Reviewed upstream by @heycam  and @Manishearth in:

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 569e61e7ff6231ff62b8dc402c3e33b6072af6d8
2016-12-30 19:12:55 -08:00
Matt Brubeck
f536061dca servo: Merge #14800 - Fix an unused variable warning in net_tests (from mbrubeck:warnings); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 30b67a8d7a2435c00177e4731531a2c5fbf54084
2016-12-30 17:28:06 -08:00
Raghav
ebf6723fe2 servo: Merge #14794 - Refactor HSTSList to use HashMap (from mrnayak:hsts-refactor); r=emilio
Refactored HSTSList to use HashMap, where the key of HashMap is the base domain. Every time when we check if a host is secure, we find the base domain of the host and get a vector of HSTS entries associated with the base domain.

While this will not give O(1) look up time, we would have a smaller list to iterate for every lookup. I have added one unit test to validate `HashMap` changes.

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

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

<!-- 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: b06f4aec67ff93b1d667a5817084b0952e56664e
2016-12-30 10:33:40 -08:00
Emilio Cobos Álvarez
e33a6984d2 servo: Merge #14739 - style: Cleanup and refactor how media types are represented (from servo:stylo-mq); r=Manishearth
This is necessary for the upcoming work in Stylo, given I plan to make MediaType
different for Servo and Gecko, and the Unknown variant doesn't fit in MediaType
to be fair, the device is never going to have any unknown media type.

Source-Repo: https://github.com/servo/servo
Source-Revision: d3875f6ec52fdb6bbe49719af6bff299c792ae0b
2016-12-30 06:05:43 -08:00
Ms2ger
0c2495a286 servo: Merge #14792 - Stop allowing unsafe code around thread_local (from servo:tl-unsafe); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 608511ddc3440bfa92b8cb001b5e9f10bc291150
2016-12-30 03:04:12 -08:00
Cameron McCormack
537718af60 servo: Merge #14776 - stylo: Don't persist styles on elements not in the document (from heycam:not-in-doc-persist); r=emilio
<!-- Please describe your changes on the following line: -->

This is the Servo half of https://bugzilla.mozilla.org/show_bug.cgi?id=1324983, which @emilio has already reviewed.

Source-Repo: https://github.com/servo/servo
Source-Revision: b49eb6f56664e5e8db326466726ccf3b58397168
2016-12-29 19:00:30 -08:00
UK992
76bfd8c1e3 servo: Merge #14737 - Package: Various improvements (from UK992:package-prefs); r=Wafflespeanut
Fixes https://github.com/servo/servo/issues/11966
Fixes https://github.com/servo/servo/issues/12707

Also adds simple mechanism to set os specific prefs, by adding  like `os:macosx,os:windows;` before pref name.

Source-Repo: https://github.com/servo/servo
Source-Revision: b5f3d7dd413886037de8f1bc435ede34a98421b3
2016-12-29 10:28:37 -08:00
Xidorn Quan
97376dcc30 servo: Merge #14768 - Upgrade libbindgen to 0.1.5 (from upsuper:upgrade-bindgen); r=emilio
0.1.4 is known to be broken on Windows, and earlier version may not work properly in various platforms.

r? @emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: ab623de2617c5a5414f4a0ac7cd66627214f82d5
2016-12-29 04:49:16 -08:00
Ms2ger
303d98f96d servo: Merge #14647 - Support the 'current' global object (from servo:current-global); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 885d152e92b20bdaeb0d0ad20affd269fc3b55d3
2016-12-29 01:38:19 -08:00
Raghav
f2c2d3f13a servo: Merge #14716 - Implement HSTS fetch step (from mrnayak:hsts); r=jdm
Implemented step nine of the main fetch. If current URL scheme is 'HTTP' and
current URL's host is domain and if current URL's host matched with Known
HSTS Host Domain Name Matching results in either a superdomain match with
an asserted includeSubDomains directive or a congruent match then we
change request scheme to 'https'. This change has been made in method.rs

A test case to validate this has been added in fetch.rs. For asserting
https scheme, a https localhost was required. For this purpose I have
created a self-signed certificate and refactored fetch-context and
connector.rs to programmatically trust this certificate for running this
test case.

This should fix https://github.com/servo/servo/issues/14363
<!-- 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 #14363

<!-- 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: c7991d596f7453d09c2b2a98eecce72f182a4e24
2016-12-29 00:35:09 -08:00
Xidorn Quan
51301d6bd9 servo: Merge #14771 - Add support of text-combine-upright for stylo (from upsuper:text-combine-upright); r=Wafflespeanut
<!-- 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
- [ ] 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 is just a trivial change for stylo only

<!-- 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: 49bdef98bff28771b189073f5f0d487fe9529b86
2016-12-28 21:19:26 -08:00
Prudhvi Rampey
5952b8fef9 servo: Merge #14762 - Error handled canvas closing (from prampey:error-handle); r=jdm
<!-- Please describe your changes on the following line: -->
Correctly handled error when Canvas doesn't close properly, with a descriptive warning.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because minor changes don't require tests.

<!-- 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: c6ea1ec91f4a0b79b4fcdfa05a9b492fa6c9a798
2016-12-28 13:49:02 -08:00
Raghav
15835c76a2 servo: Merge #14760 - Update links to DOM Parsing specification (from mrnayak:update-links); r=jdm
Changed links from https://domparsing.spec.whatwg.org/ to
https://w3c.github.io/DOM-Parsing/.

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

<!-- Either: -->
- [X] These changes do not require tests because these are link update

<!-- 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: 149facbb3c6da82d445aa29b694097d451711bbb
2016-12-28 12:05:23 -08:00
Nick Price
a0af6e8d8c servo: Merge #14746 - Default is top-to-bottom if unset, not bottom-to-top (from DominoTree:fix-linear-gradient); r=emilio
<!-- Please describe your changes on the following line: -->
Reverse linear gradient direction if not explicitly specified to match expected default behavior

---
<!-- 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 #14745 (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: adb3e12b72a3d11cbe0973321cbe8009c2555c7a
2016-12-28 10:46:53 -08:00
Sumant Manne
9dc5259c01 servo: Merge #14718 - Rewrote websocket array buffer handling to typed array API (from dpyro:websocket-typed-arrays); r=jdm
<!-- Please describe your changes on the following line: -➜
Replaced existing code for handling `BinaryType::Arraybuffer` from `JS_NewArrayBuffer` to `Uint8Array::create`.

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

<!-- Either: -->
- [X] These changes do not require tests because they replace an existing implementation

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

I am not certain the test suite will adequately verify my implementation as I am not familiar with the architecture. It compiles and passes the current tests.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0f600db3ae5f1464b5d8fed169e6d50974715013
2016-12-28 09:43:51 -08:00
mati865
eb3464f50e servo: Merge #14346 - Use MSVC toolchain if PLATFORM is defined (from mati865:master); r=UK992,larsberg
<!-- Please describe your changes on the following line: -->
`VSInstallDir` exists only when Visual Studio is installed.
`VS140COMNTOOLS` is defined by installing either Visual Studio or [Visual C++ Build Tools](http://landinghub.visualstudio.com/visual-cpp-build-tools)

It will allow to build MSVC based Servo without having to install whole Visual Studio (few GiB).

EDIT: Another (maybe cleaner) solution would be reverting 63ec96a57d

---
<!-- 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
- [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
- [x] These changes do not require tests because `VS140COMNTOOLS` variable is already used in [mach.bat](https://github.com/servo/servo/blob/master/mach.bat)

<!-- 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: 7f2da7483b2d0c71a227fb8707eea00b0602d977
2016-12-28 07:37:45 -08:00
Xidorn Quan
02804e87c7 servo: Merge #14754 - Skip invoking bindgen if no header changes (from upsuper:skip-bindgen); r=emilio
This can avoid doing bindgen when build script is called for updating other files, e.g. properties.

This uses a global modified time, so there is a chance that some of the files which can be skipped but not skipped. But given that we do all three files in parallel, that would unlikely affect the actual runtime.

Using lots of `Mutex` could be an issue, but it doesn't seem to be in practice. Since only one thread would hold the lock of `ADDED_PATHS`, there is never a competitor for the lock of `LAST_MODIFIED`.

r? @emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: 9e0d269353d9380cb5cd12170679f2e82ab8c9f7
2016-12-28 04:51:53 -08:00
Hiroyuki Ikezoe
ff5e2c7915 servo: Merge #14747 - Interpolate colors with premultiplied alpha (from hiikezoe:color-interpolation2); r=emilio
We need to clamp each interpolated values because some cubic-bezier functions
produce values that are out of range [0, 1].

r? @emilio

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

<!-- 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: f9d971771c62f244c338be1cb34e0aa191d64206
2016-12-28 02:06:38 -08:00
Shing Lyu
72f401280b servo: Merge #14124 - Flexbox trace (from shinglyu:flexbox-trace); r=glennw
<!-- Please describe your changes on the following line: -->
This is a follow up for #13740, so r? @jdm

The first patch enables JSON serialization for flexbox flows, the second one fixed format incompatibilities for the layout viewer.

The 3rd and 4th patches are just layout viewer UI enhancements, we could split that to a spearate PR if you prefer.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it's a trivial debug tool

<!-- 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: 58fec2f05a21eb69899c8ec21e4b95000cfed2f2
2016-12-28 00:33:31 -08:00