Commit Graph

5487 Commits

Author SHA1 Message Date
Imanol Fernandez
0dd62e4907 servo: Merge #14618 - WebVR API Implementation (from MortimerGoro:webvr_api); r=larsbergstrom,emilio,jdm,nox,asajeffrey,cvan
<!-- Please describe your changes on the following line: -->

WebVR API Implementation with HTC Vive support on Windows. The current implementations only enables the WebVR support on Windows. In other platforms the API is available on JavaScript but navigator.vr.getDisplays() returns an empty array. This will change when we add support for more VR providers and platforms ;)

Info about the architecture:
https://blog.mozvr.com/webvr-servo-architecture-and-latency-optimizations/
---
<!-- 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 _____

Proprietary openvr.dll must be copied next to servo.exe in order to test on HTC Vive (https://github.com/ValveSoftware/openvr/tree/master/bin/win64) I have added some of the official WebVR samples for testing. Switch on your headset and run:

mach run tests/html/webvr/room-scale.html

Source-Repo: https://github.com/servo/servo
Source-Revision: 518ef39cfd429082dd8dc0d5b13e2db637d08a53
2017-01-09 06:39:45 -08:00
Martin Robinson
9586a7d90c servo: Merge #14926 - Move some methods from display_list_builder.rs (from mrobinson:move-display-list-builder-methods); r=emilio
These methods are not only used during display list construction, so
they are a better fit for the flow structs themselves. This does
not introduce any behavior change, but should make it easier to fix

<!-- 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 they are a simple refactor.

<!-- 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: 23265321988113b290aff190f859be2290a81545
2017-01-09 04:31:30 -08:00
Cameron McCormack
84d8fd3b17 servo: Merge #14922 - Don't inherit all properties for eagerly computed pseudos if there are no matching rules (from heycam:pseudo-inherit); r=emilio
<!-- Please describe your changes on the following line: -->

When we resolve style for an eagerly computed pseudo-element, such as an anonymous box, if there are no matching rules we currently just clone the parent's style.  We should only do that if `inherit_all` is true, otherwise we should inherit only the inherited properties from the parent.

I was going to use `.unwrap_or_default()` on the result of looking up `precomputed_pseudo_element_decls`, but that didn't seem to work since that map lookup returns a reference and not a `Vec` itself.

r? @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
- [X] These changes fix https://bugzilla.mozilla.org/show_bug.cgi?id=1329121

<!-- 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: ebd4a8b3ee1aab910ef714420a814912fec31e30
2017-01-09 02:46:09 -08:00
Cameron McCormack
182f762c41 servo: Merge #14909 - stylo: update bindings (from heycam:bindings-update-16); r=Manishearth
Bindings update for https://treeherder.mozilla.org/#/jobs?repo=stylo&revision=5a96506c9435a414d37308298f526d25ea402607.

r? @Manishearth

Source-Repo: https://github.com/servo/servo
Source-Revision: 6a9e2fd7fb2b985909efeb71ed050c19bb2818d3
2017-01-08 19:13:36 -08:00
Dowon Cha
6ae17b7c11 servo: Merge #14895 - Added Websocket to RequestMode enum (from dowoncha:request-websocket); r=jdm
Added Websocket to RequestMode enum
---
<!-- 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 #14785  (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because matching the enum should have default control flow.

<!-- 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: 8fff2f29d0da97a35bece887506964f5fb4b33d6
2017-01-08 08:57:52 -08:00
Nazım Can Altınova
2a8af6ca68 servo: Merge #14913 - Refactor box longhands (from canaltinova:box-longhands); r=Manishearth
<!-- Please describe your changes on the following line: -->
Converted some longhands into `vector_longhand` to reduce some repeated codes.
Also some of longhands with same `SpecifiedValue` and `computed_value::T` changed. Re-exported SpecifiedValue instead of computed_value::T. Normally a computed_value can't have a parse function.

---
<!-- 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 they're not changing the behavior of the longhands.

<!-- 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: 0d5e021537a18d1e5668c099305cebf754e93007
2017-01-08 06:24:02 -08:00
Nikhil Shagrithaya
c39d7b403b servo: Merge #14648 - Implemented XMLHttpRequest.send(Document) (from cynicaldevil:xmlhttpreq-send); r=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 #9490 .

<!-- Either: -->
r? @KiChjang

`XMLHttpRequest/send-entity-body-document.htm` is not working atm, I get this output:
```
$ ./mach test-wpt tests/wpt/web-platform-tests/XMLHttpRequest/send-entity-body-document.htm
Running 1 tests in web-platform-tests

Ran 1 tests finished in 0.0 seconds.
  • 1 ran as expected. 1 tests skipped.
```
<!-- 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: 87cce8180a3feba92086da0e96ccea09fa177d98
2017-01-08 00:21:14 -08:00
mrnayak
19c268d2e4 servo: Merge #14865 - Implement Subresource Integrity (from mrnayak:sri-fetch); r=jdm
Implemented response validation part of https://w3c.github.io/webappsec-subresource-integrity/.
Implemented step eighteen of the main fetch. If a request has integrity metadata, then following steps are performed
1) Wait for response body
2) If the response does not have a termination reason and response does not match request’s integrity metadata, set response and internalResponse to a network error.

