200870d42d
dartium. Review URL: https://codereview.chromium.org//12224101 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18328 260f80e4-7a28-3924-810f-c04153c831b5
46 lines
1.5 KiB
Plaintext
46 lines
1.5 KiB
Plaintext
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
part of $LIBRARYNAME;
|
|
|
|
$(ANNOTATIONS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
|
|
$if DART2JS
|
|
factory $CLASSNAME(Map rtcIceServers, [Map mediaConstraints]) {
|
|
var constructorName = JS('RtcPeerConnection', 'window[#]',
|
|
'${_browserPropertyPrefix}RTCPeerConnection');
|
|
if (?mediaConstraints) {
|
|
return JS('RtcPeerConnection', 'new #(#,#)', constructorName,
|
|
convertDartToNative_SerializedScriptValue(rtcIceServers),
|
|
convertDartToNative_SerializedScriptValue(mediaConstraints));
|
|
} else {
|
|
return JS('RtcPeerConnection', 'new #(#)', constructorName,
|
|
convertDartToNative_SerializedScriptValue(rtcIceServers));
|
|
}
|
|
}
|
|
$endif
|
|
|
|
/**
|
|
* Checks if Real Time Communication (RTC) APIs are supported and enabled on
|
|
* the current platform.
|
|
*/
|
|
$if DART2JS
|
|
static bool get supported {
|
|
// Currently in Firefox some of the RTC elements are defined but throw an
|
|
// error unless the user has specifically enabled them in their
|
|
// about:config. So we have to construct an element to actually test if RTC
|
|
// is supported at at the given time.
|
|
try {
|
|
var c = new RtcPeerConnection({"iceServers": [ {"url":"stun:foo.com"}]});
|
|
return c is RtcPeerConnection;
|
|
} catch (_) {}
|
|
return false;
|
|
}
|
|
$else
|
|
static bool get supported => true;
|
|
$endif
|
|
$!MEMBERS
|
|
}
|
|
|
|
|