зеркало из https://github.com/mozilla/gecko-dev.git
71 строка
1.8 KiB
HTML
71 строка
1.8 KiB
HTML
<!DOCTYPE HTML>
|
|
<html class="reftest-wait">
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=812785
|
|
-->
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Bug 812785 - WebRTC use-after-free crash</title>
|
|
<script type="application/javascript">
|
|
var pc1, pc2, pc1_offer, pc2_answer, localAudio, remoteAudio;
|
|
|
|
function onFailure(code) {
|
|
stop();
|
|
}
|
|
|
|
function stop() {
|
|
pc1.close(); pc1 = null;
|
|
pc2.close(); pc2 = null;
|
|
|
|
var index = localStorage.index || 0;
|
|
if (index < 5) {
|
|
localStorage.index = index + 1;
|
|
window.location.reload();
|
|
}
|
|
else {
|
|
finish();
|
|
}
|
|
}
|
|
|
|
function start() {
|
|
localAudio = document.getElementById("local");
|
|
remoteAudio = document.getElementById("remote");
|
|
|
|
var stream = localAudio.mozCaptureStreamUntilEnded();
|
|
|
|
pc1 = new RTCPeerConnection();
|
|
pc2 = new RTCPeerConnection();
|
|
|
|
pc1.addStream(stream);
|
|
pc1.createOffer(function (offer) {
|
|
pc1_offer = offer;
|
|
pc1.setLocalDescription(pc1_offer, function () {
|
|
pc2.setRemoteDescription(pc1_offer, function () {
|
|
pc2.createAnswer(function (answer) {
|
|
pc2_answer = answer;
|
|
pc2.setLocalDescription(pc2_answer, function () {
|
|
pc1.setRemoteDescription(pc2_answer, function step6() {
|
|
stop();
|
|
}, onFailure);
|
|
}, onFailure);
|
|
}, onFailure);
|
|
}, onFailure);
|
|
}, onFailure);
|
|
}, onFailure);
|
|
}
|
|
|
|
function finish() {
|
|
delete localStorage["index"];
|
|
|
|
document.documentElement.removeAttribute("class");
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body onload="setTimeout(start, 100)">
|
|
<audio id="local" controls autoplay><source type="audio/wav" src="" /></audio>
|
|
<audio id="remote" controls></audio>
|
|
</body>
|
|
</html>
|
|
|