зеркало из https://github.com/mozilla/gecko-dev.git
Bug 989936 - fire the onsignalingstatechanged event if close was called locally. r=jesup
This commit is contained in:
Родитель
a45fae84ce
Коммит
969d5ff514
|
@ -493,12 +493,21 @@ function PeerConnectionTest(options) {
|
|||
PeerConnectionTest.prototype.close = function PCT_close(onSuccess) {
|
||||
info("Closing peer connections. Connection state=" + this.connected);
|
||||
|
||||
function signalingstatechangeClose(state) {
|
||||
info("'onsignalingstatechange' event '" + state + "' received");
|
||||
is(state, "closed", "onsignalingstatechange event is closed");
|
||||
}
|
||||
|
||||
// There is no onclose event for the remote peer existent yet. So close it
|
||||
// side-by-side with the local peer.
|
||||
if (this.pcLocal)
|
||||
if (this.pcLocal) {
|
||||
this.pcLocal.onsignalingstatechange = signalingstatechangeClose;
|
||||
this.pcLocal.close();
|
||||
if (this.pcRemote)
|
||||
}
|
||||
if (this.pcRemote) {
|
||||
this.pcRemote.onsignalingstatechange = signalingstatechangeClose;
|
||||
this.pcRemote.close();
|
||||
}
|
||||
this.connected = false;
|
||||
|
||||
onSuccess();
|
||||
|
@ -585,8 +594,9 @@ function PCT_setLocalDescription(peer, desc, onSuccess) {
|
|||
}
|
||||
}
|
||||
|
||||
peer.onsignalingstatechange = function () {
|
||||
info(peer + ": 'onsignalingstatechange' event registered, signalingState: " + peer.signalingState);
|
||||
peer.onsignalingstatechange = function (state) {
|
||||
//info(peer + ": 'onsignalingstatechange' event registered, signalingState: " + peer.signalingState);
|
||||
info(peer + ": 'onsignalingstatechange' event '" + state + "' received");
|
||||
|
||||
eventFired = true;
|
||||
check_next_test();
|
||||
|
@ -646,8 +656,8 @@ function PCT_setRemoteDescription(peer, desc, onSuccess) {
|
|||
}
|
||||
}
|
||||
|
||||
peer.onsignalingstatechange = function () {
|
||||
info(peer + ": 'onsignalingstatechange' event registered, signalingState: " + peer.signalingState);
|
||||
peer.onsignalingstatechange = function (state) {
|
||||
info(peer + ": 'onsignalingstatechange' event '" + state + "' received");
|
||||
|
||||
eventFired = true;
|
||||
check_next_test();
|
||||
|
@ -1168,7 +1178,9 @@ function PeerConnectionWrapper(label, configuration) {
|
|||
this._pc.onsignalingstatechange = function (aEvent) {
|
||||
info(self + ": 'onsignalingstatechange' event fired");
|
||||
|
||||
self.onsignalingstatechange();
|
||||
// this calls the eventhandler only once and then overwrites it with the
|
||||
// default unexpectedEvent handler
|
||||
self.onsignalingstatechange(aEvent);
|
||||
self.onsignalingstatechange = unexpectedEventAndFinish(self, 'onsignalingstatechange');
|
||||
};
|
||||
}
|
||||
|
|
|
@ -56,6 +56,11 @@
|
|||
var description;
|
||||
var exception = null;
|
||||
|
||||
// handle the event which the close() triggers
|
||||
test.pcLocal.onsignalingstatechange = function (state) {
|
||||
is(state, "closed", "Received expected onsignalingstatechange event 'closed'");
|
||||
}
|
||||
|
||||
test.pcLocal.close();
|
||||
|
||||
try { description = test.pcLocal.localDescription; } catch (e) { exception = e; }
|
||||
|
@ -66,6 +71,11 @@
|
|||
ok(exception, "Attempt to access remoteDescription of pcLocal after close throws exception");
|
||||
exception = null;
|
||||
|
||||
// handle the event which the close() triggers
|
||||
test.pcRemote.onsignalingstatechange = function (state) {
|
||||
is(state, "closed", "Received expected onsignalingstatechange event 'closed'");
|
||||
}
|
||||
|
||||
test.pcRemote.close();
|
||||
|
||||
try { description = test.pcRemote.localDescription; } catch (e) { exception = e; }
|
||||
|
|
|
@ -49,6 +49,8 @@
|
|||
exception = null;
|
||||
try { pconnects.createOffer(step1, failed, { mandatory: { OfferToReceiveVideo: false, OfferToReceiveAudio: true, MozDontOfferDataChannel: true}, optional: [{ VoiceActivityDetection: true }, { FooBar: "42" }] }); } catch (e) { exception = e; }
|
||||
ok(!exception, "createOffer(step1, failed, { mandatory: { OfferToReceiveVideo: false, OfferToReceiveAudio: true, MozDontOfferDataChannel: true}, optional: [{ VoiceActivityDetection: true }, { FooBar: \"42\" }] }) succeeds");
|
||||
pconnect.close();
|
||||
pconnects.close();
|
||||
pconnect = null;
|
||||
pconnects = null;
|
||||
SimpleTest.finish();
|
||||
|
|
|
@ -1600,7 +1600,11 @@ PeerConnectionImpl::Close()
|
|||
CSFLogDebug(logTag, "%s: for %s", __FUNCTION__, mHandle.c_str());
|
||||
PC_AUTO_ENTER_API_CALL_NO_CHECK();
|
||||
|
||||
return CloseInt();
|
||||
nsresult res = CloseInt();
|
||||
|
||||
SetSignalingState_m(PCImplSignalingState::SignalingClosed);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче