Auto merge of #27265 - jdm:hubs-stubs2, r=ferjm

Add stubs for HTMLCanvasElement.captureStream and WebRTC transceiver APIs

These stubs are hidden by default and only exist to allow getting past the relevant code that invokes them on hubs.mozilla.org.
This commit is contained in:
bors-servo 2020-07-15 03:33:20 -04:00 committed by GitHub
commit ef4f5e5264
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 244 additions and 4 deletions

View file

@ -23,4 +23,9 @@ interface HTMLCanvasElement : HTMLElement {
//OffscreenCanvas transferControlToOffscreen();
};
partial interface HTMLCanvasElement {
[Pref="dom.canvas_capture.enabled"]
MediaStream captureStream (optional double frameRequestRate);
};
//callback BlobCallback = void (Blob? blob);

View file

@ -115,6 +115,22 @@ enum RTCSignalingState {
"closed"
};
dictionary RTCRtpCodingParameters {
DOMString rid;
};
dictionary RTCRtpEncodingParameters : RTCRtpCodingParameters {
boolean active = true;
unsigned long maxBitrate;
double scaleResolutionDownBy;
};
dictionary RTCRtpTransceiverInit {
RTCRtpTransceiverDirection direction = "sendrecv";
sequence<MediaStream> streams = [];
sequence<RTCRtpEncodingParameters> sendEncodings = [];
};
partial interface RTCPeerConnection {
// sequence<RTCRtpSender> getSenders();
// sequence<RTCRtpReceiver> getReceivers();
@ -122,8 +138,9 @@ partial interface RTCPeerConnection {
// RTCRtpSender addTrack(MediaStreamTrack track,
// MediaStream... streams);
// void removeTrack(RTCRtpSender sender);
// RTCRtpTransceiver addTransceiver((MediaStreamTrack or DOMString) trackOrKind,
// optional RTCRtpTransceiverInit init);
[Pref="dom.webrtc.transceiver.enabled"]
RTCRtpTransceiver addTransceiver((MediaStreamTrack or DOMString) trackOrKind,
optional RTCRtpTransceiverInit init = {});
attribute EventHandler ontrack;
};

View file

@ -0,0 +1,47 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://w3c.github.io/webrtc-pc/#dom-rtcrtpsender
dictionary RTCRtpHeaderExtensionParameters {
required DOMString uri;
required unsigned short id;
boolean encrypted = false;
};
dictionary RTCRtcpParameters {
DOMString cname;
boolean reducedSize;
};
dictionary RTCRtpCodecParameters {
required octet payloadType;
required DOMString mimeType;
required unsigned long clockRate;
unsigned short channels;
DOMString sdpFmtpLine;
};
dictionary RTCRtpParameters {
required sequence<RTCRtpHeaderExtensionParameters> headerExtensions;
required RTCRtcpParameters rtcp;
required sequence<RTCRtpCodecParameters> codecs;
};
dictionary RTCRtpSendParameters : RTCRtpParameters {
required DOMString transactionId;
required sequence<RTCRtpEncodingParameters> encodings;
};
[Exposed=Window, Pref="dom.webrtc.transceiver.enabled"]
interface RTCRtpSender {
//readonly attribute MediaStreamTrack? track;
//readonly attribute RTCDtlsTransport? transport;
//static RTCRtpCapabilities? getCapabilities(DOMString kind);
Promise<void> setParameters(RTCRtpSendParameters parameters);
RTCRtpSendParameters getParameters();
//Promise<void> replaceTrack(MediaStreamTrack? withTrack);
//void setStreams(MediaStream... streams);
//Promise<RTCStatsReport> getStats();
};

View file

@ -0,0 +1,24 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://w3c.github.io/webrtc-pc/#rtcrtptransceiver-interface
[Exposed=Window, Pref="dom.webrtc.transceiver.enabled"]
interface RTCRtpTransceiver {
//readonly attribute DOMString? mid;
[SameObject] readonly attribute RTCRtpSender sender;
//[SameObject] readonly attribute RTCRtpReceiver receiver;
attribute RTCRtpTransceiverDirection direction;
//readonly attribute RTCRtpTransceiverDirection? currentDirection;
//void stop();
//void setCodecPreferences(sequence<RTCRtpCodecCapability> codecs);
};
enum RTCRtpTransceiverDirection {
"sendrecv",
"sendonly",
"recvonly",
"inactive",
"stopped"
};