mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1053407 - return DOMError rather than string in peerConnection callbacks. r=bz, r=jesup
This commit is contained in:
parent
e503445ffa
commit
d486b47c0c
@ -1101,27 +1101,6 @@ RTCPeerConnection.prototype = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
function RTCError(code, message) {
|
|
||||||
this.name = this.reasonName[Math.min(code, this.reasonName.length - 1)];
|
|
||||||
this.message = (typeof message === "string")? message : this.name;
|
|
||||||
this.__exposedProps__ = { name: "rw", message: "rw" };
|
|
||||||
}
|
|
||||||
RTCError.prototype = {
|
|
||||||
// These strings must match those defined in the WebRTC spec.
|
|
||||||
reasonName: [
|
|
||||||
"NO_ERROR", // Should never happen -- only used for testing
|
|
||||||
"INVALID_CONSTRAINTS_TYPE",
|
|
||||||
"INVALID_CANDIDATE_TYPE",
|
|
||||||
"INVALID_MEDIASTREAM_TRACK",
|
|
||||||
"INVALID_STATE",
|
|
||||||
"INVALID_SESSION_DESCRIPTION",
|
|
||||||
"INCOMPATIBLE_SESSION_DESCRIPTION",
|
|
||||||
"INCOMPATIBLE_CONSTRAINTS",
|
|
||||||
"INCOMPATIBLE_MEDIASTREAMTRACK",
|
|
||||||
"INTERNAL_ERROR"
|
|
||||||
]
|
|
||||||
};
|
|
||||||
|
|
||||||
// This is a separate object because we don't want to expose it to DOM.
|
// This is a separate object because we don't want to expose it to DOM.
|
||||||
function PeerConnectionObserver() {
|
function PeerConnectionObserver() {
|
||||||
this._dompc = null;
|
this._dompc = null;
|
||||||
@ -1138,6 +1117,24 @@ PeerConnectionObserver.prototype = {
|
|||||||
this._dompc = dompc._innerObject;
|
this._dompc = dompc._innerObject;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
newError: function(code, message) {
|
||||||
|
// These strings must match those defined in the WebRTC spec.
|
||||||
|
const reasonName = [
|
||||||
|
"",
|
||||||
|
"InternalError",
|
||||||
|
"InternalError",
|
||||||
|
"InvalidParameter",
|
||||||
|
"InvalidStateError",
|
||||||
|
"InvalidSessionDescriptionError",
|
||||||
|
"IncompatibleSessionDescriptionError",
|
||||||
|
"InternalError",
|
||||||
|
"IncompatibleMediaStreamTrackError",
|
||||||
|
"InternalError"
|
||||||
|
];
|
||||||
|
let name = reasonName[Math.min(code, reasonName.length - 1)];
|
||||||
|
return new this._dompc._win.DOMError(name, message);
|
||||||
|
},
|
||||||
|
|
||||||
dispatchEvent: function(event) {
|
dispatchEvent: function(event) {
|
||||||
this._dompc.dispatchEvent(event);
|
this._dompc.dispatchEvent(event);
|
||||||
},
|
},
|
||||||
@ -1157,7 +1154,7 @@ PeerConnectionObserver.prototype = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
onCreateOfferError: function(code, message) {
|
onCreateOfferError: function(code, message) {
|
||||||
this._dompc.callCB(this._dompc._onCreateOfferFailure, new RTCError(code, message));
|
this._dompc.callCB(this._dompc._onCreateOfferFailure, this.newError(code, message));
|
||||||
this._dompc._executeNext();
|
this._dompc._executeNext();
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1177,7 +1174,7 @@ PeerConnectionObserver.prototype = {
|
|||||||
|
|
||||||
onCreateAnswerError: function(code, message) {
|
onCreateAnswerError: function(code, message) {
|
||||||
this._dompc.callCB(this._dompc._onCreateAnswerFailure,
|
this._dompc.callCB(this._dompc._onCreateAnswerFailure,
|
||||||
new RTCError(code, message));
|
this.newError(code, message));
|
||||||
this._dompc._executeNext();
|
this._dompc._executeNext();
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1194,14 +1191,14 @@ PeerConnectionObserver.prototype = {
|
|||||||
onSetLocalDescriptionError: function(code, message) {
|
onSetLocalDescriptionError: function(code, message) {
|
||||||
this._localType = null;
|
this._localType = null;
|
||||||
this._dompc.callCB(this._dompc._onSetLocalDescriptionFailure,
|
this._dompc.callCB(this._dompc._onSetLocalDescriptionFailure,
|
||||||
new RTCError(code, message));
|
this.newError(code, message));
|
||||||
this._dompc._executeNext();
|
this._dompc._executeNext();
|
||||||
},
|
},
|
||||||
|
|
||||||
onSetRemoteDescriptionError: function(code, message) {
|
onSetRemoteDescriptionError: function(code, message) {
|
||||||
this._remoteType = null;
|
this._remoteType = null;
|
||||||
this._dompc.callCB(this._dompc._onSetRemoteDescriptionFailure,
|
this._dompc.callCB(this._dompc._onSetRemoteDescriptionFailure,
|
||||||
new RTCError(code, message));
|
this.newError(code, message));
|
||||||
this._dompc._executeNext();
|
this._dompc._executeNext();
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1212,7 +1209,7 @@ PeerConnectionObserver.prototype = {
|
|||||||
|
|
||||||
onAddIceCandidateError: function(code, message) {
|
onAddIceCandidateError: function(code, message) {
|
||||||
this._dompc.callCB(this._dompc._onAddIceCandidateError,
|
this._dompc.callCB(this._dompc._onAddIceCandidateError,
|
||||||
new RTCError(code, message));
|
this.newError(code, message));
|
||||||
this._dompc._executeNext();
|
this._dompc._executeNext();
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1343,7 +1340,7 @@ PeerConnectionObserver.prototype = {
|
|||||||
|
|
||||||
onGetStatsError: function(code, message) {
|
onGetStatsError: function(code, message) {
|
||||||
this._dompc.callCB(this._dompc._onGetStatsFailure,
|
this._dompc.callCB(this._dompc._onGetStatsFailure,
|
||||||
new RTCError(code, message));
|
this.newError(code, message));
|
||||||
this._dompc._executeNext();
|
this._dompc._executeNext();
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1381,7 +1378,7 @@ PeerConnectionObserver.prototype = {
|
|||||||
var pc = this._dompc;
|
var pc = this._dompc;
|
||||||
pc._onReplaceTrackWithTrack = null;
|
pc._onReplaceTrackWithTrack = null;
|
||||||
pc._onReplaceTrackSender = null;
|
pc._onReplaceTrackSender = null;
|
||||||
pc.callCB(pc._onReplaceTrackError, new RTCError(code, message));
|
pc.callCB(pc._onReplaceTrackError, this.newError(code, message));
|
||||||
},
|
},
|
||||||
|
|
||||||
foundIceCandidate: function(cand) {
|
foundIceCandidate: function(cand) {
|
||||||
|
@ -59,13 +59,10 @@ interface IPeerConnection : nsISupports
|
|||||||
|
|
||||||
/* Constants for 'name' in error callbacks */
|
/* Constants for 'name' in error callbacks */
|
||||||
const unsigned long kNoError = 0; // Test driver only
|
const unsigned long kNoError = 0; // Test driver only
|
||||||
const unsigned long kInvalidConstraintsType = 1;
|
|
||||||
const unsigned long kInvalidCandidateType = 2;
|
|
||||||
const unsigned long kInvalidMediastreamTrack = 3;
|
const unsigned long kInvalidMediastreamTrack = 3;
|
||||||
const unsigned long kInvalidState = 4;
|
const unsigned long kInvalidState = 4;
|
||||||
const unsigned long kInvalidSessionDescription = 5;
|
const unsigned long kInvalidSessionDescription = 5;
|
||||||
const unsigned long kIncompatibleSessionDescription = 6;
|
const unsigned long kIncompatibleSessionDescription = 6;
|
||||||
const unsigned long kIncompatibleConstraints = 7;
|
|
||||||
const unsigned long kIncompatibleMediaStreamTrack = 8;
|
const unsigned long kIncompatibleMediaStreamTrack = 8;
|
||||||
const unsigned long kInternalError = 9;
|
const unsigned long kInternalError = 9;
|
||||||
const unsigned long kMaxErrorType = 9; // Same as final error
|
const unsigned long kMaxErrorType = 9; // Same as final error
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
{candidate:"1 1 UDP 2130706431 192.168.2.1 50005 typ host",
|
{candidate:"1 1 UDP 2130706431 192.168.2.1 50005 typ host",
|
||||||
sdpMLineIndex: 1}),
|
sdpMLineIndex: 1}),
|
||||||
function(err) {
|
function(err) {
|
||||||
is(err.name, "INVALID_STATE", "Error is INVALID_STATE");
|
is(err.name, "InvalidStateError", "Error is InvalidStateError");
|
||||||
test.next();
|
test.next();
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
test.pcLocal._latest_offer.type="answer";
|
test.pcLocal._latest_offer.type="answer";
|
||||||
test.pcLocal.setLocalDescriptionAndFail(test.pcLocal._latest_offer,
|
test.pcLocal.setLocalDescriptionAndFail(test.pcLocal._latest_offer,
|
||||||
function(err) {
|
function(err) {
|
||||||
is(err.name, "INVALID_STATE", "Error is INVALID_STATE");
|
is(err.name, "InvalidStateError", "Error is InvalidStateError");
|
||||||
test.next();
|
test.next();
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
test.pcLocal._latest_offer.type="answer";
|
test.pcLocal._latest_offer.type="answer";
|
||||||
test.pcLocal.setLocalDescriptionAndFail(test.pcLocal._latest_offer,
|
test.pcLocal.setLocalDescriptionAndFail(test.pcLocal._latest_offer,
|
||||||
function(err) {
|
function(err) {
|
||||||
is(err.name, "INVALID_STATE", "Error is INVALID_STATE");
|
is(err.name, "InvalidStateError", "Error is InvalidStateError");
|
||||||
test.next();
|
test.next();
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
function (test) {
|
function (test) {
|
||||||
test.pcRemote.setLocalDescriptionAndFail(test.pcLocal._latest_offer,
|
test.pcRemote.setLocalDescriptionAndFail(test.pcLocal._latest_offer,
|
||||||
function(err) {
|
function(err) {
|
||||||
is(err.name, "INVALID_STATE", "Error is INVALID_STATE");
|
is(err.name, "InvalidStateError", "Error is InvalidStateError");
|
||||||
test.next();
|
test.next();
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
test.pcLocal._latest_offer.type="answer";
|
test.pcLocal._latest_offer.type="answer";
|
||||||
test.pcRemote.setRemoteDescriptionAndFail(test.pcLocal._latest_offer,
|
test.pcRemote.setRemoteDescriptionAndFail(test.pcLocal._latest_offer,
|
||||||
function(err) {
|
function(err) {
|
||||||
is(err.name, "INVALID_STATE", "Error is INVALID_STATE");
|
is(err.name, "InvalidStateError", "Error is InvalidStateError");
|
||||||
test.next();
|
test.next();
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
test.pcLocal._latest_offer.type="answer";
|
test.pcLocal._latest_offer.type="answer";
|
||||||
test.pcLocal.setRemoteDescriptionAndFail(test.pcLocal._latest_offer,
|
test.pcLocal.setRemoteDescriptionAndFail(test.pcLocal._latest_offer,
|
||||||
function(err) {
|
function(err) {
|
||||||
is(err.name, "INVALID_STATE", "Error is INVALID_STATE");
|
is(err.name, "InvalidStateError", "Error is InvalidStateError");
|
||||||
test.next();
|
test.next();
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
function (test) {
|
function (test) {
|
||||||
test.pcLocal.setRemoteDescriptionAndFail(test.pcLocal._latest_offer,
|
test.pcLocal.setRemoteDescriptionAndFail(test.pcLocal._latest_offer,
|
||||||
function(err) {
|
function(err) {
|
||||||
is(err.name, "INVALID_STATE", "Error is INVALID_STATE");
|
is(err.name, "InvalidStateError", "Error is InvalidStateError");
|
||||||
test.next();
|
test.next();
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
callback RTCSessionDescriptionCallback = void (mozRTCSessionDescription sdp);
|
callback RTCSessionDescriptionCallback = void (mozRTCSessionDescription sdp);
|
||||||
callback RTCPeerConnectionErrorCallback = void (DOMString errorInformation);
|
callback RTCPeerConnectionErrorCallback = void (DOMError error);
|
||||||
callback VoidFunction = void ();
|
callback VoidFunction = void ();
|
||||||
callback RTCStatsCallback = void (RTCStatsReport report);
|
callback RTCStatsCallback = void (RTCStatsReport report);
|
||||||
|
|
||||||
|
@ -226,7 +226,6 @@ public:
|
|||||||
|
|
||||||
enum Error {
|
enum Error {
|
||||||
kNoError = 0,
|
kNoError = 0,
|
||||||
kInvalidCandidateType = 2,
|
|
||||||
kInvalidMediastreamTrack = 3,
|
kInvalidMediastreamTrack = 3,
|
||||||
kInvalidState = 4,
|
kInvalidState = 4,
|
||||||
kInvalidSessionDescription = 5,
|
kInvalidSessionDescription = 5,
|
||||||
|
@ -549,7 +549,7 @@ typedef enum {
|
|||||||
*
|
*
|
||||||
* PeerConnectionImpl.h
|
* PeerConnectionImpl.h
|
||||||
* Peerconnection.js
|
* Peerconnection.js
|
||||||
* nsIDOMPeerConnection.idl
|
* IPeerConnection.idl
|
||||||
*
|
*
|
||||||
* Yes, this is far from ideal, but there isn't an obviously cleaner
|
* Yes, this is far from ideal, but there isn't an obviously cleaner
|
||||||
* way to deal with the situation within the constraints imposed on us
|
* way to deal with the situation within the constraints imposed on us
|
||||||
@ -558,13 +558,10 @@ typedef enum {
|
|||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
PC_NO_ERROR = 0,
|
PC_NO_ERROR = 0,
|
||||||
PC_INVALID_CONSTRAINTS_TYPE = 1,
|
|
||||||
PC_INVALID_CANDIDATE_TYPE = 2,
|
|
||||||
PC_INVALID_MEDIASTREAM_TRACK = 3,
|
PC_INVALID_MEDIASTREAM_TRACK = 3,
|
||||||
PC_INVALID_STATE = 4,
|
PC_INVALID_STATE = 4,
|
||||||
PC_INVALID_SESSION_DESCRIPTION = 5,
|
PC_INVALID_SESSION_DESCRIPTION = 5,
|
||||||
PC_INCOMPATIBLE_SESSION_DESCRIPTION = 6,
|
PC_INCOMPATIBLE_SESSION_DESCRIPTION = 6,
|
||||||
PC_INCOMPATIBLE_CONSTRAINTS = 7,
|
|
||||||
PC_INCOMPATIBLE_MEDIA_STREAM_TRACK = 8,
|
PC_INCOMPATIBLE_MEDIA_STREAM_TRACK = 8,
|
||||||
PC_INTERNAL_ERROR = 9
|
PC_INTERNAL_ERROR = 9
|
||||||
} pc_error;
|
} pc_error;
|
||||||
|
Loading…
Reference in New Issue
Block a user