servo/components/script/dom/bindings
bors-servo 6b648429f5
Auto merge of #22780 - Manishearth:webrtc, r=jdm
Initial webrtc and getUserMedia DOM support

This is able to reach the point where connections are properly negotiated and ready to exchange streams.

<s>The `toJSON()` stuff doesn't work yet, so most example code will need to be tweaked to manually construct JSON first before sending SDP and ICE messages over websockets. I'll add support for this soon. (This may need webidl tweaks to support `[Default]` and `toJSON()`)</s>

For some reason I haven't yet figured out, connections are one-way, Servo is able to receive streams but the other end doesn't see the streams Servo sends. I don't think this is due to https://github.com/servo/media/issues/191, but that bug is making it harder to test.

This implementation simply drops streams that it receives, without connecting them up to any output elements, since servo-media-player doesn't yet have mediastream support.

Since servo can neither effectively send nor receive streams this implementation isn't useful yet, however it is getting large and I figured I'd get it reviewed and landed early as a base.

r? @jdm

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22780)
<!-- Reviewable:end -->
2019-01-31 12:14:16 -05:00
..
codegen Update bool pattern matching into if-else 2019-01-30 20:54:12 +01:00
callback.rs Prevent JS execution and layout operations while DOM in inconsistent state. 2018-12-14 13:12:47 -05:00
cell.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
constant.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
conversions.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
error.rs Rustfmt has changed its default style :/ 2018-12-28 13:17:47 +01:00
guard.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
htmlconstructor.rs Rustfmt has changed its default style :/ 2018-12-28 13:17:47 +01:00
inheritance.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
interface.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
iterable.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
mod.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
mozmap.rs Use IndexMap for WebIDL Record 2018-12-26 18:05:43 +08:00
namespace.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
num.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
proxyhandler.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
refcounted.rs Remove now-unnecessary must_root and allow(unrooted_must_root) annotations 2019-01-04 15:05:07 -08:00
reflector.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
root.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
settings_stack.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
str.rs Rustfmt has changed its default style :/ 2018-12-28 13:17:47 +01:00
structuredclone.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
trace.rs Add MediaDevices::GetUserMedia 2019-01-29 11:37:00 -08:00
utils.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
weakref.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
xmlname.rs Rustfmt has changed its default style :/ 2018-12-28 13:17:47 +01:00