Updating metadata after Chrome rolls.

BUG=
R=efortuna@google.com

Review URL: https://codereview.chromium.org//16677011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23888 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index 3d650ba..1022653 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -1929,12 +1929,11 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://www.w3.org/TR/filter-effects/
 class CssFilterRule extends CssRule native "WebKitCSSFilterRule" {
 
   @DomName('WebKitCSSFilterRule.style')
   @DocsEditable
-  @Experimental // untriaged
   final CssStyleDeclaration style;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -1947,77 +1946,64 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://dev.w3.org/csswg/cssom/
+@deprecated // deprecated
 class CssFilterValue extends _CssValueList native "WebKitCSSFilterValue" {
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_BLUR')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_BLUR = 10;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_BRIGHTNESS = 8;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_CONTRAST')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_CONTRAST = 9;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_CUSTOM')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_CUSTOM = 12;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_DROP_SHADOW')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_DROP_SHADOW = 11;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_GRAYSCALE = 2;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_HUE_ROTATE = 5;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_INVERT')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_INVERT = 6;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_OPACITY')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_OPACITY = 7;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_REFERENCE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_REFERENCE = 1;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_SATURATE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_SATURATE = 4;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_SEPIA')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_SEPIA = 3;
 
   @DomName('WebKitCSSFilterValue.operationType')
   @DocsEditable
