<html>
<head>
<meta http-equiv="refresh" content="2"/>

<script>
function error() {
}

function getUserMedia(dictionary, callback) {
    try {
        navigator.webkitGetUserMedia(dictionary, callback, error);
    } catch (e) {
    }
}

function gotStream1(s) {
}

function start() {
    getUserMedia({audio:true}, gotStream1);
}
</script>

</head>
<body onload="start()">
<h1>Test passes if it does not crash.</h1>
</body>
</html>
