|
@@ -1110,7 +1110,7 @@ var util = {
|
|
|
|
|
|
var binary = false;
|
|
var binary = false;
|
|
var reliable = false;
|
|
var reliable = false;
|
|
- var onnegotiationneeded = false;
|
|
|
|
|
|
+ var onnegotiationneeded = !!window.webkitRTCPeerConnection;
|
|
|
|
|
|
var pc, dc;
|
|
var pc, dc;
|
|
try {
|
|
try {
|
|
@@ -1149,7 +1149,9 @@ var util = {
|
|
audioVideo = !!pc.addStream;
|
|
audioVideo = !!pc.addStream;
|
|
}
|
|
}
|
|
|
|
|
|
- if (/** audioVideo || */data) {
|
|
|
|
|
|
+ // FIXME: this is not great because in theory it doesn't work for
|
|
|
|
+ // av-only browsers (?).
|
|
|
|
+ if (!onnegotiationneeded && data) {
|
|
// sync default check.
|
|
// sync default check.
|
|
var negotiationPC = new RTCPeerConnection(defaultConfig, {optional: [{RtpDataChannels: true}]});
|
|
var negotiationPC = new RTCPeerConnection(defaultConfig, {optional: [{RtpDataChannels: true}]});
|
|
negotiationPC.onnegotiationneeded = function() {
|
|
negotiationPC.onnegotiationneeded = function() {
|
|
@@ -1159,21 +1161,16 @@ var util = {
|
|
util.supports.onnegotiationneeded = true;
|
|
util.supports.onnegotiationneeded = true;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
- // FIXME: this is not great because in theory it doesn't work for
|
|
|
|
- // av-only browsers (?).
|
|
|
|
- var negotiationDC = negotiationPC.createDataChannel('_PEERJSRELIABLETEST');
|
|
|
|
|
|
+ var negotiationDC = negotiationPC.createDataChannel('_PEERJSNEGOTIATIONTEST');
|
|
|
|
|
|
- negotiationPC.close();
|
|
|
|
- negotiationDC.close();
|
|
|
|
|
|
+ setTimeout(function() {
|
|
|
|
+ negotiationPC.close();
|
|
|
|
+ }, 1000);
|
|
}
|
|
}
|
|
|
|
|
|
- // FIXME: Make SURE these are closed.
|
|
|
|
if (pc) {
|
|
if (pc) {
|
|
pc.close();
|
|
pc.close();
|
|
}
|
|
}
|
|
- if (dc) {
|
|
|
|
- dc.close();
|
|
|
|
- }
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
audioVideo: audioVideo,
|
|
audioVideo: audioVideo,
|