Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Unified Diff: sdk/lib/html/dart2js/html_dart2js.dart

Side-by-side diff isn't available for this file because of its large size.
Issue 12217089: Allow non-primitive-value dictionaries to be passed to constructors for html (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
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 fbe043a23ba86321b15ca47a126066f9636defdb..52bab97e75ec3461b1c3961e126818e779b7d56f 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -15385,6 +15385,8 @@ class LinkElement extends Element native "*HTMLLinkElement" {
@DocsEditable
@DomName('LocalMediaStream')
+@SupportedBrowser(SupportedBrowser.CHROME)
+@Experimental
class LocalMediaStream extends MediaStream implements EventTarget native "*LocalMediaStream" {
@DomName('LocalMediaStream.stop')
@@ -16254,6 +16256,8 @@ class MediaSource extends EventTarget native "*MediaSource" {
@DomName('MediaStream')
+@SupportedBrowser(SupportedBrowser.CHROME)
+@Experimental
class MediaStream extends EventTarget native "*MediaStream" {
@DomName('MediaStream.endedEvent')
@@ -16373,6 +16377,8 @@ class MediaStreamEvents extends Events {
@DocsEditable
@DomName('MediaStreamEvent')
+@SupportedBrowser(SupportedBrowser.CHROME)
+@Experimental
class MediaStreamEvent extends Event native "*MediaStreamEvent" {
/// Checks if this type is supported on the current platform.
@@ -16389,6 +16395,8 @@ class MediaStreamEvent extends Event native "*MediaStreamEvent" {
@DocsEditable
@DomName('MediaStreamTrack')
+@SupportedBrowser(SupportedBrowser.CHROME)
+@Experimental
class MediaStreamTrack extends EventTarget native "*MediaStreamTrack" {
@DomName('MediaStreamTrack.endedEvent')
@@ -16478,6 +16486,8 @@ class MediaStreamTrackEvents extends Events {
@DocsEditable
@DomName('MediaStreamTrackEvent')
+@SupportedBrowser(SupportedBrowser.CHROME)
+@Experimental
class MediaStreamTrackEvent extends Event native "*MediaStreamTrackEvent" {
/// Checks if this type is supported on the current platform.
@@ -18255,14 +18265,22 @@ class Notation extends Node native "*Notation" {
@DocsEditable
final String systemId;
}
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// 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.
-@DocsEditable
-@DomName('Notification')
+/// @domName Notification; @docsEditable true@DomName('Notification')
+
class Notification extends EventTarget native "*Notification" {
+ factory Notification(String title, [Map options]) {
+ if (?options) {
+ return JS('Notification', 'new Notification(#,#)', title,
+ convertDartToNative_SerializedScriptValue(options));
+ } else {
+ return JS('Notification', 'new Notification(#)', title);
+ }
+ }
@DomName('Notification.clickEvent')
@DocsEditable
@@ -18284,17 +18302,6 @@ class Notification extends EventTarget native "*Notification" {
@DocsEditable
static const EventStreamProvider<Event> showEvent = const EventStreamProvider<Event>('show');
- @DomName('Notification.Notification')
- @DocsEditable
- factory Notification(String title, [Map options]) {
- if (?options) {
- return Notification._create_1(title, options);
- }
- return Notification._create_2(title);
- }
- static Notification _create_1(title, options) => JS('Notification', 'new Notification(#,#)', title, options);
- static Notification _create_2(title) => JS('Notification', 'new Notification(#)', title);
-
@DocsEditable
@DomName('EventTarget.addEventListener, EventTarget.removeEventListener, EventTarget.dispatchEvent')
@deprecated
@@ -18366,6 +18373,7 @@ class Notification extends EventTarget native "*Notification" {
@DomName('Notification.onshow')
@DocsEditable
Stream<Event> get onShow => showEvent.forTarget(this);
+
}
@DocsEditable
@@ -19549,21 +19557,20 @@ class RtcDataChannelEvent extends Event native "*RTCDataChannelEvent" {
@DocsEditable
final RtcDataChannel channel;
}
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// 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.
-@DocsEditable
-@DomName('RTCIceCandidate')
-class RtcIceCandidate native "*RTCIceCandidate" {
+/// @domName RTCIceCandidate; @docsEditable true@DomName('RTCIceCandidate')
+@SupportedBrowser(SupportedBrowser.CHROME)
+@Experimental
- @DomName('RTCIceCandidate.RTCIceCandidate')
- @DocsEditable
+class RtcIceCandidate native "*RTCIceCandidate" {
factory RtcIceCandidate(Map dictionary) {
- return RtcIceCandidate._create_1(dictionary);
+ return JS('RtcIceCandidate', 'new RTCIceCandidate(#)',
+ convertDartToNative_SerializedScriptValue(dictionary));
}
- static RtcIceCandidate _create_1(dictionary) => JS('RtcIceCandidate', 'new RTCIceCandidate(#)', dictionary);
@DomName('RTCIceCandidate.candidate')
@DocsEditable
@@ -19576,6 +19583,7 @@ class RtcIceCandidate native "*RTCIceCandidate" {
@DomName('RTCIceCandidate.sdpMid')
@DocsEditable
final String sdpMid;
+
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -19590,14 +19598,44 @@ class RtcIceCandidateEvent extends Event native "*RTCIceCandidateEvent" {
@DocsEditable
final RtcIceCandidate candidate;
}
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// 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.
-@DocsEditable
-@DomName('RTCPeerConnection')
+/// @domName RTCPeerConnection; @docsEditable true@DomName('RTCPeerConnection')
+@SupportedBrowser(SupportedBrowser.CHROME)
+@Experimental
+
class RtcPeerConnection extends EventTarget native "*RTCPeerConnection" {
+ factory RtcPeerConnection(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));
+ }
+ }
+
+ /**
+ * Checks if Real Time Communication (RTC) APIs are supported and enabled on
+ * the current platform.
+ */
+ 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;
+ }
@DomName('RTCPeerConnection.addstreamEvent')
@DocsEditable
@@ -19627,17 +19665,6 @@ class RtcPeerConnection extends EventTarget native "*RTCPeerConnection" {
@DocsEditable
static const EventStreamProvider<Event> stateChangeEvent = const EventStreamProvider<Event>('statechange');
- @DomName('RTCPeerConnection.RTCPeerConnection')
- @DocsEditable
- factory RtcPeerConnection(Map rtcIceServers, [Map mediaConstraints]) {
- if (?mediaConstraints) {
- return RtcPeerConnection._create_1(rtcIceServers, mediaConstraints);
- }
- return RtcPeerConnection._create_2(rtcIceServers);
- }
- static RtcPeerConnection _create_1(rtcIceServers, mediaConstraints) => JS('RtcPeerConnection', 'new RTCPeerConnection(#,#)', rtcIceServers, mediaConstraints);
- static RtcPeerConnection _create_2(rtcIceServers) => JS('RtcPeerConnection', 'new RTCPeerConnection(#)', rtcIceServers);
-
@DocsEditable
@DomName('EventTarget.addEventListener, EventTarget.removeEventListener, EventTarget.dispatchEvent')
@deprecated
@@ -19843,8 +19870,11 @@ class RtcPeerConnection extends EventTarget native "*RTCPeerConnection" {
@DomName('RTCPeerConnection.onstatechange')
@DocsEditable
Stream<Event> get onStateChange => stateChangeEvent.forTarget(this);
+
}
+
+
@DocsEditable
@deprecated
class RtcPeerConnectionEvents extends Events {
@@ -19869,21 +19899,20 @@ class RtcPeerConnectionEvents extends Events {
@DocsEditable
EventListenerList get stateChange => this['statechange'];
}
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// 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.
-@DocsEditable
-@DomName('RTCSessionDescription')
-class RtcSessionDescription native "*RTCSessionDescription" {
+/// @domName RTCSessionDescription; @docsEditable true@DomName('RTCSessionDescription')
+@SupportedBrowser(SupportedBrowser.CHROME)
+@Experimental
- @DomName('RTCSessionDescription.RTCSessionDescription')
- @DocsEditable
+class RtcSessionDescription native "*RTCSessionDescription" {
factory RtcSessionDescription(Map dictionary) {
- return RtcSessionDescription._create_1(dictionary);
+ return JS('RtcSessionDescription', 'new RTCSessionDescription(#)',
+ convertDartToNative_SerializedScriptValue(dictionary));
}
- static RtcSessionDescription _create_1(dictionary) => JS('RtcSessionDescription', 'new RTCSessionDescription(#)', dictionary);
@DomName('RTCSessionDescription.sdp')
@DocsEditable
@@ -19892,6 +19921,7 @@ class RtcSessionDescription native "*RTCSessionDescription" {
@DomName('RTCSessionDescription.type')
@DocsEditable
String type;
+
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
« no previous file with comments | « no previous file | sdk/lib/html/dartium/html_dartium.dart » ('j') | tools/dom/templates/html/dart2js/impl_Notification.darttemplate » ('J')

Powered by Google App Engine
This is Rietveld 408576698