Index: sdk/lib/html/dart2js/html_dart2js.dart |
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart |
index 3bb3ec27a797671c48c9f6109aa6f4a086238033..0bdc70da859a091e240b79e5a98391f724348127 100644 |
--- a/sdk/lib/html/dart2js/html_dart2js.dart |
+++ b/sdk/lib/html/dart2js/html_dart2js.dart |
@@ -17286,7 +17286,13 @@ class RtcDtmfToneChangeEvent extends Event native "RTCDTMFToneChangeEvent" { |
@Experimental |
class RtcIceCandidate native "RTCIceCandidate" { |
factory RtcIceCandidate(Map dictionary) { |
- return JS('RtcIceCandidate', 'new RTCIceCandidate(#)', |
+ // TODO(efortuna): Remove this check if when you can actually construct with |
+ // the unprefixed RTCIceCandidate in Firefox (currently both are defined, |
+ // but one can't be used as a constructor). |
+ var constructorName = JS('', 'window[#]', |
+ Device.isFirefox ? '${Device.propertyPrefix}RTCIceCandidate' : |
+ 'RTCIceCandidate'); |
+ return JS('RtcIceCandidate', 'new #(#)', constructorName, |
convertDartToNative_SerializedScriptValue(dictionary)); |
} |
@@ -17346,11 +17352,12 @@ class RtcPeerConnection extends EventTarget native "RTCPeerConnection" { |
// 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. |
+ // is supported at the given time. |
try { |
- var c = new RtcPeerConnection({"iceServers": [ {"url":"stun:foo.com"}]}); |
- return c is RtcPeerConnection; |
- } catch (_) {} |
+ new RtcPeerConnection( |
+ {"iceServers": [ {"url":"stun:localhost"}]}); |
+ return true; |
+ } catch (_) { return false;} |
return false; |
} |
Future<RtcSessionDescription> createOffer([Map mediaConstraints]) { |
@@ -17633,8 +17640,6 @@ class RtcPeerConnection extends EventTarget native "RTCPeerConnection" { |
Stream<Event> get onSignalingStateChange => signalingStateChangeEvent.forTarget(this); |
} |
- |
- |
// 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. |
@@ -17645,7 +17650,14 @@ class RtcPeerConnection extends EventTarget native "RTCPeerConnection" { |
@Experimental |
class RtcSessionDescription native "RTCSessionDescription" { |
factory RtcSessionDescription(Map dictionary) { |
- return JS('RtcSessionDescription', 'new RTCSessionDescription(#)', |
+ // TODO(efortuna): Remove this check if when you can actually construct with |
+ // the unprefixed RTCIceCandidate in Firefox (currently both are defined, |
+ // but one can't be used as a constructor). |
+ var constructorName = JS('', 'window[#]', |
+ Device.isFirefox ? '${Device.propertyPrefix}RTCSessionDescription' : |
+ 'RTCSessionDescription'); |
+ return JS('RtcSessionDescription', |
+ 'new #(#)', constructorName, |
convertDartToNative_SerializedScriptValue(dictionary)); |
} |