-  @Experimental // untriaged
   final int operationType;
 
   @DomName('WebKitCSSFilterValue.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   _CSSValue __getter__(int index) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -2109,17 +2095,15 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://www.w3.org/TR/css3-animations/#CSSKeyframeRule-interface
 class CssKeyframeRule extends CssRule native "WebKitCSSKeyframeRule" {
 
   @DomName('WebKitCSSKeyframeRule.keyText')
   @DocsEditable
-  @Experimental // untriaged
   String keyText;
 
   @DomName('WebKitCSSKeyframeRule.style')
   @DocsEditable
-  @Experimental // untriaged
   final CssStyleDeclaration style;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -2132,39 +2116,33 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://www.w3.org/TR/css3-animations/#csskeyframesrule
 class CssKeyframesRule extends CssRule native "WebKitCSSKeyframesRule" {
 
   @DomName('WebKitCSSKeyframesRule.cssRules')
   @DocsEditable
-  @Experimental // untriaged
   @Returns('_CssRuleList')
   @Creates('_CssRuleList')
   final List<CssRule> cssRules;
 
   @DomName('WebKitCSSKeyframesRule.name')
   @DocsEditable
-  @Experimental // untriaged
   String name;
 
   @DomName('WebKitCSSKeyframesRule.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   CssKeyframeRule __getter__(int index) native;
 
   @DomName('WebKitCSSKeyframesRule.deleteRule')
   @DocsEditable
-  @Experimental // untriaged
   void deleteRule(String key) native;
 
   @DomName('WebKitCSSKeyframesRule.findRule')
   @DocsEditable
-  @Experimental // untriaged
   CssKeyframeRule findRule(String key) native;
 
   @DomName('WebKitCSSKeyframesRule.insertRule')
   @DocsEditable
-  @Experimental // untriaged
   void insertRule(String rule) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -2180,7 +2158,8 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://dev.w3.org/csswg/cssom/
+@deprecated // deprecated
 class CssMatrix native "WebKitCSSMatrix" {
 
   @DomName('WebKitCSSMatrix.CSSMatrix')
@@ -2196,162 +2175,130 @@
 
   @DomName('WebKitCSSMatrix.a')
   @DocsEditable
-  @Experimental // untriaged
   num a;
 
   @DomName('WebKitCSSMatrix.b')
   @DocsEditable
-  @Experimental // untriaged
   num b;
 
   @DomName('WebKitCSSMatrix.c')
   @DocsEditable
-  @Experimental // untriaged
   num c;
 
   @DomName('WebKitCSSMatrix.d')
   @DocsEditable
-  @Experimental // untriaged
   num d;
 
   @DomName('WebKitCSSMatrix.e')
   @DocsEditable
-  @Experimental // untriaged
   num e;
 
   @DomName('WebKitCSSMatrix.f')
   @DocsEditable
-  @Experimental // untriaged
   num f;
 
   @DomName('WebKitCSSMatrix.m11')
   @DocsEditable
-  @Experimental // untriaged
   num m11;
 
   @DomName('WebKitCSSMatrix.m12')
   @DocsEditable
-  @Experimental // untriaged
   num m12;
 
   @DomName('WebKitCSSMatrix.m13')
   @DocsEditable
-  @Experimental // untriaged
   num m13;
 
   @DomName('WebKitCSSMatrix.m14')
   @DocsEditable
-  @Experimental // untriaged
   num m14;
 
   @DomName('WebKitCSSMatrix.m21')
   @DocsEditable
-  @Experimental // untriaged
   num m21;
 
   @DomName('WebKitCSSMatrix.m22')
   @DocsEditable
-  @Experimental // untriaged
   num m22;
 
   @DomName('WebKitCSSMatrix.m23')
   @DocsEditable
-  @Experimental // untriaged
   num m23;
 
   @DomName('WebKitCSSMatrix.m24')
   @DocsEditable
-  @Experimental // untriaged
   num m24;
 
   @DomName('WebKitCSSMatrix.m31')
   @DocsEditable
-  @Experimental // untriaged
   num m31;
 
   @DomName('WebKitCSSMatrix.m32')
   @DocsEditable
-  @Experimental // untriaged
   num m32;
 
   @DomName('WebKitCSSMatrix.m33')
   @DocsEditable
-  @Experimental // untriaged
   num m33;
 
   @DomName('WebKitCSSMatrix.m34')
   @DocsEditable
-  @Experimental // untriaged
   num m34;
 
   @DomName('WebKitCSSMatrix.m41')
   @DocsEditable
-  @Experimental // untriaged
   num m41;
 
   @DomName('WebKitCSSMatrix.m42')
   @DocsEditable
-  @Experimental // untriaged
   num m42;
 
   @DomName('WebKitCSSMatrix.m43')
   @DocsEditable
-  @Experimental // untriaged
   num m43;
 
   @DomName('WebKitCSSMatrix.m44')
   @DocsEditable
-  @Experimental // untriaged
   num m44;
 
   @DomName('WebKitCSSMatrix.inverse')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix inverse() native;
 
   @DomName('WebKitCSSMatrix.multiply')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix multiply(CssMatrix secondMatrix) native;
 
   @DomName('WebKitCSSMatrix.rotate')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix rotate(num rotX, num rotY, num rotZ) native;
 
   @DomName('WebKitCSSMatrix.rotateAxisAngle')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix rotateAxisAngle(num x, num y, num z, num angle) native;
 
   @DomName('WebKitCSSMatrix.scale')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix scale(num scaleX, num scaleY, num scaleZ) native;
 
   @DomName('WebKitCSSMatrix.setMatrixValue')
   @DocsEditable
-  @Experimental // untriaged
   void setMatrixValue(String string) native;
 
   @DomName('WebKitCSSMatrix.skewX')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix skewX(num angle) native;
 
   @DomName('WebKitCSSMatrix.skewY')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix skewY(num angle) native;
 
   @DomName('WebKitCSSMatrix.toString')
   @DocsEditable
-  @Experimental // untriaged
   String toString() native;
 
   @DomName('WebKitCSSMatrix.translate')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix translate(num x, num y, num z) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -2391,7 +2338,8 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://dev.w3.org/csswg/cssom/
+@deprecated // deprecated
 class CssMixFunctionValue extends _CssValueList native "WebKitCSSMixFunctionValue" {
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -2421,12 +2369,11 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://dev.w3.org/csswg/css-regions/#region-style-rule-interface
 class CssRegionRule extends CssRule native "WebKitCSSRegionRule" {
 
   @DomName('WebKitCSSRegionRule.cssRules')
   @DocsEditable
-  @Experimental // untriaged
   @Returns('_CssRuleList')
   @Creates('_CssRuleList')
   final List<CssRule> cssRules;
@@ -2550,7 +2497,6 @@
 
   @DomName('CSSStyleDeclaration.__setter__')
   @DocsEditable
-  @Experimental // untriaged
   void __setter__(String propertyName, String propertyValue) native;
 
   @DomName('CSSStyleDeclaration.getPropertyPriority')
@@ -5859,122 +5805,100 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://dev.w3.org/csswg/cssom/
+@deprecated // deprecated
 class CssTransformValue extends _CssValueList native "WebKitCSSTransformValue" {
 
   @DomName('WebKitCSSTransformValue.CSS_MATRIX')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_MATRIX = 11;
 
   @DomName('WebKitCSSTransformValue.CSS_MATRIX3D')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_MATRIX3D = 21;
 
   @DomName('WebKitCSSTransformValue.CSS_PERSPECTIVE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_PERSPECTIVE = 20;
 
   @DomName('WebKitCSSTransformValue.CSS_ROTATE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_ROTATE = 4;
 
   @DomName('WebKitCSSTransformValue.CSS_ROTATE3D')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_ROTATE3D = 17;
 
   @DomName('WebKitCSSTransformValue.CSS_ROTATEX')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_ROTATEX = 14;
 
   @DomName('WebKitCSSTransformValue.CSS_ROTATEY')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_ROTATEY = 15;
 
   @DomName('WebKitCSSTransformValue.CSS_ROTATEZ')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_ROTATEZ = 16;
 
   @DomName('WebKitCSSTransformValue.CSS_SCALE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SCALE = 5;
 
   @DomName('WebKitCSSTransformValue.CSS_SCALE3D')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SCALE3D = 19;
 
   @DomName('WebKitCSSTransformValue.CSS_SCALEX')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SCALEX = 6;
 
   @DomName('WebKitCSSTransformValue.CSS_SCALEY')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SCALEY = 7;
 
   @DomName('WebKitCSSTransformValue.CSS_SCALEZ')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SCALEZ = 18;
 
   @DomName('WebKitCSSTransformValue.CSS_SKEW')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SKEW = 8;
 
   @DomName('WebKitCSSTransformValue.CSS_SKEWX')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SKEWX = 9;
 
   @DomName('WebKitCSSTransformValue.CSS_SKEWY')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SKEWY = 10;
 
   @DomName('WebKitCSSTransformValue.CSS_TRANSLATE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_TRANSLATE = 1;
 
   @DomName('WebKitCSSTransformValue.CSS_TRANSLATE3D')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_TRANSLATE3D = 13;
 
   @DomName('WebKitCSSTransformValue.CSS_TRANSLATEX')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_TRANSLATEX = 2;
 
   @DomName('WebKitCSSTransformValue.CSS_TRANSLATEY')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_TRANSLATEY = 3;
 
   @DomName('WebKitCSSTransformValue.CSS_TRANSLATEZ')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_TRANSLATEZ = 12;
 
   @DomName('WebKitCSSTransformValue.operationType')
   @DocsEditable
-  @Experimental // untriaged
   final int operationType;
 
   @DomName('WebKitCSSTransformValue.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   _CSSValue __getter__(int index) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -7555,7 +7479,6 @@
 
   @DomName('DOMSettableTokenList.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   String __getter__(int index) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -9597,12 +9520,10 @@
 
   @DomName('HTMLEmbedElement.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   bool __getter__(index_OR_name) native;
 
   @DomName('HTMLEmbedElement.__setter__')
   @DocsEditable
-  @Experimental // untriaged
   void __setter__(index_OR_name, Node value) native;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -11049,7 +10970,6 @@
 
   @DomName('HTMLFormElement.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   Node __getter__(int index) native;
 
   @DomName('HTMLFormElement.checkValidity')
@@ -11470,7 +11390,6 @@
 
   @DomName('HTMLAllCollection.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   Node __getter__(int index) native;
 
   @DomName('HTMLAllCollection.item')
@@ -11546,7 +11465,6 @@
 
   @DomName('HTMLCollection.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   Node __getter__(String name) native;
 
   @DomName('HTMLCollection.item')
@@ -11744,7 +11662,6 @@
 
   @DomName('HTMLFormControlsCollection.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   Node __getter__(int index) native;
 
   @DomName('HTMLFormControlsCollection.namedItem')
@@ -13754,7 +13671,8 @@
 
   @DomName('HTMLLinkElement.import')
   @DocsEditable
-  @Experimental // untriaged
+  // https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/imports/index.html#interface-import
+  @Experimental
   final DocumentFragment import;
 
   @DomName('HTMLLinkElement.media')
@@ -14623,6 +14541,27 @@
 @Experimental
 class MediaKeySession extends EventTarget native "MediaKeySession" {
 
+  @DomName('MediaKeySession.webkitkeyaddedEvent')
+  @DocsEditable
+  @SupportedBrowser(SupportedBrowser.CHROME)
+  @SupportedBrowser(SupportedBrowser.SAFARI)
+  @Experimental
+  static const EventStreamProvider<MediaKeyEvent> keyAddedEvent = const EventStreamProvider<MediaKeyEvent>('webkitkeyadded');
+
+  @DomName('MediaKeySession.webkitkeyerrorEvent')
+  @DocsEditable
+  @SupportedBrowser(SupportedBrowser.CHROME)
+  @SupportedBrowser(SupportedBrowser.SAFARI)
+  @Experimental
+  static const EventStreamProvider<MediaKeyEvent> keyErrorEvent = const EventStreamProvider<MediaKeyEvent>('webkitkeyerror');
+
+  @DomName('MediaKeySession.webkitkeymessageEvent')
+  @DocsEditable
+  @SupportedBrowser(SupportedBrowser.CHROME)
+  @SupportedBrowser(SupportedBrowser.SAFARI)
+  @Experimental
+  static const EventStreamProvider<MediaKeyEvent> keyMessageEvent = const EventStreamProvider<MediaKeyEvent>('webkitkeymessage');
+
   @DomName('MediaKeySession.error')
   @DocsEditable
   final MediaKeyError error;
@@ -14656,6 +14595,18 @@
   @DomName('MediaKeySession.update')
   @DocsEditable
   void update(Uint8List key) native;
+
+  @DomName('MediaKeySession.onwebkitkeyadded')
+  @DocsEditable
+  Stream<MediaKeyEvent> get onKeyAdded => keyAddedEvent.forTarget(this);
+
+  @DomName('MediaKeySession.onwebkitkeyerror')
+  @DocsEditable
+  Stream<MediaKeyEvent> get onKeyError => keyErrorEvent.forTarget(this);
+
+  @DomName('MediaKeySession.onwebkitkeymessage')
+  @DocsEditable
+  Stream<MediaKeyEvent> get onKeyMessage => keyMessageEvent.forTarget(this);
 }
 // 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
@@ -15350,35 +15301,47 @@
 
 @DocsEditable
 @DomName('MIDIAccess')
-@Experimental // untriaged
+// http://webaudio.github.io/web-midi-api/#midiaccess-interface
+@Experimental
 class MidiAccess extends EventTarget native "MIDIAccess" {
 
+  @DomName('MIDIAccess.connectEvent')
+  @DocsEditable
+  static const EventStreamProvider<MidiConnectionEvent> connectEvent = const EventStreamProvider<MidiConnectionEvent>('connect');
+
+  @DomName('MIDIAccess.disconnectEvent')
+  @DocsEditable
+  static const EventStreamProvider<MidiConnectionEvent> disconnectEvent = const EventStreamProvider<MidiConnectionEvent>('disconnect');
+
   @JSName('addEventListener')
   @DomName('MIDIAccess.addEventListener')
   @DocsEditable
-  @Experimental // untriaged
   void $dom_addEventListener(String type, EventListener listener, [bool useCapture]) native;
 
   @DomName('MIDIAccess.dispatchEvent')
   @DocsEditable
-  @Experimental // untriaged
   bool dispatchEvent(Event event) native;
 
   @DomName('MIDIAccess.inputs')
   @DocsEditable
-  @Experimental // untriaged
   List<MidiInput> inputs() native;
 
   @DomName('MIDIAccess.outputs')
   @DocsEditable
-  @Experimental // untriaged
   List<MidiOutput> outputs() native;
 
   @JSName('removeEventListener')
   @DomName('MIDIAccess.removeEventListener')
   @DocsEditable
-  @Experimental // untriaged
   void $dom_removeEventListener(String type, EventListener listener, [bool useCapture]) native;
+
+  @DomName('MIDIAccess.onconnect')
+  @DocsEditable
+  Stream<MidiConnectionEvent> get onConnect => connectEvent.forTarget(this);
+
+  @DomName('MIDIAccess.ondisconnect')
+  @DocsEditable
+  Stream<MidiConnectionEvent> get onDisconnect => disconnectEvent.forTarget(this);
 }
 // 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
@@ -15405,6 +15368,14 @@
 // http://webaudio.github.io/web-midi-api/#idl-def-MIDIInput
 @Experimental
 class MidiInput extends MidiPort implements EventTarget native "MIDIInput" {
+
+  @DomName('MIDIInput.midimessageEvent')
+  @DocsEditable
+  static const EventStreamProvider<MidiMessageEvent> midiMessageEvent = const EventStreamProvider<MidiMessageEvent>('midimessage');
+
+  @DomName('MIDIInput.onmidimessage')
+  @DocsEditable
+  Stream<MidiMessageEvent> get onMidiMessage => midiMessageEvent.forTarget(this);
 }
 // 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
@@ -15579,7 +15550,6 @@
 
   @DomName('MimeTypeArray.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   MimeType __getter__(String name) native;
 
   @DomName('MimeTypeArray.item')
@@ -16071,7 +16041,6 @@
 
   @DomName('WebKitNamedFlowCollection.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   NamedFlow __getter__(String name) native;
 
   @DomName('WebKitNamedFlowCollection.item')
@@ -16293,17 +16262,14 @@
 
   @DomName('NavigatorUserMediaError.constraintName')
   @DocsEditable
-  @Experimental // untriaged
   final String constraintName;
 
   @DomName('NavigatorUserMediaError.message')
   @DocsEditable
-  @Experimental // untriaged
   final String message;
 
   @DomName('NavigatorUserMediaError.name')
   @DocsEditable
-  @Experimental // untriaged
   final String name;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -17252,12 +17218,10 @@
 
   @DomName('HTMLObjectElement.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   bool __getter__(index_OR_name) native;
 
   @DomName('HTMLObjectElement.__setter__')
   @DocsEditable
-  @Experimental // untriaged
   void __setter__(index_OR_name, Node value) native;
 
   @DomName('HTMLObjectElement.checkValidity')
@@ -17937,7 +17901,6 @@
 
   @DomName('Plugin.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   MimeType __getter__(String name) native;
 
   @DomName('Plugin.item')
@@ -18008,7 +17971,6 @@
 
   @DomName('PluginArray.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   Plugin __getter__(String name) native;
 
   @DomName('PluginArray.item')
@@ -18450,12 +18412,12 @@
 
 @DocsEditable
 @DomName('ResourceProgressEvent')
-@Experimental // untriaged
+// https://chromiumcodereview.appspot.com/14773025/
+@deprecated // experimental
 class ResourceProgressEvent extends ProgressEvent native "ResourceProgressEvent" {
 
   @DomName('ResourceProgressEvent.url')
   @DocsEditable
-  @Experimental // untriaged
   final String url;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
@@ -19086,7 +19048,6 @@
 
   @DomName('RTCStatsResponse.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   RtcStatsReport __getter__(String name) native;
 
   @DomName('RTCStatsResponse.namedItem')
@@ -19407,7 +19368,6 @@
 
   @DomName('HTMLSelectElement.__setter__')
   @DocsEditable
-  @Experimental // untriaged
   void __setter__(int index, OptionElement value) native;
 
   @DomName('HTMLSelectElement.checkValidity')
@@ -20483,17 +20443,14 @@
 
   @DomName('Storage.__delete__')
   @DocsEditable
-  @Experimental // untriaged
   bool __delete__(index_OR_name) native;
 
   @DomName('Storage.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   String __getter__(index_OR_name) native;
 
   @DomName('Storage.__setter__')
   @DocsEditable
-  @Experimental // untriaged
   void __setter__(index_OR_name, String value) native;
 
   @JSName('clear')
@@ -23480,7 +23437,6 @@
 
   @DomName('Window.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   @Creates('Window|=Object')
   @Returns('Window|=Object')
   WindowBase __getter__(index_OR_name) {
@@ -23495,14 +23451,12 @@
   @JSName('__getter__')
   @DomName('Window.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   @Creates('Window|=Object')
   @Returns('Window|=Object')
   ___getter___1(int index) native;
   @JSName('__getter__')
   @DomName('Window.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   @Creates('Window|=Object')
   @Returns('Window|=Object')
   ___getter___2(String name) native;
@@ -24794,7 +24748,7 @@
 
 @DocsEditable
 @DomName('Entity')
-@Experimental // untriaged
+@deprecated // deprecated
 class _Entity extends Node native "Entity" {
 
   @DomName('Entity.notationName')
@@ -25187,7 +25141,6 @@
 
   @DomName('NamedNodeMap.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   Node __getter__(String name) native;
 
   @DomName('NamedNodeMap.getNamedItem')
@@ -25477,7 +25430,6 @@
 
   @DomName('StyleSheetList.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   CssStyleSheet __getter__(String name) native;
 
   @DomName('StyleSheetList.item')
diff --git a/sdk/lib/html/dartium/html_dartium.dart b/sdk/lib/html/dartium/html_dartium.dart
index d30c64d..8409fee 100644
--- a/sdk/lib/html/dartium/html_dartium.dart
+++ b/sdk/lib/html/dartium/html_dartium.dart
@@ -2332,13 +2332,12 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://www.w3.org/TR/filter-effects/
 class CssFilterRule extends CssRule {
   CssFilterRule.internal() : super.internal();
 
   @DomName('WebKitCSSFilterRule.style')
   @DocsEditable
-  @Experimental // untriaged
   CssStyleDeclaration get style native "CSSFilterRule_style_Getter";
 
 }
@@ -2354,78 +2353,65 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://dev.w3.org/csswg/cssom/
+@deprecated // deprecated
 class CssFilterValue extends _CssValueList {
   CssFilterValue.internal() : super.internal();
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_BLUR')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_BLUR = 10;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_BRIGHTNESS')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_BRIGHTNESS = 8;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_CONTRAST')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_CONTRAST = 9;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_CUSTOM')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_CUSTOM = 12;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_DROP_SHADOW')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_DROP_SHADOW = 11;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_GRAYSCALE = 2;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_HUE_ROTATE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_HUE_ROTATE = 5;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_INVERT')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_INVERT = 6;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_OPACITY')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_OPACITY = 7;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_REFERENCE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_REFERENCE = 1;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_SATURATE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_SATURATE = 4;
 
   @DomName('WebKitCSSFilterValue.CSS_FILTER_SEPIA')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_FILTER_SEPIA = 3;
 
   @DomName('WebKitCSSFilterValue.operationType')
   @DocsEditable
-  @Experimental // untriaged
   int get operationType native "CSSFilterValue_operationType_Getter";
 
   @DomName('WebKitCSSFilterValue.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   _CSSValue __getter__(int index) native "CSSFilterValue___getter___Callback";
 
 }
@@ -2534,23 +2520,20 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://www.w3.org/TR/css3-animations/#CSSKeyframeRule-interface
 class CssKeyframeRule extends CssRule {
   CssKeyframeRule.internal() : super.internal();
 
   @DomName('WebKitCSSKeyframeRule.keyText')
   @DocsEditable
-  @Experimental // untriaged
   String get keyText native "CSSKeyframeRule_keyText_Getter";
 
   @DomName('WebKitCSSKeyframeRule.keyText')
   @DocsEditable
-  @Experimental // untriaged
   void set keyText(String value) native "CSSKeyframeRule_keyText_Setter";
 
   @DomName('WebKitCSSKeyframeRule.style')
   @DocsEditable
-  @Experimental // untriaged
   CssStyleDeclaration get style native "CSSKeyframeRule_style_Getter";
 
 }
@@ -2566,43 +2549,36 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://www.w3.org/TR/css3-animations/#csskeyframesrule
 class CssKeyframesRule extends CssRule {
   CssKeyframesRule.internal() : super.internal();
 
   @DomName('WebKitCSSKeyframesRule.cssRules')
   @DocsEditable
-  @Experimental // untriaged
   List<CssRule> get cssRules native "CSSKeyframesRule_cssRules_Getter";
 
   @DomName('WebKitCSSKeyframesRule.name')
   @DocsEditable
-  @Experimental // untriaged
   String get name native "CSSKeyframesRule_name_Getter";
 
   @DomName('WebKitCSSKeyframesRule.name')
   @DocsEditable
-  @Experimental // untriaged
   void set name(String value) native "CSSKeyframesRule_name_Setter";
 
   @DomName('WebKitCSSKeyframesRule.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   CssKeyframeRule __getter__(int index) native "CSSKeyframesRule___getter___Callback";
 
   @DomName('WebKitCSSKeyframesRule.deleteRule')
   @DocsEditable
-  @Experimental // untriaged
   void deleteRule(String key) native "CSSKeyframesRule_deleteRule_Callback";
 
   @DomName('WebKitCSSKeyframesRule.findRule')
   @DocsEditable
-  @Experimental // untriaged
   CssKeyframeRule findRule(String key) native "CSSKeyframesRule_findRule_Callback";
 
   @DomName('WebKitCSSKeyframesRule.insertRule')
   @DocsEditable
-  @Experimental // untriaged
   void insertRule(String rule) native "CSSKeyframesRule_insertRule_Callback";
 
 }
@@ -2621,7 +2597,8 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://dev.w3.org/csswg/cssom/
+@deprecated // deprecated
 class CssMatrix extends NativeFieldWrapperClass1 {
   CssMatrix.internal();
 
@@ -2636,272 +2613,218 @@
 
   @DomName('WebKitCSSMatrix.a')
   @DocsEditable
-  @Experimental // untriaged
   num get a native "CSSMatrix_a_Getter";
 
   @DomName('WebKitCSSMatrix.a')
   @DocsEditable
-  @Experimental // untriaged
   void set a(num value) native "CSSMatrix_a_Setter";
 
   @DomName('WebKitCSSMatrix.b')
   @DocsEditable
-  @Experimental // untriaged
   num get b native "CSSMatrix_b_Getter";
 
   @DomName('WebKitCSSMatrix.b')
   @DocsEditable
-  @Experimental // untriaged
   void set b(num value) native "CSSMatrix_b_Setter";
 
   @DomName('WebKitCSSMatrix.c')
   @DocsEditable
-  @Experimental // untriaged
   num get c native "CSSMatrix_c_Getter";
 
   @DomName('WebKitCSSMatrix.c')
   @DocsEditable
-  @Experimental // untriaged
   void set c(num value) native "CSSMatrix_c_Setter";
 
   @DomName('WebKitCSSMatrix.d')
   @DocsEditable
-  @Experimental // untriaged
   num get d native "CSSMatrix_d_Getter";
 
   @DomName('WebKitCSSMatrix.d')
   @DocsEditable
-  @Experimental // untriaged
   void set d(num value) native "CSSMatrix_d_Setter";
 
   @DomName('WebKitCSSMatrix.e')
   @DocsEditable
-  @Experimental // untriaged
   num get e native "CSSMatrix_e_Getter";
 
   @DomName('WebKitCSSMatrix.e')
   @DocsEditable
-  @Experimental // untriaged
   void set e(num value) native "CSSMatrix_e_Setter";
 
   @DomName('WebKitCSSMatrix.f')
   @DocsEditable
-  @Experimental // untriaged
   num get f native "CSSMatrix_f_Getter";
 
   @DomName('WebKitCSSMatrix.f')
   @DocsEditable
-  @Experimental // untriaged
   void set f(num value) native "CSSMatrix_f_Setter";
 
   @DomName('WebKitCSSMatrix.m11')
   @DocsEditable
-  @Experimental // untriaged
   num get m11 native "CSSMatrix_m11_Getter";
 
   @DomName('WebKitCSSMatrix.m11')
   @DocsEditable
-  @Experimental // untriaged
   void set m11(num value) native "CSSMatrix_m11_Setter";
 
   @DomName('WebKitCSSMatrix.m12')
   @DocsEditable
-  @Experimental // untriaged
   num get m12 native "CSSMatrix_m12_Getter";
 
   @DomName('WebKitCSSMatrix.m12')
   @DocsEditable
-  @Experimental // untriaged
   void set m12(num value) native "CSSMatrix_m12_Setter";
 
   @DomName('WebKitCSSMatrix.m13')
   @DocsEditable
-  @Experimental // untriaged
   num get m13 native "CSSMatrix_m13_Getter";
 
   @DomName('WebKitCSSMatrix.m13')
   @DocsEditable
-  @Experimental // untriaged
   void set m13(num value) native "CSSMatrix_m13_Setter";
 
   @DomName('WebKitCSSMatrix.m14')
   @DocsEditable
-  @Experimental // untriaged
   num get m14 native "CSSMatrix_m14_Getter";
 
   @DomName('WebKitCSSMatrix.m14')
   @DocsEditable
-  @Experimental // untriaged
   void set m14(num value) native "CSSMatrix_m14_Setter";
 
   @DomName('WebKitCSSMatrix.m21')
   @DocsEditable
-  @Experimental // untriaged
   num get m21 native "CSSMatrix_m21_Getter";
 
   @DomName('WebKitCSSMatrix.m21')
   @DocsEditable
-  @Experimental // untriaged
   void set m21(num value) native "CSSMatrix_m21_Setter";
 
   @DomName('WebKitCSSMatrix.m22')
   @DocsEditable
-  @Experimental // untriaged
   num get m22 native "CSSMatrix_m22_Getter";
 
   @DomName('WebKitCSSMatrix.m22')
   @DocsEditable
-  @Experimental // untriaged
   void set m22(num value) native "CSSMatrix_m22_Setter";
 
   @DomName('WebKitCSSMatrix.m23')
   @DocsEditable
-  @Experimental // untriaged
   num get m23 native "CSSMatrix_m23_Getter";
 
   @DomName('WebKitCSSMatrix.m23')
   @DocsEditable
-  @Experimental // untriaged
   void set m23(num value) native "CSSMatrix_m23_Setter";
 
   @DomName('WebKitCSSMatrix.m24')
   @DocsEditable
-  @Experimental // untriaged
   num get m24 native "CSSMatrix_m24_Getter";
 
   @DomName('WebKitCSSMatrix.m24')
   @DocsEditable
-  @Experimental // untriaged
   void set m24(num value) native "CSSMatrix_m24_Setter";
 
   @DomName('WebKitCSSMatrix.m31')
   @DocsEditable
-  @Experimental // untriaged
   num get m31 native "CSSMatrix_m31_Getter";
 
   @DomName('WebKitCSSMatrix.m31')
   @DocsEditable
-  @Experimental // untriaged
   void set m31(num value) native "CSSMatrix_m31_Setter";
 
   @DomName('WebKitCSSMatrix.m32')
   @DocsEditable
-  @Experimental // untriaged
   num get m32 native "CSSMatrix_m32_Getter";
 
   @DomName('WebKitCSSMatrix.m32')
   @DocsEditable
-  @Experimental // untriaged
   void set m32(num value) native "CSSMatrix_m32_Setter";
 
   @DomName('WebKitCSSMatrix.m33')
   @DocsEditable
-  @Experimental // untriaged
   num get m33 native "CSSMatrix_m33_Getter";
 
   @DomName('WebKitCSSMatrix.m33')
   @DocsEditable
-  @Experimental // untriaged
   void set m33(num value) native "CSSMatrix_m33_Setter";
 
   @DomName('WebKitCSSMatrix.m34')
   @DocsEditable
-  @Experimental // untriaged
   num get m34 native "CSSMatrix_m34_Getter";
 
   @DomName('WebKitCSSMatrix.m34')
   @DocsEditable
-  @Experimental // untriaged
   void set m34(num value) native "CSSMatrix_m34_Setter";
 
   @DomName('WebKitCSSMatrix.m41')
   @DocsEditable
-  @Experimental // untriaged
   num get m41 native "CSSMatrix_m41_Getter";
 
   @DomName('WebKitCSSMatrix.m41')
   @DocsEditable
-  @Experimental // untriaged
   void set m41(num value) native "CSSMatrix_m41_Setter";
 
   @DomName('WebKitCSSMatrix.m42')
   @DocsEditable
-  @Experimental // untriaged
   num get m42 native "CSSMatrix_m42_Getter";
 
   @DomName('WebKitCSSMatrix.m42')
   @DocsEditable
-  @Experimental // untriaged
   void set m42(num value) native "CSSMatrix_m42_Setter";
 
   @DomName('WebKitCSSMatrix.m43')
   @DocsEditable
-  @Experimental // untriaged
   num get m43 native "CSSMatrix_m43_Getter";
 
   @DomName('WebKitCSSMatrix.m43')
   @DocsEditable
-  @Experimental // untriaged
   void set m43(num value) native "CSSMatrix_m43_Setter";
 
   @DomName('WebKitCSSMatrix.m44')
   @DocsEditable
-  @Experimental // untriaged
   num get m44 native "CSSMatrix_m44_Getter";
 
   @DomName('WebKitCSSMatrix.m44')
   @DocsEditable
-  @Experimental // untriaged
   void set m44(num value) native "CSSMatrix_m44_Setter";
 
   @DomName('WebKitCSSMatrix.inverse')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix inverse() native "CSSMatrix_inverse_Callback";
 
   @DomName('WebKitCSSMatrix.multiply')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix multiply(CssMatrix secondMatrix) native "CSSMatrix_multiply_Callback";
 
   @DomName('WebKitCSSMatrix.rotate')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix rotate(num rotX, num rotY, num rotZ) native "CSSMatrix_rotate_Callback";
 
   @DomName('WebKitCSSMatrix.rotateAxisAngle')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix rotateAxisAngle(num x, num y, num z, num angle) native "CSSMatrix_rotateAxisAngle_Callback";
 
   @DomName('WebKitCSSMatrix.scale')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix scale(num scaleX, num scaleY, num scaleZ) native "CSSMatrix_scale_Callback";
 
   @DomName('WebKitCSSMatrix.setMatrixValue')
   @DocsEditable
-  @Experimental // untriaged
   void setMatrixValue(String string) native "CSSMatrix_setMatrixValue_Callback";
 
   @DomName('WebKitCSSMatrix.skewX')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix skewX(num angle) native "CSSMatrix_skewX_Callback";
 
   @DomName('WebKitCSSMatrix.skewY')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix skewY(num angle) native "CSSMatrix_skewY_Callback";
 
   @DomName('WebKitCSSMatrix.toString')
   @DocsEditable
-  @Experimental // untriaged
   String toString() native "CSSMatrix_toString_Callback";
 
   @DomName('WebKitCSSMatrix.translate')
   @DocsEditable
-  @Experimental // untriaged
   CssMatrix translate(num x, num y, num z) native "CSSMatrix_translate_Callback";
 
 }
@@ -2946,7 +2869,8 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://dev.w3.org/csswg/cssom/
+@deprecated // deprecated
 class CssMixFunctionValue extends _CssValueList {
   CssMixFunctionValue.internal() : super.internal();
 
@@ -2988,13 +2912,12 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://dev.w3.org/csswg/css-regions/#region-style-rule-interface
 class CssRegionRule extends CssRule {
   CssRegionRule.internal() : super.internal();
 
   @DomName('WebKitCSSRegionRule.cssRules')
   @DocsEditable
-  @Experimental // untriaged
   List<CssRule> get cssRules native "CSSRegionRule_cssRules_Getter";
 
 }
@@ -3130,7 +3053,6 @@
 
   @DomName('CSSStyleDeclaration.__setter__')
   @DocsEditable
-  @Experimental // untriaged
   void __setter__(String propertyName, String propertyValue) native "CSSStyleDeclaration___setter___Callback";
 
   @DomName('CSSStyleDeclaration.getPropertyPriority')
@@ -6447,123 +6369,101 @@
 @SupportedBrowser(SupportedBrowser.CHROME)
 @SupportedBrowser(SupportedBrowser.SAFARI)
 @Experimental
-@Experimental // untriaged
+// http://dev.w3.org/csswg/cssom/
+@deprecated // deprecated
 class CssTransformValue extends _CssValueList {
   CssTransformValue.internal() : super.internal();
 
   @DomName('WebKitCSSTransformValue.CSS_MATRIX')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_MATRIX = 11;
 
   @DomName('WebKitCSSTransformValue.CSS_MATRIX3D')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_MATRIX3D = 21;
 
   @DomName('WebKitCSSTransformValue.CSS_PERSPECTIVE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_PERSPECTIVE = 20;
 
   @DomName('WebKitCSSTransformValue.CSS_ROTATE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_ROTATE = 4;
 
   @DomName('WebKitCSSTransformValue.CSS_ROTATE3D')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_ROTATE3D = 17;
 
   @DomName('WebKitCSSTransformValue.CSS_ROTATEX')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_ROTATEX = 14;
 
   @DomName('WebKitCSSTransformValue.CSS_ROTATEY')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_ROTATEY = 15;
 
   @DomName('WebKitCSSTransformValue.CSS_ROTATEZ')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_ROTATEZ = 16;
 
   @DomName('WebKitCSSTransformValue.CSS_SCALE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SCALE = 5;
 
   @DomName('WebKitCSSTransformValue.CSS_SCALE3D')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SCALE3D = 19;
 
   @DomName('WebKitCSSTransformValue.CSS_SCALEX')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SCALEX = 6;
 
   @DomName('WebKitCSSTransformValue.CSS_SCALEY')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SCALEY = 7;
 
   @DomName('WebKitCSSTransformValue.CSS_SCALEZ')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SCALEZ = 18;
 
   @DomName('WebKitCSSTransformValue.CSS_SKEW')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SKEW = 8;
 
   @DomName('WebKitCSSTransformValue.CSS_SKEWX')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SKEWX = 9;
 
   @DomName('WebKitCSSTransformValue.CSS_SKEWY')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_SKEWY = 10;
 
   @DomName('WebKitCSSTransformValue.CSS_TRANSLATE')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_TRANSLATE = 1;
 
   @DomName('WebKitCSSTransformValue.CSS_TRANSLATE3D')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_TRANSLATE3D = 13;
 
   @DomName('WebKitCSSTransformValue.CSS_TRANSLATEX')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_TRANSLATEX = 2;
 
   @DomName('WebKitCSSTransformValue.CSS_TRANSLATEY')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_TRANSLATEY = 3;
 
   @DomName('WebKitCSSTransformValue.CSS_TRANSLATEZ')
   @DocsEditable
-  @Experimental // untriaged
   static const int CSS_TRANSLATEZ = 12;
 
   @DomName('WebKitCSSTransformValue.operationType')
   @DocsEditable
-  @Experimental // untriaged
   int get operationType native "CSSTransformValue_operationType_Getter";
 
   @DomName('WebKitCSSTransformValue.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   _CSSValue __getter__(int index) native "CSSTransformValue___getter___Callback";
 
 }
@@ -8115,7 +8015,6 @@
 
   @DomName('DOMSettableTokenList.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   String __getter__(int index) native "DOMSettableTokenList___getter___Callback";
 
 }
@@ -8203,17 +8102,14 @@
 
   @DomName('DOMStringMap.__delete__')
   @DocsEditable
-  @Experimental // untriaged
   bool __delete__(String name) native "DOMStringMap___delete___Callback";
 
   @DomName('DOMStringMap.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   String __getter__(String name) native "DOMStringMap___getter___Callback";
 
   @DomName('DOMStringMap.__setter__')
   @DocsEditable
-  @Experimental // untriaged
   void __setter__(String name, String value) native "DOMStringMap___setter___Callback";
 
 }
@@ -10074,12 +9970,10 @@
 
   @DomName('HTMLEmbedElement.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   bool __getter__(index_OR_name) native "HTMLEmbedElement___getter___Callback";
 
   @DomName('HTMLEmbedElement.__setter__')
   @DocsEditable
-  @Experimental // untriaged
   void __setter__(index_OR_name, Node value) native "HTMLEmbedElement___setter___Callback";
 
 }
@@ -11602,7 +11496,6 @@
 
   @DomName('HTMLFormElement.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   Node __getter__(int index) native "HTMLFormElement___getter___Callback";
 
   @DomName('HTMLFormElement.checkValidity')
@@ -12023,7 +11916,6 @@
 
   @DomName('HTMLAllCollection.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   Node __getter__(int index) native "HTMLAllCollection___getter___Callback";
 
   @DomName('HTMLAllCollection.item')
@@ -12102,7 +11994,6 @@
 
   @DomName('HTMLCollection.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   Node __getter__(String name) native "HTMLCollection___getter___Callback";
 
   @DomName('HTMLCollection.item')
@@ -12312,7 +12203,6 @@
 
   @DomName('HTMLFormControlsCollection.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   Node __getter__(int index) native "HTMLFormControlsCollection___getter___Callback";
 
   @DomName('HTMLFormControlsCollection.namedItem')
@@ -14681,7 +14571,8 @@
 
   @DomName('HTMLLinkElement.import')
   @DocsEditable
-  @Experimental // untriaged
+  // https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/imports/index.html#interface-import
+  @Experimental
   DocumentFragment get import native "HTMLLinkElement_import_Getter";
 
   @DomName('HTMLLinkElement.media')
@@ -15740,6 +15631,27 @@
 class MediaKeySession extends EventTarget {
   MediaKeySession.internal() : super.internal();
 
+  @DomName('MediaKeySession.webkitkeyaddedEvent')
+  @DocsEditable
+  @SupportedBrowser(SupportedBrowser.CHROME)
+  @SupportedBrowser(SupportedBrowser.SAFARI)
+  @Experimental
+  static const EventStreamProvider<MediaKeyEvent> keyAddedEvent = const EventStreamProvider<MediaKeyEvent>('webkitkeyadded');
+
+  @DomName('MediaKeySession.webkitkeyerrorEvent')
+  @DocsEditable
+  @SupportedBrowser(SupportedBrowser.CHROME)
+  @SupportedBrowser(SupportedBrowser.SAFARI)
+  @Experimental
+  static const EventStreamProvider<MediaKeyEvent> keyErrorEvent = const EventStreamProvider<MediaKeyEvent>('webkitkeyerror');
+
+  @DomName('MediaKeySession.webkitkeymessageEvent')
+  @DocsEditable
+  @SupportedBrowser(SupportedBrowser.CHROME)
+  @SupportedBrowser(SupportedBrowser.SAFARI)
+  @Experimental
+  static const EventStreamProvider<MediaKeyEvent> keyMessageEvent = const EventStreamProvider<MediaKeyEvent>('webkitkeymessage');
+
   @DomName('MediaKeySession.error')
   @DocsEditable
   MediaKeyError get error native "MediaKeySession_error_Getter";
@@ -15772,6 +15684,18 @@
   @DocsEditable
   void update(Uint8List key) native "MediaKeySession_update_Callback";
 
+  @DomName('MediaKeySession.onwebkitkeyadded')
+  @DocsEditable
+  Stream<MediaKeyEvent> get onKeyAdded => keyAddedEvent.forTarget(this);
+
+  @DomName('MediaKeySession.onwebkitkeyerror')
+  @DocsEditable
+  Stream<MediaKeyEvent> get onKeyError => keyErrorEvent.forTarget(this);
+
+  @DomName('MediaKeySession.onwebkitkeymessage')
+  @DocsEditable
+  Stream<MediaKeyEvent> get onKeyMessage => keyMessageEvent.forTarget(this);
+
 }
 // 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
@@ -16545,35 +16469,47 @@
 
 @DocsEditable
 @DomName('MIDIAccess')
-@Experimental // untriaged
+// http://webaudio.github.io/web-midi-api/#midiaccess-interface
+@Experimental
 class MidiAccess extends EventTarget {
   MidiAccess.internal() : super.internal();
 
+  @DomName('MIDIAccess.connectEvent')
+  @DocsEditable
+  static const EventStreamProvider<MidiConnectionEvent> connectEvent = const EventStreamProvider<MidiConnectionEvent>('connect');
+
+  @DomName('MIDIAccess.disconnectEvent')
+  @DocsEditable
+  static const EventStreamProvider<MidiConnectionEvent> disconnectEvent = const EventStreamProvider<MidiConnectionEvent>('disconnect');
+
   @DomName('MIDIAccess.addEventListener')
   @DocsEditable
-  @Experimental // untriaged
   void $dom_addEventListener(String type, EventListener listener, [bool useCapture]) native "MIDIAccess_addEventListener_Callback";
 
   @DomName('MIDIAccess.dispatchEvent')
   @DocsEditable
-  @Experimental // untriaged
   bool dispatchEvent(Event event) native "MIDIAccess_dispatchEvent_Callback";
 
   @DomName('MIDIAccess.inputs')
   @DocsEditable
-  @Experimental // untriaged
   List<MidiInput> inputs() native "MIDIAccess_inputs_Callback";
 
   @DomName('MIDIAccess.outputs')
   @DocsEditable
-  @Experimental // untriaged
   List<MidiOutput> outputs() native "MIDIAccess_outputs_Callback";
 
   @DomName('MIDIAccess.removeEventListener')
   @DocsEditable
-  @Experimental // untriaged
   void $dom_removeEventListener(String type, EventListener listener, [bool useCapture]) native "MIDIAccess_removeEventListener_Callback";
 
+  @DomName('MIDIAccess.onconnect')
+  @DocsEditable
+  Stream<MidiConnectionEvent> get onConnect => connectEvent.forTarget(this);
+
+  @DomName('MIDIAccess.ondisconnect')
+  @DocsEditable
+  Stream<MidiConnectionEvent> get onDisconnect => disconnectEvent.forTarget(this);
+
 }
 // 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
@@ -16608,6 +16544,14 @@
 class MidiInput extends MidiPort implements EventTarget {
   MidiInput.internal() : super.internal();
 
+  @DomName('MIDIInput.midimessageEvent')
+  @DocsEditable
+  static const EventStreamProvider<MidiMessageEvent> midiMessageEvent = const EventStreamProvider<MidiMessageEvent>('midimessage');
+
+  @DomName('MIDIInput.onmidimessage')
+  @DocsEditable
+  Stream<MidiMessageEvent> get onMidiMessage => midiMessageEvent.forTarget(this);
+
 }
 // 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
@@ -16809,7 +16753,6 @@
 
   @DomName('MimeTypeArray.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   MimeType __getter__(String name) native "MimeTypeArray___getter___Callback";
 
   @DomName('MimeTypeArray.item')
@@ -17283,7 +17226,6 @@
 
   @DomName('WebKitNamedFlowCollection.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   NamedFlow __getter__(String name) native "DOMNamedFlowCollection___getter___Callback";
 
   @DomName('WebKitNamedFlowCollection.item')
@@ -17500,17 +17442,14 @@
 
   @DomName('NavigatorUserMediaError.constraintName')
   @DocsEditable
-  @Experimental // untriaged
   String get constraintName native "NavigatorUserMediaError_constraintName_Getter";
 
   @DomName('NavigatorUserMediaError.message')
   @DocsEditable
-  @Experimental // untriaged
   String get message native "NavigatorUserMediaError_message_Getter";
 
   @DomName('NavigatorUserMediaError.name')
   @DocsEditable
-  @Experimental // untriaged
   String get name native "NavigatorUserMediaError_name_Getter";
 
 }
@@ -18516,12 +18455,10 @@
 
   @DomName('HTMLObjectElement.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   bool __getter__(index_OR_name) native "HTMLObjectElement___getter___Callback";
 
   @DomName('HTMLObjectElement.__setter__')
   @DocsEditable
-  @Experimental // untriaged
   void __setter__(index_OR_name, Node value) native "HTMLObjectElement___setter___Callback";
 
   @DomName('HTMLObjectElement.checkValidity')
@@ -19301,7 +19238,6 @@
 
   @DomName('Plugin.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   MimeType __getter__(String name) native "Plugin___getter___Callback";
 
   @DomName('Plugin.item')
@@ -19377,7 +19313,6 @@
 
   @DomName('PluginArray.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   Plugin __getter__(String name) native "PluginArray___getter___Callback";
 
   @DomName('PluginArray.item')
@@ -19864,13 +19799,13 @@
 
 @DocsEditable
 @DomName('ResourceProgressEvent')
-@Experimental // untriaged
+// https://chromiumcodereview.appspot.com/14773025/
+@deprecated // experimental
 class ResourceProgressEvent extends ProgressEvent {
   ResourceProgressEvent.internal() : super.internal();
 
   @DomName('ResourceProgressEvent.url')
   @DocsEditable
-  @Experimental // untriaged
   String get url native "ResourceProgressEvent_url_Getter";
 
 }
@@ -20464,7 +20399,6 @@
 
   @DomName('RTCStatsResponse.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   RtcStatsReport __getter__(String name) native "RTCStatsResponse___getter___Callback";
 
   @DomName('RTCStatsResponse.namedItem')
@@ -20870,7 +20804,6 @@
 
   @DomName('HTMLSelectElement.__setter__')
   @DocsEditable
-  @Experimental // untriaged
   void __setter__(int index, OptionElement value) native "HTMLSelectElement___setter___Callback";
 
   @DomName('HTMLSelectElement.checkValidity')
@@ -26703,7 +26636,7 @@
 
 @DocsEditable
 @DomName('Entity')
-@Experimental // untriaged
+@deprecated // deprecated
 class _Entity extends Node {
   _Entity.internal() : super.internal();
 
@@ -27163,7 +27096,6 @@
 
   @DomName('NamedNodeMap.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   Node __getter__(String name) native "NamedNodeMap___getter___Callback";
 
   @DomName('NamedNodeMap.getNamedItem')
@@ -27487,7 +27419,6 @@
 
   @DomName('StyleSheetList.__getter__')
   @DocsEditable
-  @Experimental // untriaged
   CssStyleSheet __getter__(String name) native "StyleSheetList___getter___Callback";
 
   @DomName('StyleSheetList.item')
diff --git a/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart b/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
index 0a1f0ae..a61c68d 100644
--- a/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
+++ b/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
@@ -1050,7 +1050,6 @@
 
   @DomName('WaveShaperNode.oversample')
   @DocsEditable
-  @Experimental // untriaged
   String oversample;
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
diff --git a/sdk/lib/web_audio/dartium/web_audio_dartium.dart b/sdk/lib/web_audio/dartium/web_audio_dartium.dart
index 2f3e649..94ece93 100644
--- a/sdk/lib/web_audio/dartium/web_audio_dartium.dart
+++ b/sdk/lib/web_audio/dartium/web_audio_dartium.dart
@@ -1316,12 +1316,10 @@
 
   @DomName('WaveShaperNode.oversample')
   @DocsEditable
-  @Experimental // untriaged
   String get oversample native "WaveShaperNode_oversample_Getter";
 
   @DomName('WaveShaperNode.oversample')
   @DocsEditable
-  @Experimental // untriaged
   void set oversample(String value) native "WaveShaperNode_oversample_Setter";
 
 }
diff --git a/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart b/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
index b67cb3f..1cad109 100644
--- a/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
+++ b/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
@@ -677,7 +677,8 @@
 
 @DocsEditable
 @DomName('EXTFragDepth')
-@Experimental // untriaged
+// http://www.khronos.org/registry/webgl/extensions/EXT_frag_depth/
+@Experimental
 class ExtFragDepth native "EXTFragDepth" {
 }
 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
diff --git a/sdk/lib/web_gl/dartium/web_gl_dartium.dart b/sdk/lib/web_gl/dartium/web_gl_dartium.dart
index d3e5ddc..a1e5550 100644
--- a/sdk/lib/web_gl/dartium/web_gl_dartium.dart
+++ b/sdk/lib/web_gl/dartium/web_gl_dartium.dart
@@ -745,7 +745,8 @@
 
 @DocsEditable
 @DomName('EXTFragDepth')
-@Experimental // untriaged
+// http://www.khronos.org/registry/webgl/extensions/EXT_frag_depth/
+@Experimental
 class ExtFragDepth extends NativeFieldWrapperClass1 {
   ExtFragDepth.internal();
 
diff --git a/tools/dom/dom.json b/tools/dom/dom.json
index 759808a..5e3e72f 100644
--- a/tools/dom/dom.json
+++ b/tools/dom/dom.json
@@ -299,59 +299,32 @@
     "support_level": "experimental"
   },
   "CSSFilterRule": {
+    "comment": "http://www.w3.org/TR/filter-effects/",
     "members": {
-      "style": {
-        "support_level": "untriaged"
-      }
+      "style": {}
     },
-    "support_level": "untriaged"
+    "support_level": "experimental"
   },
   "CSSFilterValue": {
+    "comment": "http://dev.w3.org/csswg/cssom/",
+    "dart_action": "suppress",
     "members": {
-      "CSS_FILTER_BLUR": {
-        "support_level": "untriaged"
-      },
-      "CSS_FILTER_BRIGHTNESS": {
-        "support_level": "untriaged"
-      },
-      "CSS_FILTER_CONTRAST": {
-        "support_level": "untriaged"
-      },
-      "CSS_FILTER_CUSTOM": {
-        "support_level": "untriaged"
-      },
-      "CSS_FILTER_DROP_SHADOW": {
-        "support_level": "untriaged"
-      },
-      "CSS_FILTER_GRAYSCALE": {
-        "support_level": "untriaged"
-      },
-      "CSS_FILTER_HUE_ROTATE": {
-        "support_level": "untriaged"
-      },
-      "CSS_FILTER_INVERT": {
-        "support_level": "untriaged"
-      },
-      "CSS_FILTER_OPACITY": {
-        "support_level": "untriaged"
-      },
-      "CSS_FILTER_REFERENCE": {
-        "support_level": "untriaged"
-      },
-      "CSS_FILTER_SATURATE": {
-        "support_level": "untriaged"
-      },
-      "CSS_FILTER_SEPIA": {
-        "support_level": "untriaged"
-      },
-      "__getter__": {
-        "support_level": "untriaged"
-      },
-      "operationType": {
-        "support_level": "untriaged"
-      }
+      "CSS_FILTER_BLUR": {},
+      "CSS_FILTER_BRIGHTNESS": {},
+      "CSS_FILTER_CONTRAST": {},
+      "CSS_FILTER_CUSTOM": {},
+      "CSS_FILTER_DROP_SHADOW": {},
+      "CSS_FILTER_GRAYSCALE": {},
+      "CSS_FILTER_HUE_ROTATE": {},
+      "CSS_FILTER_INVERT": {},
+      "CSS_FILTER_OPACITY": {},
+      "CSS_FILTER_REFERENCE": {},
+      "CSS_FILTER_SATURATE": {},
+      "CSS_FILTER_SEPIA": {},
+      "__getter__": {},
+      "operationType": {}
     },
-    "support_level": "untriaged"
+    "support_level": "deprecated"
   },
   "CSSFontFaceLoadEvent": {
     "comment": "http://www.w3.org/TR/css3-fonts/",
@@ -387,140 +360,64 @@
     "support_level": "stable"
   },
   "CSSKeyframeRule": {
+    "comment": "http://www.w3.org/TR/css3-animations/#CSSKeyframeRule-interface",
     "members": {
-      "keyText": {
-        "support_level": "untriaged"
-      },
-      "style": {
-        "support_level": "untriaged"
-      }
+      "keyText": {},
+      "style": {}
     },
-    "support_level": "untriaged"
+    "support_level": "experimental"
   },
   "CSSKeyframesRule": {
+    "comment": "http://www.w3.org/TR/css3-animations/#csskeyframesrule",
     "members": {
-      "__getter__": {
-        "support_level": "untriaged"
-      },
-      "cssRules": {
-        "support_level": "untriaged"
-      },
-      "deleteRule": {
-        "support_level": "untriaged"
-      },
-      "findRule": {
-        "support_level": "untriaged"
-      },
-      "insertRule": {
-        "support_level": "untriaged"
-      },
-      "name": {
-        "support_level": "untriaged"
-      }
+      "__getter__": {},
+      "cssRules": {},
+      "deleteRule": {},
+      "findRule": {},
+      "insertRule": {},
+      "name": {}
     },
-    "support_level": "untriaged"
+    "support_level": "experimental"
   },
   "CSSMatrix": {
+    "comment": "http://dev.w3.org/csswg/cssom/",
+    "dart_action": "suppress",
     "members": {
       "CSSMatrix": {},
-      "a": {
-        "support_level": "untriaged"
-      },
-      "b": {
-        "support_level": "untriaged"
-      },
-      "c": {
-        "support_level": "untriaged"
-      },
-      "d": {
-        "support_level": "untriaged"
-      },
-      "e": {
-        "support_level": "untriaged"
-      },
-      "f": {
-        "support_level": "untriaged"
-      },
-      "inverse": {
-        "support_level": "untriaged"
-      },
-      "m11": {
-        "support_level": "untriaged"
-      },
-      "m12": {
-        "support_level": "untriaged"
-      },
-      "m13": {
-        "support_level": "untriaged"
-      },
-      "m14": {
-        "support_level": "untriaged"
-      },
-      "m21": {
-        "support_level": "untriaged"
-      },
-      "m22": {
-        "support_level": "untriaged"
-      },
-      "m23": {
-        "support_level": "untriaged"
-      },
-      "m24": {
-        "support_level": "untriaged"
-      },
-      "m31": {
-        "support_level": "untriaged"
-      },
-      "m32": {
-        "support_level": "untriaged"
-      },
-      "m33": {
-        "support_level": "untriaged"
-      },
-      "m34": {
-        "support_level": "untriaged"
-      },
-      "m41": {
-        "support_level": "untriaged"
-      },
-      "m42": {
-        "support_level": "untriaged"
-      },
-      "m43": {
-        "support_level": "untriaged"
-      },
-      "m44": {
-        "support_level": "untriaged"
-      },
-      "multiply": {
-        "support_level": "untriaged"
-      },
-      "rotate": {
-        "support_level": "untriaged"
-      },
-      "rotateAxisAngle": {
-        "support_level": "untriaged"
-      },
-      "scale": {
-        "support_level": "untriaged"
-      },
-      "setMatrixValue": {
-        "support_level": "untriaged"
-      },
-      "skewX": {
-        "support_level": "untriaged"
-      },
-      "skewY": {
-        "support_level": "untriaged"
-      },
-      "toString": {
-        "support_level": "untriaged"
-      },
-      "translate": {
-        "support_level": "untriaged"
-      }
+      "a": {},
+      "b": {},
+      "c": {},
+      "d": {},
+      "e": {},
+      "f": {},
+      "inverse": {},
+      "m11": {},
+      "m12": {},
+      "m13": {},
+      "m14": {},
+      "m21": {},
+      "m22": {},
+      "m23": {},
+      "m24": {},
+      "m31": {},
+      "m32": {},
+      "m33": {},
+      "m34": {},
+      "m41": {},
+      "m42": {},
+      "m43": {},
+      "m44": {},
+      "multiply": {},
+      "rotate": {},
+      "rotateAxisAngle": {},
+      "scale": {},
+      "setMatrixValue": {},
+      "skewX": {},
+      "skewY": {},
+      "toString": {},
+      "translate": {}
     },
-    "support_level": "untriaged"
+    "support_level": "deprecated"
   },
   "CSSMediaRule": {
     "comment": "http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule",
@@ -533,8 +430,10 @@
     "support_level": "stable"
   },
   "CSSMixFunctionValue": {
+    "comment": "http://dev.w3.org/csswg/cssom/",
+    "dart_action": "suppress",
     "members": {},
-    "support_level": "untriaged"
+    "support_level": "deprecated"
   },
   "CSSPageRule": {
     "comment": "http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPageRule",
@@ -590,12 +489,11 @@
     "support_level": "deprecated"
   },
   "CSSRegionRule": {
+    "comment": "http://dev.w3.org/csswg/css-regions/#region-style-rule-interface",
     "members": {
-      "cssRules": {
-        "support_level": "untriaged"
-      }
+      "cssRules": {}
     },
-    "support_level": "untriaged"
+    "support_level": "experimental"
   },
   "CSSRule": {
     "comment": "http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule",
@@ -650,9 +548,7 @@
   "CSSStyleDeclaration": {
     "comment": "http://dev.w3.org/csswg/cssom/#the-cssstyledeclaration-interface",
     "members": {
-      "__setter__": {
-        "support_level": "untriaged"
-      },
+      "__setter__": {},
       "cssText": {},
       "getPropertyCSSValue": {
         "comment": "http://dev.w3.org/csswg/cssom/#the-cssstyledeclaration-interface",
@@ -707,78 +603,34 @@
     "support_level": "standard"
   },
   "CSSTransformValue": {
+    "comment": "http://dev.w3.org/csswg/cssom/",
+    "dart_action": "suppress",
     "members": {
-      "CSS_MATRIX": {
-        "support_level": "untriaged"
-      },
-      "CSS_MATRIX3D": {
-        "support_level": "untriaged"
-      },
-      "CSS_PERSPECTIVE": {
-        "support_level": "untriaged"
-      },
-      "CSS_ROTATE": {
-        "support_level": "untriaged"
-      },
-      "CSS_ROTATE3D": {
-        "support_level": "untriaged"
-      },
-      "CSS_ROTATEX": {
-        "support_level": "untriaged"
-      },
-      "CSS_ROTATEY": {
-        "support_level": "untriaged"
-      },
-      "CSS_ROTATEZ": {
-        "support_level": "untriaged"
-      },
-      "CSS_SCALE": {
-        "support_level": "untriaged"
-      },
-      "CSS_SCALE3D": {
-        "support_level": "untriaged"
-      },
-      "CSS_SCALEX": {
-        "support_level": "untriaged"
-      },
-      "CSS_SCALEY": {
-        "support_level": "untriaged"
-      },
-      "CSS_SCALEZ": {
-        "support_level": "untriaged"
-      },
-      "CSS_SKEW": {
-        "support_level": "untriaged"
-      },
-      "CSS_SKEWX": {
-        "support_level": "untriaged"
-      },
-      "CSS_SKEWY": {
-        "support_level": "untriaged"
-      },
-      "CSS_TRANSLATE": {
-        "support_level": "untriaged"
-      },
-      "CSS_TRANSLATE3D": {
-        "support_level": "untriaged"
-      },
-      "CSS_TRANSLATEX": {
-        "support_level": "untriaged"
-      },
-      "CSS_TRANSLATEY": {
-        "support_level": "untriaged"
-      },
-      "CSS_TRANSLATEZ": {
-        "support_level": "untriaged"
-      },
-      "__getter__": {
-        "support_level": "untriaged"
-      },
-      "operationType": {
-        "support_level": "untriaged"
-      }
+      "CSS_MATRIX": {},
+      "CSS_MATRIX3D": {},
+      "CSS_PERSPECTIVE": {},
+      "CSS_ROTATE": {},
+      "CSS_ROTATE3D": {},
+      "CSS_ROTATEX": {},
+      "CSS_ROTATEY": {},
+      "CSS_ROTATEZ": {},
+      "CSS_SCALE": {},
+      "CSS_SCALE3D": {},
+      "CSS_SCALEX": {},
+      "CSS_SCALEY": {},
+      "CSS_SCALEZ": {},
+      "CSS_SKEW": {},
+      "CSS_SKEWX": {},
+      "CSS_SKEWY": {},
+      "CSS_TRANSLATE": {},
+      "CSS_TRANSLATE3D": {},
+      "CSS_TRANSLATEX": {},
+      "CSS_TRANSLATEY": {},
+      "CSS_TRANSLATEZ": {},
+      "__getter__": {},
+      "operationType": {}
     },
-    "support_level": "untriaged"
+    "support_level": "deprecated"
   },
   "CSSUnknownRule": {
     "comment": "http://dev.w3.org/csswg/cssom/#the-cssstylesheet-interface",
@@ -1340,9 +1192,7 @@
   "DOMNamedFlowCollection": {
     "comment": "http://dev.w3.org/csswg/css-regions/#dom-named-flow-collection",
     "members": {
-      "__getter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
       "item": {},
       "length": {},
       "namedItem": {}
@@ -1369,9 +1219,7 @@
   "DOMSettableTokenList": {
     "comment": "http://dev.w3.org/html5/spec-LC/common-dom-interfaces.html#domsettabletokenlist-0",
     "members": {
-      "__getter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
       "value": {}
     },
     "support_level": "stable"
@@ -1388,15 +1236,9 @@
   "DOMStringMap": {
     "comment": "http://dev.w3.org/html5/spec-LC/common-dom-interfaces.html#domstringmap-0",
     "members": {
-      "__delete__": {
-        "support_level": "untriaged"
-      },
-      "__getter__": {
-        "support_level": "untriaged"
-      },
-      "__setter__": {
-        "support_level": "untriaged"
-      }
+      "__delete__": {},
+      "__getter__": {},
+      "__setter__": {}
     },
     "support_level": "stable"
   },
@@ -1424,9 +1266,7 @@
         "comment": "http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem",
         "support_level": "experimental"
       },
-      "__getter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
       "addEventListener": {},
       "alert": {},
       "applicationCache": {},
@@ -2122,8 +1962,7 @@
         "support_level": "experimental"
       },
       "preferredStylesheetSet": {
-        "comment": "http://dev.w3.org/csswg/cssom/#widl-Document-preferredStyleSheetSet",
-        "dart_action": "private"
+        "comment": "http://dev.w3.org/csswg/cssom/#widl-Document-preferredStyleSheetSet"
       },
       "queryCommandEnabled": {},
       "queryCommandIndeterm": {},
@@ -2139,8 +1978,7 @@
         "support_level": "experimental"
       },
       "selectedStylesheetSet": {
-        "comment": "http://dev.w3.org/csswg/cssom/#widl-Document-selectedStyleSheetSet",
-        "dart_action": "private"
+        "comment": "http://dev.w3.org/csswg/cssom/#widl-Document-selectedStyleSheetSet"
       },
       "styleSheets": {},
       "title": {},
@@ -2320,8 +2158,9 @@
     "support_level": "stable"
   },
   "EXTFragDepth": {
+    "comment": "http://www.khronos.org/registry/webgl/extensions/EXT_frag_depth/",
     "members": {},
-    "support_level": "untriaged"
+    "support_level": "experimental"
   },
   "EXTTextureFilterAnisotropic": {
     "comment": "http://www.khronos.org/registry/webgl/extensions/EXT_texture_filter_anisotropic/",
@@ -2656,12 +2495,13 @@
     "support_level": "stable"
   },
   "Entity": {
+    "dart_action": "suppress",
     "members": {
       "notationName": {},
       "publicId": {},
       "systemId": {}
     },
-    "support_level": "untriaged"
+    "support_level": "deprecated"
   },
   "EntityReference": {
     "dart_action": "suppress",
@@ -3206,9 +3046,7 @@
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#dom-document-all",
     "dart_action": "suppress",
     "members": {
-      "__getter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
       "item": {},
       "length": {},
       "namedItem": {},
@@ -3451,9 +3289,7 @@
   "HTMLCollection": {
     "comment": "http://www.w3.org/TR/domcore/#interface-htmlcollection",
     "members": {
-      "__getter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
       "item": {},
       "length": {},
       "namedItem": {}
@@ -3662,12 +3498,8 @@
     "dart_action": "unstable",
     "members": {
       "HTMLEmbedElement": {},
-      "__getter__": {
-        "support_level": "untriaged"
-      },
-      "__setter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
+      "__setter__": {},
       "align": {
         "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#HTMLEmbedElement-partial",
         "dart_action": "suppress",
@@ -3717,9 +3549,7 @@
   "HTMLFormControlsCollection": {
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmlformcontrolscollection-0",
     "members": {
-      "__getter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
       "namedItem": {}
     },
     "support_level": "stable"
@@ -3728,9 +3558,7 @@
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#the-form-element",
     "members": {
       "HTMLFormElement": {},
-      "__getter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
       "acceptCharset": {},
       "action": {},
       "autocomplete": {
@@ -4150,7 +3978,8 @@
       "href": {},
       "hreflang": {},
       "import": {
-        "support_level": "untriaged"
+        "comment": "https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/imports/index.html#interface-import",
+        "support_level": "experimental"
       },
       "media": {},
       "rel": {},
@@ -4434,12 +4263,8 @@
     "dart_action": "unstable",
     "members": {
       "HTMLObjectElement": {},
-      "__getter__": {
-        "support_level": "untriaged"
-      },
-      "__setter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
+      "__setter__": {},
       "align": {
         "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#HTMLObjectElement-partial",
         "dart_action": "suppress",
@@ -4673,9 +4498,7 @@
     "comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-select-element",
     "members": {
       "HTMLSelectElement": {},
-      "__setter__": {
-        "support_level": "untriaged"
-      },
+      "__setter__": {},
       "autofocus": {},
       "checkValidity": {},
       "disabled": {},
@@ -5471,24 +5294,17 @@
     "support_level": "stable"
   },
   "MIDIAccess": {
+    "comment": "http://webaudio.github.io/web-midi-api/#midiaccess-interface",
     "members": {
-      "addEventListener": {
-        "support_level": "untriaged"
-      },
-      "dispatchEvent": {
-        "support_level": "untriaged"
-      },
-      "inputs": {
-        "support_level": "untriaged"
-      },
-      "outputs": {
-        "support_level": "untriaged"
-      },
-      "removeEventListener": {
-        "support_level": "untriaged"
-      }
+      "addEventListener": {},
+      "dispatchEvent": {},
+      "inputs": {},
+      "onconnect": {},
+      "ondisconnect": {},
+      "outputs": {},
+      "removeEventListener": {}
     },
-    "support_level": "untriaged"
+    "support_level": "experimental"
   },
   "MIDIConnectionEvent": {
     "comment": "http://webaudio.github.io/web-midi-api/#midiconnectionevent-interface",
@@ -5504,7 +5320,9 @@
   },
   "MIDIInput": {
     "comment": "http://webaudio.github.io/web-midi-api/#idl-def-MIDIInput",
-    "members": {},
+    "members": {
+      "onmidimessage": {}
+    },
     "support_level": "experimental"
   },
   "MIDIMessageEvent": {
@@ -5638,6 +5456,9 @@
       "dispatchEvent": {},
       "error": {},
       "keySystem": {},
+      "onwebkitkeyadded": {},
+      "onwebkitkeyerror": {},
+      "onwebkitkeymessage": {},
       "removeEventListener": {},
       "sessionId": {},
       "update": {}
@@ -5832,9 +5653,7 @@
   },
   "MimeTypeArray": {
     "members": {
-      "__getter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
       "item": {},
       "length": {},
       "namedItem": {}
@@ -5959,9 +5778,7 @@
     "comment": "http://dom.spec.whatwg.org/#namednodemap",
     "dart_action": "suppress",
     "members": {
-      "__getter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
       "getNamedItem": {},
       "getNamedItemNS": {},
       "item": {},
@@ -6084,15 +5901,9 @@
         "dart_action": "experimental",
         "support_level": "nonstandard"
       },
-      "constraintName": {
-        "support_level": "untriaged"
-      },
-      "message": {
-        "support_level": "untriaged"
-      },
-      "name": {
-        "support_level": "untriaged"
-      }
+      "constraintName": {},
+      "message": {},
+      "name": {}
     },
     "support_level": "experimental"
   },
@@ -6679,9 +6490,7 @@
   },
   "Plugin": {
     "members": {
-      "__getter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
       "description": {},
       "filename": {},
       "item": {},
@@ -6693,9 +6502,7 @@
   },
   "PluginArray": {
     "members": {
-      "__getter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
       "item": {},
       "length": {},
       "namedItem": {},
@@ -6921,9 +6728,7 @@
   "RTCStatsResponse": {
     "comment": "http://dev.w3.org/2011/webrtc/editor/webrtc.html#widl-RTCStatsReport-RTCStats-getter-DOMString-id",
     "members": {
-      "__getter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
       "namedItem": {},
       "result": {}
     },
@@ -7041,12 +6846,12 @@
     "support_level": "stable"
   },
   "ResourceProgressEvent": {
+    "comment": "https://chromiumcodereview.appspot.com/14773025/",
+    "dart_action": "suppress",
     "members": {
-      "url": {
-        "support_level": "untriaged"
-      }
+      "url": {}
     },
-    "support_level": "untriaged"
+    "support_level": "experimental"
   },
   "SQLError": {
     "comment": "http://www.w3.org/TR/webdatabase/#sqlerror",
@@ -10496,15 +10301,9 @@
     "comment": "http://www.w3.org/TR/webstorage/#the-storage-interface",
     "dart_action": "unstable",
     "members": {
-      "__delete__": {
-        "support_level": "untriaged"
-      },
-      "__getter__": {
-        "support_level": "untriaged"
-      },
-      "__setter__": {
-        "support_level": "untriaged"
-      },
+      "__delete__": {},
+      "__getter__": {},
+      "__setter__": {},
       "clear": {},
       "getItem": {},
       "key": {},
@@ -10598,9 +10397,7 @@
   "StyleSheetList": {
     "comment": "http://dev.w3.org/csswg/cssom/#the-stylesheetlist-sequence",
     "members": {
-      "__getter__": {
-        "support_level": "untriaged"
-      },
+      "__getter__": {},
       "item": {},
       "length": {}
     },
@@ -10951,9 +10748,7 @@
     "comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#dfn-WaveShaperNode",
     "members": {
       "curve": {},
-      "oversample": {
-        "support_level": "untriaged"
-      }
+      "oversample": {}
     },
     "support_level": "experimental"
   },
@@ -11559,137 +11354,6 @@
     "members": {},
     "support_level": "experimental"
   },
-  "WebKitCSSFilterRule": {
-    "comment": "http://www.w3.org/TR/filter-effects/",
-    "members": {
-      "style": {}
-    },
-    "support_level": "experimental"
-  },
-  "WebKitCSSFilterValue": {
-    "comment": "http://dev.w3.org/csswg/cssom/",
-    "dart_action": "suppress",
-    "members": {
-      "CSS_FILTER_BLUR": {},
-      "CSS_FILTER_BRIGHTNESS": {},
-      "CSS_FILTER_CONTRAST": {},
-      "CSS_FILTER_CUSTOM": {},
-      "CSS_FILTER_DROP_SHADOW": {},
-      "CSS_FILTER_GRAYSCALE": {},
-      "CSS_FILTER_HUE_ROTATE": {},
-      "CSS_FILTER_INVERT": {},
-      "CSS_FILTER_OPACITY": {},
-      "CSS_FILTER_REFERENCE": {},
-      "CSS_FILTER_SATURATE": {},
-      "CSS_FILTER_SEPIA": {},
-      "operationType": {}
-    },
-    "support_level": "deprecated"
-  },
-  "WebKitCSSKeyframeRule": {
-    "comment": "http://www.w3.org/TR/css3-animations/#CSSKeyframeRule-interface",
-    "members": {
-      "keyText": {},
-      "style": {}
-    },
-    "support_level": "experimental"
-  },
-  "WebKitCSSKeyframesRule": {
-    "comment": "http://www.w3.org/TR/css3-animations/#csskeyframesrule",
-    "members": {
-      "__getter__": {
-        "support_level": "untriaged"
-      },
-      "cssRules": {},
-      "deleteRule": {},
-      "findRule": {},
-      "insertRule": {},
-      "name": {}
-    },
-    "support_level": "experimental"
-  },
-  "WebKitCSSMatrix": {
-    "comment": "http://dev.w3.org/csswg/cssom/",
-    "dart_action": "suppress",
-    "members": {
-      "WebKitCSSMatrix": {},
-      "a": {},
-      "b": {},
-      "c": {},
-      "d": {},
-      "e": {},
-      "f": {},
-      "inverse": {},
-      "m11": {},
-      "m12": {},
-      "m13": {},
-      "m14": {},
-      "m21": {},
-      "m22": {},
-      "m23": {},
-      "m24": {},
-      "m31": {},
-      "m32": {},
-      "m33": {},
-      "m34": {},
-      "m41": {},
-      "m42": {},
-      "m43": {},
-      "m44": {},
-      "multiply": {},
-      "rotate": {},
-      "rotateAxisAngle": {},
-      "scale": {},
-      "setMatrixValue": {},
-      "skewX": {},
-      "skewY": {},
-      "toString": {},
-      "translate": {}
-    },
-    "support_level": "deprecated"
-  },
-  "WebKitCSSMixFunctionValue": {
-    "comment": "http://dev.w3.org/csswg/cssom/",
-    "dart_action": "suppress",
-    "members": {},
-    "support_level": "deprecated"
-  },
-  "WebKitCSSRegionRule": {
-    "comment": "http://dev.w3.org/csswg/css-regions/#region-style-rule-interface",
-    "members": {
-      "cssRules": {}
-    },
-    "support_level": "experimental"
-  },
-  "WebKitCSSTransformValue": {
-    "comment": "http://dev.w3.org/csswg/cssom/",
-    "dart_action": "suppress",
-    "members": {
-      "CSS_MATRIX": {},
-      "CSS_MATRIX3D": {},
-      "CSS_PERSPECTIVE": {},
-      "CSS_ROTATE": {},
-      "CSS_ROTATE3D": {},
-      "CSS_ROTATEX": {},
-      "CSS_ROTATEY": {},
-      "CSS_ROTATEZ": {},
-      "CSS_SCALE": {},
-      "CSS_SCALE3D": {},
-      "CSS_SCALEX": {},
-      "CSS_SCALEY": {},
-      "CSS_SCALEZ": {},
-      "CSS_SKEW": {},
-      "CSS_SKEWX": {},
-      "CSS_SKEWY": {},
-      "CSS_TRANSLATE": {},
-      "CSS_TRANSLATE3D": {},
-      "CSS_TRANSLATEX": {},
-      "CSS_TRANSLATEY": {},
-      "CSS_TRANSLATEZ": {},
-      "operationType": {}
-    },
-    "support_level": "deprecated"
-  },
   "WebKitMediaSource": {
     "comment": "https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#mediasource",
     "members": {
diff --git a/tools/dom/scripts/dartmetadata.py b/tools/dom/scripts/dartmetadata.py
index a9a64de..34d151a 100644
--- a/tools/dom/scripts/dartmetadata.py
+++ b/tools/dom/scripts/dartmetadata.py
@@ -725,6 +725,8 @@
         annotations.append('@deprecated // %s' % support_level)
         # TODO (blois): suppress generation of these APIs as a separate CL.
         pass
+      elif dart_action == 'stable':
+        pass
       else:
         _logger.warn('Unknown dart_action - %s:%s' % (interface_id, member_id))
     elif support_level == 'untriaged':
diff --git a/tools/dom/scripts/htmleventgenerator.py b/tools/dom/scripts/htmleventgenerator.py
index c2ead7c..da50b72 100644
--- a/tools/dom/scripts/htmleventgenerator.py
+++ b/tools/dom/scripts/htmleventgenerator.py
@@ -155,10 +155,16 @@
   'IDBOpenDBRequest.upgradeneeded': ('upgradeNeeded', 'VersionChangeEvent'),
   'IDBRequest.success': ('success', 'Event'),
   'IDBTransaction.complete': ('complete', 'Event'),
+  'MediaKeySession.webkitkeyadded': ('keyAdded', 'MediaKeyEvent'),
+  'MediaKeySession.webkitkeyerror': ('keyError', 'MediaKeyEvent'),
+  'MediaKeySession.webkitkeymessage': ('keyMessage', 'MediaKeyEvent'),
   'MediaStream.addtrack': ('addTrack', 'Event'),
   'MediaStream.removetrack': ('removeTrack', 'Event'),
   'MediaStreamTrack.mute': ('mute', 'Event'),
   'MediaStreamTrack.unmute': ('unmute', 'Event'),
+  'MIDIAccess.connect': ('connect', 'MidiConnectionEvent'),
+  'MIDIAccess.disconnect': ('disconnect', 'MidiConnectionEvent'),
+  'MIDIInput.midimessage': ('midiMessage', 'MidiMessageEvent'),
   'MIDIPort.disconnect': ('disconnect', 'MidiConnectionEvent'),
   'Notification.click': ('click', 'Event'),
   'Notification.close': ('close', 'Event'),