Dependency updated: html5ever-atoms from 0.1.2 to 0.1.3. This will not completely fix #14523, It will implement changes related to response validation. Request validation algorithm implementation needs CSP.

I did not update any WPT-Test. In my local system, I found some assertion issue dependent on the order of execution of test-case. It would be helpful if someone could do "try" build on these changes to get wpt results.

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

<!-- 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: f958dafcaeed643f1232a23f5c2d4f6ba141bfea
2017-01-07 23:14:37 -08:00
Keith Yeung
b62a1b9cd6 servo: Merge #14712 - Implement CSSKeyframeRule.style (from KiChjang:css-keyframe-rule-style); r=Manishearth
Fixes #14636.

r? @Manishearth

Source-Repo: https://github.com/servo/servo
Source-Revision: cdf14730ff4c17afdfdcc0cefbd0683a4324ba8e
2017-01-07 22:18:11 -08:00
Cameron McCormack
5bb9d7eb3c servo: Merge #14905 - stylo: support content property (from heycam:content); r=Manishearth
This is the Servo-side of https://bugzilla.mozilla.org/show_bug.cgi?id=1315155, which @Manishearth has already reviewed.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5d796a5453c9a005798ed72007c406b14742631c
2017-01-07 17:56:17 -08:00
Nazım Can Altınova
cafdcb6909 servo: Merge #14899 - Fix serialization of timing-function (from canaltinova:transition-timing); r=Manishearth
<!-- Please describe your changes on the following line: -->
`transition-timing-function` and `animation-timing-function` properties corrected to reflect [the spec](https://drafts.csswg.org/css-transitions/#serializing-a-timing-function). It was converting function keywords to `cubic-bezier` or `steps` functions directly. But we needed to store it to use in the serialization step.

---
<!-- 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 #14822 (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: 496447a363ca4fc5d6789241ccb0b94134917b9a
2017-01-07 16:50:27 -08:00
Emilio Cobos Álvarez
69f9dbad9f servo: Merge #14904 - Allow sharing non-common style affecting attribute selectors (from emilio:non-common-attrs); r=bholley
Something I just noticed while re-reading that code is that we prevent sharing among siblings with different non-common attributes, even though we already have the infra to match those selectors:

```rust
    if !match_same_not_common_style_affecting_attributes_rules(element,
                                                               candidate_element,
                                                               shared_context) {
        miss!(NonCommonAttrRules)
    }
```

Source-Repo: https://github.com/servo/servo
Source-Revision: 2225ccd46416443b1e196a14f5ff1b5dff5001d0
2017-01-07 15:28:15 -08:00
Manish Goregaokar
26ba9ca483 servo: Merge #14893 - Support property aliases (from Manishearth:alias); r=emilio
Aliases now get forwarded to their "original" property name at parse time. CSSOM continues to provide access through alias getters.

We'll need to probably add `${"-webkit-foo -moz-foo" if gecko else ""}` all over the place. Might want to come up with a convenient attibute name for that (`gecko_prefix="mw"`) or something.

r? @heycam or @bholley

Source-Repo: https://github.com/servo/servo
Source-Revision: d14158a592faa40fa027540578cd2c680cd8caf4
2017-01-07 13:56:19 -08:00
Prudhvi Rampey
3a5ec98854 servo: Merge #14891 - Cleaned up ripples due to MutJS to JS type change (from prampey:bluetooth-cleanup); r=jdm,emilio
<!-- Please describe your changes on the following line: -->
Changed all Mutable JS values to JS values in the following files and fixed any differences that might have been caused due to type change.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because minimal type changes made.

<!-- 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: f94ce710179f34f645b9ea779bab2082593d1de8
2017-01-07 12:01:21 -08:00
Anthony Ramine
38ca8c334a servo: Merge #14867 - Properly insert text in document when parsing (from nox:a-base-de-popopopop); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: f313e8baffe5a41d839c3e0de28e8cd6e7a4773a
2017-01-07 10:57:36 -08:00
Jure Podgoršek
a80a2d44e7 servo: Merge #14896 - Tidy assignments (from g1smo:tidy-assignments); r=jdm
<!-- Please describe your changes on the following line: -->
I've added a new tidy rule (no = in the beginning of line) + tests for it. Also cleaned up a few rust source files to accord with the new rule.

---
<!-- 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 #14890 (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: b6c137b36f8b9f9cc5c0105bb94a4edeaf7d09be
2017-01-07 09:40:46 -08:00
Simon Sapin
b3d223c56e servo: Merge #14889 - Upgrade to rustc 1.16.0-nightly (6f1ae663e 2017-01-06) (from servo:rustup); 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
- [ ] 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: df895cb80c460594f220b6cf28aa5869464d05ec
2017-01-07 08:18:28 -08:00
Ms2ger
496876fb1e servo: Merge #14883 - Avoid generating literal nulls in DOM bindings (from servo:null-bindings); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 90877490307eba2885dab3943ecf629dbe4e33b2
2017-01-07 06:33:30 -08:00
Emilio Cobos Álvarez
4726a7af44 servo: Merge #14833 - style: Isolate the soon-to-be style-backend-specific code from the media_query module (from emilio:mq-refactor); r=heycam,bz
The idea here is having (for convenience) different `Expression` and `Device` representations for Gecko.

Both will be implemented in rust, but will use `nsMediaFeatures` as a source of media features instead of the Servo bits.

Does it sound good?

r? @heycam or @Manishearth

Source-Repo: https://github.com/servo/servo
Source-Revision: fdddeb1c9229b6f9bc202cb2df1a3701eec47e05
2017-01-07 05:03:41 -08:00
Matt Brubeck
53cdf51bec servo: Merge #14874 - Update url, num_cpus, heapsize, webdriver (from mbrubeck:always-be-updating); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 3b2a066088491743ddc6900c01ac59726d8927d8
2017-01-06 23:34:20 -08:00
Ms2ger
e5681e1b13 servo: Merge #14840 - Implement the entry global (from servo:entry-global); r=nox
Partial fix for #10963.

Source-Repo: https://github.com/servo/servo
Source-Revision: 85d3bbd9994eedd1cca96b239b880a6c2d5aadea
2017-01-06 05:15:11 -08:00
Alan Jeffrey
ad1e86a8ea servo: Merge #14860 - Index the session past correctly when discarding (from asajeffrey:constellation-index-past-correctly-when-discarding); r=cbrewster
<!-- Please describe your changes on the following line: -->

Oops, indexed from the wrong end when discarding documents in #14312.

---
<!-- 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 do not require tests because we're not testing document discarding

<!-- 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: 7f9fd0ec1fe70b491d18e99f68988c1381615810
2017-01-06 03:53:35 -08:00
Xidorn Quan
f016f77017 servo: Merge #14878 - stylo: Add :-moz-browser-frame pseudo-class (from upsuper:bug1329076); r=heycam
This is the servo part of [bug 1329076](https://bugzilla.mozilla.org/show_bug.cgi?id=1329076) which has been reviewed by @heycam.

Note that it adds some documents on top of the patches on MozReview.

r? @heycam

Source-Repo: https://github.com/servo/servo
Source-Revision: 540efc3e8819f127b18b5ea8d85da6d8282a52be
2017-01-06 02:35:42 -08:00
Xidorn Quan
caa4ca7aa3 servo: Merge #14872 - stylo: Map more Gecko state bits to Servo state bits (from upsuper:bug1328806); r=bholley
This is the servo part of [bug 1328806](https://bugzilla.mozilla.org/show_bug.cgi?id=1328806) which has been reviewed by @bholley on Bugzilla.

r? @bholley

Source-Repo: https://github.com/servo/servo
Source-Revision: 83428ecef703e4bea9814b7969252d3d3c441885
2017-01-06 00:09:32 -08:00
Josh Holmer
ef232fc633 servo: Merge #14871 - Use tinyfiledialogs from crates.io (from shssoichiro:14862-tinyfiledialogs-from-crates-io); r=jdm
Use the crates.io version of tinyfiledialogs instead of pulling directly from the git repository.

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

<!-- Either: -->
- [X] These changes do not require tests because no code was changed

<!-- 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: 94d62a2afbbbb08d0225dd45fd8a8480d4bdf98d
2017-01-05 22:49:19 -08:00
Alan Jeffrey
a9e77696bb servo: Merge #14559 - Implement browsing context discarding (from asajeffrey:script-track-document-and-bc-discarding); r=cbrewster
<!-- Please describe your changes on the following line: -->

Implement browsing context discarding (https://html.spec.whatwg.org/multipage/browsers.html#discard-a-document).

* When a pipeline is closed, inform the script thread whether the browsing context is to be discarded.
* In script threads, synchronously discard any similar-origin documents and browsing contexts.
* When a browsing context is discarded, it loses the reference to the active document, but the window keeps it, so we need to move the `Document` pointer from `BrowsingContext` to `Window`.
* Fix the webIDL for Window to make parent and top optional (the spec says they can return null when the browsing context is discarded).

---
<!-- 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 #14411
- [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: 8b274f25d3fcbd92dddb83cd96b59a6d51c69d1b
2017-01-05 18:20:12 -08:00
Ms2ger
e85a4b9a6f servo: Merge #14864 - Remove some unsound JSVal handling in JsTimerTask::invoke (from servo:timers); r=jdm
We were using Handles to *copies* of the traced values, rather than the
originals.

Source-Repo: https://github.com/servo/servo
Source-Revision: c3cf4386b04dd3609ada0824c32b0517f840d185
2017-01-05 14:00:50 -08:00
charlesvdv
dd64fb789b servo: Merge #14863 - Allow cli prefs to have numerical value (from charlesvdv:prefs); r=jdm
I'm not sure as I'm new with servo but shouldn't the new function ```parse_opt_prefs``` be in ```prefs.rs``` instead of ```opts.rs``` ?

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

<!-- 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: 42e28bf7e59e0c7fab7163326d7374d1c4e268d1
2017-01-05 12:09:01 -08:00
Ms2ger
cc6b1c5360 servo: Merge #14859 - Simplify CallSetup (from servo:CallSetup); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 839b7fe8ef57501ec876d66728e8d6ea9c1757f6
2017-01-05 07:33:46 -08:00
Alan Jeffrey
8e9816b9d8 servo: Merge #14351 - An in-memory RNG that shares its file descriptor (from asajeffrey:servo-rand-share-fds); r=emilio
<!-- Please describe your changes on the following line: -->

This PR implements an in-memory random number generator that only uses an OS RNG for (re)seeding. The OS RNG is shared, so there's only one file descriptor for `/dev/urandom` being used.

The PR also implements a tidy check that we don't accidentally introduce an RNG. Rather annoyingly, there are a lot of transitive dependencies on `rand`, notably hash maps in `std`.

This PR makes it possible to use uuids for identifiers such as pipeline and frame ids.

---
<!-- 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 do not require tests because it's fixing a resource issue

<!-- 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: 36ddf763f66b1b971db07649ff5c69b2e9fd5f91
2017-01-05 06:32:23 -08:00
Xidorn Quan
d58b3b746a 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
1344335da0 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
00b765c08e 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
fd74d4b83e 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
4f8adcb23e 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
0f1a1e39e4 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
a33145477c 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
0a8ee9d116 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
2155f50231 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
9d0d28cdca 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
702f784d4f 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
a71b4f8972 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
d33e39b72c 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
3edc2897a4 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
f9bf1a65cf 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
Matt McCoy
bb212c6779 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
5c9000d8c8 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
Emilio Cobos Álvarez
23c52968bd 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
5af2f20bb1 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
d0e93d02d4 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