Roll IDL to multivm@1467

TBR=blois@google.com

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

git-svn-id: http://dart.googlecode.com/svn/third_party/WebCore@29094 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/core/README b/core/README
index fc245d1..031dfa4 100644
--- a/core/README
+++ b/core/README
@@ -6,4 +6,4 @@
 
 The current version corresponds to:
 URL: http://src.chromium.org/multivm/trunk/webkit
-Current revision: 1365
+Current revision: 1467
diff --git a/core/css/CSSFontFaceLoadEvent.idl b/core/css/CSSFontFaceLoadEvent.idl
index d89e765..7ab2522 100644
--- a/core/css/CSSFontFaceLoadEvent.idl
+++ b/core/css/CSSFontFaceLoadEvent.idl
@@ -28,11 +28,10 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+// FIXME: Make this constructable from Javascript
 [
     NoInterfaceObject,
-    EnabledAtRuntime=fontLoadEvents,
-    ConstructorTemplate=Event
+    EnabledAtRuntime=FontLoadEvents,
 ] interface CSSFontFaceLoadEvent : Event {
-    [InitializedByEventConstructor] readonly attribute CSSFontFaceRule fontface;
-    [InitializedByEventConstructor] readonly attribute DOMError error;
+    readonly attribute FontFace[] fontfaces;
 };
diff --git a/core/css/CSSHostRule.idl b/core/css/CSSHostRule.idl
index 237a051..d86b738 100644
--- a/core/css/CSSHostRule.idl
+++ b/core/css/CSSHostRule.idl
@@ -22,8 +22,7 @@
 interface CSSHostRule : CSSRule {
     readonly attribute CSSRuleList cssRules;
 
-    [RaisesException] unsigned long      insertRule([Default=Undefined] optional DOMString rule,
-                                  [Default=Undefined] optional unsigned long index);
-    [RaisesException] void               deleteRule([Default=Undefined] optional unsigned long index);
+    [RaisesException] unsigned long      insertRule(DOMString rule, unsigned long index);
+    [RaisesException] void               deleteRule(unsigned long index);
 };
 
diff --git a/core/css/CSSMediaRule.idl b/core/css/CSSMediaRule.idl
index 71185a7..0f1d76d 100644
--- a/core/css/CSSMediaRule.idl
+++ b/core/css/CSSMediaRule.idl
@@ -23,8 +23,7 @@
     readonly attribute MediaList media;
     readonly attribute CSSRuleList cssRules;
 
-     [RaisesException] unsigned long      insertRule([Default=Undefined] optional DOMString rule,
-                                                 [Default=Undefined] optional unsigned long index);
-    [RaisesException] void               deleteRule([Default=Undefined] optional unsigned long index);
+    [RaisesException] unsigned long insertRule(DOMString rule, unsigned long index);
+    [RaisesException] void deleteRule(unsigned long index);
 };
 
diff --git a/core/css/CSSRule.idl b/core/css/CSSRule.idl
index e9b0dde..94ce538 100644
--- a/core/css/CSSRule.idl
+++ b/core/css/CSSRule.idl
@@ -21,7 +21,6 @@
 // Introduced in DOM Level 2:
 [
     CustomToV8,
-
     DependentLifetime
 ] interface CSSRule {
 
@@ -38,8 +37,8 @@
     const unsigned short KEYFRAME_RULE = 8;
     const unsigned short WEBKIT_KEYFRAME_RULE = 8;
     const unsigned short SUPPORTS_RULE = 12;
-    [EnabledAtRuntime=cssViewport] const unsigned short VIEWPORT_RULE = 15;
-    [EnabledAtRuntime=cssRegions] const unsigned short WEBKIT_REGION_RULE = 16;
+    [EnabledAtRuntime=CSSViewport] const unsigned short VIEWPORT_RULE = 15;
+    [EnabledAtRuntime=CSSRegions] const unsigned short WEBKIT_REGION_RULE = 16;
     const unsigned short WEBKIT_FILTER_RULE = 17;
     const unsigned short HOST_RULE = 1001;
 
diff --git a/core/css/CSSRuleList.idl b/core/css/CSSRuleList.idl
index b2d90d6..dd18910 100644
--- a/core/css/CSSRuleList.idl
+++ b/core/css/CSSRuleList.idl
@@ -28,6 +28,6 @@
     DependentLifetime
 ] interface CSSRuleList {
     readonly attribute unsigned long    length;
-    getter CSSRule           item([Default=Undefined] optional unsigned long index);
+    getter CSSRule           item(unsigned long index);
 };
 
diff --git a/core/css/CSSStyleSheet.idl b/core/css/CSSStyleSheet.idl
index 7d00744..986303a 100644
--- a/core/css/CSSStyleSheet.idl
+++ b/core/css/CSSStyleSheet.idl
@@ -25,9 +25,8 @@
     readonly attribute CSSRule          ownerRule;
     readonly attribute CSSRuleList      cssRules;
 
-    [RaisesException] unsigned long insertRule([Default=Undefined] optional DOMString rule,
-                                            [Default=Undefined] optional unsigned long index);
-    [RaisesException] void               deleteRule([Default=Undefined] optional unsigned long index);
+    [RaisesException] unsigned long insertRule(DOMString rule, unsigned long index);
+    [RaisesException] void deleteRule(unsigned long index);
 
     // IE Extensions
     readonly attribute CSSRuleList      rules;
diff --git a/core/css/CSSValueList.idl b/core/css/CSSValueList.idl
index ea58b39..b44fcac 100644
--- a/core/css/CSSValueList.idl
+++ b/core/css/CSSValueList.idl
@@ -27,6 +27,6 @@
 [
 ] interface CSSValueList : CSSValue {
     readonly attribute unsigned long    length;
-    getter CSSValue           item([Default=Undefined] optional unsigned long index);
+    getter CSSValue           item(unsigned long index);
 };
 
diff --git a/core/dom/PromiseResolver.idl b/core/css/FontFace.idl
similarity index 66%
copy from core/dom/PromiseResolver.idl
copy to core/css/FontFace.idl
index b671070..a66872b 100644
--- a/core/dom/PromiseResolver.idl
+++ b/core/css/FontFace.idl
@@ -28,11 +28,30 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+enum FontFaceLoadStatus {
+    "unloaded",
+    "loading",
+    "loaded",
+    "error"
+};
+
 [
-   GlobalContext=Window&WorkerGlobalScope,
-   EnabledAtRuntime=promise
-] interface PromiseResolver {
-   [Custom] void fulfill(optional any value);
-   [Custom] void resolve(optional any value);
-   [Custom] void reject(optional any value);
+    EnabledAtRuntime=FontLoadEvents,
+    Constructor(DOMString family, DOMString source, Dictionary descriptors),
+    ConstructorRaisesException
+] interface FontFace {
+
+    [SetterRaisesException] attribute DOMString family;
+    [SetterRaisesException] attribute DOMString style;
+    [SetterRaisesException] attribute DOMString weight;
+    [SetterRaisesException] attribute DOMString stretch;
+    [SetterRaisesException] attribute DOMString unicodeRange;
+    [SetterRaisesException] attribute DOMString variant;
+    [SetterRaisesException] attribute DOMString featureSettings;
+
+    readonly attribute FontFaceLoadStatus status;
+
+    // FIXME: Implement them
+    //  void load();
+    //  Promise ready();
 };
diff --git a/core/css/FontLoader.idl b/core/css/FontFaceSet.idl
similarity index 73%
rename from core/css/FontLoader.idl
rename to core/css/FontFaceSet.idl
index 06ce8c0..9fe5d56 100644
--- a/core/css/FontLoader.idl
+++ b/core/css/FontFaceSet.idl
@@ -28,21 +28,23 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+enum FontFaceSetLoadStatus { "loading", "loaded" };
+
 [
     NoInterfaceObject,
-    EnabledAtRuntime=fontLoadEvents,
+    EnabledAtRuntime=FontLoadEvents,
     ActiveDOMObject,
     GenerateIsReachable=document
-] interface FontLoader : EventTarget {
+] interface FontFaceSet : EventTarget {
 
     attribute EventHandler onloading;
     attribute EventHandler onloadingdone;
-    attribute EventHandler onloadstart;
-    attribute EventHandler onload;
-    attribute EventHandler onerror;
+    attribute EventHandler onloadingerror;
 
-    boolean checkFont(DOMString font, [Default=NullString] optional DOMString text);
-    void loadFont(Dictionary params);
-    void notifyWhenFontsReady(VoidCallback callback);
-    readonly attribute boolean loading;
+    [RaisesException] sequence<FontFace> match(DOMString font, [Default=NullString] optional DOMString text);
+    [RaisesException] boolean check(DOMString font, [Default=NullString] optional DOMString text);
+    [EnabledAtRuntime=Promise, RaisesException] Promise load(DOMString font, [Default=NullString] optional DOMString text);
+    [EnabledAtRuntime=Promise] Promise ready();
+
+    readonly attribute FontFaceSetLoadStatus status;
 };
diff --git a/core/css/MediaList.idl b/core/css/MediaList.idl
index 9d26617..20ef3ec 100644
--- a/core/css/MediaList.idl
+++ b/core/css/MediaList.idl
@@ -30,9 +30,9 @@
     [TreatNullAs=NullString, TreatReturnedNullStringAs=Null] attribute DOMString mediaText;
     readonly attribute unsigned long length;
 
-    [TreatReturnedNullStringAs=Null] getter DOMString item([Default=Undefined] optional unsigned long index);
-    [RaisesException] void deleteMedium([Default=Undefined] optional DOMString oldMedium);
-    [RaisesException] void appendMedium([Default=Undefined] optional DOMString newMedium);
+    [TreatReturnedNullStringAs=Null] getter DOMString item(unsigned long index);
+    [RaisesException] void deleteMedium(DOMString oldMedium);
+    [RaisesException] void appendMedium(DOMString newMedium);
 
 };
 
diff --git a/core/css/StyleSheetList.idl b/core/css/StyleSheetList.idl
index 390e2c9..dcf92c2 100644
--- a/core/css/StyleSheetList.idl
+++ b/core/css/StyleSheetList.idl
@@ -23,7 +23,7 @@
     GenerateIsReachable=document,
 ] interface StyleSheetList {
     readonly attribute unsigned long    length;
-    getter StyleSheet         item([Default=Undefined] optional unsigned long index);
+    getter StyleSheet         item(unsigned long index);
     [ImplementedAs=anonymousNamedGetter, NotEnumerable] getter CSSStyleSheet (DOMString name);
 };
 
diff --git a/core/css/WebKitCSSFilterValue.idl b/core/css/WebKitCSSFilterValue.idl
index c6f4b80..db2fb1d 100644
--- a/core/css/WebKitCSSFilterValue.idl
+++ b/core/css/WebKitCSSFilterValue.idl
@@ -44,5 +44,5 @@
     const unsigned short CSS_FILTER_CUSTOM = 12;
 
     readonly attribute unsigned short operationType;
-    [ImplementedAs=item] getter CSSValue([Default=Undefined] optional unsigned long index);
+    [ImplementedAs=item] getter CSSValue(unsigned long index);
 };
diff --git a/core/css/WebKitCSSRegionRule.idl b/core/css/WebKitCSSRegionRule.idl
index 5835319..ad91ce0 100644
--- a/core/css/WebKitCSSRegionRule.idl
+++ b/core/css/WebKitCSSRegionRule.idl
@@ -28,7 +28,7 @@
  */
 
 [
-    EnabledAtRuntime=cssRegions,
+    EnabledAtRuntime=CSSRegions,
     ImplementedAs=CSSRegionRule
 ] interface WebKitCSSRegionRule : CSSRule {
     readonly attribute CSSRuleList cssRules;
diff --git a/core/css/WebKitCSSTransformValue.idl b/core/css/WebKitCSSTransformValue.idl
index 8b59a43..836bcc6 100644
--- a/core/css/WebKitCSSTransformValue.idl
+++ b/core/css/WebKitCSSTransformValue.idl
@@ -56,6 +56,6 @@
     const unsigned short CSS_MATRIX3D    = 21;
 
     readonly attribute unsigned short operationType;
-    [ImplementedAs=item] getter CSSValue([Default=Undefined] optional unsigned long index);
+    [ImplementedAs=item] getter CSSValue(unsigned long index);
 };
 
diff --git a/core/dom/PromiseResolver.idl b/core/dom/BeforeUnloadEvent.idl
similarity index 83%
copy from core/dom/PromiseResolver.idl
copy to core/dom/BeforeUnloadEvent.idl
index b671070..618d558 100644
--- a/core/dom/PromiseResolver.idl
+++ b/core/dom/BeforeUnloadEvent.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013 Samsung Electronics. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -28,11 +28,6 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-   GlobalContext=Window&WorkerGlobalScope,
-   EnabledAtRuntime=promise
-] interface PromiseResolver {
-   [Custom] void fulfill(optional any value);
-   [Custom] void resolve(optional any value);
-   [Custom] void reject(optional any value);
+interface BeforeUnloadEvent : Event {
+    attribute DOMString returnValue;
 };
diff --git a/core/html/DOMSettableTokenList.idl b/core/dom/DOMSettableTokenList.idl
similarity index 100%
rename from core/html/DOMSettableTokenList.idl
rename to core/dom/DOMSettableTokenList.idl
diff --git a/core/html/DOMTokenList.idl b/core/dom/DOMTokenList.idl
similarity index 100%
rename from core/html/DOMTokenList.idl
rename to core/dom/DOMTokenList.idl
diff --git a/core/dom/Document.idl b/core/dom/Document.idl
index bea2b66..a18606d 100644
--- a/core/dom/Document.idl
+++ b/core/dom/Document.idl
@@ -165,9 +165,9 @@
     void webkitExitPointerLock();
     readonly attribute Element webkitPointerLockElement;
 
-    [EnabledAtRuntime=cssRegions] WebKitNamedFlowCollection webkitGetNamedFlows();
+    [EnabledAtRuntime=CSSRegions] WebKitNamedFlowCollection webkitGetNamedFlows();
 
-    [EnabledAtRuntime=fontLoadEvents] readonly attribute FontLoader fontloader;
+    [EnabledAtRuntime=FontLoadEvents] readonly attribute FontFaceSet fonts;
 
     // Event handler DOM attributes
     [NotEnumerable] attribute EventHandler onabort;
@@ -238,17 +238,17 @@
     [NotEnumerable] attribute EventHandler onsearch;
     [NotEnumerable] attribute EventHandler onselectstart;
     [NotEnumerable] attribute EventHandler onselectionchange;
-    [NotEnumerable,EnabledAtRuntime=touch] attribute EventHandler ontouchstart;
-    [NotEnumerable,EnabledAtRuntime=touch] attribute EventHandler ontouchmove;
-    [NotEnumerable,EnabledAtRuntime=touch] attribute EventHandler ontouchend;
-    [NotEnumerable,EnabledAtRuntime=touch] attribute EventHandler ontouchcancel;
+    [NotEnumerable, EnabledAtRuntime=Touch] attribute EventHandler ontouchstart;
+    [NotEnumerable, EnabledAtRuntime=Touch] attribute EventHandler ontouchmove;
+    [NotEnumerable, EnabledAtRuntime=Touch] attribute EventHandler ontouchend;
+    [NotEnumerable, EnabledAtRuntime=Touch] attribute EventHandler ontouchcancel;
     [NotEnumerable] attribute EventHandler onwebkitfullscreenchange;
     [NotEnumerable] attribute EventHandler onwebkitfullscreenerror;
     [NotEnumerable] attribute EventHandler onwebkitpointerlockchange;
     [NotEnumerable] attribute EventHandler onwebkitpointerlockerror;
-    [NotEnumerable, EnabledAtRuntime=experimentalContentSecurityPolicyFeatures] attribute EventHandler onsecuritypolicyviolation;
+    [NotEnumerable, EnabledAtRuntime=ExperimentalContentSecurityPolicyFeatures] attribute EventHandler onsecuritypolicyviolation;
 
-    [EnabledAtRuntime=touch] Touch createTouch([Default=Undefined] optional Window window,
+    [EnabledAtRuntime=Touch] Touch createTouch([Default=Undefined] optional Window window,
                                                [Default=Undefined] optional EventTarget target,
                                                [Default=Undefined] optional long identifier,
                                                [Default=Undefined] optional long pageX,
@@ -259,10 +259,10 @@
                                                [Default=Undefined] optional long webkitRadiusY,
                                                [Default=Undefined] optional float webkitRotationAngle,
                                                [Default=Undefined] optional float webkitForce);
-    [EnabledAtRuntime=touch, Custom, RaisesException] TouchList createTouchList();
+    [EnabledAtRuntime=Touch] TouchList createTouchList(Touch... touches);
 
-    [DeprecateAs=PrefixedDocumentRegister, EnabledAtRuntime=customElements, ImplementedAs=registerElement, CallWith=ScriptState, CustomElementCallbacks=Enable, RaisesException] CustomElementConstructor webkitRegister(DOMString name, optional Dictionary options);
-    [EnabledAtRuntime=customElements, ImplementedAs=registerElement, CallWith=ScriptState, CustomElementCallbacks=Enable, RaisesException] CustomElementConstructor register(DOMString name, optional Dictionary options);
+    [DeprecateAs=PrefixedDocumentRegister, EnabledAtRuntime=CustomElements, ImplementedAs=registerElement, CallWith=ScriptState, CustomElementCallbacks=Enable, RaisesException] CustomElementConstructor webkitRegister(DOMString name, optional Dictionary options);
+    [EnabledAtRuntime=CustomElements, ImplementedAs=registerElement, CallWith=ScriptState, CustomElementCallbacks=Enable, RaisesException] CustomElementConstructor register(DOMString name, optional Dictionary options);
     [CustomElementCallbacks=Enable, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElement(DOMString localName, [TreatNullAs=NullString] DOMString typeExtension);
     [CustomElementCallbacks=Enable, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElementNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString qualifiedName,
                             [TreatNullAs=NullString] DOMString typeExtension);
@@ -272,7 +272,7 @@
     readonly attribute boolean webkitHidden;
 
     // Security Policy API: http://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#script-interfaces
-    [EnabledAtRuntime=experimentalContentSecurityPolicyFeatures] readonly attribute SecurityPolicy securityPolicy;
+    [EnabledAtRuntime=ExperimentalContentSecurityPolicyFeatures] readonly attribute SecurityPolicy securityPolicy;
 
     readonly attribute HTMLScriptElement currentScript;
 };
diff --git a/core/dom/DocumentFullscreen.idl b/core/dom/DocumentFullscreen.idl
index 854492e..3081eac 100644
--- a/core/dom/DocumentFullscreen.idl
+++ b/core/dom/DocumentFullscreen.idl
@@ -20,13 +20,13 @@
  */
 partial interface Document {
     // Mozilla version
-    [EnabledAtRuntime=fullscreen] readonly attribute boolean webkitIsFullScreen;
-    [EnabledAtRuntime=fullscreen] readonly attribute boolean webkitFullScreenKeyboardInputAllowed;
-    [EnabledAtRuntime=fullscreen] readonly attribute Element webkitCurrentFullScreenElement;
-    [EnabledAtRuntime=fullscreen] void webkitCancelFullScreen();
+    [EnabledAtRuntime=Fullscreen] readonly attribute boolean webkitIsFullScreen;
+    [EnabledAtRuntime=Fullscreen] readonly attribute boolean webkitFullScreenKeyboardInputAllowed;
+    [EnabledAtRuntime=Fullscreen] readonly attribute Element webkitCurrentFullScreenElement;
+    [EnabledAtRuntime=Fullscreen] void webkitCancelFullScreen();
 
     // W3C version
-    [EnabledAtRuntime=fullscreen] readonly attribute boolean webkitFullscreenEnabled;
-    [EnabledAtRuntime=fullscreen] readonly attribute Element webkitFullscreenElement;
-    [EnabledAtRuntime=fullscreen] void webkitExitFullscreen();
+    [EnabledAtRuntime=Fullscreen] readonly attribute boolean webkitFullscreenEnabled;
+    [EnabledAtRuntime=Fullscreen] readonly attribute Element webkitFullscreenElement;
+    [EnabledAtRuntime=Fullscreen] void webkitExitFullscreen();
 };
diff --git a/core/dom/Element.idl b/core/dom/Element.idl
index 9af4c05..55df834 100644
--- a/core/dom/Element.idl
+++ b/core/dom/Element.idl
@@ -36,7 +36,7 @@
     [PerWorldBindings] NodeList getElementsByTagName([Default=Undefined] optional DOMString name);
 
     [PerWorldBindings] readonly attribute NamedNodeMap     attributes;
-    boolean            hasAttributes();
+    [MeasureAs=HasAttributes] boolean hasAttributes();
 
     // DOM Level 2 Core
 
@@ -124,16 +124,16 @@
 
     // Mozilla version
     const unsigned short ALLOW_KEYBOARD_INPUT = 1;
-    [EnabledAtRuntime=fullscreen] void webkitRequestFullScreen([Default=Undefined] optional unsigned short flags);
+    [EnabledAtRuntime=Fullscreen, PerWorldBindings, ActivityLog=Access] void webkitRequestFullScreen([Default=Undefined] optional unsigned short flags);
 
     // W3C version
-    [EnabledAtRuntime=fullscreen] void webkitRequestFullscreen();
+    [EnabledAtRuntime=Fullscreen, PerWorldBindings, ActivityLog=Access] void webkitRequestFullscreen();
 
     void webkitRequestPointerLock();
 
     // CSS Regions API
-    [EnabledAtRuntime=cssRegions, PerWorldBindings] readonly attribute DOMString webkitRegionOverset;
-    [EnabledAtRuntime=cssRegions] sequence<Range> webkitGetRegionFlowRanges();
+    [EnabledAtRuntime=CSSRegions, PerWorldBindings] readonly attribute DOMString webkitRegionOverset;
+    [EnabledAtRuntime=CSSRegions] sequence<Range> webkitGetRegionFlowRanges();
 
     // Event handler DOM attributes
     [NotEnumerable, PerWorldBindings] attribute EventHandler onabort;
@@ -203,10 +203,10 @@
     [NotEnumerable, PerWorldBindings] attribute EventHandler onreset;
     [NotEnumerable, PerWorldBindings] attribute EventHandler onsearch;
     [NotEnumerable, PerWorldBindings] attribute EventHandler onselectstart;
-    [NotEnumerable, EnabledAtRuntime=touch, PerWorldBindings] attribute EventHandler ontouchstart;
-    [NotEnumerable, EnabledAtRuntime=touch, PerWorldBindings] attribute EventHandler ontouchmove;
-    [NotEnumerable, EnabledAtRuntime=touch, PerWorldBindings] attribute EventHandler ontouchend;
-    [NotEnumerable, EnabledAtRuntime=touch, PerWorldBindings] attribute EventHandler ontouchcancel;
+    [NotEnumerable, EnabledAtRuntime=Touch, PerWorldBindings] attribute EventHandler ontouchstart;
+    [NotEnumerable, EnabledAtRuntime=Touch, PerWorldBindings] attribute EventHandler ontouchmove;
+    [NotEnumerable, EnabledAtRuntime=Touch, PerWorldBindings] attribute EventHandler ontouchend;
+    [NotEnumerable, EnabledAtRuntime=Touch, PerWorldBindings] attribute EventHandler ontouchcancel;
     [NotEnumerable, PerWorldBindings] attribute EventHandler onwebkitfullscreenchange;
     [NotEnumerable, PerWorldBindings] attribute EventHandler onwebkitfullscreenerror;
 };
diff --git a/core/dom/Entity.idl b/core/dom/Entity.idl
index 12b9234..151572f 100644
--- a/core/dom/Entity.idl
+++ b/core/dom/Entity.idl
@@ -16,10 +16,10 @@
  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  * Boston, MA 02110-1301, USA.
  */
-[
-] interface Entity : Node {
-    [TreatReturnedNullStringAs=Null] readonly attribute DOMString publicId;
-    [TreatReturnedNullStringAs=Null] readonly attribute DOMString systemId;
-    [TreatReturnedNullStringAs=Null] readonly attribute DOMString notationName;
+
+// FIXME: Remove Entity interface. We never create Entity objects. We have this
+// interface to provide window.Entity.
+interface Entity : Node {
+    // We don't need to provide any attributes.
 };
 
diff --git a/core/dom/Event.idl b/core/dom/Event.idl
index 74af6e1..88d704f 100644
--- a/core/dom/Event.idl
+++ b/core/dom/Event.idl
@@ -69,7 +69,7 @@
 
     // IE Extensions
     readonly attribute EventTarget      srcElement;
-             attribute boolean          returnValue;
+    [ImplementedAs=legacyReturnValue, DeprecateAs=EventReturnValue] attribute boolean returnValue;
              attribute boolean          cancelBubble;
 
     [EnabledAtRuntime=ShadowDOM] readonly attribute NodeList path;
diff --git a/core/dom/KeyboardEvent.idl b/core/dom/KeyboardEvent.idl
index 81b2c17..62dd799 100644
--- a/core/dom/KeyboardEvent.idl
+++ b/core/dom/KeyboardEvent.idl
@@ -25,10 +25,6 @@
     const unsigned long DOM_KEY_LOCATION_LEFT     = 0x01;
     const unsigned long DOM_KEY_LOCATION_RIGHT    = 0x02;
     const unsigned long DOM_KEY_LOCATION_NUMPAD   = 0x03;
-    // FIXME: The following constants are defined in the specification but
-    // not yet supported (crbug.com/265446).
-    // const unsigned long DOM_KEY_LOCATION_MOBILE   = 0x04;
-    // const unsigned long DOM_KEY_LOCATION_JOYSTICK = 0x05;
 
     [InitializedByEventConstructor] readonly attribute DOMString        keyIdentifier;
     [InitializedByEventConstructor] readonly attribute unsigned long    location;
diff --git a/core/dom/Notation.idl b/core/dom/Notation.idl
index 4ac628f..5ad13ec 100644
--- a/core/dom/Notation.idl
+++ b/core/dom/Notation.idl
@@ -17,8 +17,9 @@
  * Boston, MA 02110-1301, USA.
  */
 
+// FIXME: Remove Notation interface. We never create Notation objects. We have
+// this interface to provide window.Notation.
 interface Notation : Node {
-    [TreatReturnedNullStringAs=Null] readonly attribute DOMString publicId;
-    [TreatReturnedNullStringAs=Null] readonly attribute DOMString systemId;
+    // We don't need to provide any attributes.
 };
 
diff --git a/core/dom/Promise.idl b/core/dom/Promise.idl
index d2fa864..f7fb7ba 100644
--- a/core/dom/Promise.idl
+++ b/core/dom/Promise.idl
@@ -28,24 +28,19 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// FIXME: |PromiseValue| should be changed to |Promise|. http://crbug.com/266700
-// IDLs using |Promise| should be written with "typedef any PromiseValue;" and |PromiseValue|.
-
-callback PromiseInit = void (PromiseResolver resolver);
+callback PromiseInit = void (any resolve, any reject);
 callback AnyCallback = any (optional any value);
 [
    GlobalContext=Window&WorkerGlobalScope,
    CustomConstructor(PromiseInit init),
-   EnabledAtRuntime=promise
+   EnabledAtRuntime=Promise
 ] interface Promise {
    [Custom] Promise then(optional AnyCallback fulfillCallback, optional AnyCallback rejectCallback);
    [Custom] Promise catch(optional AnyCallback rejectCallback);
 
-   [Custom] static Promise fulfill(any value);
    [Custom] static Promise resolve(any value);
    [Custom] static Promise reject(any value);
 
    [Custom] static Promise _any(any... values);
    [Custom] static Promise every(any... values);
-   [Custom] static Promise some(any... values);
 };
diff --git a/core/dom/SecurityPolicyViolationEvent.idl b/core/dom/SecurityPolicyViolationEvent.idl
index 8eab91e..d067fab 100644
--- a/core/dom/SecurityPolicyViolationEvent.idl
+++ b/core/dom/SecurityPolicyViolationEvent.idl
@@ -23,7 +23,7 @@
  */
 
 [
-    EnabledAtRuntime=experimentalContentSecurityPolicyFeatures,
+    EnabledAtRuntime=ExperimentalContentSecurityPolicyFeatures,
     ConstructorTemplate=Event
 ] interface SecurityPolicyViolationEvent : Event {
     [InitializedByEventConstructor] readonly attribute DOMString documentURI;
diff --git a/core/dom/WebKitNamedFlow.idl b/core/dom/WebKitNamedFlow.idl
index a8f68dd..33cff65 100644
--- a/core/dom/WebKitNamedFlow.idl
+++ b/core/dom/WebKitNamedFlow.idl
@@ -29,7 +29,7 @@
 
 [
     NoInterfaceObject,
-    EnabledAtRuntime=cssRegions,
+    EnabledAtRuntime=CSSRegions,
     ImplementedAs=NamedFlow,
     GenerateIsReachable=ownerNode
 ] interface WebKitNamedFlow : EventTarget {
diff --git a/core/dom/WebKitNamedFlowCollection.idl b/core/dom/WebKitNamedFlowCollection.idl
index 65aa56d..92aec8e 100644
--- a/core/dom/WebKitNamedFlowCollection.idl
+++ b/core/dom/WebKitNamedFlowCollection.idl
@@ -29,7 +29,7 @@
 
 [
     NoInterfaceObject,
-    EnabledAtRuntime=cssRegions,
+    EnabledAtRuntime=CSSRegions,
     ImplementedAs=DOMNamedFlowCollection
 ] interface WebKitNamedFlowCollection {
     readonly attribute unsigned long length;
diff --git a/core/fileapi/File.idl b/core/fileapi/File.idl
index bfdf6b1..2d2ea18 100644
--- a/core/fileapi/File.idl
+++ b/core/fileapi/File.idl
@@ -26,6 +26,6 @@
 interface File : Blob {
     readonly attribute DOMString name;
     readonly attribute Date lastModifiedDate;
-    [EnabledAtRuntime=directoryUpload] readonly attribute DOMString webkitRelativePath;
+    [EnabledAtRuntime=DirectoryUpload] readonly attribute DOMString webkitRelativePath;
 };
 
diff --git a/core/fileapi/Stream.idl b/core/fileapi/Stream.idl
index 7caf013..6ead757 100644
--- a/core/fileapi/Stream.idl
+++ b/core/fileapi/Stream.idl
@@ -37,7 +37,7 @@
 // FIXME: Make the Blob a subclass of the Stream.
 
 [
-    EnabledAtRuntime=stream
+    EnabledAtRuntime=Stream
 ] interface Stream {
     readonly attribute DOMString type;
 };
diff --git a/core/html/HTMLAllCollection.idl b/core/html/HTMLAllCollection.idl
index 5eae2ee..9f87dd4 100644
--- a/core/html/HTMLAllCollection.idl
+++ b/core/html/HTMLAllCollection.idl
@@ -35,6 +35,6 @@
     [ImplementedAs=anonymousNamedGetter, NotEnumerable] getter (NodeList or Node)(DOMString name);
     [Custom] Node namedItem(DOMString name);
     // FIXME: This should return an HTMLAllCollection.
-    NodeList tags(DOMString name);
+    [MeasureAs=DocumentAllTags] NodeList tags(DOMString name);
 };
 
diff --git a/core/html/HTMLAudioElement.idl b/core/html/HTMLAudioElement.idl
index ce003cf..cbed9d6 100644
--- a/core/html/HTMLAudioElement.idl
+++ b/core/html/HTMLAudioElement.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=media,
+    EnabledAtRuntime=Media,
     NamedConstructor=Audio([Default=NullString] optional DOMString src)
 ] interface HTMLAudioElement : HTMLMediaElement {
 };
diff --git a/core/html/HTMLDialogElement.idl b/core/html/HTMLDialogElement.idl
index d95f10f..41732ab 100644
--- a/core/html/HTMLDialogElement.idl
+++ b/core/html/HTMLDialogElement.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=dialogElement
+    EnabledAtRuntime=DialogElement
 ] interface HTMLDialogElement : HTMLElement {
     [Reflect] attribute boolean open;
     attribute DOMString returnValue;
diff --git a/core/html/HTMLElement.idl b/core/html/HTMLElement.idl
index d728075..d65a413 100644
--- a/core/html/HTMLElement.idl
+++ b/core/html/HTMLElement.idl
@@ -38,14 +38,14 @@
              [TreatNullAs=NullString, CustomElementCallbacks=Enable, SetterRaisesException] attribute DOMString outerHTML;
              [TreatNullAs=NullString, CustomElementCallbacks=Enable, SetterRaisesException] attribute DOMString outerText;
 
-    [RaisesException, CustomElementCallbacks=Enable] Element insertAdjacentElement([Default=Undefined] optional DOMString where,
+    [RaisesException, CustomElementCallbacks=Enable, MeasureAs=InsertAdjacentElement] Element insertAdjacentElement([Default=Undefined] optional DOMString where,
                                   [Default=Undefined] optional Element element);
     [CustomElementCallbacks=Enable, RaisesException] void insertAdjacentHTML([Default=Undefined] optional DOMString where,
                             [Default=Undefined] optional DOMString html);
-    [RaisesException] void insertAdjacentText([Default=Undefined] optional DOMString where,
+    [RaisesException, MeasureAs=InsertAdjacentText] void insertAdjacentText([Default=Undefined] optional DOMString where,
                             [Default=Undefined] optional DOMString text);
 
-    [EnabledAtRuntime=imeAPI] readonly attribute InputMethodContext inputMethodContext;
+    [EnabledAtRuntime=IMEAPI] readonly attribute InputMethodContext inputMethodContext;
 
     [TreatNullAs=NullString, CustomElementCallbacks=Enable, SetterRaisesException] attribute DOMString contentEditable;
     readonly attribute boolean isContentEditable;
diff --git a/core/html/HTMLFormControlsCollection.idl b/core/html/HTMLFormControlsCollection.idl
index 3030738..e7b757e 100644
--- a/core/html/HTMLFormControlsCollection.idl
+++ b/core/html/HTMLFormControlsCollection.idl
@@ -22,7 +22,7 @@
     GenerateIsReachable=ownerNode,
     DependentLifetime
 ] interface HTMLFormControlsCollection : HTMLCollection {
-    [ImplementedAs=item] getter Node([Default=Undefined] optional unsigned long index);
+    [ImplementedAs=item] getter Node(unsigned long index);
     [Custom] Node namedItem([Default=Undefined] optional DOMString name);
     [ImplementedAs=namedGetter, NotEnumerable] getter (RadioNodeList or Node)(DOMString name);
 };
diff --git a/core/html/HTMLFormElement.idl b/core/html/HTMLFormElement.idl
index 11c8bf5..f1bcb0e 100644
--- a/core/html/HTMLFormElement.idl
+++ b/core/html/HTMLFormElement.idl
@@ -38,7 +38,7 @@
     [CustomElementCallbacks=Enable] void reset();
     boolean checkValidity();
 
-    [EnabledAtRuntime=requestAutocomplete] void requestAutocomplete();
-    [EnabledAtRuntime=requestAutocomplete,NotEnumerable] attribute EventHandler onautocomplete;
-    [EnabledAtRuntime=requestAutocomplete,NotEnumerable] attribute EventHandler onautocompleteerror;
+    [EnabledAtRuntime=RequestAutocomplete] void requestAutocomplete();
+    [EnabledAtRuntime=RequestAutocomplete, NotEnumerable] attribute EventHandler onautocomplete;
+    [EnabledAtRuntime=RequestAutocomplete, NotEnumerable] attribute EventHandler onautocompleteerror;
 };
diff --git a/core/html/HTMLIFrameElement.idl b/core/html/HTMLIFrameElement.idl
index bc93aa3..d47b1b7 100644
--- a/core/html/HTMLIFrameElement.idl
+++ b/core/html/HTMLIFrameElement.idl
@@ -27,7 +27,7 @@
     [Reflect] attribute DOMString marginWidth;
     [Reflect] attribute DOMString name;
     [Reflect] attribute DOMString sandbox;
-    [Reflect, EnabledAtRuntime=seamlessIFrames] attribute boolean seamless;
+    [Reflect, EnabledAtRuntime=SeamlessIFrames] attribute boolean seamless;
     [Reflect] attribute DOMString scrolling;
     [Reflect, URL] attribute DOMString src;
     [Reflect] attribute DOMString srcdoc;
diff --git a/core/html/HTMLImageElement.idl b/core/html/HTMLImageElement.idl
index 1056b5d..efd1c6a 100644
--- a/core/html/HTMLImageElement.idl
+++ b/core/html/HTMLImageElement.idl
@@ -30,6 +30,7 @@
     [Reflect] attribute boolean isMap;
     [Reflect, URL] attribute DOMString longDesc;
     [Reflect, URL] attribute DOMString src;
+    [Reflect, EnabledAtRuntime=Srcset] attribute DOMString srcset;
     [Reflect] attribute DOMString useMap;
     [Reflect] attribute long vspace;
     attribute long width;
diff --git a/core/html/HTMLInputElement.idl b/core/html/HTMLInputElement.idl
index fd17406..fd6151d 100644
--- a/core/html/HTMLInputElement.idl
+++ b/core/html/HTMLInputElement.idl
@@ -59,7 +59,7 @@
     [TreatNullAs=NullString, SetterRaisesException, CustomElementCallbacks=Enable] attribute DOMString value;
     [SetterRaisesException, CustomElementCallbacks=Enable] attribute Date valueAsDate;
     [SetterRaisesException, CustomElementCallbacks=Enable] attribute double valueAsNumber;
-    [EnabledAtRuntime=inputModeAttribute, Reflect] attribute DOMString inputMode;
+    [EnabledAtRuntime=InputModeAttribute, Reflect] attribute DOMString inputMode;
 
     [RaisesException, CustomElementCallbacks=Enable] void stepUp(optional long n);
     [RaisesException, CustomElementCallbacks=Enable] void stepDown(optional long n);
@@ -91,11 +91,11 @@
 
     // Non-standard attributes
     [Reflect] attribute DOMString align;
-    [Reflect, EnabledAtRuntime=directoryUpload] attribute boolean webkitdirectory;
+    [Reflect, EnabledAtRuntime=DirectoryUpload] attribute boolean webkitdirectory;
     [Reflect] attribute DOMString useMap;
     [Reflect] attribute boolean incremental;
-    [Conditional=INPUT_SPEECH, Reflect, EnabledAtRuntime=speechInput] attribute boolean webkitSpeech;
-    [Conditional=INPUT_SPEECH, Reflect, EnabledAtRuntime=speechInput] attribute boolean webkitGrammar;
+    [Conditional=INPUT_SPEECH, Reflect, EnabledAtRuntime=SpeechInput] attribute boolean webkitSpeech;
+    [Conditional=INPUT_SPEECH, Reflect, EnabledAtRuntime=SpeechInput] attribute boolean webkitGrammar;
     [Conditional=INPUT_SPEECH, NotEnumerable] attribute EventHandler onwebkitspeechchange;
 
     // See http://www.w3.org/TR/html-media-capture/
diff --git a/core/html/HTMLLinkElement.idl b/core/html/HTMLLinkElement.idl
index 0d5ee7d..25e900a 100644
--- a/core/html/HTMLLinkElement.idl
+++ b/core/html/HTMLLinkElement.idl
@@ -34,6 +34,6 @@
     // DOM Level 2 Style
     readonly attribute StyleSheet sheet;
 
-    [EnabledAtRuntime=htmlImports] readonly attribute Document import;
+    [EnabledAtRuntime=HTMLImports] readonly attribute Document import;
 };
 
diff --git a/core/html/HTMLMediaElement.idl b/core/html/HTMLMediaElement.idl
index 6e811ee..873aeeb 100644
--- a/core/html/HTMLMediaElement.idl
+++ b/core/html/HTMLMediaElement.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=media,
+    EnabledAtRuntime=Media,
     ActiveDOMObject
 ] interface HTMLMediaElement : HTMLElement {
 
@@ -88,19 +88,19 @@
 readonly attribute unsigned long webkitVideoDecodedByteCount;
 
 // FIXME: add DeprecateAs=PrefixedMediaGenerateKeyRequest when MediaKeys is ready.
-[EnabledAtRuntime=legacyEncryptedMedia, RaisesException] void webkitGenerateKeyRequest([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, optional Uint8Array initData);
-[EnabledAtRuntime=legacyEncryptedMedia, RaisesException] void webkitAddKey([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, Uint8Array key, optional Uint8Array initData, [Default=NullString] optional DOMString sessionId);
-[EnabledAtRuntime=legacyEncryptedMedia, RaisesException] void webkitCancelKeyRequest([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, [Default=NullString] optional DOMString sessionId);
+[EnabledAtRuntime=LegacyEncryptedMedia, RaisesException] void webkitGenerateKeyRequest([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, optional Uint8Array initData);
+[EnabledAtRuntime=LegacyEncryptedMedia, RaisesException] void webkitAddKey([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, Uint8Array key, optional Uint8Array initData, [Default=NullString] optional DOMString sessionId);
+[EnabledAtRuntime=LegacyEncryptedMedia, RaisesException] void webkitCancelKeyRequest([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, [Default=NullString] optional DOMString sessionId);
 
-[EnabledAtRuntime=legacyEncryptedMedia] attribute EventHandler onwebkitkeyadded;
-[EnabledAtRuntime=legacyEncryptedMedia] attribute EventHandler onwebkitkeyerror;
-[EnabledAtRuntime=legacyEncryptedMedia] attribute EventHandler onwebkitkeymessage;
-[EnabledAtRuntime=legacyEncryptedMedia] attribute EventHandler onwebkitneedkey;
+[EnabledAtRuntime=LegacyEncryptedMedia] attribute EventHandler onwebkitkeyadded;
+[EnabledAtRuntime=LegacyEncryptedMedia] attribute EventHandler onwebkitkeyerror;
+[EnabledAtRuntime=LegacyEncryptedMedia] attribute EventHandler onwebkitkeymessage;
+[EnabledAtRuntime=LegacyEncryptedMedia] attribute EventHandler onwebkitneedkey;
 
-[EnabledAtRuntime=encryptedMedia, Conditional=ENCRYPTED_MEDIA_V2] attribute MediaKeys mediaKeys;
+[EnabledAtRuntime=EncryptedMedia, Conditional=ENCRYPTED_MEDIA_V2] attribute MediaKeys mediaKeys;
 
-[EnabledAtRuntime=videoTrack, RaisesException] TextTrack addTextTrack(DOMString kind, optional DOMString label, optional DOMString language);
-[EnabledAtRuntime=videoTrack] readonly attribute TextTrackList textTracks;
+[EnabledAtRuntime=VideoTrack, RaisesException] TextTrack addTextTrack(DOMString kind, optional DOMString label, optional DOMString language);
+[EnabledAtRuntime=VideoTrack] readonly attribute TextTrackList textTracks;
 
 [Reflect, TreatNullAs=NullString] attribute DOMString mediaGroup;
 [CustomSetter] attribute MediaController controller;
diff --git a/core/html/HTMLOptionsCollection.idl b/core/html/HTMLOptionsCollection.idl
index 9f32344..aa47617 100644
--- a/core/html/HTMLOptionsCollection.idl
+++ b/core/html/HTMLOptionsCollection.idl
@@ -1,6 +1,7 @@
 /*
  * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
  * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2013 Samsung Electronics. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -32,6 +33,7 @@
 
     [Custom, RaisesException] void add([Default=Undefined] optional HTMLOptionElement option,
                       optional unsigned long index);
-    [Custom] void remove([Default=Undefined] optional unsigned long index);
+    void remove(unsigned long index);
+    void remove(HTMLOptionElement option); // Non standard.
 };
 
diff --git a/core/html/HTMLScriptElement.idl b/core/html/HTMLScriptElement.idl
index cb8a909..ef68a4d 100644
--- a/core/html/HTMLScriptElement.idl
+++ b/core/html/HTMLScriptElement.idl
@@ -27,5 +27,5 @@
     [Reflect, URL] attribute DOMString src;
     [Reflect] attribute DOMString type;
     [Reflect] attribute DOMString crossOrigin;
-    [Reflect, EnabledAtRuntime=experimentalContentSecurityPolicyFeatures] attribute DOMString nonce;
+    [Reflect, EnabledAtRuntime=ExperimentalContentSecurityPolicyFeatures] attribute DOMString nonce;
 };
diff --git a/core/html/HTMLSelectElement.idl b/core/html/HTMLSelectElement.idl
index 6a511b2..8c92af5 100644
--- a/core/html/HTMLSelectElement.idl
+++ b/core/html/HTMLSelectElement.idl
@@ -1,6 +1,7 @@
 /*
  * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
  * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2013 Samsung Electronics. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -37,9 +38,9 @@
     Node namedItem([Default=Undefined] optional DOMString name);
      [RaisesException] void add([Default=Undefined] optional HTMLElement element,
                             [Default=Undefined] optional HTMLElement before);
-    // In JavaScript, we support both option index and option object parameters.
-    // As of this writing this cannot be auto-generated.
-    [Custom] void remove(/* indexOrOption */);
+    void remove(long index);
+    void remove(HTMLOptionElement option); // Non standard.
+    [RaisesException] void remove();
     readonly attribute HTMLCollection selectedOptions;
     attribute long selectedIndex;
     [TreatNullAs=NullString] attribute DOMString value;
diff --git a/core/html/HTMLSourceElement.idl b/core/html/HTMLSourceElement.idl
index 0cad1e5..5adb052 100644
--- a/core/html/HTMLSourceElement.idl
+++ b/core/html/HTMLSourceElement.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=media
+    EnabledAtRuntime=Media
 ] interface HTMLSourceElement : HTMLElement {
 [Reflect, URL] attribute DOMString src;
     attribute DOMString type;
diff --git a/core/html/HTMLStyleElement.idl b/core/html/HTMLStyleElement.idl
index 70efc26..a5fd4f3 100644
--- a/core/html/HTMLStyleElement.idl
+++ b/core/html/HTMLStyleElement.idl
@@ -20,7 +20,7 @@
 
 interface HTMLStyleElement : HTMLElement {
     attribute boolean disabled;
-    [EnabledAtRuntime=styleScoped] attribute boolean scoped;
+    [EnabledAtRuntime=StyleScoped] attribute boolean scoped;
     [Reflect] attribute DOMString media;
     [Reflect] attribute DOMString type;
 
diff --git a/core/html/HTMLTextAreaElement.idl b/core/html/HTMLTextAreaElement.idl
index cefbca9..51c8419 100644
--- a/core/html/HTMLTextAreaElement.idl
+++ b/core/html/HTMLTextAreaElement.idl
@@ -32,7 +32,7 @@
     [Reflect] attribute boolean required;
     attribute long rows;
     [Reflect] attribute DOMString wrap;
-    [EnabledAtRuntime=inputModeAttribute, Reflect] attribute DOMString inputMode;
+    [EnabledAtRuntime=InputModeAttribute, Reflect] attribute DOMString inputMode;
 
     readonly attribute DOMString type;
     [TreatNullAs=NullString] attribute DOMString defaultValue;
diff --git a/core/html/HTMLTrackElement.idl b/core/html/HTMLTrackElement.idl
index d27ae46..9c4e1bf 100644
--- a/core/html/HTMLTrackElement.idl
+++ b/core/html/HTMLTrackElement.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=videoTrack
+    EnabledAtRuntime=VideoTrack
 ] interface HTMLTrackElement : HTMLElement {
     attribute DOMString kind;
     [Reflect, URL] attribute DOMString src;
diff --git a/core/html/HTMLVideoElement.idl b/core/html/HTMLVideoElement.idl
index 5d9d744..2b2ab0d 100644
--- a/core/html/HTMLVideoElement.idl
+++ b/core/html/HTMLVideoElement.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=media
+    EnabledAtRuntime=Media
 ] interface HTMLVideoElement : HTMLMediaElement {
     [Reflect] attribute unsigned long width;
     [Reflect] attribute unsigned long height;
@@ -35,11 +35,11 @@
     readonly attribute boolean webkitSupportsFullscreen;
     readonly attribute boolean webkitDisplayingFullscreen;
 
-    [RaisesException] void webkitEnterFullscreen();
+    [RaisesException, PerWorldBindings, ActivityLog=Access] void webkitEnterFullscreen();
     void webkitExitFullscreen();
 
     // Note the different capitalization of the "S" in FullScreen.
-    [RaisesException] void webkitEnterFullScreen();
+    [RaisesException, PerWorldBindings, ActivityLog=Access] void webkitEnterFullScreen();
     void webkitExitFullScreen();
 
     // The number of frames that have been decoded and made available for
diff --git a/core/html/MediaController.idl b/core/html/MediaController.idl
index b988d1a..81171ec 100644
--- a/core/html/MediaController.idl
+++ b/core/html/MediaController.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=media,
+    EnabledAtRuntime=Media,
     Constructor,
     ConstructorCallWith=ScriptExecutionContext
 ] interface MediaController : EventTarget {
diff --git a/core/html/MediaError.idl b/core/html/MediaError.idl
index 3d35b71..376159d 100644
--- a/core/html/MediaError.idl
+++ b/core/html/MediaError.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=media
+    EnabledAtRuntime=Media
 ] interface MediaError {
       const unsigned short MEDIA_ERR_ABORTED = 1;
       const unsigned short MEDIA_ERR_NETWORK = 2;
diff --git a/core/html/MediaKeyError.idl b/core/html/MediaKeyError.idl
index a2660d7..ea442f8 100644
--- a/core/html/MediaKeyError.idl
+++ b/core/html/MediaKeyError.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=encryptedMediaAnyVersion
+    EnabledAtRuntime=EncryptedMediaAnyVersion
 ] interface MediaKeyError {
     const unsigned short MEDIA_KEYERR_UNKNOWN = 1;
     const unsigned short MEDIA_KEYERR_CLIENT = 2;
@@ -33,5 +33,5 @@
     const unsigned short MEDIA_KEYERR_HARDWARECHANGE = 5;
     const unsigned short MEDIA_KEYERR_DOMAIN = 6;
     readonly attribute unsigned short code;
-    [Conditional=ENCRYPTED_MEDIA_V2, EnabledAtRuntime=encryptedMedia] readonly attribute unsigned long systemCode;
+    [Conditional=ENCRYPTED_MEDIA_V2, EnabledAtRuntime=EncryptedMedia] readonly attribute unsigned long systemCode;
 };
diff --git a/core/html/MediaKeyEvent.idl b/core/html/MediaKeyEvent.idl
index 78c0ecb..297eabe 100644
--- a/core/html/MediaKeyEvent.idl
+++ b/core/html/MediaKeyEvent.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=legacyEncryptedMedia,
+    EnabledAtRuntime=LegacyEncryptedMedia,
     ConstructorTemplate=Event
 ] interface MediaKeyEvent : Event {
     [InitializedByEventConstructor] readonly attribute DOMString keySystem;
diff --git a/core/html/TimeRanges.idl b/core/html/TimeRanges.idl
index ec11b43..3aa6b88 100644
--- a/core/html/TimeRanges.idl
+++ b/core/html/TimeRanges.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=media
+    EnabledAtRuntime=Media
 ] interface TimeRanges {
     readonly attribute unsigned long length;
     [RaisesException] double start(unsigned long index);
diff --git a/core/html/canvas/Canvas2DContextAttributes.idl b/core/html/canvas/Canvas2DContextAttributes.idl
index d6178d4..f756bda 100644
--- a/core/html/canvas/Canvas2DContextAttributes.idl
+++ b/core/html/canvas/Canvas2DContextAttributes.idl
@@ -26,7 +26,7 @@
 
 [
     NoInterfaceObject,
-    EnabledAtRuntime=experimentalCanvasFeatures
+    EnabledAtRuntime=ExperimentalCanvasFeatures
 ] interface Canvas2DContextAttributes {
     attribute boolean alpha;
 };
diff --git a/core/html/canvas/CanvasRenderingContext2D.idl b/core/html/canvas/CanvasRenderingContext2D.idl
index 3c2337b..69a3ffa 100644
--- a/core/html/canvas/CanvasRenderingContext2D.idl
+++ b/core/html/canvas/CanvasRenderingContext2D.idl
@@ -35,6 +35,7 @@
     void translate(float tx, float ty);
     void transform(float m11, float m12, float m21, float m22, float dx, float dy);
     void setTransform(float m11, float m12, float m21, float m22, float dx, float dy);
+    void resetTransform();
 
     attribute float globalAlpha;
     [TreatNullAs=NullString] attribute DOMString globalCompositeOperation;
@@ -76,6 +77,7 @@
     [RaisesException] void arcTo(float x1, float y1, float x2, float y2, float radius);
     void rect(float x, float y, float width, float height);
     [RaisesException] void arc(float x, float y, float radius, float startAngle, float endAngle, [Default=Undefined] optional boolean anticlockwise);
+    [RaisesException] void ellipse(float x, float y, float radiusX, float radiusY, float rotation, float startAngle, float endAngle, boolean anticlockwise);
 
     void fill(optional CanvasWindingRule winding);
     void stroke();
@@ -126,9 +128,9 @@
     [RaisesException] void drawImage(HTMLVideoElement? video, float x, float y);
     [RaisesException] void drawImage(HTMLVideoElement? video, float x, float y, float width, float height);
     [RaisesException] void drawImage(HTMLVideoElement? video, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh);
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void drawImage(ImageBitmap? imageBitmap, float x, float y);
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void drawImage(ImageBitmap? imageBitmap, float x, float y, float width, float height);
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void drawImage(ImageBitmap? imageBitmap, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh);
+    [EnabledAtRuntime=ExperimentalCanvasFeatures, RaisesException] void drawImage(ImageBitmap? imageBitmap, float x, float y);
+    [EnabledAtRuntime=ExperimentalCanvasFeatures, RaisesException] void drawImage(ImageBitmap? imageBitmap, float x, float y, float width, float height);
+    [EnabledAtRuntime=ExperimentalCanvasFeatures, RaisesException] void drawImage(ImageBitmap? imageBitmap, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh);
 
     void drawImageFromRect(HTMLImageElement image,
                            optional float sx, optional float sy, optional float sw, optional float sh,
@@ -160,14 +162,14 @@
     [RaisesException] ImageData webkitGetImageDataHD(float sx, float sy, float sw, float sh);
 
     // Focus rings
-    [EnabledAtRuntime=experimentalCanvasFeatures] void drawSystemFocusRing(Element element);
-    [EnabledAtRuntime=experimentalCanvasFeatures] boolean drawCustomFocusRing(Element element);
+    [EnabledAtRuntime=ExperimentalCanvasFeatures] void drawSystemFocusRing(Element element);
+    [EnabledAtRuntime=ExperimentalCanvasFeatures] boolean drawCustomFocusRing(Element element);
 
     readonly attribute float webkitBackingStorePixelRatio;
 
     [ImplementedAs=imageSmoothingEnabled] attribute boolean webkitImageSmoothingEnabled;
     attribute boolean imageSmoothingEnabled;
 
-    [EnabledAtRuntime=experimentalCanvasFeatures] Canvas2DContextAttributes getContextAttributes();
+    [EnabledAtRuntime=ExperimentalCanvasFeatures] Canvas2DContextAttributes getContextAttributes();
 };
 
diff --git a/core/html/canvas/Path.idl b/core/html/canvas/Path.idl
index 5b767e3..ce19874 100644
--- a/core/html/canvas/Path.idl
+++ b/core/html/canvas/Path.idl
@@ -27,7 +27,7 @@
  */
 
 [
-    EnabledAtRuntime=experimentalCanvasFeatures,
+    EnabledAtRuntime=ExperimentalCanvasFeatures,
     Constructor,
     Constructor(Path path),
     Constructor(DOMString text),
diff --git a/core/html/track/TextTrack.idl b/core/html/track/TextTrack.idl
index 36e19d9..1067901 100644
--- a/core/html/track/TextTrack.idl
+++ b/core/html/track/TextTrack.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=videoTrack
+    EnabledAtRuntime=VideoTrack
 ] interface TextTrack : EventTarget {
     readonly attribute DOMString kind;
     readonly attribute DOMString label;
diff --git a/core/html/track/TextTrackCue.idl b/core/html/track/TextTrackCue.idl
index d379587..e64d8a3 100644
--- a/core/html/track/TextTrackCue.idl
+++ b/core/html/track/TextTrackCue.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=videoTrack,
+    EnabledAtRuntime=VideoTrack,
     Constructor(double startTime, double endTime, DOMString text),
     ConstructorCallWith=ScriptExecutionContext
 ] interface TextTrackCue : EventTarget {
diff --git a/core/html/track/TextTrackCueList.idl b/core/html/track/TextTrackCueList.idl
index 155d419..4f28935 100644
--- a/core/html/track/TextTrackCueList.idl
+++ b/core/html/track/TextTrackCueList.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=videoTrack
+    EnabledAtRuntime=VideoTrack
 ] interface TextTrackCueList {
     readonly attribute unsigned long length;
     getter TextTrackCue item(unsigned long index);
diff --git a/core/html/track/TextTrackList.idl b/core/html/track/TextTrackList.idl
index d52c548..bdfcc74 100644
--- a/core/html/track/TextTrackList.idl
+++ b/core/html/track/TextTrackList.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=videoTrack,
+    EnabledAtRuntime=VideoTrack,
     GenerateIsReachable=owner
 ] interface TextTrackList : EventTarget {
     readonly attribute unsigned long length;
diff --git a/core/html/track/TextTrackRegion.idl b/core/html/track/TextTrackRegion.idl
index 104abba..62ca08e 100644
--- a/core/html/track/TextTrackRegion.idl
+++ b/core/html/track/TextTrackRegion.idl
@@ -26,7 +26,7 @@
 [
     Conditional=WEBVTT_REGIONS,
     Constructor(),
-    EnabledAtRuntime=videoTrack,
+    EnabledAtRuntime=VideoTrack,
     ConstructorCallWith=ScriptExecutionContext
 ] interface TextTrackRegion {
     readonly attribute TextTrack track;
diff --git a/core/html/track/TextTrackRegionList.idl b/core/html/track/TextTrackRegionList.idl
index ad5611f..844cd9d 100644
--- a/core/html/track/TextTrackRegionList.idl
+++ b/core/html/track/TextTrackRegionList.idl
@@ -26,7 +26,7 @@
 [
     NoInterfaceObject,
     Conditional=WEBVTT_REGIONS,
-    EnabledAtRuntime=videoTrack
+    EnabledAtRuntime=VideoTrack
 ] interface TextTrackRegionList {
     readonly attribute unsigned long length;
     getter TextTrackRegion item(unsigned long index);
diff --git a/core/html/track/TrackEvent.idl b/core/html/track/TrackEvent.idl
index 0b1a0e9..c1dc03e 100644
--- a/core/html/track/TrackEvent.idl
+++ b/core/html/track/TrackEvent.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=videoTrack,
+    EnabledAtRuntime=VideoTrack,
     ConstructorTemplate=Event
 ] interface TrackEvent : Event {
     [InitializedByEventConstructor, CustomGetter] readonly attribute object track;
diff --git a/core/inspector/CodeGeneratorInstrumentation.py b/core/inspector/CodeGeneratorInstrumentation.py
index 5cfe1f9..ce639eb 100644
--- a/core/inspector/CodeGeneratorInstrumentation.py
+++ b/core/inspector/CodeGeneratorInstrumentation.py
@@ -261,7 +261,6 @@
             if not "Keep" in self.params_impl[0].options:
                 self.params_impl = self.params_impl[1:]
             self.params_impl = [Parameter("InstrumentingAgents* agents")] + self.params_impl
-            self.agents_selector_class = re.match("(\w*)", self.params[0].type).group(1)
 
         self.agents = filter(lambda option: not "=" in option, self.options)
 
@@ -288,8 +287,7 @@
             condition = ""
             template = template_inline_forward
         else:
-            condition = "InstrumentingAgents* agents = instrumentingAgentsFor%s(%s)" % (
-                self.agents_selector_class, self.params[0].name)
+            condition = "InstrumentingAgents* agents = instrumentingAgentsFor(%s)" % self.params[0].name
 
             if self.returns_value:
                 template = template_inline_returns_value
diff --git a/core/inspector/InspectorFrontendHost.idl b/core/inspector/InspectorFrontendHost.idl
index f764bf2..678a36c 100644
--- a/core/inspector/InspectorFrontendHost.idl
+++ b/core/inspector/InspectorFrontendHost.idl
@@ -34,25 +34,20 @@
     NoInterfaceObject
 ] interface InspectorFrontendHost {
     void closeWindow();
-    void bringToFront();
     void setZoomFactor(float zoom);
     void inspectedURLChanged(DOMString newURL);
 
-    void requestSetDockSide(DOMString side);
     void setAttachedWindowHeight(unsigned long height);
-    void moveWindowBy(float x, float y);
     void setInjectedScriptForOrigin(DOMString origin, DOMString script);
 
     void copyText(DOMString text);
-    void openInNewTab(DOMString url);
-    void save(DOMString url, DOMString content, boolean forceSaveAs);
-    void append(DOMString url, DOMString content);
     void close(DOMString url);
 
     [Custom] DOMString platform();
     [Custom] DOMString port();
     [Custom] void showContextMenu(MouseEvent event, any items);
     void sendMessageToBackend(DOMString message);
+    void sendMessageToEmbedder(DOMString message);
 
     [Custom] void recordActionTaken(unsigned long actionCode);
     [Custom] void recordPanelShown(unsigned long panelCode);
@@ -62,13 +57,7 @@
     DOMString getSelectionBackgroundColor();
     DOMString getSelectionForegroundColor();
 
-    void requestFileSystems();
-    void addFileSystem();
-    void removeFileSystem(DOMString fileSystemPath);
     DOMFileSystem isolatedFileSystem(DOMString fileSystemId, DOMString registeredName);
-    void indexPath(long requestId, DOMString fileSystemPath);
-    void stopIndexing(long requestId);
-    void searchInPath(long requestId, DOMString fileSystemPath, DOMString query);
 
     boolean isUnderTest();
 
diff --git a/core/inspector/InspectorInstrumentation.idl b/core/inspector/InspectorInstrumentation.idl
index 6aa4ee5..578c857 100644
--- a/core/inspector/InspectorInstrumentation.idl
+++ b/core/inspector/InspectorInstrumentation.idl
@@ -61,6 +61,9 @@
 */
 
 interface InspectorInstrumentation {
+
+#include "core/dom/PseudoElement.h"
+
     [Page, Inspector, PageDebugger, PageRuntime]
     void didClearWindowObjectInWorld([Keep] Frame*, DOMWrapperWorld*);
 
@@ -217,6 +220,12 @@
     [Timeline, Page, Inline=FastReturn]
     void didPaint([Keep] RenderObject*, GraphicsContext*, const LayoutRect&);
 
+    [Timeline, Inline=FastReturn]
+    void willPaintImage([Keep] RenderImage*);
+
+    [Timeline, Inline=FastReturn]
+    void didPaintImage(RenderImage*);
+
     [Resource, Timeline, Inline=FastReturn]
     InspectorInstrumentationCookie willRecalculateStyle([Keep] Document*);
 
@@ -276,6 +285,9 @@
     [Timeline, Resource]
     void didFinishLoading(Frame* frame, unsigned long identifier, DocumentLoader*, double finishTime);
 
+    [Resource]
+    void didReceiveCORSRedirectResponse(Frame*, unsigned long identifier, DocumentLoader*, const ResourceResponse&, ResourceLoader*);
+
     [Timeline, Resource, Console] // Console should come AFTER Resource notification, front-end relies on this.
     void didFailLoading(Frame* frame, unsigned long identifier, DocumentLoader*, const ResourceError&);
 
@@ -295,12 +307,6 @@
     void didReceiveXHRResponse(ScriptExecutionContext*, unsigned long identifier);
 
     [Resource]
-    void willLoadXHRSynchronously(ScriptExecutionContext*);
-
-    [Resource]
-    void didLoadXHRSynchronously(ScriptExecutionContext*);
-
-    [Resource]
     void scriptImported(ScriptExecutionContext*, unsigned long identifier, const String& sourceString);
 
     [Debugger]
@@ -315,13 +321,16 @@
     [DOM, Timeline, Page]
     void loadEventFired([Keep] Frame*);
 
+    [Page]
+    void frameAttachedToParent([Keep] Frame*);
+
     [Canvas, Page, CSS]
     void frameDetachedFromParent([Keep] Frame*);
 
     [Page, Inline=FastReturn]
     void childDocumentOpened([Keep] Document*);
 
-    [Console, Resource, CSS, Database, DOM, LayerTree, Inspector, Canvas, Page]
+    [Console, Resource, CSS, Database, DOM, Inspector, Canvas, Page, PageDebugger]
     void didCommitLoad([Keep] Frame*, DocumentLoader*);
 
     [DOM, Inline=FastReturn]
@@ -422,6 +431,12 @@
 
     [LayerTree]
     void layerTreeDidChange(Page*);
+
+    [DOM, Inline=FastReturn]
+    void pseudoElementCreated([Keep] PseudoElement*);
+
+    [DOM, Inline=FastReturn]
+    void pseudoElementDestroyed([Keep] PseudoElement*);
 }
 
 interface InspectorConsoleInstrumentation {
@@ -446,16 +461,19 @@
     void consoleCount(ScriptExecutionContext* context, ScriptState* state, PassRefPtr<ScriptArguments> arguments);
 
     [Timeline, Console]
-    void startConsoleTiming([Keep] ScriptExecutionContext* context, const String& title);
+    void consoleTime([Keep] ScriptExecutionContext* context, const String& title);
 
     [Console, Timeline]
-    void stopConsoleTiming([Keep] ScriptExecutionContext* context, const String& title, PassRefPtr<ScriptCallStack> stack);
+    void consoleTimeEnd([Keep] ScriptExecutionContext* context, const String& title, ScriptState* state);
 
     [Timeline, Inline=FastReturn]
-    void consoleTimeStamp([Keep] ScriptExecutionContext* context, PassRefPtr<ScriptArguments> arguments);
+    void consoleTimeStamp([Keep] ScriptExecutionContext* context, const String& title);
 
-    [Profiler]
-    void addStartProfilingMessageToConsole(ScriptExecutionContext* context, const String& title, unsigned lineNumber, const String& sourceURL);
+    [Console, Inline=FastReturn]
+    void consoleTimeline([Keep] ScriptExecutionContext* context, const String& title, ScriptState* state);
+
+    [Console, Inline=FastReturn]
+    void consoleTimelineEnd([Keep] ScriptExecutionContext* context, const String& title, ScriptState* state);
 
     [Profiler]
     void addProfile(ScriptExecutionContext* context, PassRefPtr<ScriptProfile> profile, PassRefPtr<ScriptCallStack> callStack);
diff --git a/core/page/ConsoleBase.idl b/core/page/ConsoleBase.idl
index e830b9b..542610f 100644
--- a/core/page/ConsoleBase.idl
+++ b/core/page/ConsoleBase.idl
@@ -43,14 +43,18 @@
     [CallWith=ScriptArguments&ScriptState] void trace();
     [CallWith=ScriptArguments&ScriptState, ImplementedAs=assertCondition] void assert([Default=Undefined] optional boolean condition);
     [CallWith=ScriptArguments&ScriptState] void count();
-    [DeprecateAs=ConsoleMarkTimeline, CallWith=ScriptArguments] void markTimeline();
+    [DeprecateAs=ConsoleMarkTimeline] void markTimeline([Default=NullString] optional DOMString title);
 
     [CallWith=ScriptState] void profile([Default=NullString] optional DOMString title);
     [CallWith=ScriptState] void profileEnd([Default=NullString] optional DOMString title);
 
-    void time([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString title);
-    [CallWith=ScriptState] void timeEnd([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString title);
-    [CallWith=ScriptArguments] void timeStamp();
+    void time([Default=NullString] optional DOMString title);
+    [CallWith=ScriptState] void timeEnd([Default=NullString] optional DOMString title);
+    void timeStamp([Default=NullString] optional DOMString title);
+
+    [CallWith=ScriptState] void timeline([Default=NullString] optional DOMString title);
+    [CallWith=ScriptState] void timelineEnd([Default=NullString] optional DOMString title);
+
     [CallWith=ScriptArguments&ScriptState] void group();
     [CallWith=ScriptArguments&ScriptState] void groupCollapsed();
     void groupEnd();
diff --git a/core/page/History.idl b/core/page/History.idl
index 40e6648..d20cc89 100644
--- a/core/page/History.idl
+++ b/core/page/History.idl
@@ -25,7 +25,7 @@
 
 interface History {
     readonly attribute unsigned long length;
-    [CachedAttribute, Custom] readonly attribute SerializedScriptValue state;
+    [Custom] readonly attribute SerializedScriptValue state;
 
     [CallWith=ScriptExecutionContext] void back();
     [CallWith=ScriptExecutionContext] void forward();
diff --git a/core/page/Navigator.idl b/core/page/Navigator.idl
index 79f322d..546e3e0 100644
--- a/core/page/Navigator.idl
+++ b/core/page/Navigator.idl
@@ -18,11 +18,9 @@
 */
 
 interface Navigator {
-    readonly attribute DOMString appCodeName;
     readonly attribute DOMString language;
     readonly attribute PluginArray plugins;
     readonly attribute MimeTypeArray mimeTypes;
-    readonly attribute DOMString product;
     readonly attribute boolean cookieEnabled;
     boolean javaEnabled();
 
diff --git a/core/page/NavigatorID.idl b/core/page/NavigatorID.idl
index a0333ba..c581ad9 100644
--- a/core/page/NavigatorID.idl
+++ b/core/page/NavigatorID.idl
@@ -35,4 +35,6 @@
     readonly attribute DOMString appVersion;
     readonly attribute DOMString platform;
     readonly attribute DOMString userAgent;
+    readonly attribute DOMString appCodeName;
+    readonly attribute DOMString product;
 };
diff --git a/core/page/PagePopupController.idl b/core/page/PagePopupController.idl
index c7f545f..453850d 100644
--- a/core/page/PagePopupController.idl
+++ b/core/page/PagePopupController.idl
@@ -30,7 +30,7 @@
 
 [
     NoInterfaceObject,
-    EnabledAtRuntime=pagePopup
+    EnabledAtRuntime=PagePopup
 ] interface PagePopupController {
     void setValueAndClosePopup(long numberValue, DOMString stringValue);
     void setValue(DOMString value);
diff --git a/core/page/Window.idl b/core/page/Window.idl
index 94b9856..c720658 100644
--- a/core/page/Window.idl
+++ b/core/page/Window.idl
@@ -143,10 +143,10 @@
     WebKitPoint webkitConvertPointFromNodeToPage([Default=Undefined] optional Node node,
                                                  [Default=Undefined] optional WebKitPoint p);
 
-    [EnabledAtRuntime, PerWorldBindings, ActivityLog=GetterForIsolatedWorlds] readonly attribute ApplicationCache applicationCache;
+    [EnabledAtRuntime=ApplicationCache, PerWorldBindings, ActivityLog=GetterForIsolatedWorlds] readonly attribute ApplicationCache applicationCache;
 
-    [EnabledAtRuntime, PerWorldBindings, ActivityLog=GetterForIsolatedWorlds, GetterRaisesException] readonly attribute Storage sessionStorage;
-    [EnabledAtRuntime, PerWorldBindings, ActivityLog=GetterForIsolatedWorlds, GetterRaisesException] readonly attribute Storage localStorage;
+    [EnabledAtRuntime=SessionStorage, PerWorldBindings, ActivityLog=GetterForIsolatedWorlds, GetterRaisesException] readonly attribute Storage sessionStorage;
+    [EnabledAtRuntime=LocalStorage, PerWorldBindings, ActivityLog=GetterForIsolatedWorlds, GetterRaisesException] readonly attribute Storage localStorage;
 
     // This is the interface orientation in degrees. Some examples are:
     //  0 is straight up; -90 is when the device is rotated 90 clockwise;
@@ -245,26 +245,29 @@
     // Webkit extensions
     attribute EventHandler onreset;
     attribute EventHandler onsearch;
+    [EnabledAtRuntime=CSSAnimationUnprefixed] attribute EventHandler onanimationend;
+    [EnabledAtRuntime=CSSAnimationUnprefixed] attribute EventHandler onanimationiteration;
+    [EnabledAtRuntime=CSSAnimationUnprefixed] attribute EventHandler onanimationstart;
     attribute EventHandler onwebkitanimationend;
     attribute EventHandler onwebkitanimationiteration;
     attribute EventHandler onwebkitanimationstart;
     attribute EventHandler onwebkittransitionend;
     attribute EventHandler ontransitionend;
     [Conditional=ORIENTATION_EVENTS] attribute EventHandler onorientationchange;
-    [EnabledAtRuntime=touch] attribute EventHandler ontouchstart;
-    [EnabledAtRuntime=touch] attribute EventHandler ontouchmove;
-    [EnabledAtRuntime=touch] attribute EventHandler ontouchend;
-    [EnabledAtRuntime=touch] attribute EventHandler ontouchcancel;
+    [EnabledAtRuntime=Touch] attribute EventHandler ontouchstart;
+    [EnabledAtRuntime=Touch] attribute EventHandler ontouchmove;
+    [EnabledAtRuntime=Touch] attribute EventHandler ontouchend;
+    [EnabledAtRuntime=Touch] attribute EventHandler ontouchcancel;
 
-    [EnabledAtRuntime=deviceMotion] attribute EventHandler ondevicemotion;
-    [EnabledAtRuntime=deviceOrientation] attribute EventHandler ondeviceorientation;
+    [EnabledAtRuntime=DeviceMotion] attribute EventHandler ondevicemotion;
+    [EnabledAtRuntime=DeviceOrientation] attribute EventHandler ondeviceorientation;
 
     [DeprecateAs=CaptureEvents] void captureEvents();
     [DeprecateAs=ReleaseEvents] void releaseEvents();
 
     // Additional constructors.
     attribute TransitionEventConstructor WebKitTransitionEvent;
-    [EnabledAtRuntime=cssAnimationUnprefixed] attribute WebKitAnimationEventConstructor AnimationEvent;
+    [EnabledAtRuntime=CSSAnimationUnprefixed] attribute WebKitAnimationEventConstructor AnimationEvent;
     [CustomConstructor] attribute HTMLImageElementConstructorConstructor Image; // Usable with new operator
     // Mozilla has a separate XMLDocument object for XML documents.
     // We just use Document for this.
@@ -282,15 +285,15 @@
 
     // Constructors whose name does not match the interface name.
     // FIXME: Remove these once [ImplementedAs] is used and once constructor names match interface names.
-    [EnabledAtRuntime=mediaStream] attribute MediaStreamConstructor webkitMediaStream;
+    [EnabledAtRuntime=MediaStream] attribute MediaStreamConstructor webkitMediaStream;
     [Conditional=WEB_AUDIO, EnabledAtRuntime=WebAudio] attribute AudioContextConstructor webkitAudioContext;
     [Conditional=WEB_AUDIO, EnabledAtRuntime=WebAudio] attribute OfflineAudioContextConstructor webkitOfflineAudioContext;
-    [EnabledAtRuntime=peerConnection] attribute RTCPeerConnectionConstructor webkitRTCPeerConnection;
-    [EnabledAtRuntime=scriptedSpeech] attribute SpeechGrammarConstructor webkitSpeechGrammar;
-    [EnabledAtRuntime=scriptedSpeech] attribute SpeechGrammarListConstructor webkitSpeechGrammarList;
-    [EnabledAtRuntime=scriptedSpeech] attribute SpeechRecognitionConstructor webkitSpeechRecognition;
-    [EnabledAtRuntime=scriptedSpeech] attribute SpeechRecognitionErrorConstructor webkitSpeechRecognitionError;
-    [EnabledAtRuntime=scriptedSpeech] attribute SpeechRecognitionEventConstructor webkitSpeechRecognitionEvent;
+    [EnabledAtRuntime=PeerConnection] attribute RTCPeerConnectionConstructor webkitRTCPeerConnection;
+    [EnabledAtRuntime=ScriptedSpeech] attribute SpeechGrammarConstructor webkitSpeechGrammar;
+    [EnabledAtRuntime=ScriptedSpeech] attribute SpeechGrammarListConstructor webkitSpeechGrammarList;
+    [EnabledAtRuntime=ScriptedSpeech] attribute SpeechRecognitionConstructor webkitSpeechRecognition;
+    [EnabledAtRuntime=ScriptedSpeech] attribute SpeechRecognitionErrorConstructor webkitSpeechRecognitionError;
+    [EnabledAtRuntime=ScriptedSpeech] attribute SpeechRecognitionEventConstructor webkitSpeechRecognitionEvent;
     [Conditional=WEB_AUDIO] attribute PannerNodeConstructor webkitAudioPannerNode;
 
     // Prefixed ShadowRoot constructor should be phased out eventually, but for the moment it must be always exposed.
diff --git a/core/page/WindowPagePopup.idl b/core/page/WindowPagePopup.idl
index 36fea46..0ae9bbe 100644
--- a/core/page/WindowPagePopup.idl
+++ b/core/page/WindowPagePopup.idl
@@ -29,7 +29,7 @@
  */
 
 [
-    EnabledAtRuntime=pagePopup,
+    EnabledAtRuntime=PagePopup,
     ImplementedAs=DOMWindowPagePopup
 ] partial interface Window {
     [EnabledPerContext=pagePopup] readonly attribute PagePopupController pagePopupController;
diff --git a/core/scripts/make_event_factory.py b/core/scripts/make_event_factory.py
index d34e4be..ace45ab 100644
--- a/core/scripts/make_event_factory.py
+++ b/core/scripts/make_event_factory.py
@@ -33,6 +33,7 @@
 
 from in_file import InFile
 import name_macros
+from name_utilities import lower_first
 import license
 
 
@@ -73,9 +74,10 @@
         return self.in_file.name_dictionaries
 
     def _factory_implementation(self, event):
-        runtime_condition = ''
         if event['EnabledAtRuntime']:
-            runtime_condition = ' && RuntimeEnabledFeatures::' + event['EnabledAtRuntime'] + '()'
+            runtime_condition = ' && RuntimeEnabledFeatures::%s()' % lower_first(event['EnabledAtRuntime'])
+        else:
+            runtime_condition = ''
         name = os.path.basename(event['name'])
         class_name = self._class_name_for_entry(event)
         implementation = """    if (type == "%(name)s"%(runtime_condition)s)
diff --git a/core/scripts/make_runtime_features.py b/core/scripts/make_runtime_features.py
index 6ec681b..ad84a25 100755
--- a/core/scripts/make_runtime_features.py
+++ b/core/scripts/make_runtime_features.py
@@ -32,6 +32,7 @@
 
 from in_file import InFile
 import in_generator
+from name_utilities import lower_first
 import template_expander
 
 
@@ -47,7 +48,6 @@
         'depends_on' : [],
         'custom': False,
         'status': None,
-        'writeable': False,
     }
 
     def __init__(self, in_file_path, enabled_conditions):
@@ -59,7 +59,7 @@
         self._features = self.in_file.name_dictionaries
         # Make sure the resulting dictionaries have all the keys we expect.
         for feature in self._features:
-            feature['first_lowered_name'] = self._lower_first(feature['name'])
+            feature['first_lowered_name'] = lower_first(feature['name'])
             # Most features just check their isFooEnabled bool
             # but some depend on more than one bool.
             enabled_condition = "is%sEnabled" % feature['name']
@@ -68,15 +68,6 @@
             feature['enabled_condition'] = enabled_condition
         self._non_custom_features = filter(lambda feature: not feature['custom'], self._features)
 
-    def _lower_first(self, string):
-        lowered = string[0].lower() + string[1:]
-        lowered = lowered.replace("cSS", "css")
-        lowered = lowered.replace("iME", "ime")
-        lowered = lowered.replace("hTML", "html")
-        lowered = lowered.replace("sVG", "svg")
-        lowered = lowered.replace("wOFF", "woff")
-        return lowered
-
     def _feature_sets(self):
         # Another way to think of the status levels is as "sets of features"
         # which is how we're referring to them in this generator.
diff --git a/core/scripts/name_utilities.py b/core/scripts/name_utilities.py
new file mode 100644
index 0000000..c4993b0
--- /dev/null
+++ b/core/scripts/name_utilities.py
@@ -0,0 +1,40 @@
+# Copyright (C) 2013 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ACRONYMS = ['CSS', 'HTML', 'IME', 'JS', 'SVG', 'URL', 'WOFF', 'XML', 'XSLT']
+
+
+def lower_first(name):
+    """Return name with first letter or initial acronym lowercased.
+
+    E.g., 'SetURL' becomes 'setURL', but 'URLFoo' becomes 'urlFoo'.
+    """
+    for acronym in ACRONYMS:
+        if name.startswith(acronym):
+            return name.replace(acronym, acronym.lower())
+    return name[0].lower() + name[1:]
diff --git a/core/scripts/template_expander.py b/core/scripts/template_expander.py
index aafeb68..b1e99b6 100644
--- a/core/scripts/template_expander.py
+++ b/core/scripts/template_expander.py
@@ -31,14 +31,15 @@
 
 _current_dir = os.path.dirname(os.path.realpath(__file__))
 # jinja2 is in chromium's third_party directory
-sys.path.append(os.path.join(_current_dir, *([os.pardir] * 4)))
+# Insert at front to override system libraries, and after path[0] == script dir
+sys.path.insert(1, os.path.join(_current_dir, *([os.pardir] * 4)))
 import jinja2
 
 
 def apply_template(path_to_template, params):
     dirname, basename = os.path.split(path_to_template)
     path_to_templates = os.path.join(_current_dir, "templates")
-    jinja_env = jinja2.Environment(loader=jinja2.FileSystemLoader([dirname, path_to_templates]))
+    jinja_env = jinja2.Environment(loader=jinja2.FileSystemLoader([dirname, path_to_templates]), keep_trailing_newline=True)
     template = jinja_env.get_template(basename)
     return template.render(params)
 
diff --git a/core/scripts/templates/InternalRuntimeFlags.idl.tmpl b/core/scripts/templates/InternalRuntimeFlags.idl.tmpl
index f0161f9..92838f2 100644
--- a/core/scripts/templates/InternalRuntimeFlags.idl.tmpl
+++ b/core/scripts/templates/InternalRuntimeFlags.idl.tmpl
@@ -9,10 +9,6 @@
     it's possible that some can be and should be conditionally readonly.
 #}
     {% if feature.condition -%} [Conditional={{feature.condition}}] {% endif -%}
-    {% if feature.writeable %}
-    attribute boolean {{feature.first_lowered_name}}Enabled;
-    {% else %}
     readonly attribute boolean {{feature.first_lowered_name}}Enabled;
-    {% endif %}
 {%- endfor %}
 };
diff --git a/core/svg/SVGTRefElement.idl b/core/svg/SVGTRefElement.idl
deleted file mode 100644
index 4fb97b0..0000000
--- a/core/svg/SVGTRefElement.idl
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2006 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-interface SVGTRefElement : SVGTextPositioningElement {
-};
-
-SVGTRefElement implements SVGURIReference;
-
diff --git a/core/testing/InternalSettings.idl b/core/testing/InternalSettings.idl
index f1d7594..9e03edc 100644
--- a/core/testing/InternalSettings.idl
+++ b/core/testing/InternalSettings.idl
@@ -57,5 +57,6 @@
     void setCSSExclusionsEnabled(boolean enabled);
     void setExperimentalWebSocketEnabled(boolean enabled);
     void setLangAttributeAwareFormControlUIEnabled(boolean enabled);
+    void setOverlayScrollbarsEnabled(boolean enabled);
     void setStyleScopedEnabled(boolean enabled);
 };
diff --git a/core/testing/Internals.idl b/core/testing/Internals.idl
index a7c648d..0d21489 100644
--- a/core/testing/Internals.idl
+++ b/core/testing/Internals.idl
@@ -179,6 +179,7 @@
     [RaisesException] NodeList paintOrderListAfterPromote(Element element);
 
     [RaisesException] boolean scrollsWithRespectTo(Element element1, Element element2);
+    [RaisesException] boolean isUnclippedDescendant(Element element);
 
     // The values of these constants must be kept in sync with those in RenderLayer.
     const unsigned short DO_NOT_FORCE_COMPOSITED_SCROLLING = 0;
@@ -248,8 +249,6 @@
     SerializedScriptValue deserializeBuffer(ArrayBuffer buffer);
     ArrayBuffer serializeObject(SerializedScriptValue obj);
 
-    void setUsesOverlayScrollbars(boolean enabled);
-
     void forceReload(boolean endToEnd);
 
     void enableMockSpeechSynthesizer();
diff --git a/core/workers/SharedWorker.idl b/core/workers/SharedWorker.idl
index 90fa944..6bba130 100644
--- a/core/workers/SharedWorker.idl
+++ b/core/workers/SharedWorker.idl
@@ -30,7 +30,7 @@
  */
 
 [
-    EnabledAtRuntime,
+    EnabledAtRuntime=SharedWorker,
     Constructor(DOMString scriptURL, [Default=NullString] optional DOMString name),
     ConstructorCallWith=ScriptExecutionContext,
     ConstructorRaisesException,
diff --git a/core/xml/XMLHttpRequest.idl b/core/xml/XMLHttpRequest.idl
index ecee6f5..069129d 100644
--- a/core/xml/XMLHttpRequest.idl
+++ b/core/xml/XMLHttpRequest.idl
@@ -32,7 +32,8 @@
     "blob",
     "document",
     "json",
-    "text"
+    "text",
+    "stream"
 };
 
 [
diff --git a/modules/README b/modules/README
index fc245d1..031dfa4 100644
--- a/modules/README
+++ b/modules/README
@@ -6,4 +6,4 @@
 
 The current version corresponds to:
 URL: http://src.chromium.org/multivm/trunk/webkit
-Current revision: 1365
+Current revision: 1467
diff --git a/core/dom/PromiseResolver.idl b/modules/crypto/KeyPair.idl
similarity index 86%
copy from core/dom/PromiseResolver.idl
copy to modules/crypto/KeyPair.idl
index b671070..538f85a 100644
--- a/core/dom/PromiseResolver.idl
+++ b/modules/crypto/KeyPair.idl
@@ -29,10 +29,8 @@
  */
 
 [
-   GlobalContext=Window&WorkerGlobalScope,
-   EnabledAtRuntime=promise
-] interface PromiseResolver {
-   [Custom] void fulfill(optional any value);
-   [Custom] void resolve(optional any value);
-   [Custom] void reject(optional any value);
+    NoInterfaceObject,
+] interface KeyPair {
+    readonly attribute Key publicKey;
+    readonly attribute Key privateKey;
 };
diff --git a/modules/crypto/SubtleCrypto.idl b/modules/crypto/SubtleCrypto.idl
index 9237c6a..e4bc3a8 100644
--- a/modules/crypto/SubtleCrypto.idl
+++ b/modules/crypto/SubtleCrypto.idl
@@ -28,19 +28,17 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// FIXME: |PromiseValue| should be replaced with |Promise|. http://crbug.com/266700
-typedef any PromiseValue;
-
 [
     NoInterfaceObject,
 ] interface SubtleCrypto {
-    [RaisesException] PromiseValue encrypt(Dictionary algorithm, Key key, ArrayBufferView data);
-    [RaisesException] PromiseValue decrypt(Dictionary algorithm, Key key, ArrayBufferView data);
-    [RaisesException] PromiseValue sign(Dictionary algorithm, Key key, ArrayBufferView data);
-    [RaisesException, ImplementedAs=verifySignature] PromiseValue verify(Dictionary algorithm, Key key, ArrayBufferView signature, ArrayBufferView data);
-    [RaisesException] PromiseValue digest(Dictionary algorithm, ArrayBufferView data);
+    [RaisesException] Promise encrypt(Dictionary algorithm, Key key, ArrayBufferView data);
+    [RaisesException] Promise decrypt(Dictionary algorithm, Key key, ArrayBufferView data);
+    [RaisesException] Promise sign(Dictionary algorithm, Key key, ArrayBufferView data);
+    [RaisesException, ImplementedAs=verifySignature] Promise verify(Dictionary algorithm, Key key, ArrayBufferView signature, ArrayBufferView data);
+    [RaisesException] Promise digest(Dictionary algorithm, ArrayBufferView data);
 
-    [RaisesException] PromiseValue generateKey(Dictionary algorithm, boolean extractable, DOMString[] keyUsages);
-    [RaisesException] PromiseValue importKey(DOMString format, ArrayBufferView keyData, Dictionary algorithm, boolean extractable, DOMString[] keyUsages);
+    [RaisesException] Promise generateKey(Dictionary algorithm, boolean extractable, DOMString[] keyUsages);
+    [RaisesException] Promise importKey(DOMString format, ArrayBufferView keyData, Dictionary algorithm, boolean extractable, DOMString[] keyUsages);
+    [RaisesException] Promise exportKey(DOMString format, Key key);
 };
 
diff --git a/modules/device_orientation/DeviceMotionEvent.idl b/modules/device_orientation/DeviceMotionEvent.idl
index bfb130d..809848d 100644
--- a/modules/device_orientation/DeviceMotionEvent.idl
+++ b/modules/device_orientation/DeviceMotionEvent.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=deviceMotion
+    EnabledAtRuntime=DeviceMotion
 ] interface DeviceMotionEvent : Event {
     readonly attribute DeviceAcceleration acceleration;
     readonly attribute DeviceAcceleration accelerationIncludingGravity;
diff --git a/modules/encryptedmedia/MediaKeyMessageEvent.idl b/modules/encryptedmedia/MediaKeyMessageEvent.idl
index 4b12d9b..1f1aab7 100644
--- a/modules/encryptedmedia/MediaKeyMessageEvent.idl
+++ b/modules/encryptedmedia/MediaKeyMessageEvent.idl
@@ -25,7 +25,7 @@
 
 [
     Conditional=ENCRYPTED_MEDIA_V2,
-    EnabledAtRuntime=encryptedMedia,
+    EnabledAtRuntime=EncryptedMedia,
     ConstructorTemplate=Event
 ] interface MediaKeyMessageEvent : Event {
     readonly attribute Uint8Array message;
diff --git a/modules/encryptedmedia/MediaKeyNeededEvent.idl b/modules/encryptedmedia/MediaKeyNeededEvent.idl
index 82f72f8..f593cc3 100644
--- a/modules/encryptedmedia/MediaKeyNeededEvent.idl
+++ b/modules/encryptedmedia/MediaKeyNeededEvent.idl
@@ -25,7 +25,7 @@
 
 [
     Conditional=ENCRYPTED_MEDIA_V2,
-    EnabledAtRuntime=encryptedMedia,
+    EnabledAtRuntime=EncryptedMedia,
     ConstructorTemplate=Event
 ] interface MediaKeyNeededEvent : Event {
     readonly attribute Uint8Array initData;
diff --git a/modules/encryptedmedia/MediaKeySession.idl b/modules/encryptedmedia/MediaKeySession.idl
index ad7acae..46cda2d 100644
--- a/modules/encryptedmedia/MediaKeySession.idl
+++ b/modules/encryptedmedia/MediaKeySession.idl
@@ -25,7 +25,7 @@
 
 [
     Conditional=ENCRYPTED_MEDIA_V2,
-    EnabledAtRuntime=encryptedMedia
+    EnabledAtRuntime=EncryptedMedia
 ] interface MediaKeySession : EventTarget {
     // error state
     readonly attribute MediaKeyError error;
@@ -39,7 +39,7 @@
     void close();
 
     // EventHandlers
-    [EnabledAtRuntime=encryptedMedia] attribute EventHandler onwebkitkeyadded;
-    [EnabledAtRuntime=encryptedMedia] attribute EventHandler onwebkitkeyerror;
-    [EnabledAtRuntime=encryptedMedia] attribute EventHandler onwebkitkeymessage;
+    [EnabledAtRuntime=EncryptedMedia] attribute EventHandler onwebkitkeyadded;
+    [EnabledAtRuntime=EncryptedMedia] attribute EventHandler onwebkitkeyerror;
+    [EnabledAtRuntime=EncryptedMedia] attribute EventHandler onwebkitkeymessage;
 };
diff --git a/modules/encryptedmedia/MediaKeys.idl b/modules/encryptedmedia/MediaKeys.idl
index 63cfe05..2d03169 100644
--- a/modules/encryptedmedia/MediaKeys.idl
+++ b/modules/encryptedmedia/MediaKeys.idl
@@ -25,7 +25,7 @@
 
 [
     Conditional=ENCRYPTED_MEDIA_V2,
-    EnabledAtRuntime=encryptedMedia,
+    EnabledAtRuntime=EncryptedMedia,
     Constructor(DOMString keySystem),
     ConstructorRaisesException
 ] interface MediaKeys {
diff --git a/modules/gamepad/NavigatorGamepad.idl b/modules/gamepad/NavigatorGamepad.idl
index 5136454..e1686f3 100644
--- a/modules/gamepad/NavigatorGamepad.idl
+++ b/modules/gamepad/NavigatorGamepad.idl
@@ -18,6 +18,6 @@
  */
 
 partial interface Navigator {
-    [EnabledAtRuntime=gamepad] GamepadList webkitGetGamepads();
+    [EnabledAtRuntime=Gamepad] GamepadList webkitGetGamepads();
 };
 
diff --git a/modules/geolocation/NavigatorGeolocation.idl b/modules/geolocation/NavigatorGeolocation.idl
index afdce13..460d293 100644
--- a/modules/geolocation/NavigatorGeolocation.idl
+++ b/modules/geolocation/NavigatorGeolocation.idl
@@ -18,6 +18,6 @@
  */
 
 partial interface Navigator {
-    [EnabledAtRuntime] readonly attribute Geolocation geolocation;
+    [EnabledAtRuntime=Geolocation] readonly attribute Geolocation geolocation;
 };
 
diff --git a/modules/imagebitmap/ImageBitmapFactories.idl b/modules/imagebitmap/ImageBitmapFactories.idl
index 042b6e4..90cacf0 100644
--- a/modules/imagebitmap/ImageBitmapFactories.idl
+++ b/modules/imagebitmap/ImageBitmapFactories.idl
@@ -28,17 +28,14 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// FIXME: |PromiseValue| should be replaced with |Promise|. http://crbug.com/266700
-typedef any PromiseValue;
-
 [
     NoInterfaceObject,
-    EnabledAtRuntime=experimentalCanvasFeatures
+    EnabledAtRuntime=ExperimentalCanvasFeatures
 ] interface ImageBitmapFactories {
-    [RaisesException] PromiseValue createImageBitmap(Blob blob);
-    [RaisesException] PromiseValue createImageBitmap(Blob blob, long sx, long sy, long sw, long sh);
-    [RaisesException] PromiseValue createImageBitmap(ImageData data);
-    [RaisesException] PromiseValue createImageBitmap(ImageData data, long sx, long sy, long sw, long sh);
-    [RaisesException] PromiseValue createImageBitmap(ImageBitmap bitmap);
-    [RaisesException] PromiseValue createImageBitmap(ImageBitmap bitmap, long sx, long sy, long sw, long sh);
+    [RaisesException] Promise createImageBitmap(Blob blob);
+    [RaisesException] Promise createImageBitmap(Blob blob, long sx, long sy, long sw, long sh);
+    [RaisesException] Promise createImageBitmap(ImageData data);
+    [RaisesException] Promise createImageBitmap(ImageData data, long sx, long sy, long sw, long sh);
+    [RaisesException] Promise createImageBitmap(ImageBitmap bitmap);
+    [RaisesException] Promise createImageBitmap(ImageBitmap bitmap, long sx, long sy, long sw, long sh);
 };
diff --git a/modules/imagebitmap/WindowImageBitmapFactories.idl b/modules/imagebitmap/WindowImageBitmapFactories.idl
index 4d6ffbf..c91ab89 100644
--- a/modules/imagebitmap/WindowImageBitmapFactories.idl
+++ b/modules/imagebitmap/WindowImageBitmapFactories.idl
@@ -28,19 +28,16 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// FIXME: |PromiseValue| should be replaced with |Promise|. http://crbug.com/266700
-typedef any PromiseValue;
-
 [
     ImplementedAs=ImageBitmapFactories,
-    EnabledAtRuntime=experimentalCanvasFeatures
+    EnabledAtRuntime=ExperimentalCanvasFeatures
 ] partial interface Window {
-    [RaisesException] PromiseValue createImageBitmap(HTMLImageElement image);
-    [RaisesException] PromiseValue createImageBitmap(HTMLImageElement image, long sx, long sy, long sw, long sh);
-    [RaisesException] PromiseValue createImageBitmap(HTMLVideoElement video);
-    [RaisesException] PromiseValue createImageBitmap(HTMLVideoElement video, long sx, long sy, long sw, long sh);
-    [RaisesException] PromiseValue createImageBitmap(CanvasRenderingContext2D context);
-    [RaisesException] PromiseValue createImageBitmap(CanvasRenderingContext2D context, long sx, long sy, long sw, long sh);
-    [RaisesException] PromiseValue createImageBitmap(HTMLCanvasElement canvas);
-    [RaisesException] PromiseValue createImageBitmap(HTMLCanvasElement canvas, long sx, long sy, long sw, long sh);
+    [RaisesException] Promise createImageBitmap(HTMLImageElement image);
+    [RaisesException] Promise createImageBitmap(HTMLImageElement image, long sx, long sy, long sw, long sh);
+    [RaisesException] Promise createImageBitmap(HTMLVideoElement video);
+    [RaisesException] Promise createImageBitmap(HTMLVideoElement video, long sx, long sy, long sw, long sh);
+    [RaisesException] Promise createImageBitmap(CanvasRenderingContext2D context);
+    [RaisesException] Promise createImageBitmap(CanvasRenderingContext2D context, long sx, long sy, long sw, long sh);
+    [RaisesException] Promise createImageBitmap(HTMLCanvasElement canvas);
+    [RaisesException] Promise createImageBitmap(HTMLCanvasElement canvas, long sx, long sy, long sw, long sh);
 };
diff --git a/modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl b/modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl
index 4bcc945..e957d79 100644
--- a/modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl
+++ b/modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl
@@ -25,7 +25,7 @@
  */
 
 partial interface WorkerGlobalScope {
-    [ImplementedAs=indexedDB,EnabledAtRuntime=indexedDB] readonly attribute IDBFactory webkitIndexedDB;
+    [ImplementedAs=indexedDB, EnabledAtRuntime=IndexedDB] readonly attribute IDBFactory webkitIndexedDB;
 
     attribute IDBCursorConstructor webkitIDBCursor;
     attribute IDBDatabaseConstructor webkitIDBDatabase;
@@ -36,7 +36,7 @@
     attribute IDBRequestConstructor webkitIDBRequest;
     attribute IDBTransactionConstructor webkitIDBTransaction;
 
-    [EnabledAtRuntime] readonly attribute IDBFactory indexedDB;
+    [EnabledAtRuntime=IndexedDB] readonly attribute IDBFactory indexedDB;
 
     attribute IDBCursorConstructor IDBCursor;
     attribute IDBCursorWithValueConstructor IDBCursorWithValue;
diff --git a/modules/mediasource/MediaSource.idl b/modules/mediasource/MediaSource.idl
index 8286967..6f2b0af 100644
--- a/modules/mediasource/MediaSource.idl
+++ b/modules/mediasource/MediaSource.idl
@@ -29,7 +29,7 @@
  */
 
 [
-    EnabledAtRuntime=mediaSource,
+    EnabledAtRuntime=MediaSource,
     ActiveDOMObject,
     Constructor,
     ConstructorCallWith=ScriptExecutionContext
diff --git a/modules/mediasource/SourceBuffer.idl b/modules/mediasource/SourceBuffer.idl
index f254f03..c6160bd 100644
--- a/modules/mediasource/SourceBuffer.idl
+++ b/modules/mediasource/SourceBuffer.idl
@@ -31,7 +31,7 @@
 [
     NoInterfaceObject,
     ActiveDOMObject,
-    EnabledAtRuntime=mediaSource
+    EnabledAtRuntime=MediaSource
 ] interface SourceBuffer : EventTarget {
 
     readonly attribute boolean updating;
@@ -52,6 +52,8 @@
     [RaisesException] void appendBuffer(ArrayBuffer data);
     [RaisesException] void appendBuffer(ArrayBufferView data);
 
+    [RaisesException, EnabledAtRuntime=stream] void appendStream(Stream stream, optional unsigned long long maxSize);
+
     // Abort the current segment append sequence.
     [RaisesException] void abort();
     [RaisesException] void remove(double start, double end);
diff --git a/modules/mediasource/SourceBufferList.idl b/modules/mediasource/SourceBufferList.idl
index 1e2f5ed..ecf3508 100644
--- a/modules/mediasource/SourceBufferList.idl
+++ b/modules/mediasource/SourceBufferList.idl
@@ -30,7 +30,7 @@
 
 [
     NoInterfaceObject,
-    EnabledAtRuntime=mediaSource,
+    EnabledAtRuntime=MediaSource,
     CallWith=ScriptExecutionContext
 ] interface SourceBufferList : EventTarget {
     readonly attribute unsigned long length;
diff --git a/modules/mediasource/WebKitMediaSource.idl b/modules/mediasource/WebKitMediaSource.idl
index 388e5d8..6039201 100644
--- a/modules/mediasource/WebKitMediaSource.idl
+++ b/modules/mediasource/WebKitMediaSource.idl
@@ -30,7 +30,7 @@
 
 [
     NoInterfaceObject,
-    EnabledAtRuntime=webKitMediaSource,
+    EnabledAtRuntime=WebKitMediaSource,
     ActiveDOMObject,
     Constructor,
     ConstructorCallWith=ScriptExecutionContext
diff --git a/modules/mediasource/WebKitSourceBuffer.idl b/modules/mediasource/WebKitSourceBuffer.idl
index c682730..b7582b0 100644
--- a/modules/mediasource/WebKitSourceBuffer.idl
+++ b/modules/mediasource/WebKitSourceBuffer.idl
@@ -30,7 +30,7 @@
 
 [
     NoInterfaceObject,
-    EnabledAtRuntime=webKitMediaSource
+    EnabledAtRuntime=WebKitMediaSource
 ] interface WebKitSourceBuffer {
 
     // Returns the time ranges buffered.
diff --git a/modules/mediasource/WebKitSourceBufferList.idl b/modules/mediasource/WebKitSourceBufferList.idl
index f33a369..4c5e359 100644
--- a/modules/mediasource/WebKitSourceBufferList.idl
+++ b/modules/mediasource/WebKitSourceBufferList.idl
@@ -30,7 +30,7 @@
 
 [
     NoInterfaceObject,
-    EnabledAtRuntime=webKitMediaSource
+    EnabledAtRuntime=WebKitMediaSource
 ] interface WebKitSourceBufferList : EventTarget {
     readonly attribute unsigned long length;
     getter WebKitSourceBuffer item(unsigned long index);
diff --git a/modules/mediasource/WindowMediaSource.idl b/modules/mediasource/WindowMediaSource.idl
index eb6d24b..bf5bbef 100644
--- a/modules/mediasource/WindowMediaSource.idl
+++ b/modules/mediasource/WindowMediaSource.idl
@@ -28,7 +28,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 partial interface Window {
-    [EnabledAtRuntime=webKitMediaSource] attribute WebKitMediaSourceConstructor WebKitMediaSource;
-    [EnabledAtRuntime=webKitMediaSource] attribute WebKitSourceBufferConstructor WebKitSourceBuffer;
-    [EnabledAtRuntime=webKitMediaSource] attribute WebKitSourceBufferListConstructor WebKitSourceBufferList;
+    [EnabledAtRuntime=WebKitMediaSource] attribute WebKitMediaSourceConstructor WebKitMediaSource;
+    [EnabledAtRuntime=WebKitMediaSource] attribute WebKitSourceBufferConstructor WebKitSourceBuffer;
+    [EnabledAtRuntime=WebKitMediaSource] attribute WebKitSourceBufferListConstructor WebKitSourceBufferList;
 };
diff --git a/modules/mediastream/NavigatorMediaStream.idl b/modules/mediastream/NavigatorMediaStream.idl
index 94df656..960c32e 100644
--- a/modules/mediastream/NavigatorMediaStream.idl
+++ b/modules/mediastream/NavigatorMediaStream.idl
@@ -18,7 +18,7 @@
  */
 
 partial interface Navigator {
-    [EnabledAtRuntime=mediaStream, RaisesException] void webkitGetUserMedia(Dictionary options,
+    [EnabledAtRuntime=MediaStream, RaisesException] void webkitGetUserMedia(Dictionary options,
                                                  NavigatorUserMediaSuccessCallback successCallback,
                                                  optional NavigatorUserMediaErrorCallback errorCallback);
 };
diff --git a/modules/mediastream/RTCPeerConnection.idl b/modules/mediastream/RTCPeerConnection.idl
index 4a8c614..f0c847c 100644
--- a/modules/mediastream/RTCPeerConnection.idl
+++ b/modules/mediastream/RTCPeerConnection.idl
@@ -49,8 +49,11 @@
 
     [RaisesException] void updateIce(optional Dictionary configuration, optional Dictionary mediaConstraints);
 
+    // DEPRECATED
     [RaisesException] void addIceCandidate(RTCIceCandidate candidate);
 
+    [RaisesException] void addIceCandidate(RTCIceCandidate candidate, VoidCallback successCallback, RTCErrorCallback failureCallback);
+
     readonly attribute DOMString iceGatheringState;
     readonly attribute DOMString iceConnectionState;
 
diff --git a/modules/notifications/Notification.idl b/modules/notifications/Notification.idl
index 24d25cc..75a4779 100644
--- a/modules/notifications/Notification.idl
+++ b/modules/notifications/Notification.idl
@@ -30,18 +30,18 @@
  */
 
 [
-    Conditional=NOTIFICATIONS|LEGACY_NOTIFICATIONS,
     ActiveDOMObject,
     Constructor(DOMString title, [Default=Undefined] optional Dictionary options),
     ConstructorCallWith=ScriptExecutionContext,
+    EnabledAtRuntime=notifications
 ] interface Notification : EventTarget {
     void show();
     [Conditional=LEGACY_NOTIFICATIONS] void cancel();
-    [Conditional=NOTIFICATIONS] void close();
+    void close();
 
 
-    [CallWith=ScriptExecutionContext, Conditional=NOTIFICATIONS] static readonly attribute DOMString permission;
-    [CallWith=ScriptExecutionContext, Conditional=NOTIFICATIONS] static void requestPermission(optional NotificationPermissionCallback callback);
+    [CallWith=ScriptExecutionContext] static readonly attribute DOMString permission;
+    [CallWith=ScriptExecutionContext] static void requestPermission(optional NotificationPermissionCallback callback);
 
     attribute EventHandler onshow;
     [Conditional=LEGACY_NOTIFICATIONS] attribute EventHandler ondisplay;
@@ -51,6 +51,5 @@
 
     [Conditional=LEGACY_NOTIFICATIONS] attribute DOMString dir;
     [Conditional=LEGACY_NOTIFICATIONS] attribute DOMString replaceId;
-    [Conditional=NOTIFICATIONS] attribute DOMString tag;
+    attribute DOMString tag;
 };
-
diff --git a/modules/notifications/NotificationPermissionCallback.idl b/modules/notifications/NotificationPermissionCallback.idl
index 9b0a72b..9235c3c 100644
--- a/modules/notifications/NotificationPermissionCallback.idl
+++ b/modules/notifications/NotificationPermissionCallback.idl
@@ -23,9 +23,6 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    Conditional=NOTIFICATIONS
-] callback interface NotificationPermissionCallback {
+callback interface NotificationPermissionCallback {
     boolean handleEvent(DOMString permission);
 };
-
diff --git a/modules/notifications/WindowNotifications.idl b/modules/notifications/WindowNotifications.idl
index 7f474e5..78a69d2 100644
--- a/modules/notifications/WindowNotifications.idl
+++ b/modules/notifications/WindowNotifications.idl
@@ -25,9 +25,8 @@
  */
 
 [
-    Conditional=NOTIFICATIONS|LEGACY_NOTIFICATIONS,
+    Conditional=LEGACY_NOTIFICATIONS,
     ImplementedAs=DOMWindowNotifications
 ] partial interface Window {
-    [EnabledAtRuntime=notifications, MeasureAs=LegacyNotifications, PerWorldBindings, ActivityLog=GetterForIsolatedWorlds, Conditional=LEGACY_NOTIFICATIONS] readonly attribute NotificationCenter webkitNotifications;
+    [EnabledAtRuntime=Notifications, MeasureAs=LegacyNotifications, PerWorldBindings, ActivityLog=GetterForIsolatedWorlds] readonly attribute NotificationCenter webkitNotifications;
 };
-
diff --git a/modules/notifications/WorkerGlobalScopeNotifications.idl b/modules/notifications/WorkerGlobalScopeNotifications.idl
index c643b0c..70a33dd 100644
--- a/modules/notifications/WorkerGlobalScopeNotifications.idl
+++ b/modules/notifications/WorkerGlobalScopeNotifications.idl
@@ -25,8 +25,7 @@
  */
 
 [
-    Conditional=NOTIFICATIONS|LEGACY_NOTIFICATIONS
+    Conditional=LEGACY_NOTIFICATIONS
 ] partial interface WorkerGlobalScope {
-    [EnabledAtRuntime=notifications, Conditional=LEGACY_NOTIFICATIONS] readonly attribute NotificationCenter webkitNotifications;
+    [EnabledAtRuntime=Notifications] readonly attribute NotificationCenter webkitNotifications;
 };
-
diff --git a/core/dom/PromiseResolver.idl b/modules/serviceworkers/NavigatorServiceWorker.idl
similarity index 83%
copy from core/dom/PromiseResolver.idl
copy to modules/serviceworkers/NavigatorServiceWorker.idl
index b671070..2747667 100644
--- a/core/dom/PromiseResolver.idl
+++ b/modules/serviceworkers/NavigatorServiceWorker.idl
@@ -27,12 +27,9 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
-
 [
-   GlobalContext=Window&WorkerGlobalScope,
-   EnabledAtRuntime=promise
-] interface PromiseResolver {
-   [Custom] void fulfill(optional any value);
-   [Custom] void resolve(optional any value);
-   [Custom] void reject(optional any value);
+    EnabledAtRuntime=ServiceWorker
+] partial interface Navigator {
+  [CallWith=ScriptExecutionContext, RaisesException] Promise registerServiceWorker(DOMString pattern, DOMString src);
+  [CallWith=ScriptExecutionContext, RaisesException] Promise unregisterServiceWorker(DOMString pattern);
 };
diff --git a/core/dom/PromiseResolver.idl b/modules/serviceworkers/ServiceWorker.idl
similarity index 86%
rename from core/dom/PromiseResolver.idl
rename to modules/serviceworkers/ServiceWorker.idl
index b671070..866d0ea 100644
--- a/core/dom/PromiseResolver.idl
+++ b/modules/serviceworkers/ServiceWorker.idl
@@ -27,12 +27,8 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
-
 [
-   GlobalContext=Window&WorkerGlobalScope,
-   EnabledAtRuntime=promise
-] interface PromiseResolver {
-   [Custom] void fulfill(optional any value);
-   [Custom] void resolve(optional any value);
-   [Custom] void reject(optional any value);
+    EnabledAtRuntime=ServiceWorker,
+    NoInterfaceObject
+] interface ServiceWorker {
 };
diff --git a/modules/speech/SpeechSynthesis.idl b/modules/speech/SpeechSynthesis.idl
index 8cc867f..4fa847a 100644
--- a/modules/speech/SpeechSynthesis.idl
+++ b/modules/speech/SpeechSynthesis.idl
@@ -25,7 +25,7 @@
 
 [
     NoInterfaceObject,
-    EnabledAtRuntime=speechSynthesis
+    EnabledAtRuntime=SpeechSynthesis
 ] interface SpeechSynthesis  {
     readonly attribute boolean pending;
     readonly attribute boolean speaking;
diff --git a/modules/speech/SpeechSynthesisEvent.idl b/modules/speech/SpeechSynthesisEvent.idl
index a36ef2b..39bb723 100644
--- a/modules/speech/SpeechSynthesisEvent.idl
+++ b/modules/speech/SpeechSynthesisEvent.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=speechSynthesis
+    EnabledAtRuntime=SpeechSynthesis
 ] interface SpeechSynthesisEvent : Event {
     readonly attribute unsigned long charIndex;
     readonly attribute float elapsedTime;
diff --git a/modules/speech/SpeechSynthesisUtterance.idl b/modules/speech/SpeechSynthesisUtterance.idl
index d9b02e6..d32d7a8 100644
--- a/modules/speech/SpeechSynthesisUtterance.idl
+++ b/modules/speech/SpeechSynthesisUtterance.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=speechSynthesis,
+    EnabledAtRuntime=SpeechSynthesis,
     ConstructorCallWith=ScriptExecutionContext,
     Constructor([Default=NullString] optional DOMString text)
 ] interface SpeechSynthesisUtterance : EventTarget {
diff --git a/modules/speech/SpeechSynthesisVoice.idl b/modules/speech/SpeechSynthesisVoice.idl
index 0a634e5..9ca4754 100644
--- a/modules/speech/SpeechSynthesisVoice.idl
+++ b/modules/speech/SpeechSynthesisVoice.idl
@@ -25,7 +25,7 @@
 
 [
     NoInterfaceObject,
-    EnabledAtRuntime=speechSynthesis
+    EnabledAtRuntime=SpeechSynthesis
 ] interface SpeechSynthesisVoice {
     readonly attribute DOMString voiceURI;
     readonly attribute DOMString name;
diff --git a/modules/speech/WindowSpeechSynthesis.idl b/modules/speech/WindowSpeechSynthesis.idl
index d9d5b5f..7dd441e 100644
--- a/modules/speech/WindowSpeechSynthesis.idl
+++ b/modules/speech/WindowSpeechSynthesis.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledAtRuntime=speechSynthesis,
+    EnabledAtRuntime=SpeechSynthesis,
     ImplementedAs=DOMWindowSpeechSynthesis
 ] partial interface Window {
     readonly attribute SpeechSynthesis speechSynthesis;
diff --git a/modules/webdatabase/WindowWebDatabase.idl b/modules/webdatabase/WindowWebDatabase.idl
index 842c79b..1459918 100644
--- a/modules/webdatabase/WindowWebDatabase.idl
+++ b/modules/webdatabase/WindowWebDatabase.idl
@@ -27,6 +27,6 @@
 [
     ImplementedAs=DOMWindowWebDatabase
 ] partial interface Window {
-    [EnabledAtRuntime=database, MeasureAs=OpenWebDatabase, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Database openDatabase(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback);
+    [EnabledAtRuntime=Database, MeasureAs=OpenWebDatabase, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Database openDatabase(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback);
 };
 
diff --git a/modules/webdatabase/WorkerGlobalScopeWebDatabase.idl b/modules/webdatabase/WorkerGlobalScopeWebDatabase.idl
index 852f1a1..9631dd7 100644
--- a/modules/webdatabase/WorkerGlobalScopeWebDatabase.idl
+++ b/modules/webdatabase/WorkerGlobalScopeWebDatabase.idl
@@ -25,8 +25,8 @@
  */
 
 partial interface WorkerGlobalScope {
-    [EnabledAtRuntime=database, RaisesException] Database openDatabase(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback);
+    [EnabledAtRuntime=Database, RaisesException] Database openDatabase(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback);
 
-    [EnabledAtRuntime=database, RaisesException] DatabaseSync openDatabaseSync(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback);
+    [EnabledAtRuntime=Database, RaisesException] DatabaseSync openDatabaseSync(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback);
 };
 
diff --git a/modules/webmidi/MIDIConnectionEvent.idl b/modules/webmidi/MIDIConnectionEvent.idl
index a9c745a..8731966 100644
--- a/modules/webmidi/MIDIConnectionEvent.idl
+++ b/modules/webmidi/MIDIConnectionEvent.idl
@@ -29,7 +29,7 @@
  */
 
 [
-    EnabledAtRuntime=webMIDI,
+    EnabledAtRuntime=WebMIDI,
     ConstructorTemplate=Event
 ] interface MIDIConnectionEvent : Event {
     [InitializedByEventConstructor] readonly attribute MIDIPort port;
diff --git a/modules/webmidi/MIDIInput.idl b/modules/webmidi/MIDIInput.idl
index 7b3e438..a4efa3f 100644
--- a/modules/webmidi/MIDIInput.idl
+++ b/modules/webmidi/MIDIInput.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    CustomToV8,
     NoInterfaceObject,
     ActiveDOMObject
 ] interface MIDIInput : MIDIPort {
diff --git a/modules/webmidi/MIDIMessageEvent.idl b/modules/webmidi/MIDIMessageEvent.idl
index fe64536..1734b42 100644
--- a/modules/webmidi/MIDIMessageEvent.idl
+++ b/modules/webmidi/MIDIMessageEvent.idl
@@ -31,7 +31,7 @@
 // FIXME: The spec doesn't provide details about constructor, yet.
 // See also, https://github.com/WebAudio/web-midi-api/issues/1 .
 [
-    EnabledAtRuntime=webMIDI,
+    EnabledAtRuntime=WebMIDI,
     ConstructorTemplate=Event
 ] interface MIDIMessageEvent : Event {
     [InitializedByEventConstructor] readonly attribute double receivedTime;
diff --git a/modules/webmidi/MIDIOutput.idl b/modules/webmidi/MIDIOutput.idl
index 86a4435..78dff22 100644
--- a/modules/webmidi/MIDIOutput.idl
+++ b/modules/webmidi/MIDIOutput.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    CustomToV8,
     NoInterfaceObject
 ] interface MIDIOutput : MIDIPort {
     [RaisesException] void send(Uint8Array data, optional double timestamp);
diff --git a/modules/webmidi/NavigatorWebMIDI.idl b/modules/webmidi/NavigatorWebMIDI.idl
index 9e8ced7..a1e4ed0 100644
--- a/modules/webmidi/NavigatorWebMIDI.idl
+++ b/modules/webmidi/NavigatorWebMIDI.idl
@@ -29,5 +29,5 @@
  */
 
 partial interface Navigator {
-    [EnabledAtRuntime=webMIDI] MIDIAccessPromise requestMIDIAccess(optional Dictionary options);
+    [EnabledAtRuntime=WebMIDI] MIDIAccessPromise requestMIDIAccess(optional Dictionary options);
 };