Commit Graph

3052 Commits

Author SHA1 Message Date
Martin Robinson
c8b72f7452 servo: Merge #18704 - Switch to using WebRender hit testing (from mrobinson:wr-hit-testing); r=jdm,glennw,mbrubeck
This trades quite a bit of complicated code in Servo for few more
messages and a significant performance improvement. In particular,
WebRender can search the entire display list at once instead of
ping-ponging down the pipeline tree. This allows us to send mouse
events to the correct pipeline immediately.

<!-- 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 should not change behavior.

<!-- 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: ca08271345f78fa881c174545f5b69a8ccb78143
2017-10-17 17:09:25 -05:00
Matt Brubeck
8cc50002a2 servo: Merge #18924 - Fix commonmark Markdown warnings in docs, part 1 (from mbrubeck:doc); r=Manishearth
Fixes warnings from rust-lang/rust#44229 when `--enable-commonmark` is passed to rustdoc.

This is mostly a global find-and-replace for bare URIs on lines by themselves in doc comments.

---

- [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 they are doc formatting changes only

Source-Repo: https://github.com/servo/servo
Source-Revision: 0e62a5829b7c29ae2667a21a439aff1e89201bf3
2017-10-17 16:04:10 -05:00
tigercosmos
6efde14e85 servo: Merge #18919 - fix unused warning (from tigercosmos:remove); r=SimonSapin
<!-- 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 #18916

<!-- Either: -->
- [ ] 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: 7704fa086ca9b9317b004b87e809ebcb10c344f9
2017-10-17 03:27:20 -05:00
Simon Sapin
f416e45c42 servo: Merge #18875 - Remove the need for rust-mozjs to use unstable Rust features (from servo:stable-js); r=nox,jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: e8a6f2862c2a6084e4f4e64ab466c89ae83cff59
2017-10-16 17:07:50 -05:00
Imanol Fernandez
0b1c03ee15 servo: Merge #18592 - Implement DOM to texture (from MortimerGoro:dom_texture); r=jdm
<!-- Please describe your changes on the following line: -->

This is a prototype of the WebGL DOMToTexture feature. The API should be fine as a privileged extension for now due to security concerns. The working group has been investigating the viability of unprivileged usage but the spec is not ready yet.

Demo video: https://www.youtube.com/watch?v=hpZqEM5hPao

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

<!-- 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: 3209d22968046b5c3d29a37b79a655497db2050a
2017-10-16 15:36:42 -05:00
Glenn Watson
775f1d28a7 servo: Merge #18890 - Update WR (details below): (from glennw:update-wr-clip-text-aa); r=jdm
* Add support for clip masks on text runs.
* Fix atomic ordering of items with multiple shadows.
* Update to bincode + ipc-channel with optimizations.
* Fix some plane splitting precision errors.
* Improve the anti-aliasing quality significantly.
* Add internal ClipChain support.
* Fix diacritic glyphs on Linux.

Source-Repo: https://github.com/servo/servo
Source-Revision: d3d2b0261a8aacd4f74e330f8c007a91f829a96e
2017-10-16 12:54:02 -05:00
Simon Sapin
9ff046fd76 servo: Merge #18900 - Remove use of unstable box syntax (from servo:box_syntax); r=emilio
http://www.robohornet.org gives a score of 101.36 on master, and 102.68 with this PR. The latter is slightly better, but probably within noise level. So it looks like this PR does not affect DOM performance.

This is expected since `Box::new` is defined as:

```rust
impl<T> Box<T> {
    #[inline(always)]
    pub fn new(x: T) -> Box<T> {
        box x
    }
}
```

With inlining, it should compile to the same as box syntax.

Source-Repo: https://github.com/servo/servo
Source-Revision: a9022be0c3e30249845ca5947ac0c0a6743c7991
2017-10-16 11:21:21 -05:00
tigercosmos
1ea99aa940 servo: Merge #18888 - fix #18776: use XML fragment serialization for innerHTML in XML documents (from tigercosmos:xml); r=jdm
<!-- Please describe your changes on the following line: -->
I am not sure whether my solution is in the right way.
@jdm Can you give some advises?

---
<!-- 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
- [ ] These changes fix #18776 (github issue number if applicable).

<!-- Either: -->
- [ ] 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: adb45eb7279bad6e7048e810e3c2108bf2b628bb
2017-10-16 01:27:43 -05:00
Anthony Ramine
51aeb54adf servo: Merge #18886 - Change AttrValue::Url to AttrValue::ResolvedUrl (from servo:urls); r=SimonSapin
Things make more sense like this.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7e8def9c080faf5a1b8e40fe90747be5439fc3f1
2017-10-15 04:53:29 -05:00
Emilio Cobos Álvarez
cd1986fd76 servo: Merge #18876 - style: Do not expose LocalMatchingContext (from emilio:die-localmatchingcontext-die); r=SimonSapin
This type is a lot of complexity related to a very specific thing such as the
hover and active quirk.

Instead of that, move `nesting_level` to `MatchingContext`, and simplify all
this computing whether the quirk applies upfront, for each complex selector we
test.

This is less error-prone, and also allows simplifying more stuff in a bit.

Also, this makes the hover and active quirk work in Servo with no extra effort.

Source-Repo: https://github.com/servo/servo
Source-Revision: a200fb4b9df4e7461b4238fe3a6d49881f438e25
2017-10-15 02:21:47 -05:00
Stefan VanBuren
2f40a0b972 servo: Merge #18838 - Remove cssText from CSSStyleValue (from svanburen:remove_cssText); r=emilio
Removed from associated .rs and .webidl

<!-- Please describe your changes on the following line: -->
Not much more to add - let me know if it needs additional changes.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because they remove a property that previously had no tests associated with it.

<!-- 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: 240c05f13b859fc87531555cfd59fa273503a1a7
2017-10-14 06:58:29 -05:00
Emilio Cobos Álvarez
0fb0a76e82 servo: Merge #18867 - style: Dishonor display: -moz-box if -webkit-box was specified before (from emilio:parse-hack); r=heycam
This is a compatibility hack that Gecko supports that is apparently important for android.

I want to remove it, but let's see...

See https://bugzilla.mozilla.org/show_bug.cgi?id=1407701 for reference.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2be76c5fd7b74f334f8ce975e2051c77762314c2
2017-10-14 05:27:51 -05:00
Simon Sapin
3cbcc8bd46 servo: Merge #18870 - Use pointer casts instead of tramsutes to raw::TraitObject (from servo:cast); r=KiChjang
Casting `*const T` to `*const U` with `U: Sized` is allowed even if `T: ?Sized`. This safely extracts the data pointer out of a trait object, without relying on the memory representation of trait objects.

Source-Repo: https://github.com/servo/servo
Source-Revision: 86a5135ffaa60d4743b6f6950fc395c2615e85ba
2017-10-13 21:43:09 -05:00
Emilio Cobos Álvarez
51109134a7 servo: Merge #18863 - style: Share code between Gecko and Servo for DOM APIs (from emilio:dom-api-dont-repeat); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: ba77ffed173b3a0ed934edead419ab3919cf5147
2017-10-13 10:48:57 -05:00
Simon Sapin
ff18ff343e servo: Merge #18839 - Remove some usage of unstable features (from servo:stabler); r=nox
`Box::new(x)` seems to compile to exactly the same assembly as `box x` in release mode:
https://play.rust-lang.org/?gist=55ec5dd02c22fa799375d6e2e1a6e970&version=nightly

Source-Repo: https://github.com/servo/servo
Source-Revision: fc4de5adf5bff7fabe9f32b960c405f249b5d035
2017-10-12 05:18:00 -05:00
Anthony Ramine
a189176a60 servo: Merge #18825 - Fix a bunch of URL-reflecting IDL attributes (from servo:urls); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 528d0fb40939311625dd977b52e879758d6f6aab
2017-10-11 08:45:44 -05:00
Alan Jeffrey
4d734e712c servo: Merge #18820 - Updated swapper to version 0.1 (from asajeffrey:update-swapper); r=wafflespeanut
<!-- Please describe your changes on the following line: -->

Update swapper to v0.1, which removes the skeptic dependency.

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

<!-- 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: 235ce65d7c35701ac42961c0e81194640e8609ae
2017-10-10 15:10:01 -05:00
Simon Sapin
a917619a4a servo: Merge #18808 - Use the current parser location for CSS error (from servo:error-location_); r=emilio
… rather than the start location of the current construct. This likely places the error just *after* of the unexpected token whereas before would be best, but that’s likely a much bigger change.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: c79a54dbd9d3a590f5fd8191b8e57a0b9d1d0fdb
2017-10-10 12:31:24 -05:00
Anthony Ramine
01dd1d4250 servo: Merge #18804 - Another couple of low-key media improvements 👶👣 (from servo:media); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 826352ab4cae13f5154d13ab53885d80a8057337
2017-10-10 06:17:15 -05:00
Xidorn Quan
591cdef9ec servo: Merge #18790 - Support :scope pseudo-class (from upsuper:scope); r=emilio
This fixes [bug 1406817](https://bugzilla.mozilla.org/show_bug.cgi?id=1406817).

Source-Repo: https://github.com/servo/servo
Source-Revision: bbb2a3cde9f4c7fc9debd5784fce2b07966101ff
2017-10-09 23:04:15 -05:00
tigercosmos
5966a6ec86 servo: Merge #18792 - fix #18472:outdated png crate: various panics (from tigercosmos:img); r=jdm
<!-- Please describe your changes on the following line: -->
fix #18472:outdated png crate: various panics

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 80df3fb56a0e4ef5865fa478d7090c5541393541
2017-10-09 14:05:14 -05:00
Jyotsna Prakash
0eb6b8a5d7 servo: Merge #18747 - Serializing childrenonly (from jdm:serializing-childrenonly); r=jdm
Rebased from #17896.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #14975 (github issue number if applicable).
- [x] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: e3624e62a4b247d7af5e783fcd4205d2914b6aab
2017-10-09 11:12:53 -05:00
Stuart Nelson
ec1fb4038d servo: Merge #18758 - Add support for dynamic bgcolor change (from stuartnelson3:stn/dynamic-body-bgcolor); r=emilio
- [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: 712d32e899fd7209f11a422573e18c724ecc65d8
2017-10-08 07:47:50 -05:00
Bastien Orivel
2d9ba69f17 servo: Merge #18743 - Bump base64 to 0.6 (from Eijebong:base64); r=jdm
This allows us to update hyper to 0.10.13 (closer to 0.11)

- [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 they're just a version bump

Source-Repo: https://github.com/servo/servo
Source-Revision: f3191db2b19a4475382b594a5bf0cec4b990a8c1
2017-10-05 19:37:30 -05:00
Anthony Ramine
324832e172 servo: Merge #18742 - Some low-key media improvements (from servo:media-metadata); r=jdm
This just makes our code fail more gracefully.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0444d76c6b117c3ad8dc4d3a59de252eaececbf1
2017-10-05 15:41:22 -05:00
Neha
d9ac83a340 servo: Merge #18716 - Parse srcset attribute values (from jdm:parseSrcset); r=jdm
Squashed version of #18313.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix (partially) #11416
- [x] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 1f9182507f1a671dc2f1f9425b19cf1becd88c73
2017-10-04 07:32:53 -05:00
Cameron McCormack
559e2283ba servo: Merge #18722 - style: Use a SharedFontList object to store font-family values for Gecko (from heycam:family-list); r=upsuper
Reviewed by Xidorn and Manish in https://bugzilla.mozilla.org/show_bug.cgi?id=1397626.

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

<!-- 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: 3b7a82b8c743bcbbefb6f25defd4cc132c25c348
2017-10-04 05:01:45 -05:00
Rakhi Sharma
bdf1020a02 servo: Merge #18714 - Parse sizes attribute values (from jdm:sizes); r=jdm
Squashed version of #17808.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix (partially) #11416
- [x] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 77afc3f33a72627fd4d6e83485722f3b38ae8420
2017-10-03 04:16:00 -05:00
Simon Sapin
204aba1c0f servo: Merge #18693 - Upgrade to rustc 1.22.0-nightly (c6884b12d 2017-09-30) (from servo:rustup); r=nox
A new `AddAssign` impl in the standard library made inference ambiguous.

Source-Repo: https://github.com/servo/servo
Source-Revision: a2403c5cd63d689283bc35ff9c11329a7b522caf
2017-10-01 09:46:05 -05:00
Martin Robinson
4a3faee622 servo: Merge #18684 - Combine ReflowGoal and ReflowQueryType (from mrobinson:reflow-goal); r=emilio
This simplifies the logic in the layout_thread and makes it clearer
which types of reflows generate display lists and cause display updates.

<!-- 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 shouldn't change behavior.

<!-- 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: 65d9b345bb2a588f41b0d6cdca1aaca2c3c69205
2017-09-30 14:15:41 -05:00
Guillaume Gomez
718308e880 servo: Merge #18612 - Implement EventListenerOptions for EventTarget (from servo:event-listener-options); r=asajeffrey
Source-Repo: https://github.com/servo/servo
Source-Revision: 81044e001941ee3b4eef598125c327c73e993b5d
2017-09-29 19:13:36 -05:00
Imanol Fernandez
8d0918213f servo: Merge #18580 - Associate WebGL textures with texture units (from MortimerGoro:webgl_active_texture); r=jdm
<!-- Please describe your changes on the following line: -->

Currently `bound_texture_2d` and `bound_texture_cube_map` fields are used to restore texture states and to get the current bindings in GetParams(...). But as soon as active texture is changed all the values can become dirty, leading to broken textures in some demos or invalid getParam(...) call results.

This PR implements the texture binding association with the texture units.

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

<!-- 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: ffa03380caee4cf1ffd0c43a219936cb9a2e0b85
2017-09-28 14:12:06 -05:00
Anthony Ramine
a11c3e49b3 servo: Merge #18663 - Make DomRoot<T> a type alias of a more general Root<T> type (from servo:ROOT-ALL-THE-THINGS); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 056c08511997967ceaa2de4d53afa7787276b770
2017-09-28 10:45:11 -05:00
Anthony Ramine
e74d57075c servo: Merge #18653 - Move root-related things around so that the abstractions make more sense (from servo:ROOT-ALL-THE-THINGS); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 807275d8ac8e7391a36210f91b45f70814b132cc
2017-09-27 08:09:57 -05:00
Guillaume Gomez
7b76c03da9 servo: Merge #18581 - Update mp3-metatada and thus audio-video-metadata (from GuillaumeGomez:update-mp3); r=KiChjang
Source-Repo: https://github.com/servo/servo
Source-Revision: aff99ef30b455cf81945511805de6fb2de31a750
2017-09-27 07:06:07 -05:00
Anthony Ramine
ab1f9c6348 servo: Merge #18641 - Improve DomRoot<T> (from servo:ROOT-ALL-THE-THINGS); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 0160aaeeea848f685ba090b4541646b0429a37e1
2017-09-26 14:25:20 -05:00
Anthony Ramine
c5dbf61d7f servo: Merge #18635 - Rename JS<T> to Dom<T>, Root<T> to DomRoot<T>, and other things (from servo:RENAME-ALL-THE-THINGS); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 1282e0d8080ae15307ac8d35941754f9d60f0d76
2017-09-26 03:20:05 -05:00
Daniel Kolsoi
a4ac8ae22d servo: Merge #18617 - Removed integrity check and test for no-cors requests (from TheDan64:master); r=KiChjang
Removed Step 30.2 which raised a JS TypeError if the integrity metadata was not empty. I manually ran `new Request("", {"mode" : "no-cors", "integrity" : "not an empty string"});` in servo to validate that the exception no longer arose.

---
<!-- 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 #18345
- [x] These changes do not require tests because according to the ticket "Unfortunately, there's no automated test available for this yet because we are having trouble updating our copy of the upstream tests. "

Source-Repo: https://github.com/servo/servo
Source-Revision: e6099b43646520a4d0076bfc50dcc65b1aa8eb6b
2017-09-25 19:15:26 -05:00
Josh Matthews
27d4b6b731 servo: Merge #17056 - Make dictionaries and unions containing GC values safer (from jdm:heapdict); r=emilio
Problems:
* the Heap::new constructor is memory-unsafe with any value other than Undefined/Null
* this means that moving dictionaries containing Heap values (ie. any/object) is memory-unsafe
* unions containing GC pointers are similarly unsafe

Solutions:
- dictionaries containing GC pointers are now wrapped in RootedTraceableBox (even inside other dictionaries)
- instead of using Heap::new, dictionaries containing GC pointers are now initialized to a default value (by deriving Default) and mutated one field at a time
- dictionaries containing GC pointers are marked #[must_root]
- FromJSVal for dictionaries containing GC pointers now returns RootedTraceableBox<Dictionary>
- unions wrap their variants that require rooting in RootedTraceableBox

Rather than attempting to derive Default for all dictionaries, we only do so for the dictionaries that require it. Because some dictionaries that require it inherit from dictionaries that do not, we need to write manual implementations for those parent dictionaries. This is a better option than having to figure out a default value for types like `Root<T>`, which would be required for deriving Default for all dictionaries.

I would still like to come up with an automated test for this, but I figured I would get eyes on this first.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 532dee36c10b7dd5d33e560b55cf65c7243ef1d3
2017-09-25 16:07:47 -05:00
Anthony Ramine
2bee96f26c servo: Merge #18626 - Decouple media load blockers from their resource URL (from servo:media); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: d9cec56d712a69bc78f918abe1774f9007a0ec9a
2017-09-25 06:39:47 -05:00
Anthony Ramine
495ddc40b7 servo: Merge #18582 - Improve HTMLMediaElement (from servo:media); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: f3214372bf7f754126e8b032225f81aea1cccb1b
2017-09-25 03:51:53 -05:00
Glenn Watson
9c53a25ad5 servo: Merge #18598 - Update WR (work around a mac GL driver bug) (from glennw:update-wr-driver-bug); r=emilio
Also includes updates to the mac core-* crates and friends.

Source-Repo: https://github.com/servo/servo
Source-Revision: 61f0fc199e243fdce5b31b24d416c6177770873b
2017-09-24 16:13:47 -05:00
tigercosmos
16b0638f5a servo: Merge #18603 - fix #18594: Unnecessarily allocating an error string (from tigercosmos:allocating); r=KiChjang
<!-- Please describe your changes on the following line: -->
r? @asajeffrey

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] 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: 35aad086191c7c4561067a1f774b3ae2d69bc375
2017-09-23 17:11:51 -05:00
Matt Brubeck
f52dac94a5 servo: Merge #18601 - Remove unused 'untagged_unions' feature gate (from mbrubeck:features); r=KiChjang
CC #5286

- [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 _____

Source-Repo: https://github.com/servo/servo
Source-Revision: 352b129dc5b237757ade67448cc42f327780417e
2017-09-22 14:39:25 -05:00
Alan Jeffrey
e7ca017bd0 servo: Merge #18514 - Remove sources of panic when laying out an iframe without a nested browsing context (from asajeffrey:layout-dont-panic-if-no-iframe-bc); r=emilio
<!-- Please describe your changes on the following line: -->

At the moment, layout panics if it discovers an iframe without a nested browsing context. Under normal circumstances, this is reasonable, but it requires very tight synchronization between script, layout, the constellation and the compositor. In particular, if a layout is in progress when an iframe's browsing context is discarded, this can trigger panic.

This PR fixes this in two ways:

1. Making the pipeline and browsing context ids optional in layout's representation of an iframe.
2. Shutting down layout before discarding a browsing context, rather than after.

This is belt and braces.

---
<!-- 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 #17482 and #18477
- [X] These changes do not require tests because the PR is fixing a panic caused by a race condition

<!-- 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: c48ef50b7260df7f2e781e15bba37b08f0970062
2017-09-22 09:34:12 -05:00
Anthony Ramine
c5f6b9748b servo: Merge #18600 - Improve Promise (from servo:promises); r=<try>
The elephant 🐘 (not PHP's) still remains in the room: `Rc<Promise>` shouldn't require `#⁠[allow(unrooted_must_root)]`.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4af0d9acb3f5724cac9f40a46ee03ab364a053bc
2017-09-22 07:36:38 -05:00
Bobby Holley
9fdac01539 servo: Merge #18595 - Implement an nth-index cache (from bholley:nth_index_cache); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1334730

Source-Repo: https://github.com/servo/servo
Source-Revision: be9c8ec07a0ca745adf1b412d32b3b32adec122c
2017-09-21 18:10:05 -05:00
Matt Brubeck
6b2df591d2 servo: Merge #18579 - Remove unused feature gates (from mbrubeck:features); r=KiChjang
CC #5286.

---
- [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 no code changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 29517d553e6c2fddc7e3cf0c0abef58c6d0f34aa
2017-09-21 15:08:04 -05:00
sendilkumarn
fca520f0f1 servo: Merge #18059 - Using OnceCell<T> from Mitochondria (from sendilkumarn:mito); r=nox
<!-- 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 #13402  (github issue number if applicable).

<!-- 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: 5c797d194346d5be3c55da51d82bfcd1031a51f5
2017-09-21 13:20:29 -05:00
Bobby Holley
599d2f4ac9 servo: Merge #18589 - Plumbing for the nth-index cache (from bholley:nth_index_plumbing); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1334730

Source-Repo: https://github.com/servo/servo
Source-Revision: 39f8fce453f0a34751abb82485442429f06324bf
2017-09-21 01:24:01 -05:00