Roll IDL to multivm@1350

TBR=jacobr@google.com,blois@google.com

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

git-svn-id: http://dart.googlecode.com/svn/third_party/WebCore@26378 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/core/README b/core/README
index 57d4efd..e8fce55 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: 1329
+Current revision: 1350
diff --git a/core/css/FontLoader.idl b/core/css/FontLoader.idl
index 4e922c1..06ce8c0 100644
--- a/core/css/FontLoader.idl
+++ b/core/css/FontLoader.idl
@@ -35,11 +35,11 @@
     GenerateIsReachable=document
 ] interface FontLoader : EventTarget {
 
-    attribute EventListener onloading;
-    attribute EventListener onloadingdone;
-    attribute EventListener onloadstart;
-    attribute EventListener onload;
-    attribute EventListener onerror;
+    attribute EventHandler onloading;
+    attribute EventHandler onloadingdone;
+    attribute EventHandler onloadstart;
+    attribute EventHandler onload;
+    attribute EventHandler onerror;
 
     boolean checkFont(DOMString font, [Default=NullString] optional DOMString text);
     void loadFont(Dictionary params);
diff --git a/core/dom/Attr.idl b/core/dom/Attr.idl
index de9d951..97c7c46 100644
--- a/core/dom/Attr.idl
+++ b/core/dom/Attr.idl
@@ -26,7 +26,7 @@
 
     readonly attribute boolean specified;
 
-             [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, SetterRaisesException] attribute DOMString value;
+    [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, SetterRaisesException, CustomElementCallbacks=Enable] attribute DOMString value;
 
     // DOM Level 2
 
diff --git a/core/dom/CharacterData.idl b/core/dom/CharacterData.idl
index eb6bfe7..10972ba 100644
--- a/core/dom/CharacterData.idl
+++ b/core/dom/CharacterData.idl
@@ -23,19 +23,12 @@
 
     readonly attribute unsigned long length;
 
-    [TreatReturnedNullStringAs=Null, RaisesException] DOMString substringData([IsIndex,Default=Undefined] optional unsigned long offset, [IsIndex,Default=Undefined] optional unsigned long length);
+    [TreatReturnedNullStringAs=Null, RaisesException] DOMString substringData(unsigned long offset, unsigned long length);
 
-    void appendData([Default=Undefined] optional DOMString data);
-
-     [RaisesException] void insertData([IsIndex,Default=Undefined] optional unsigned long offset,
-                                   [Default=Undefined] optional DOMString data);
-
-     [RaisesException] void deleteData([IsIndex,Default=Undefined] optional unsigned long offset,
-                                   [IsIndex,Default=Undefined] optional unsigned long length);
-
-     [RaisesException] void replaceData([IsIndex,Default=Undefined] optional unsigned long offset,
-                                    [IsIndex,Default=Undefined] optional unsigned long length,
-                                    [Default=Undefined] optional DOMString data);
+    void appendData(DOMString data);
+    [RaisesException] void insertData(unsigned long offset, DOMString data);
+    [RaisesException] void deleteData(unsigned long offset, unsigned long length);
+    [RaisesException] void replaceData(unsigned long offset, unsigned long length, DOMString data);
 };
 
 CharacterData implements ChildNode;
diff --git a/core/dom/ChildNode.idl b/core/dom/ChildNode.idl
index d320e11..8a0be4d 100644
--- a/core/dom/ChildNode.idl
+++ b/core/dom/ChildNode.idl
@@ -26,6 +26,6 @@
 ] interface ChildNode {
     [PerWorldBindings] readonly attribute Element previousElementSibling;
     [PerWorldBindings] readonly attribute Element nextElementSibling;
-    [RaisesException, DeliverCustomElementCallbacks] void remove();
+    [RaisesException, CustomElementCallbacks=Enable] void remove();
 };
 
diff --git a/core/dom/ClientRectList.idl b/core/dom/ClientRectList.idl
index 7635d1e..7f6b198 100644
--- a/core/dom/ClientRectList.idl
+++ b/core/dom/ClientRectList.idl
@@ -27,7 +27,7 @@
 [
 ] interface ClientRectList {
     readonly attribute unsigned long length;
-    getter ClientRect item([IsIndex,Default=Undefined] optional unsigned long index);
+    getter ClientRect item(unsigned long index);
     // FIXME: Fix list behavior to allow custom exceptions to be thrown.
 };
 
diff --git a/core/dom/Comment.idl b/core/dom/Comment.idl
index d928c6e..0503d63 100644
--- a/core/dom/Comment.idl
+++ b/core/dom/Comment.idl
@@ -19,7 +19,7 @@
 
 [
     Constructor([Default=NullString] optional DOMString data),
-    ConstructorCallWith=ScriptExecutionContext
+    ConstructorCallWith=Document
 ] interface Comment : CharacterData {
 };
 
diff --git a/core/dom/DataTransferItem.idl b/core/dom/DataTransferItem.idl
index 4ce2992..7a3327f 100644
--- a/core/dom/DataTransferItem.idl
+++ b/core/dom/DataTransferItem.idl
@@ -34,7 +34,7 @@
     readonly attribute DOMString kind;
     readonly attribute DOMString type;
 
-    void getAsString([Default=Undefined] optional StringCallback callback);
+    void getAsString(StringCallback? callback);
     Blob getAsFile();
 };
 
diff --git a/core/dom/Document.idl b/core/dom/Document.idl
index 3e1af34..0fc91ba 100644
--- a/core/dom/Document.idl
+++ b/core/dom/Document.idl
@@ -29,7 +29,7 @@
     readonly attribute DOMImplementation implementation;
     readonly attribute Element documentElement;
 
-    [DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElement([TreatNullAs=NullString,Default=Undefined] optional DOMString tagName);
+    [CustomElementCallbacks=Enable, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElement([TreatNullAs=NullString,Default=Undefined] optional DOMString tagName);
     DocumentFragment   createDocumentFragment();
     [PerWorldBindings] Text createTextNode([Default=Undefined] optional DOMString data);
     Comment createComment([Default=Undefined] optional DOMString data);
@@ -41,9 +41,9 @@
 
     // Introduced in DOM Level 2:
 
-    [DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Node importNode([Default=Undefined] optional Node importedNode,
+    [CustomElementCallbacks=Enable, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Node importNode([Default=Undefined] optional Node importedNode,
                     optional boolean deep);
-    [DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElementNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
+    [CustomElementCallbacks=Enable, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElementNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                             [TreatNullAs=NullString,Default=Undefined] optional DOMString qualifiedName);
     [RaisesException] Attr createAttributeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                                                           [TreatNullAs=NullString,Default=Undefined] optional DOMString qualifiedName);
@@ -59,7 +59,7 @@
              [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, SetterRaisesException] attribute DOMString xmlVersion;
              [SetterRaisesException] attribute boolean xmlStandalone;
 
-    [RaisesException] Node               adoptNode([Default=Undefined] optional Node source);
+    [RaisesException, CustomElementCallbacks=Enable] Node               adoptNode([Default=Undefined] optional Node source);
 
     [TreatReturnedNullStringAs=Null] readonly attribute DOMString documentURI;
 
@@ -98,7 +98,7 @@
                                                         [Default=Undefined] optional DOMString pseudoElement);
 
     // Common extensions
-    [DeliverCustomElementCallbacks]
+    [CustomElementCallbacks=Enable]
     boolean            execCommand([Default=Undefined] optional DOMString command,
                                    [Default=Undefined] optional boolean userInterface,
                                    [TreatNullAs=NullString, TreatUndefinedAs=NullString,Default=Undefined] optional DOMString value);
@@ -111,14 +111,14 @@
 
     // Moved down from HTMLDocument
 
-             [TreatNullAs=NullString] attribute DOMString title;
+             [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString title;
     readonly attribute DOMString referrer;
              [TreatNullAs=NullString, SetterRaisesException] attribute DOMString domain;
     readonly attribute DOMString URL;
 
              [TreatNullAs=NullString, GetterRaisesException, SetterRaisesException] attribute DOMString cookie;
 
-             [SetterRaisesException] attribute HTMLElement body;
+             [SetterRaisesException, CustomElementCallbacks=Enable] attribute HTMLElement body;
 
     readonly attribute HTMLHeadElement head;
     readonly attribute HTMLCollection images;
@@ -171,82 +171,82 @@
     [EnabledAtRuntime=fontLoadEvents] readonly attribute FontLoader fontloader;
 
     // Event handler DOM attributes
-    [NotEnumerable] attribute EventListener onabort;
-    [NotEnumerable] attribute EventListener onblur;
-    [NotEnumerable] attribute EventListener onchange;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onclick;
-    [NotEnumerable] attribute EventListener oncontextmenu;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondblclick;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondrag;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragend;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragenter;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragleave;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragover;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragstart;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondrop;
-    [NotEnumerable] attribute EventListener onerror;
-    [NotEnumerable] attribute EventListener onfocus;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener oninput;
-    [NotEnumerable] attribute EventListener oninvalid;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onkeydown;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onkeypress;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onkeyup;
-    [NotEnumerable] attribute EventListener onload;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmousedown;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseenter;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseleave;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmousemove;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseout;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseover;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseup;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmousewheel;
-    [NotEnumerable] attribute EventListener onreadystatechange;
-    [NotEnumerable] attribute EventListener onscroll;
-    [NotEnumerable] attribute EventListener onselect;
-    [NotEnumerable] attribute EventListener onsubmit;
+    [NotEnumerable] attribute EventHandler onabort;
+    [NotEnumerable] attribute EventHandler onblur;
+    [NotEnumerable] attribute EventHandler onchange;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onclick;
+    [NotEnumerable] attribute EventHandler oncontextmenu;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondblclick;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondrag;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragend;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragenter;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragleave;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragover;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragstart;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondrop;
+    [NotEnumerable] attribute EventHandler onerror;
+    [NotEnumerable] attribute EventHandler onfocus;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler oninput;
+    [NotEnumerable] attribute EventHandler oninvalid;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onkeydown;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onkeypress;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onkeyup;
+    [NotEnumerable] attribute EventHandler onload;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousedown;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseenter;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseleave;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousemove;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseout;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseover;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseup;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousewheel;
+    [NotEnumerable] attribute EventHandler onreadystatechange;
+    [NotEnumerable] attribute EventHandler onscroll;
+    [NotEnumerable] attribute EventHandler onselect;
+    [NotEnumerable] attribute EventHandler onsubmit;
 
-    // attribute [NotEnumerable] EventListener oncanplay;
-    // attribute [NotEnumerable] EventListener oncanplaythrough;
-    // attribute [NotEnumerable] EventListener ondurationchange;
-    // attribute [NotEnumerable] EventListener onemptied;
-    // attribute [NotEnumerable] EventListener onended;
-    // attribute [NotEnumerable] EventListener onloadeddata;
-    // attribute [NotEnumerable] EventListener onloadedmetadata;
-    // attribute [NotEnumerable] EventListener onloadstart;
-    // attribute [NotEnumerable] EventListener onpause;
-    // attribute [NotEnumerable] EventListener onplay;
-    // attribute [NotEnumerable] EventListener onplaying;
-    // attribute [NotEnumerable] EventListener onprogress;
-    // attribute [NotEnumerable] EventListener onratechange;
-    // attribute [NotEnumerable] EventListener onseeked;
-    // attribute [NotEnumerable] EventListener onseeking;
-    // attribute [NotEnumerable] EventListener onshow;
-    // attribute [NotEnumerable] EventListener onstalled;
-    // attribute [NotEnumerable] EventListener onsuspend;
-    // attribute [NotEnumerable] EventListener ontimeupdate;
-    // attribute [NotEnumerable] EventListener onvolumechange;
-    // attribute [NotEnumerable] EventListener onwaiting;
+    // attribute [NotEnumerable] EventHandler oncanplay;
+    // attribute [NotEnumerable] EventHandler oncanplaythrough;
+    // attribute [NotEnumerable] EventHandler ondurationchange;
+    // attribute [NotEnumerable] EventHandler onemptied;
+    // attribute [NotEnumerable] EventHandler onended;
+    // attribute [NotEnumerable] EventHandler onloadeddata;
+    // attribute [NotEnumerable] EventHandler onloadedmetadata;
+    // attribute [NotEnumerable] EventHandler onloadstart;
+    // attribute [NotEnumerable] EventHandler onpause;
+    // attribute [NotEnumerable] EventHandler onplay;
+    // attribute [NotEnumerable] EventHandler onplaying;
+    // attribute [NotEnumerable] EventHandler onprogress;
+    // attribute [NotEnumerable] EventHandler onratechange;
+    // attribute [NotEnumerable] EventHandler onseeked;
+    // attribute [NotEnumerable] EventHandler onseeking;
+    // attribute [NotEnumerable] EventHandler onshow;
+    // attribute [NotEnumerable] EventHandler onstalled;
+    // attribute [NotEnumerable] EventHandler onsuspend;
+    // attribute [NotEnumerable] EventHandler ontimeupdate;
+    // attribute [NotEnumerable] EventHandler onvolumechange;
+    // attribute [NotEnumerable] EventHandler onwaiting;
 
     // WebKit extensions
-    [NotEnumerable] attribute EventListener onbeforecut;
-    [NotEnumerable] attribute EventListener oncut;
-    [NotEnumerable] attribute EventListener onbeforecopy;
-    [NotEnumerable] attribute EventListener oncopy;
-    [NotEnumerable] attribute EventListener onbeforepaste;
-    [NotEnumerable] attribute EventListener onpaste;
-    [NotEnumerable] attribute EventListener onreset;
-    [NotEnumerable] attribute EventListener onsearch;
-    [NotEnumerable] attribute EventListener onselectstart;
-    [NotEnumerable] attribute EventListener onselectionchange;
-    [NotEnumerable,EnabledAtRuntime=touch] attribute EventListener ontouchstart;
-    [NotEnumerable,EnabledAtRuntime=touch] attribute EventListener ontouchmove;
-    [NotEnumerable,EnabledAtRuntime=touch] attribute EventListener ontouchend;
-    [NotEnumerable,EnabledAtRuntime=touch] attribute EventListener ontouchcancel;
-    [NotEnumerable] attribute EventListener onwebkitfullscreenchange;
-    [NotEnumerable] attribute EventListener onwebkitfullscreenerror;
-    [NotEnumerable] attribute EventListener onwebkitpointerlockchange;
-    [NotEnumerable] attribute EventListener onwebkitpointerlockerror;
-    [NotEnumerable, EnabledAtRuntime=experimentalContentSecurityPolicyFeatures] attribute EventListener onsecuritypolicyviolation;
+    [NotEnumerable] attribute EventHandler onbeforecut;
+    [NotEnumerable] attribute EventHandler oncut;
+    [NotEnumerable] attribute EventHandler onbeforecopy;
+    [NotEnumerable] attribute EventHandler oncopy;
+    [NotEnumerable] attribute EventHandler onbeforepaste;
+    [NotEnumerable] attribute EventHandler onpaste;
+    [NotEnumerable] attribute EventHandler onreset;
+    [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] attribute EventHandler onwebkitfullscreenchange;
+    [NotEnumerable] attribute EventHandler onwebkitfullscreenerror;
+    [NotEnumerable] attribute EventHandler onwebkitpointerlockchange;
+    [NotEnumerable] attribute EventHandler onwebkitpointerlockerror;
+    [NotEnumerable, EnabledAtRuntime=experimentalContentSecurityPolicyFeatures] attribute EventHandler onsecuritypolicyviolation;
 
     [EnabledAtRuntime=touch] Touch createTouch([Default=Undefined] optional Window window,
                                                [Default=Undefined] optional EventTarget target,
@@ -261,10 +261,10 @@
                                                [Default=Undefined] optional float webkitForce);
     [EnabledAtRuntime=touch, Custom, RaisesException] TouchList createTouchList();
 
-    [DeprecateAs=PrefixedDocumentRegister, EnabledAtRuntime=customDOMElements, ImplementedAs=registerElement, CallWith=ScriptState, DeliverCustomElementCallbacks, RaisesException] CustomElementConstructor webkitRegister(DOMString name, optional Dictionary options);
-    [EnabledAtRuntime=customDOMElements, ImplementedAs=registerElement, CallWith=ScriptState, DeliverCustomElementCallbacks, RaisesException] CustomElementConstructor register(DOMString name, optional Dictionary options);
-    [DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElement(DOMString localName, [TreatNullAs=NullString] DOMString typeExtension);
-    [DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElementNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString qualifiedName,
+    [DeprecateAs=PrefixedDocumentRegister, EnabledAtRuntime=customDOMElements, ImplementedAs=registerElement, CallWith=ScriptState, CustomElementCallbacks=Enable, RaisesException] CustomElementConstructor webkitRegister(DOMString name, optional Dictionary options);
+    [EnabledAtRuntime=customDOMElements, 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);
 
     // Page visibility API.
diff --git a/core/dom/DocumentFragment.idl b/core/dom/DocumentFragment.idl
index 076c949..942f021 100644
--- a/core/dom/DocumentFragment.idl
+++ b/core/dom/DocumentFragment.idl
@@ -19,7 +19,7 @@
 
 [
     Constructor,
-    ConstructorCallWith=ScriptExecutionContext
+    ConstructorCallWith=Document
 ] interface DocumentFragment : Node {
     // NodeSelector - Selector API
     [RaisesException] Element querySelector(DOMString selectors);
diff --git a/core/dom/Element.idl b/core/dom/Element.idl
index 29954ca..0137af9 100644
--- a/core/dom/Element.idl
+++ b/core/dom/Element.idl
@@ -27,12 +27,12 @@
     [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString tagName;
 
     [TreatReturnedNullStringAs=Null] DOMString getAttribute([Default=Undefined] optional DOMString name);
-    [RaisesException, DeliverCustomElementCallbacks] void setAttribute([Default=Undefined] optional DOMString name,
+    [RaisesException, CustomElementCallbacks=Enable] void setAttribute([Default=Undefined] optional DOMString name,
                                      [Default=Undefined] optional DOMString value);
-    [DeliverCustomElementCallbacks] void removeAttribute([Default=Undefined] optional DOMString name);
+    [CustomElementCallbacks=Enable] void removeAttribute([Default=Undefined] optional DOMString name);
     Attr getAttributeNode([Default=Undefined] optional DOMString name);
-    [RaisesException, DeliverCustomElementCallbacks] Attr setAttributeNode([Default=Undefined, StrictTypeChecking] optional Attr newAttr);
-    [RaisesException, DeliverCustomElementCallbacks] Attr removeAttributeNode([Default=Undefined, StrictTypeChecking] optional Attr oldAttr);
+    [RaisesException, CustomElementCallbacks=Enable] Attr setAttributeNode([Default=Undefined, StrictTypeChecking] optional Attr newAttr);
+    [RaisesException, CustomElementCallbacks=Enable] Attr removeAttributeNode([Default=Undefined, StrictTypeChecking] optional Attr oldAttr);
     [PerWorldBindings] NodeList getElementsByTagName([Default=Undefined] optional DOMString name);
 
     // For ObjC this is defined on Node for legacy support.
@@ -43,22 +43,27 @@
 
      DOMString getAttributeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                             [Default=Undefined] optional DOMString localName);
-     [RaisesException, DeliverCustomElementCallbacks] void setAttributeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
+     [RaisesException, CustomElementCallbacks=Enable] void setAttributeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                        [Default=Undefined] optional DOMString qualifiedName,
                                        [Default=Undefined] optional DOMString value);
-     [DeliverCustomElementCallbacks] void removeAttributeNS([TreatNullAs=NullString] DOMString namespaceURI,
+     [CustomElementCallbacks=Enable] void removeAttributeNS([TreatNullAs=NullString] DOMString namespaceURI,
                                           DOMString localName);
      NodeList getElementsByTagNameNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                                    [Default=Undefined] optional DOMString localName);
      Attr getAttributeNodeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                            [Default=Undefined] optional DOMString localName);
-    [RaisesException] Attr setAttributeNodeNS([Default=Undefined, StrictTypeChecking] optional Attr newAttr);
+    [RaisesException, CustomElementCallbacks=Enable] Attr setAttributeNodeNS([Default=Undefined, StrictTypeChecking] optional Attr newAttr);
     boolean hasAttribute(DOMString name);
      boolean hasAttributeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                           [Default=Undefined] optional DOMString localName);
 
     [PerWorldBindings] readonly attribute CSSStyleDeclaration style;
 
+    // DOM4
+    // iht.com relies on id returning the empty string when no id is present.
+    // Other browsers do this as well. So we don't convert null to JS null.
+    [Reflect] attribute DOMString id;
+
     // Common extensions
 
     [PerWorldBindings] readonly attribute long offsetLeft;
@@ -104,6 +109,7 @@
     [EnabledAtRuntime=ShadowDOM, Reflect, PerWorldBindings] attribute DOMString pseudo;
     [EnabledAtRuntime=ShadowDOM, RaisesException] ShadowRoot createShadowRoot();
     [EnabledAtRuntime=ShadowDOM, PerWorldBindings] readonly attribute ShadowRoot shadowRoot;
+    [EnabledAtRuntime=ShadowDOM, PerWorldBindings] NodeList getDestinationInsertionPoints();
 
     // To-be-deprecated prefixed Shadow DOM API
     [Reflect=pseudo, ImplementedAs=pseudo, PerWorldBindings, MeasureAs=ShadowDOMPrefixedPseudo] attribute DOMString webkitPseudo;
@@ -128,80 +134,79 @@
     [EnabledAtRuntime=cssRegions] sequence<Range> webkitGetRegionFlowRanges();
 
     // Event handler DOM attributes
-    [NotEnumerable, PerWorldBindings] attribute EventListener onabort;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onblur;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onchange;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onclick;
-    [NotEnumerable, PerWorldBindings] attribute EventListener oncontextmenu;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondblclick;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondrag;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragend;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragenter;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragleave;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragover;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragstart;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondrop;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onerror;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onfocus;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener oninput;
-    [NotEnumerable, PerWorldBindings] attribute EventListener oninvalid;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onkeydown;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onkeypress;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onkeyup;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onload;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmousedown;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseenter;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseleave;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmousemove;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseout;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseover;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseup;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmousewheel;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onscroll;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onselect;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onsubmit;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler onabort;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler onblur;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler onchange;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onclick;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler oncontextmenu;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondblclick;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondrag;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragend;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragenter;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragleave;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragover;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragstart;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondrop;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler onerror;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler onfocus;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler oninput;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler oninvalid;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onkeydown;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onkeypress;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onkeyup;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler onload;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousedown;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseenter;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseleave;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousemove;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseout;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseover;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseup;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousewheel;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler onscroll;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler onselect;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler onsubmit;
 
-    // attribute [NotEnumerable] EventListener oncanplay;
-    // attribute [NotEnumerable] EventListener oncanplaythrough;
-    // attribute [NotEnumerable] EventListener ondurationchange;
-    // attribute [NotEnumerable] EventListener onemptied;
-    // attribute [NotEnumerable] EventListener onended;
-    // attribute [NotEnumerable] EventListener onloadeddata;
-    // attribute [NotEnumerable] EventListener onloadedmetadata;
-    // attribute [NotEnumerable] EventListener onloadstart;
-    // attribute [NotEnumerable] EventListener onpause;
-    // attribute [NotEnumerable] EventListener onplay;
-    // attribute [NotEnumerable] EventListener onplaying;
-    // attribute [NotEnumerable] EventListener onprogress;
-    // attribute [NotEnumerable] EventListener onratechange;
-    // attribute [NotEnumerable] EventListener onreadystatechange;
-    // attribute [NotEnumerable] EventListener onseeked;
-    // attribute [NotEnumerable] EventListener onseeking;
-    // attribute [NotEnumerable] EventListener onshow;
-    // attribute [NotEnumerable] EventListener onstalled;
-    // attribute [NotEnumerable] EventListener onsuspend;
-    // attribute [NotEnumerable] EventListener ontimeupdate;
-    // attribute [NotEnumerable] EventListener onvolumechange;
-    // attribute [NotEnumerable] EventListener onwaiting;
+    // attribute [NotEnumerable] EventHandler oncanplay;
+    // attribute [NotEnumerable] EventHandler oncanplaythrough;
+    // attribute [NotEnumerable] EventHandler ondurationchange;
+    // attribute [NotEnumerable] EventHandler onemptied;
+    // attribute [NotEnumerable] EventHandler onended;
+    // attribute [NotEnumerable] EventHandler onloadeddata;
+    // attribute [NotEnumerable] EventHandler onloadedmetadata;
+    // attribute [NotEnumerable] EventHandler onloadstart;
+    // attribute [NotEnumerable] EventHandler onpause;
+    // attribute [NotEnumerable] EventHandler onplay;
+    // attribute [NotEnumerable] EventHandler onplaying;
+    // attribute [NotEnumerable] EventHandler onprogress;
+    // attribute [NotEnumerable] EventHandler onratechange;
+    // attribute [NotEnumerable] EventHandler onreadystatechange;
+    // attribute [NotEnumerable] EventHandler onseeked;
+    // attribute [NotEnumerable] EventHandler onseeking;
+    // attribute [NotEnumerable] EventHandler onshow;
+    // attribute [NotEnumerable] EventHandler onstalled;
+    // attribute [NotEnumerable] EventHandler onsuspend;
+    // attribute [NotEnumerable] EventHandler ontimeupdate;
+    // attribute [NotEnumerable] EventHandler onvolumechange;
+    // attribute [NotEnumerable] EventHandler onwaiting;
 
     // WebKit extensions
-    [NotEnumerable, PerWorldBindings] attribute EventListener onbeforecut;
-    [NotEnumerable, PerWorldBindings] attribute EventListener oncut;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onbeforecopy;
-    [NotEnumerable, PerWorldBindings] attribute EventListener oncopy;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onbeforepaste;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onpaste;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onreset;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onsearch;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onselectstart;
-    [NotEnumerable, EnabledAtRuntime=touch, PerWorldBindings] attribute EventListener ontouchstart;
-    [NotEnumerable, EnabledAtRuntime=touch, PerWorldBindings] attribute EventListener ontouchmove;
-    [NotEnumerable, EnabledAtRuntime=touch, PerWorldBindings] attribute EventListener ontouchend;
-    [NotEnumerable, EnabledAtRuntime=touch, PerWorldBindings] attribute EventListener ontouchcancel;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onwebkitfullscreenchange;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onwebkitfullscreenerror;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler onbeforecut;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler oncut;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler onbeforecopy;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler oncopy;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler onbeforepaste;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler onpaste;
+    [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, PerWorldBindings] attribute EventHandler onwebkitfullscreenchange;
+    [NotEnumerable, PerWorldBindings] attribute EventHandler onwebkitfullscreenerror;
 };
 
 Element implements ParentNode;
 Element implements ChildNode;
-
diff --git a/core/dom/ErrorEvent.idl b/core/dom/ErrorEvent.idl
index 21195e9..33f0239 100644
--- a/core/dom/ErrorEvent.idl
+++ b/core/dom/ErrorEvent.idl
@@ -34,9 +34,7 @@
     [InitializedByEventConstructor] readonly attribute DOMString message;
     [InitializedByEventConstructor] readonly attribute DOMString filename;
     [InitializedByEventConstructor] readonly attribute unsigned long lineno;
-
-    // FIXME: Part of the specification but not exposed yet.
-    // No other browser seems to support it (except IE10 as 'colno').
-    // [InitializedByEventConstructor] readonly attribute unsigned long column;
+    [InitializedByEventConstructor] readonly attribute unsigned long colno;
+    [InitializedByEventConstructor, Custom, Unserializable] readonly attribute any error;
 };
 
diff --git a/core/dom/EventListener.idl b/core/dom/EventListener.idl
index 9d17453..fc4b8bc 100644
--- a/core/dom/EventListener.idl
+++ b/core/dom/EventListener.idl
@@ -18,8 +18,7 @@
  * Boston, MA 02110-1301, USA.
  */
 
-[
-] interface EventListener {
-    void               handleEvent(Event evt);
+callback interface EventListener {
+    void handleEvent(Event event);
 };
 
diff --git a/core/dom/KeyboardEvent.idl b/core/dom/KeyboardEvent.idl
index cda219f..81b2c17 100644
--- a/core/dom/KeyboardEvent.idl
+++ b/core/dom/KeyboardEvent.idl
@@ -21,22 +21,33 @@
 [
     ConstructorTemplate=Event
 ] interface KeyboardEvent : UIEvent {
+    const unsigned long DOM_KEY_LOCATION_STANDARD = 0x00;
+    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    keyLocation;
+    [InitializedByEventConstructor] readonly attribute unsigned long    location;
+    [ImplementedAs=location, DeprecateAs=KeyboardEventKeyLocation, InitializedByEventConstructor] readonly attribute unsigned long keyLocation; // Deprecated.
     [InitializedByEventConstructor] readonly attribute boolean          ctrlKey;
     [InitializedByEventConstructor] readonly attribute boolean          shiftKey;
     [InitializedByEventConstructor] readonly attribute boolean          altKey;
     [InitializedByEventConstructor] readonly attribute boolean          metaKey;
     readonly attribute boolean          altGraphKey;
 
+    boolean getModifierState(DOMString keyArgument);
+
     // FIXME: this does not match the version in the DOM spec.
     void initKeyboardEvent([Default=Undefined] optional DOMString type,
                            [Default=Undefined] optional boolean canBubble,
                            [Default=Undefined] optional boolean cancelable,
                            [Default=Undefined] optional Window view,
                            [Default=Undefined] optional DOMString keyIdentifier,
-                           [Default=Undefined] optional unsigned long keyLocation,
+                           [Default=Undefined] optional unsigned long location,
                            [Default=Undefined] optional boolean ctrlKey,
                            [Default=Undefined] optional boolean altKey,
                            [Default=Undefined] optional boolean shiftKey,
diff --git a/core/dom/MessagePort.idl b/core/dom/MessagePort.idl
index aa6ddb3..4324172 100644
--- a/core/dom/MessagePort.idl
+++ b/core/dom/MessagePort.idl
@@ -36,6 +36,6 @@
     void close();
 
     // event handler attributes
-    attribute EventListener onmessage;
+    attribute EventHandler onmessage;
 };
 
diff --git a/core/dom/NamedNodeMap.idl b/core/dom/NamedNodeMap.idl
index 698a035..6169b7a 100644
--- a/core/dom/NamedNodeMap.idl
+++ b/core/dom/NamedNodeMap.idl
@@ -25,9 +25,9 @@
     Node getNamedItem([Default=Undefined] optional DOMString name);
     [NotEnumerable, ImplementedAs=getNamedItem] getter Node ([Default=Undefined] optional DOMString name);
 
-    [RaisesException, DeliverCustomElementCallbacks] Node setNamedItem([Default=Undefined] optional Node node);
+    [RaisesException, CustomElementCallbacks=Enable] Node setNamedItem([Default=Undefined] optional Node node);
 
-    [RaisesException, DeliverCustomElementCallbacks] Node removeNamedItem([Default=Undefined] optional DOMString name);
+    [RaisesException, CustomElementCallbacks=Enable] Node removeNamedItem([Default=Undefined] optional DOMString name);
 
     getter Node item([Default=Undefined] optional unsigned long index);
 
@@ -40,9 +40,9 @@
     /*[RaisesException]*/ Node getNamedItemNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                               [Default=Undefined] optional DOMString localName);
 
-    [RaisesException, DeliverCustomElementCallbacks] Node setNamedItemNS([Default=Undefined] optional Node node);
+    [RaisesException, CustomElementCallbacks=Enable] Node setNamedItemNS([Default=Undefined] optional Node node);
 
-    [RaisesException, DeliverCustomElementCallbacks] Node removeNamedItemNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
+    [RaisesException, CustomElementCallbacks=Enable] Node removeNamedItemNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                           [Default=Undefined] optional DOMString localName);
 
 };
diff --git a/core/dom/Node.idl b/core/dom/Node.idl
index b14d4f7..0c7c5a1 100644
--- a/core/dom/Node.idl
+++ b/core/dom/Node.idl
@@ -39,7 +39,7 @@
     [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString        nodeName;
 
              // FIXME: the spec says this can also raise on retrieval.
-             [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings] attribute DOMString        nodeValue;
+    [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, CustomElementCallbacks=Enable] attribute DOMString nodeValue;
 
     [PerWorldBindings] readonly attribute unsigned short   nodeType;
     [PerWorldBindings] readonly attribute Node             parentNode;
@@ -56,9 +56,9 @@
     [Custom, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Node appendChild(Node newChild);
 
     boolean            hasChildNodes();
-    [DeliverCustomElementCallbacks, PerWorldBindings]
+    [CustomElementCallbacks=Enable, PerWorldBindings]
     Node               cloneNode(optional boolean deep);
-    void               normalize();
+    [CustomElementCallbacks=Enable] void normalize();
 
     // Introduced in DOM Level 2:
      boolean isSupported([Default=Undefined] optional DOMString feature,
@@ -72,7 +72,7 @@
     [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString       baseURI;
 
              // FIXME: the spec says this can also raise on retrieval.
-             [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, SetterRaisesException, DeliverCustomElementCallbacks] attribute DOMString       textContent;
+             [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, SetterRaisesException, CustomElementCallbacks=Enable] attribute DOMString       textContent;
 
     boolean            isSameNode([Default=Undefined] optional Node other);
     boolean            isEqualNode([Default=Undefined] optional Node other);
@@ -91,7 +91,7 @@
     unsigned short     compareDocumentPosition([Default=Undefined] optional Node other);
 
     // Introduced in DOM4
-    boolean contains([Default=Undefined] optional Node other);
+    [ImplementedAs=bindingsContains] boolean contains([Default=Undefined] optional Node other);
 
     // IE extensions
     [PerWorldBindings] readonly attribute Element          parentElement;
diff --git a/core/dom/NodeIterator.idl b/core/dom/NodeIterator.idl
index d25c305..5e52661 100644
--- a/core/dom/NodeIterator.idl
+++ b/core/dom/NodeIterator.idl
@@ -19,7 +19,9 @@
  */
 
 // Introduced in DOM Level 2:
-interface NodeIterator {
+[
+    CustomToV8
+] interface NodeIterator {
     readonly attribute Node root;
     readonly attribute unsigned long whatToShow;
     readonly attribute NodeFilter filter;
diff --git a/core/dom/NodeList.idl b/core/dom/NodeList.idl
index 37634f7..794ba11 100644
--- a/core/dom/NodeList.idl
+++ b/core/dom/NodeList.idl
@@ -23,7 +23,7 @@
     DependentLifetime
 ] interface NodeList {
 
-    getter Node item([IsIndex,Default=Undefined] optional unsigned long index);
+    getter Node item(unsigned long index);
     [ImplementedAs=anonymousNamedGetter, OverrideBuiltins, NotEnumerable] getter (Node or unsigned long) (DOMString name);
 
     readonly attribute unsigned long length;
diff --git a/core/dom/Promise.idl b/core/dom/Promise.idl
index fe9edf0..2550866 100644
--- a/core/dom/Promise.idl
+++ b/core/dom/Promise.idl
@@ -31,6 +31,7 @@
 callback PromiseInit = void (PromiseResolver resolver);
 callback AnyCallback = any (optional any value);
 [
+   GlobalContext=Window&WorkerGlobalScope,
    CustomConstructor(PromiseInit init),
    EnabledAtRuntime=promise
 ] interface Promise {
diff --git a/core/dom/PromiseResolver.idl b/core/dom/PromiseResolver.idl
index f2c80b4..b671070 100644
--- a/core/dom/PromiseResolver.idl
+++ b/core/dom/PromiseResolver.idl
@@ -29,6 +29,7 @@
  */
 
 [
+   GlobalContext=Window&WorkerGlobalScope,
    EnabledAtRuntime=promise
 ] interface PromiseResolver {
    [Custom] void fulfill(optional any value);
diff --git a/core/dom/Range.idl b/core/dom/Range.idl
index b34558f..32edd56 100644
--- a/core/dom/Range.idl
+++ b/core/dom/Range.idl
@@ -21,7 +21,7 @@
 // Introduced in DOM Level 2:
 [
     Constructor,
-    ConstructorCallWith=ScriptExecutionContext
+    ConstructorCallWith=Document
 ] interface Range {
 
     [GetterRaisesException] readonly attribute Node startContainer;
@@ -52,11 +52,11 @@
      [RaisesException] short compareBoundaryPoints([Default=Undefined] optional CompareHow how,
                                                [Default=Undefined] optional Range sourceRange);
 
-    [RaisesException] void deleteContents();
-    [RaisesException] DocumentFragment extractContents();
-    [RaisesException] DocumentFragment cloneContents();
-    [RaisesException] void insertNode([Default=Undefined] optional Node newNode);
-    [RaisesException] void surroundContents([Default=Undefined] optional Node newParent);
+    [RaisesException, CustomElementCallbacks=Enable] void deleteContents();
+    [RaisesException, CustomElementCallbacks=Enable] DocumentFragment extractContents();
+    [RaisesException, CustomElementCallbacks=Enable] DocumentFragment cloneContents();
+    [RaisesException, CustomElementCallbacks=Enable] void insertNode([Default=Undefined] optional Node newNode);
+    [RaisesException, CustomElementCallbacks=Enable] void surroundContents([Default=Undefined] optional Node newParent);
     [RaisesException] Range cloneRange();
     [RaisesException] DOMString toString();
 
@@ -69,7 +69,7 @@
 
     // extensions
 
-    [RaisesException] DocumentFragment createContextualFragment([Default=Undefined] optional DOMString html);
+    [RaisesException, CustomElementCallbacks=Enable] DocumentFragment createContextualFragment([Default=Undefined] optional DOMString html);
 
     // WebKit extensions
 
diff --git a/core/dom/Text.idl b/core/dom/Text.idl
index a770f78..af7360a 100644
--- a/core/dom/Text.idl
+++ b/core/dom/Text.idl
@@ -18,15 +18,17 @@
  */
 [
     Constructor([Default=NullString] optional DOMString data),
-    ConstructorCallWith=ScriptExecutionContext,
+    ConstructorCallWith=Document,
     CustomToV8
 ] interface Text : CharacterData {
 
     // DOM Level 1
-
-    [RaisesException] Text splitText([IsIndex,Default=Undefined] optional unsigned long offset);
+    [RaisesException] Text splitText(unsigned long offset);
 
     // Introduced in DOM Level 3:
     readonly attribute DOMString       wholeText;
-    Text                               replaceWholeText([Default=Undefined] optional DOMString content);
+    [MeasureAs=TextReplaceWholeText] Text replaceWholeText(DOMString content); // Removed from DOM4.
+
+    // Shadow DOM API
+    [EnabledAtRuntime=ShadowDOM, PerWorldBindings] NodeList getDestinationInsertionPoints();
 };
diff --git a/core/dom/TreeWalker.idl b/core/dom/TreeWalker.idl
index bfb435b..dd545b8 100644
--- a/core/dom/TreeWalker.idl
+++ b/core/dom/TreeWalker.idl
@@ -19,7 +19,9 @@
  */
 
 // Introduced in DOM Level 2:
-interface TreeWalker {
+[
+    CustomToV8
+] interface TreeWalker {
     readonly attribute Node root;
     readonly attribute unsigned long whatToShow;
     readonly attribute NodeFilter filter;
diff --git a/core/dom/shadow/ShadowRoot.idl b/core/dom/shadow/ShadowRoot.idl
index b659c7c..105c008 100644
--- a/core/dom/shadow/ShadowRoot.idl
+++ b/core/dom/shadow/ShadowRoot.idl
@@ -32,7 +32,7 @@
     attribute boolean resetStyleInheritance;
     [EnabledAtRuntime=ShadowDOM, ImplementedAs=bindingsOlderShadowRoot] readonly attribute ShadowRoot olderShadowRoot;
 
-    [TreatNullAs=NullString, DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds, SetterRaisesException] attribute DOMString innerHTML;
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds, SetterRaisesException] attribute DOMString innerHTML;
 
     [RaisesException] Node cloneNode([Default=Undefined] optional boolean deep);
     Selection getSelection();
diff --git a/core/fileapi/FileReader.idl b/core/fileapi/FileReader.idl
index 2727d12..d43e34e 100644
--- a/core/fileapi/FileReader.idl
+++ b/core/fileapi/FileReader.idl
@@ -54,10 +54,10 @@
 
     readonly attribute FileError error;
 
-    attribute EventListener onloadstart;
-    attribute EventListener onprogress;
-    attribute EventListener onload;
-    attribute EventListener onabort;
-    attribute EventListener onerror;
-    attribute EventListener onloadend;
+    attribute EventHandler onloadstart;
+    attribute EventHandler onprogress;
+    attribute EventHandler onload;
+    attribute EventHandler onabort;
+    attribute EventHandler onerror;
+    attribute EventHandler onloadend;
 };
diff --git a/core/html/DOMTokenList.idl b/core/html/DOMTokenList.idl
index c885018..3f16677 100644
--- a/core/html/DOMTokenList.idl
+++ b/core/html/DOMTokenList.idl
@@ -28,9 +28,9 @@
     readonly attribute unsigned long length;
     [TreatReturnedNullStringAs=Null] getter DOMString item(unsigned long index);
     [RaisesException] boolean contains(DOMString token);
-    [RaisesException, DeliverCustomElementCallbacks] void add(DOMString... tokens);
-    [RaisesException, DeliverCustomElementCallbacks] void remove(DOMString... tokens);
-    [RaisesException, DeliverCustomElementCallbacks] boolean toggle(DOMString token, optional boolean force);
+    [RaisesException, CustomElementCallbacks=Enable] void add(DOMString... tokens);
+    [RaisesException, CustomElementCallbacks=Enable] void remove(DOMString... tokens);
+    [RaisesException, CustomElementCallbacks=Enable] boolean toggle(DOMString token, optional boolean force);
     [NotEnumerable] DOMString toString();
 };
 
diff --git a/core/html/HTMLBodyElement.idl b/core/html/HTMLBodyElement.idl
index f65097a..dfbd907 100644
--- a/core/html/HTMLBodyElement.idl
+++ b/core/html/HTMLBodyElement.idl
@@ -27,28 +27,28 @@
     [Reflect] attribute DOMString vLink;
 
     // Event handler attributes
-    [NotEnumerable] attribute EventListener onbeforeunload;
-    [NotEnumerable] attribute EventListener onhashchange;
-    [NotEnumerable] attribute EventListener onmessage;
-    [NotEnumerable] attribute EventListener onoffline;
-    [NotEnumerable] attribute EventListener ononline;
-    [NotEnumerable] attribute EventListener onpopstate;
-    [NotEnumerable] attribute EventListener onresize;
-    [NotEnumerable] attribute EventListener onstorage;
-    [NotEnumerable] attribute EventListener onunload;
+    [NotEnumerable] attribute EventHandler onbeforeunload;
+    [NotEnumerable] attribute EventHandler onhashchange;
+    [NotEnumerable] attribute EventHandler onmessage;
+    [NotEnumerable] attribute EventHandler onoffline;
+    [NotEnumerable] attribute EventHandler ononline;
+    [NotEnumerable] attribute EventHandler onpopstate;
+    [NotEnumerable] attribute EventHandler onresize;
+    [NotEnumerable] attribute EventHandler onstorage;
+    [NotEnumerable] attribute EventHandler onunload;
 
-    [Conditional=ORIENTATION_EVENTS, NotEnumerable] attribute EventListener onorientationchange;
+    [Conditional=ORIENTATION_EVENTS, NotEnumerable] attribute EventHandler onorientationchange;
 
     // Overrides of Element attributes (with different implementation in bindings).
-    [NotEnumerable] attribute EventListener onblur;
-    [NotEnumerable] attribute EventListener onerror;
-    [NotEnumerable] attribute EventListener onfocus;
-    [NotEnumerable] attribute EventListener onload;
+    [NotEnumerable] attribute EventHandler onblur;
+    [NotEnumerable] attribute EventHandler onerror;
+    [NotEnumerable] attribute EventHandler onfocus;
+    [NotEnumerable] attribute EventHandler onload;
 
     // Not implemented yet.
-    // attribute [NotEnumerable] EventListener onafterprint;
-    // attribute [NotEnumerable] EventListener onbeforeprint;
-    // attribute [NotEnumerable] EventListener onredo;
-    // attribute [NotEnumerable] EventListener onundo;
+    // attribute [NotEnumerable] EventHandler onafterprint;
+    // attribute [NotEnumerable] EventHandler onbeforeprint;
+    // attribute [NotEnumerable] EventHandler onredo;
+    // attribute [NotEnumerable] EventHandler onundo;
 };
 
diff --git a/core/html/HTMLDocument.idl b/core/html/HTMLDocument.idl
index 860900f..e44baee 100644
--- a/core/html/HTMLDocument.idl
+++ b/core/html/HTMLDocument.idl
@@ -21,10 +21,10 @@
 [
     CustomToV8
 ] interface HTMLDocument : Document {
-    [Custom] void open();
+    [Custom, CustomElementCallbacks=Enable] void open();
     void close();
-    [Custom, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds] void write([Default=Undefined] optional DOMString text);
-    [Custom, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds] void writeln([Default=Undefined] optional DOMString text);
+    [Custom, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, CustomElementCallbacks=Enable] void write([Default=Undefined] optional DOMString text);
+    [Custom, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, CustomElementCallbacks=Enable] void writeln([Default=Undefined] optional DOMString text);
 
     readonly attribute HTMLCollection embeds;
     readonly attribute HTMLCollection plugins;
@@ -36,18 +36,21 @@
 
     [DeprecateAs=DocumentClear] void clear();
 
-    [TreatNullAs=NullString] attribute DOMString dir;
-    [TreatNullAs=NullString] attribute DOMString designMode;
+    [DeprecateAs=CaptureEvents] void captureEvents();
+    [DeprecateAs=ReleaseEvents] void releaseEvents();
+
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString dir;
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString designMode;
     readonly attribute DOMString compatMode;
 
     readonly attribute Element activeElement;
     boolean hasFocus();
 
     // Deprecated attributes
-             [TreatNullAs=NullString] attribute DOMString bgColor;
-             [TreatNullAs=NullString] attribute DOMString fgColor;
-             [TreatNullAs=NullString] attribute DOMString alinkColor;
-             [TreatNullAs=NullString] attribute DOMString linkColor;
-             [TreatNullAs=NullString] attribute DOMString vlinkColor;
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString bgColor;
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString fgColor;
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString alinkColor;
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString linkColor;
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString vlinkColor;
 };
 
diff --git a/core/html/HTMLElement.idl b/core/html/HTMLElement.idl
index 1156124..d728075 100644
--- a/core/html/HTMLElement.idl
+++ b/core/html/HTMLElement.idl
@@ -21,36 +21,33 @@
 [
     CustomToV8
 ] interface HTMLElement : Element {
-             // iht.com relies on id returning the empty string when no id is present.
-             // Other browsers do this as well. So we don't convert null to JS null.
-             [Reflect] attribute DOMString id;
              [Reflect] attribute DOMString title;
              [Reflect] attribute DOMString lang;
              attribute boolean             translate;
              [Reflect] attribute DOMString dir;
 
-             attribute long              tabIndex;
-             attribute boolean           draggable;
+             [CustomElementCallbacks=Enable] attribute long              tabIndex;
+             [CustomElementCallbacks=Enable] attribute boolean           draggable;
              [Reflect] attribute DOMString webkitdropzone;
              [Reflect] attribute boolean hidden;
              [Reflect] attribute DOMString accessKey;
 
     // Extensions
-             [TreatNullAs=NullString, DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds, SetterRaisesException] attribute DOMString innerHTML;
-             [TreatNullAs=NullString, SetterRaisesException] attribute DOMString innerText;
-             [TreatNullAs=NullString, DeliverCustomElementCallbacks, SetterRaisesException] attribute DOMString outerHTML;
-             [TreatNullAs=NullString, SetterRaisesException] attribute DOMString outerText;
+             [TreatNullAs=NullString, CustomElementCallbacks=Enable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds, SetterRaisesException] attribute DOMString innerHTML;
+             [TreatNullAs=NullString, CustomElementCallbacks=Enable, SetterRaisesException] attribute DOMString innerText;
+             [TreatNullAs=NullString, CustomElementCallbacks=Enable, SetterRaisesException] attribute DOMString outerHTML;
+             [TreatNullAs=NullString, CustomElementCallbacks=Enable, SetterRaisesException] attribute DOMString outerText;
 
-    [RaisesException] Element insertAdjacentElement([Default=Undefined] optional DOMString where,
+    [RaisesException, CustomElementCallbacks=Enable] Element insertAdjacentElement([Default=Undefined] optional DOMString where,
                                   [Default=Undefined] optional Element element);
-    [DeliverCustomElementCallbacks, RaisesException] void insertAdjacentHTML([Default=Undefined] optional DOMString where,
+    [CustomElementCallbacks=Enable, RaisesException] void insertAdjacentHTML([Default=Undefined] optional DOMString where,
                             [Default=Undefined] optional DOMString html);
     [RaisesException] void insertAdjacentText([Default=Undefined] optional DOMString where,
                             [Default=Undefined] optional DOMString text);
 
-    [EnabledAtRuntime=imeAPI] InputMethodContext getInputContext();
+    [EnabledAtRuntime=imeAPI] readonly attribute InputMethodContext inputMethodContext;
 
-             [TreatNullAs=NullString, SetterRaisesException] attribute DOMString contentEditable;
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable, SetterRaisesException] attribute DOMString contentEditable;
     readonly attribute boolean isContentEditable;
 
              attribute boolean spellcheck;
diff --git a/core/html/HTMLFormElement.idl b/core/html/HTMLFormElement.idl
index cd2b3c7..11c8bf5 100644
--- a/core/html/HTMLFormElement.idl
+++ b/core/html/HTMLFormElement.idl
@@ -22,9 +22,9 @@
     [Reflect=accept_charset] attribute DOMString acceptCharset;
     [Reflect, URL] attribute DOMString action;
     [Reflect] attribute DOMString autocomplete;
-    [TreatNullAs=NullString] attribute DOMString enctype;
-    [TreatNullAs=NullString] attribute DOMString encoding;
-    [TreatNullAs=NullString] attribute DOMString method;
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString enctype;
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString encoding;
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString method;
     [Reflect] attribute DOMString name;
     [Reflect] attribute boolean noValidate;
     [Reflect] attribute DOMString target;
@@ -35,10 +35,10 @@
     [ImplementedAs=anonymousNamedGetter, OverrideBuiltins, NotEnumerable] getter (NodeList or Node)(DOMString name);
 
     [ImplementedAs=submitFromJavaScript] void submit();
-    void reset();
+    [CustomElementCallbacks=Enable] void reset();
     boolean checkValidity();
 
     [EnabledAtRuntime=requestAutocomplete] void requestAutocomplete();
-    [EnabledAtRuntime=requestAutocomplete,NotEnumerable] attribute EventListener onautocomplete;
-    [EnabledAtRuntime=requestAutocomplete,NotEnumerable] attribute EventListener onautocompleteerror;
+    [EnabledAtRuntime=requestAutocomplete,NotEnumerable] attribute EventHandler onautocomplete;
+    [EnabledAtRuntime=requestAutocomplete,NotEnumerable] attribute EventHandler onautocompleteerror;
 };
diff --git a/core/html/HTMLFrameSetElement.idl b/core/html/HTMLFrameSetElement.idl
index 09c262c..0a35684 100644
--- a/core/html/HTMLFrameSetElement.idl
+++ b/core/html/HTMLFrameSetElement.idl
@@ -24,28 +24,28 @@
     [Reflect] attribute DOMString rows;
 
     // Event handler attributes
-    [NotEnumerable] attribute EventListener onbeforeunload;
-    [NotEnumerable] attribute EventListener onhashchange;
-    [NotEnumerable] attribute EventListener onmessage;
-    [NotEnumerable] attribute EventListener onoffline;
-    [NotEnumerable] attribute EventListener ononline;
-    [NotEnumerable] attribute EventListener onpopstate;
-    [NotEnumerable] attribute EventListener onresize;
-    [NotEnumerable] attribute EventListener onstorage;
-    [NotEnumerable] attribute EventListener onunload;
+    [NotEnumerable] attribute EventHandler onbeforeunload;
+    [NotEnumerable] attribute EventHandler onhashchange;
+    [NotEnumerable] attribute EventHandler onmessage;
+    [NotEnumerable] attribute EventHandler onoffline;
+    [NotEnumerable] attribute EventHandler ononline;
+    [NotEnumerable] attribute EventHandler onpopstate;
+    [NotEnumerable] attribute EventHandler onresize;
+    [NotEnumerable] attribute EventHandler onstorage;
+    [NotEnumerable] attribute EventHandler onunload;
 
-    [Conditional=ORIENTATION_EVENTS, NotEnumerable] attribute EventListener onorientationchange;
+    [Conditional=ORIENTATION_EVENTS, NotEnumerable] attribute EventHandler onorientationchange;
 
     // Overrides of Element attributes (with different implementation in bindings).
-    [NotEnumerable] attribute EventListener onblur;
-    [NotEnumerable] attribute EventListener onerror;
-    [NotEnumerable] attribute EventListener onfocus;
-    [NotEnumerable] attribute EventListener onload;
+    [NotEnumerable] attribute EventHandler onblur;
+    [NotEnumerable] attribute EventHandler onerror;
+    [NotEnumerable] attribute EventHandler onfocus;
+    [NotEnumerable] attribute EventHandler onload;
 
     // Not implemented yet.
-    // attribute [NotEnumerable] EventListener onafterprint;
-    // attribute [NotEnumerable] EventListener onbeforeprint;
-    // attribute [NotEnumerable] EventListener onredo;
-    // attribute [NotEnumerable] EventListener onundo;
+    // attribute [NotEnumerable] EventHandler onafterprint;
+    // attribute [NotEnumerable] EventHandler onbeforeprint;
+    // attribute [NotEnumerable] EventHandler onredo;
+    // attribute [NotEnumerable] EventHandler onundo;
 };
 
diff --git a/core/html/HTMLInputElement.idl b/core/html/HTMLInputElement.idl
index 2911901..fd17406 100644
--- a/core/html/HTMLInputElement.idl
+++ b/core/html/HTMLInputElement.idl
@@ -34,15 +34,15 @@
     // https://www.w3.org/Bugs/Public/show_bug.cgi?id=22682
     attribute FileList files;
     [Reflect, URL] attribute DOMString formAction;
-    [TreatNullAs=NullString] attribute DOMString formEnctype;
-    [TreatNullAs=NullString] attribute DOMString formMethod;
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString formEnctype;
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString formMethod;
     [Reflect] attribute boolean formNoValidate;
     [Reflect] attribute DOMString formTarget;
-    attribute unsigned long height;
+    [CustomElementCallbacks=Enable] attribute unsigned long height;
     attribute boolean indeterminate;
     [EnabledAtRuntime=DataListElement] readonly attribute HTMLElement list;
     [Reflect] attribute DOMString max;
-    [SetterRaisesException] attribute long maxLength;
+    [SetterRaisesException, CustomElementCallbacks=Enable] attribute long maxLength;
     [Reflect] attribute DOMString min;
     [Reflect] attribute boolean multiple;
     [Reflect] attribute DOMString name;
@@ -50,21 +50,21 @@
     [Reflect] attribute DOMString placeholder;
     [Reflect] attribute boolean readOnly;
     [Reflect] attribute boolean required;
-    [SetterRaisesException] attribute unsigned long size; // Changed string -> long -> unsigned long
+    [SetterRaisesException, CustomElementCallbacks=Enable] attribute unsigned long size; // Changed string -> long -> unsigned long
     [Reflect, URL] attribute DOMString src;
     [Reflect] attribute DOMString step;
-    [TreatNullAs=NullString] attribute DOMString type; // readonly dropped as part of DOM level 2
-    [TreatNullAs=NullString] attribute DOMString defaultValue;
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString type; // readonly dropped as part of DOM level 2
+    [TreatNullAs=NullString, CustomElementCallbacks=Enable] attribute DOMString defaultValue;
     // See the discussion in https://bugs.webkit.org/show_bug.cgi?id=100085
-    [TreatNullAs=NullString, SetterRaisesException] attribute DOMString value;
-    [SetterRaisesException] attribute Date valueAsDate;
-    [SetterRaisesException] attribute double valueAsNumber;
+    [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;
 
-    [RaisesException] void stepUp(optional long n);
-    [RaisesException] void stepDown(optional long n);
+    [RaisesException, CustomElementCallbacks=Enable] void stepUp(optional long n);
+    [RaisesException, CustomElementCallbacks=Enable] void stepDown(optional long n);
 
-    attribute unsigned long width;
+    [CustomElementCallbacks=Enable] attribute unsigned long width;
     readonly attribute boolean willValidate;
     readonly attribute ValidityState validity;
     readonly attribute DOMString validationMessage;
@@ -96,7 +96,7 @@
     [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, NotEnumerable] attribute EventListener onwebkitspeechchange;
+    [Conditional=INPUT_SPEECH, NotEnumerable] attribute EventHandler onwebkitspeechchange;
 
     // See http://www.w3.org/TR/html-media-capture/
     [Conditional=MEDIA_CAPTURE, Reflect] attribute boolean capture;
diff --git a/core/html/HTMLMarqueeElement.idl b/core/html/HTMLMarqueeElement.idl
index 9fc56be..b5bda0c 100644
--- a/core/html/HTMLMarqueeElement.idl
+++ b/core/html/HTMLMarqueeElement.idl
@@ -35,7 +35,7 @@
 
     // FIXME: Implement the following event handler attributes
     // https://bugs.webkit.org/show_bug.cgi?id=49788
-    // attribute EventListener onbounce;
-    // attribute EventListener onfinish;
-    // attribute EventListener onstart;
+    // attribute EventHandler onbounce;
+    // attribute EventHandler onfinish;
+    // attribute EventHandler onstart;
 };
diff --git a/core/html/HTMLMediaElement.idl b/core/html/HTMLMediaElement.idl
index 10ebf8a..6e811ee 100644
--- a/core/html/HTMLMediaElement.idl
+++ b/core/html/HTMLMediaElement.idl
@@ -92,10 +92,10 @@
 [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 EventListener onwebkitkeyadded;
-[EnabledAtRuntime=legacyEncryptedMedia] attribute EventListener onwebkitkeyerror;
-[EnabledAtRuntime=legacyEncryptedMedia] attribute EventListener onwebkitkeymessage;
-[EnabledAtRuntime=legacyEncryptedMedia] attribute EventListener 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;
 
diff --git a/core/html/HTMLSelectElement.idl b/core/html/HTMLSelectElement.idl
index a1d0e77..6a511b2 100644
--- a/core/html/HTMLSelectElement.idl
+++ b/core/html/HTMLSelectElement.idl
@@ -32,7 +32,7 @@
     readonly attribute HTMLOptionsCollection options;
     [SetterRaisesException] attribute unsigned long length;
 
-    getter Node item([IsIndex,Default=Undefined] optional unsigned long index);
+    getter Node item(unsigned long index);
     [ImplementedAs=anonymousIndexedSetter, RaisesException] setter HTMLOptionElement (unsigned long index, [TreatNullAs=anonymousIndexedSetterRemove, TreatUndefinedAs=anonymousIndexedSetterRemove] HTMLOptionElement value);
     Node namedItem([Default=Undefined] optional DOMString name);
      [RaisesException] void add([Default=Undefined] optional HTMLElement element,
diff --git a/core/html/RadioNodeList.idl b/core/html/RadioNodeList.idl
index 498c7a7..47beea0 100644
--- a/core/html/RadioNodeList.idl
+++ b/core/html/RadioNodeList.idl
@@ -27,5 +27,5 @@
     NoInterfaceObject
 ] interface RadioNodeList : NodeList {
     attribute DOMString value;
-    [ImplementedAs=item] getter Node([IsIndex,Default=Undefined] optional unsigned long index);
+    [ImplementedAs=item] getter Node(unsigned long index);
 };
diff --git a/core/html/canvas/CanvasRenderingContext2D.idl b/core/html/canvas/CanvasRenderingContext2D.idl
index ed6cbc4..3c2337b 100644
--- a/core/html/canvas/CanvasRenderingContext2D.idl
+++ b/core/html/canvas/CanvasRenderingContext2D.idl
@@ -159,9 +159,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);
+
     readonly attribute float webkitBackingStorePixelRatio;
 
-    attribute boolean webkitImageSmoothingEnabled;
+    [ImplementedAs=imageSmoothingEnabled] attribute boolean webkitImageSmoothingEnabled;
+    attribute boolean imageSmoothingEnabled;
 
     [EnabledAtRuntime=experimentalCanvasFeatures] Canvas2DContextAttributes getContextAttributes();
 };
diff --git a/core/html/canvas/Float32Array.idl b/core/html/canvas/Float32Array.idl
deleted file mode 100644
index 09e368b..0000000
--- a/core/html/canvas/Float32Array.idl
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2006, 2010 Apple Computer, Inc. All rights reserved.
- * Copyright (C) 2009 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:
- * 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 COMPUTER, 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 COMPUTER, 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.
- */
-
-[
-    GlobalContext=Window&WorkerGlobalScope,
-    ConstructorTemplate=TypedArray,
-    CustomToV8,
-    DoNotCheckConstants
-] interface Float32Array : ArrayBufferView {
-    const unsigned long BYTES_PER_ELEMENT = 4;
-
-    readonly attribute unsigned long length;
-    Float32Array subarray([Default=Undefined] optional long start,
-                          optional long end);
-
-    // void set(Float32Array array, optional in unsigned long offset);
-    // void set(sequence<long> array, optional in unsigned long offset);
-    void set();
-};
diff --git a/core/html/canvas/Float64Array.idl b/core/html/canvas/Float64Array.idl
deleted file mode 100644
index f9335ff..0000000
--- a/core/html/canvas/Float64Array.idl
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
- * Copyright (C) 2011 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:
- * 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 COMPUTER, 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 COMPUTER, 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.
- */
-
-[
-    GlobalContext=Window&WorkerGlobalScope,
-    ConstructorTemplate=TypedArray,
-    CustomToV8,
-    DoNotCheckConstants
-] interface Float64Array : ArrayBufferView {
-    const unsigned long BYTES_PER_ELEMENT = 8;
-
-    readonly attribute unsigned long length;
-    Float64Array subarray([Default=Undefined] optional long start,
-                          optional long end);
-
-    // void set(Float64Array array, optional in unsigned long offset);
-    // void set(sequence<long> array, optional in unsigned long offset);
-    void set();
-};
diff --git a/core/html/canvas/Int16Array.idl b/core/html/canvas/Int16Array.idl
deleted file mode 100644
index 350bcbb..0000000
--- a/core/html/canvas/Int16Array.idl
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2006, 2010 Apple Computer, 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 COMPUTER, 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 COMPUTER, 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.
- */
-
-[
-    GlobalContext=Window&WorkerGlobalScope,
-    ConstructorTemplate=TypedArray,
-    CustomToV8,
-    DoNotCheckConstants
-] interface Int16Array : ArrayBufferView {
-    const unsigned long BYTES_PER_ELEMENT = 2;
-
-    readonly attribute unsigned long length;
-    Int16Array subarray([Default=Undefined] optional long start,
-                        optional long end);
-
-    // void set(Int16Array array, optional in unsigned long offset);
-    // void set(sequence<long> array, optional in unsigned long offset);
-    void set();
-};
diff --git a/core/html/canvas/Int32Array.idl b/core/html/canvas/Int32Array.idl
deleted file mode 100644
index 7b28526..0000000
--- a/core/html/canvas/Int32Array.idl
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2009 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:
- * 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 COMPUTER, 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 COMPUTER, 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.
- */
-
-[
-    GlobalContext=Window&WorkerGlobalScope,
-    ConstructorTemplate=TypedArray,
-    CustomToV8,
-    DoNotCheckConstants
-] interface Int32Array : ArrayBufferView {
-    const unsigned long BYTES_PER_ELEMENT = 4;
-
-    readonly attribute unsigned long length;
-    Int32Array subarray([Default=Undefined] optional long start,
-                        optional long end);
-
-    // void set(Int32Array array, optional in unsigned long offset);
-    // void set(sequence<long> array, optional in unsigned long offset);
-    void set();
-};
diff --git a/core/html/canvas/Int8Array.idl b/core/html/canvas/Int8Array.idl
deleted file mode 100644
index 0cd83d5..0000000
--- a/core/html/canvas/Int8Array.idl
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2009 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:
- * 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 COMPUTER, 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 COMPUTER, 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.
- */
-
-[
-    GlobalContext=Window&WorkerGlobalScope,
-    ConstructorTemplate=TypedArray,
-    CustomToV8,
-    DoNotCheckConstants
-] interface Int8Array : ArrayBufferView {
-    const unsigned long BYTES_PER_ELEMENT = 1;
-
-    readonly attribute unsigned long length;
-    Int8Array subarray([Default=Undefined] optional long start,
-                       optional long end);
-
-    // void set(Int8Array array, optional in unsigned long offset);
-    // void set(sequence<long> array, optional in unsigned long offset);
-    void set();
-};
diff --git a/core/html/canvas/OESVertexArrayObject.idl b/core/html/canvas/OESVertexArrayObject.idl
index f8c8583..aa9a16d 100644
--- a/core/html/canvas/OESVertexArrayObject.idl
+++ b/core/html/canvas/OESVertexArrayObject.idl
@@ -32,5 +32,5 @@
     [StrictTypeChecking] WebGLVertexArrayObjectOES createVertexArrayOES();
     [StrictTypeChecking] void         deleteVertexArrayOES([Default=Undefined] optional WebGLVertexArrayObjectOES arrayObject);
     [StrictTypeChecking] boolean      isVertexArrayOES([Default=Undefined] optional WebGLVertexArrayObjectOES arrayObject);
-    [StrictTypeChecking, RaisesException] void         bindVertexArrayOES([Default=Undefined] optional WebGLVertexArrayObjectOES arrayObject);
+    [StrictTypeChecking] void         bindVertexArrayOES([Default=Undefined] optional WebGLVertexArrayObjectOES arrayObject);
 };
diff --git a/core/html/canvas/Uint16Array.idl b/core/html/canvas/Uint16Array.idl
deleted file mode 100644
index dd62b02..0000000
--- a/core/html/canvas/Uint16Array.idl
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2009 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:
- * 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 COMPUTER, 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 COMPUTER, 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.
- */
-
-[
-    GlobalContext=Window&WorkerGlobalScope,
-    ConstructorTemplate=TypedArray,
-    CustomToV8,
-    DoNotCheckConstants
-] interface Uint16Array : ArrayBufferView {
-    const unsigned long BYTES_PER_ELEMENT = 2;
-
-    readonly attribute unsigned long length;
-    Uint16Array subarray([Default=Undefined] optional long start, optional long end);
-
-    // void set(Uint16Array array, optional in unsigned long offset);
-    // void set(sequence<long> array, optional in unsigned long offset);
-    void set();
-};
diff --git a/core/html/canvas/Uint32Array.idl b/core/html/canvas/Uint32Array.idl
deleted file mode 100644
index d47c7ca..0000000
--- a/core/html/canvas/Uint32Array.idl
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2009 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:
- * 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 COMPUTER, 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 COMPUTER, 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.
- */
-
-[
-    GlobalContext=Window&WorkerGlobalScope,
-    ConstructorTemplate=TypedArray,
-    CustomToV8,
-    DoNotCheckConstants
-] interface Uint32Array : ArrayBufferView {
-    const unsigned long BYTES_PER_ELEMENT = 4;
-
-    readonly attribute unsigned long length;
-    Uint32Array subarray([Default=Undefined] optional long start, optional long end);
-
-    // void set(Uint32Array array, optional in unsigned long offset);
-    // void set(sequence<long> array, optional in unsigned long offset);
-    void set();
-};
diff --git a/core/html/canvas/Uint8Array.idl b/core/html/canvas/Uint8Array.idl
deleted file mode 100644
index 6058506..0000000
--- a/core/html/canvas/Uint8Array.idl
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2009 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:
- * 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 COMPUTER, 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 COMPUTER, 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.
- */
-
-[
-    GlobalContext=Window&WorkerGlobalScope,
-    ConstructorTemplate=TypedArray,
-    CustomToV8,
-    DoNotCheckConstants
-] interface Uint8Array : ArrayBufferView {
-    const unsigned long BYTES_PER_ELEMENT = 1;
-
-    readonly attribute unsigned long length;
-    Uint8Array subarray([Default=Undefined] optional long start, optional long end);
-
-    // void set(Uint8Array array, optional in unsigned long offset);
-    // void set(sequence<long> array, optional in unsigned long offset);
-    void set();
-};
diff --git a/core/html/canvas/Uint8ClampedArray.idl b/core/html/canvas/Uint8ClampedArray.idl
deleted file mode 100644
index 66c9289..0000000
--- a/core/html/canvas/Uint8ClampedArray.idl
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2009 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:
- * 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 COMPUTER, 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 COMPUTER, 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.
- */
-
-[
-    GlobalContext=Window&WorkerGlobalScope,
-    ConstructorTemplate=TypedArray,
-    CustomToV8,
-    DoNotCheckConstants
-] interface Uint8ClampedArray : Uint8Array {
-    const unsigned long BYTES_PER_ELEMENT = 1;
-
-    readonly attribute unsigned long length;
-    Uint8ClampedArray subarray([Default=Undefined] optional long start, optional long end);
-
-    // FIXME: Missing other setters!
-    // void set(Uint8ClampedArray array, optional in unsigned long offset);
-    // void set(sequence<long> array, optional in unsigned long offset);
-    void set();
-};
diff --git a/core/html/canvas/WebGLDebugShaders.idl b/core/html/canvas/WebGLDebugShaders.idl
index 1798cee..55a6f3c 100644
--- a/core/html/canvas/WebGLDebugShaders.idl
+++ b/core/html/canvas/WebGLDebugShaders.idl
@@ -26,5 +26,5 @@
 [
     NoInterfaceObject
 ] interface WebGLDebugShaders {
-    [StrictTypeChecking, TreatReturnedNullStringAs=Null, RaisesException] DOMString getTranslatedShaderSource(WebGLShader shader);
+    [StrictTypeChecking, TreatReturnedNullStringAs=Null] DOMString getTranslatedShaderSource(WebGLShader shader);
 };
diff --git a/core/html/canvas/WebGLRenderingContext.idl b/core/html/canvas/WebGLRenderingContext.idl
index e82cc8a..a006bae 100644
--- a/core/html/canvas/WebGLRenderingContext.idl
+++ b/core/html/canvas/WebGLRenderingContext.idl
@@ -460,23 +460,23 @@
     readonly attribute GLsizei drawingBufferWidth;
     readonly attribute GLsizei drawingBufferHeight;
 
-    [StrictTypeChecking, RaisesException] void         activeTexture(GLenum texture);
-    [StrictTypeChecking, RaisesException] void         attachShader(WebGLProgram program, WebGLShader shader);
-    [StrictTypeChecking, RaisesException] void         bindAttribLocation(WebGLProgram program, GLuint index, DOMString name);
-    [StrictTypeChecking, RaisesException] void         bindBuffer(GLenum target, WebGLBuffer buffer);
-    [StrictTypeChecking, RaisesException] void         bindFramebuffer(GLenum target, WebGLFramebuffer framebuffer);
-    [StrictTypeChecking, RaisesException] void         bindRenderbuffer(GLenum target, WebGLRenderbuffer renderbuffer);
-    [StrictTypeChecking, RaisesException] void         bindTexture(GLenum target, WebGLTexture texture);
+    [StrictTypeChecking] void         activeTexture(GLenum texture);
+    [StrictTypeChecking] void         attachShader(WebGLProgram program, WebGLShader shader);
+    [StrictTypeChecking] void         bindAttribLocation(WebGLProgram program, GLuint index, DOMString name);
+    [StrictTypeChecking] void         bindBuffer(GLenum target, WebGLBuffer buffer);
+    [StrictTypeChecking] void         bindFramebuffer(GLenum target, WebGLFramebuffer framebuffer);
+    [StrictTypeChecking] void         bindRenderbuffer(GLenum target, WebGLRenderbuffer renderbuffer);
+    [StrictTypeChecking] void         bindTexture(GLenum target, WebGLTexture texture);
     [StrictTypeChecking] void         blendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
     [StrictTypeChecking] void         blendEquation(GLenum mode);
     [StrictTypeChecking] void         blendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
     [StrictTypeChecking] void         blendFunc(GLenum sfactor, GLenum dfactor);
     [StrictTypeChecking] void         blendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-    [StrictTypeChecking, RaisesException] void         bufferData(GLenum target, ArrayBuffer? data, GLenum usage);
-    [StrictTypeChecking, RaisesException] void         bufferData(GLenum target, ArrayBufferView? data, GLenum usage);
-    [StrictTypeChecking, RaisesException] void         bufferData(GLenum target, GLsizeiptr size, GLenum usage);
-    [StrictTypeChecking, RaisesException] void         bufferSubData(GLenum target, GLintptr offset, ArrayBuffer? data);
-    [StrictTypeChecking, RaisesException] void         bufferSubData(GLenum target, GLintptr offset, ArrayBufferView? data);
+    [StrictTypeChecking] void         bufferData(GLenum target, ArrayBuffer? data, GLenum usage);
+    [StrictTypeChecking] void         bufferData(GLenum target, ArrayBufferView? data, GLenum usage);
+    [StrictTypeChecking] void         bufferData(GLenum target, GLsizeiptr size, GLenum usage);
+    [StrictTypeChecking] void         bufferSubData(GLenum target, GLintptr offset, ArrayBuffer? data);
+    [StrictTypeChecking] void         bufferSubData(GLenum target, GLintptr offset, ArrayBufferView? data);
 
     [StrictTypeChecking] GLenum       checkFramebufferStatus(GLenum target);
     [StrictTypeChecking] void         clear(GLbitfield mask);
@@ -484,7 +484,7 @@
     [StrictTypeChecking] void         clearDepth(GLclampf depth);
     [StrictTypeChecking] void         clearStencil(GLint s);
     [StrictTypeChecking] void         colorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-    [StrictTypeChecking, RaisesException] void         compileShader(WebGLShader shader);
+    [StrictTypeChecking] void         compileShader(WebGLShader shader);
 
     [StrictTypeChecking] void         compressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
                                                            GLsizei width, GLsizei height, GLint border, ArrayBufferView data);
@@ -498,7 +498,7 @@
     [StrictTypeChecking] WebGLFramebuffer createFramebuffer();
     [StrictTypeChecking] WebGLProgram createProgram();
     [StrictTypeChecking] WebGLRenderbuffer createRenderbuffer();
-    [StrictTypeChecking, RaisesException] WebGLShader createShader(GLenum type);
+    [StrictTypeChecking] WebGLShader createShader(GLenum type);
     [StrictTypeChecking] WebGLTexture createTexture();
 
     [StrictTypeChecking] void         cullFace(GLenum mode);
@@ -513,25 +513,25 @@
     [StrictTypeChecking] void         depthFunc(GLenum func);
     [StrictTypeChecking] void         depthMask(GLboolean flag);
     [StrictTypeChecking] void         depthRange(GLclampf zNear, GLclampf zFar);
-    [StrictTypeChecking, RaisesException] void         detachShader(WebGLProgram program, WebGLShader shader);
+    [StrictTypeChecking] void         detachShader(WebGLProgram program, WebGLShader shader);
     [StrictTypeChecking] void         disable(GLenum cap);
-    [StrictTypeChecking, RaisesException] void         disableVertexAttribArray(GLuint index);
-    [StrictTypeChecking, RaisesException] void         drawArrays(GLenum mode, GLint first, GLsizei count);
-    [StrictTypeChecking, RaisesException] void         drawElements(GLenum mode, GLsizei count, GLenum type, GLintptr offset);
+    [StrictTypeChecking] void         disableVertexAttribArray(GLuint index);
+    [StrictTypeChecking] void         drawArrays(GLenum mode, GLint first, GLsizei count);
+    [StrictTypeChecking] void         drawElements(GLenum mode, GLsizei count, GLenum type, GLintptr offset);
 
     [StrictTypeChecking] void         enable(GLenum cap);
-    [StrictTypeChecking, RaisesException] void         enableVertexAttribArray(GLuint index);
+    [StrictTypeChecking] void         enableVertexAttribArray(GLuint index);
     [StrictTypeChecking] void         finish();
     [StrictTypeChecking] void         flush();
-    [StrictTypeChecking, RaisesException] void         framebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, WebGLRenderbuffer renderbuffer);
-    [StrictTypeChecking, RaisesException] void         framebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, WebGLTexture texture, GLint level);
+    [StrictTypeChecking] void         framebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, WebGLRenderbuffer renderbuffer);
+    [StrictTypeChecking] void         framebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, WebGLTexture texture, GLint level);
     [StrictTypeChecking] void         frontFace(GLenum mode);
     [StrictTypeChecking] void         generateMipmap(GLenum target);
 
-    [StrictTypeChecking, RaisesException] WebGLActiveInfo getActiveAttrib(WebGLProgram program, GLuint index);
-    [StrictTypeChecking, RaisesException] WebGLActiveInfo getActiveUniform(WebGLProgram program, GLuint index);
+    [StrictTypeChecking] WebGLActiveInfo getActiveAttrib(WebGLProgram program, GLuint index);
+    [StrictTypeChecking] WebGLActiveInfo getActiveUniform(WebGLProgram program, GLuint index);
 
-    [StrictTypeChecking, Custom, RaisesException] void getAttachedShaders(WebGLProgram program);
+    [StrictTypeChecking, Custom] void getAttachedShaders(WebGLProgram program);
 
     [StrictTypeChecking] GLint        getAttribLocation(WebGLProgram program, DOMString name);
 
@@ -544,28 +544,28 @@
     // object getExtension(DOMString name);
     [StrictTypeChecking, Custom] any getExtension(DOMString name);
 
-    [StrictTypeChecking, Custom, RaisesException] any getFramebufferAttachmentParameter(GLenum target, GLenum attachment, GLenum pname);
-    [StrictTypeChecking, Custom, RaisesException] any getParameter(GLenum pname);
-    [StrictTypeChecking, Custom, RaisesException] any getProgramParameter(WebGLProgram program, GLenum pname);
-    [StrictTypeChecking, TreatReturnedNullStringAs=Null, RaisesException] DOMString getProgramInfoLog(WebGLProgram program);
-    [StrictTypeChecking, Custom, RaisesException] any getRenderbufferParameter(GLenum target, GLenum pname);
-    [StrictTypeChecking, Custom, RaisesException] any getShaderParameter(WebGLShader shader, GLenum pname);
+    [StrictTypeChecking, Custom] any getFramebufferAttachmentParameter(GLenum target, GLenum attachment, GLenum pname);
+    [StrictTypeChecking, Custom] any getParameter(GLenum pname);
+    [StrictTypeChecking, Custom] any getProgramParameter(WebGLProgram program, GLenum pname);
+    [StrictTypeChecking, TreatReturnedNullStringAs=Null] DOMString getProgramInfoLog(WebGLProgram program);
+    [StrictTypeChecking, Custom] any getRenderbufferParameter(GLenum target, GLenum pname);
+    [StrictTypeChecking, Custom] any getShaderParameter(WebGLShader shader, GLenum pname);
 
-    [StrictTypeChecking, TreatReturnedNullStringAs=Null, RaisesException] DOMString    getShaderInfoLog(WebGLShader shader);
+    [StrictTypeChecking, TreatReturnedNullStringAs=Null] DOMString    getShaderInfoLog(WebGLShader shader);
 
-    [StrictTypeChecking, RaisesException] WebGLShaderPrecisionFormat getShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype);
+    [StrictTypeChecking] WebGLShaderPrecisionFormat getShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype);
 
-    [StrictTypeChecking, TreatReturnedNullStringAs=Null, RaisesException] DOMString    getShaderSource(WebGLShader shader);
+    [StrictTypeChecking, TreatReturnedNullStringAs=Null] DOMString    getShaderSource(WebGLShader shader);
 
     [StrictTypeChecking, Custom] sequence<DOMString> getSupportedExtensions();
 
-    [StrictTypeChecking, Custom, RaisesException] any getTexParameter(GLenum target, GLenum pname);
+    [StrictTypeChecking, Custom] any getTexParameter(GLenum target, GLenum pname);
 
-    [StrictTypeChecking, Custom, RaisesException] any getUniform(WebGLProgram program, WebGLUniformLocation location);
+    [StrictTypeChecking, Custom] any getUniform(WebGLProgram program, WebGLUniformLocation location);
 
-    [StrictTypeChecking, RaisesException] WebGLUniformLocation getUniformLocation(WebGLProgram program, DOMString name);
+    [StrictTypeChecking] WebGLUniformLocation getUniformLocation(WebGLProgram program, DOMString name);
 
-    [StrictTypeChecking, Custom, RaisesException] any getVertexAttrib(GLuint index, GLenum pname);
+    [StrictTypeChecking, Custom] any getVertexAttrib(GLuint index, GLenum pname);
 
     [StrictTypeChecking] GLsizeiptr getVertexAttribOffset(GLuint index, GLenum pname);
 
@@ -579,16 +579,16 @@
     [StrictTypeChecking] GLboolean    isShader(WebGLShader shader);
     [StrictTypeChecking] GLboolean    isTexture(WebGLTexture texture);
     [StrictTypeChecking] void         lineWidth(GLfloat width);
-    [StrictTypeChecking, RaisesException] void         linkProgram(WebGLProgram program);
+    [StrictTypeChecking] void         linkProgram(WebGLProgram program);
     [StrictTypeChecking] void         pixelStorei(GLenum pname, GLint param);
     [StrictTypeChecking] void         polygonOffset(GLfloat factor, GLfloat units);
 
-    [StrictTypeChecking, RaisesException] void         readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, ArrayBufferView pixels);
+    [StrictTypeChecking] void         readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, ArrayBufferView pixels);
 
     [StrictTypeChecking] void         renderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
     [StrictTypeChecking] void         sampleCoverage(GLclampf value, GLboolean invert);
     [StrictTypeChecking] void         scissor(GLint x, GLint y, GLsizei width, GLsizei height);
-    [StrictTypeChecking, RaisesException] void         shaderSource(WebGLShader shader, DOMString string);
+    [StrictTypeChecking] void         shaderSource(WebGLShader shader, DOMString string);
     [StrictTypeChecking] void         stencilFunc(GLenum func, GLint ref, GLuint mask);
     [StrictTypeChecking] void         stencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
     [StrictTypeChecking] void         stencilMask(GLuint mask);
@@ -623,29 +623,29 @@
     [StrictTypeChecking, RaisesException] void         texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
                                                     GLenum format, GLenum type, HTMLVideoElement? video);
 
-    [StrictTypeChecking, RaisesException] void uniform1f(WebGLUniformLocation location, GLfloat x);
-    [StrictTypeChecking, Custom, RaisesException] void uniform1fv(WebGLUniformLocation location, Float32Array v);
-    [StrictTypeChecking, RaisesException] void uniform1i(WebGLUniformLocation location, GLint x);
-    [StrictTypeChecking, Custom, RaisesException] void uniform1iv(WebGLUniformLocation location, Int32Array v);
-    [StrictTypeChecking, RaisesException] void uniform2f(WebGLUniformLocation location, GLfloat x, GLfloat y);
-    [StrictTypeChecking, Custom, RaisesException] void uniform2fv(WebGLUniformLocation location, Float32Array v);
-    [StrictTypeChecking, RaisesException] void uniform2i(WebGLUniformLocation location, GLint x, GLint y);
-    [StrictTypeChecking, Custom, RaisesException] void uniform2iv(WebGLUniformLocation location, Int32Array v);
-    [StrictTypeChecking, RaisesException] void uniform3f(WebGLUniformLocation location, GLfloat x, GLfloat y, GLfloat z);
-    [StrictTypeChecking, Custom, RaisesException] void uniform3fv(WebGLUniformLocation location, Float32Array v);
-    [StrictTypeChecking, RaisesException] void uniform3i(WebGLUniformLocation location, GLint x, GLint y, GLint z);
-    [StrictTypeChecking, Custom, RaisesException] void uniform3iv(WebGLUniformLocation location, Int32Array v);
-    [StrictTypeChecking, RaisesException] void uniform4f(WebGLUniformLocation location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-    [StrictTypeChecking, Custom, RaisesException] void uniform4fv(WebGLUniformLocation location, Float32Array v);
-    [StrictTypeChecking, RaisesException] void uniform4i(WebGLUniformLocation location, GLint x, GLint y, GLint z, GLint w);
-    [StrictTypeChecking, Custom, RaisesException] void uniform4iv(WebGLUniformLocation location, Int32Array v);
+    [StrictTypeChecking] void uniform1f(WebGLUniformLocation location, GLfloat x);
+    [StrictTypeChecking, Custom] void uniform1fv(WebGLUniformLocation location, Float32Array v);
+    [StrictTypeChecking] void uniform1i(WebGLUniformLocation location, GLint x);
+    [StrictTypeChecking, Custom] void uniform1iv(WebGLUniformLocation location, Int32Array v);
+    [StrictTypeChecking] void uniform2f(WebGLUniformLocation location, GLfloat x, GLfloat y);
+    [StrictTypeChecking, Custom] void uniform2fv(WebGLUniformLocation location, Float32Array v);
+    [StrictTypeChecking] void uniform2i(WebGLUniformLocation location, GLint x, GLint y);
+    [StrictTypeChecking, Custom] void uniform2iv(WebGLUniformLocation location, Int32Array v);
+    [StrictTypeChecking] void uniform3f(WebGLUniformLocation location, GLfloat x, GLfloat y, GLfloat z);
+    [StrictTypeChecking, Custom] void uniform3fv(WebGLUniformLocation location, Float32Array v);
+    [StrictTypeChecking] void uniform3i(WebGLUniformLocation location, GLint x, GLint y, GLint z);
+    [StrictTypeChecking, Custom] void uniform3iv(WebGLUniformLocation location, Int32Array v);
+    [StrictTypeChecking] void uniform4f(WebGLUniformLocation location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+    [StrictTypeChecking, Custom] void uniform4fv(WebGLUniformLocation location, Float32Array v);
+    [StrictTypeChecking] void uniform4i(WebGLUniformLocation location, GLint x, GLint y, GLint z, GLint w);
+    [StrictTypeChecking, Custom] void uniform4iv(WebGLUniformLocation location, Int32Array v);
 
-    [StrictTypeChecking, Custom, RaisesException] void uniformMatrix2fv(WebGLUniformLocation location, GLboolean transpose, Float32Array array);
-    [StrictTypeChecking, Custom, RaisesException] void uniformMatrix3fv(WebGLUniformLocation location, GLboolean transpose, Float32Array array);
-    [StrictTypeChecking, Custom, RaisesException] void uniformMatrix4fv(WebGLUniformLocation location, GLboolean transpose, Float32Array array);
+    [StrictTypeChecking, Custom] void uniformMatrix2fv(WebGLUniformLocation location, GLboolean transpose, Float32Array array);
+    [StrictTypeChecking, Custom] void uniformMatrix3fv(WebGLUniformLocation location, GLboolean transpose, Float32Array array);
+    [StrictTypeChecking, Custom] void uniformMatrix4fv(WebGLUniformLocation location, GLboolean transpose, Float32Array array);
 
-    [StrictTypeChecking, RaisesException] void         useProgram(WebGLProgram program);
-    [StrictTypeChecking, RaisesException] void         validateProgram(WebGLProgram program);
+    [StrictTypeChecking] void         useProgram(WebGLProgram program);
+    [StrictTypeChecking] void         validateProgram(WebGLProgram program);
 
     [StrictTypeChecking] void         vertexAttrib1f(GLuint indx, GLfloat x);
     [StrictTypeChecking, Custom] void vertexAttrib1fv(GLuint indx, Float32Array values);
@@ -655,7 +655,7 @@
     [StrictTypeChecking, Custom] void vertexAttrib3fv(GLuint indx, Float32Array values);
     [StrictTypeChecking] void         vertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
     [StrictTypeChecking, Custom] void vertexAttrib4fv(GLuint indx, Float32Array values);
-    [StrictTypeChecking, RaisesException] void         vertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized,
+    [StrictTypeChecking] void         vertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized,
                                                           GLsizei stride, GLintptr offset);
 
     [StrictTypeChecking] void         viewport(GLint x, GLint y, GLsizei width, GLsizei height);
diff --git a/core/html/track/TextTrack.idl b/core/html/track/TextTrack.idl
index 8b2e8aa..36e19d9 100644
--- a/core/html/track/TextTrack.idl
+++ b/core/html/track/TextTrack.idl
@@ -34,7 +34,7 @@
 
     readonly attribute TextTrackCueList cues;
     readonly attribute TextTrackCueList activeCues;
-             attribute EventListener oncuechange;
+             attribute EventHandler oncuechange;
 
     void addCue(TextTrackCue cue);
     [RaisesException] void removeCue(TextTrackCue cue);
diff --git a/core/html/track/TextTrackCue.idl b/core/html/track/TextTrackCue.idl
index f398a9a..d379587 100644
--- a/core/html/track/TextTrackCue.idl
+++ b/core/html/track/TextTrackCue.idl
@@ -45,8 +45,8 @@
     attribute DOMString text;
     DocumentFragment getCueAsHTML();
 
-    attribute EventListener onenter;
-    attribute EventListener onexit;
+    attribute EventHandler onenter;
+    attribute EventHandler onexit;
 
     [Conditional=WEBVTT_REGIONS] attribute DOMString regionId;
 };
diff --git a/core/html/track/TextTrackList.idl b/core/html/track/TextTrackList.idl
index a6e51b3..d52c548 100644
--- a/core/html/track/TextTrackList.idl
+++ b/core/html/track/TextTrackList.idl
@@ -30,6 +30,6 @@
     readonly attribute unsigned long length;
     getter TextTrack item(unsigned long index);
 
-    attribute EventListener onaddtrack;
+    attribute EventHandler onaddtrack;
 };
 
diff --git a/core/inspector/InspectorFrontendHost.idl b/core/inspector/InspectorFrontendHost.idl
index d3ca499..f764bf2 100644
--- a/core/inspector/InspectorFrontendHost.idl
+++ b/core/inspector/InspectorFrontendHost.idl
@@ -66,6 +66,9 @@
     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 1be3df8..a9bd1ae 100644
--- a/core/inspector/InspectorInstrumentation.idl
+++ b/core/inspector/InspectorInstrumentation.idl
@@ -229,18 +229,6 @@
     [Timeline, Resource, Inline=FastReturn]
     void didScheduleStyleRecalculation([Keep] Document*);
 
-    [CSS, Inline=FastReturn]
-    InspectorInstrumentationCookie willMatchRule(Document*, StyleRule*, InspectorCSSOMWrappers&, DocumentStyleSheetCollection*);
-
-    [CSS, Inline=FastReturn]
-    void didMatchRule(const InspectorInstrumentationCookie&, bool matched);
-
-    [CSS, Inline=FastReturn]
-    InspectorInstrumentationCookie willProcessRule(Document* document, [FastReturn] StyleRule* rule, StyleResolver* styleResolver);
-
-    [CSS, Inline=FastReturn]
-    void didProcessRule(const InspectorInstrumentationCookie&);
-
     [Resource, Inline=FastReturn]
     void applyUserAgentOverride(Frame*, String* userAgent);
 
@@ -330,7 +318,7 @@
     [Canvas, Page, CSS]
     void frameDetachedFromParent([Keep] Frame*);
 
-    [Page]
+    [Page, Inline=FastReturn]
     void childDocumentOpened([Keep] Document*);
 
     [Console, Resource, CSS, Database, DOM, LayerTree, Inspector, Canvas, Page]
@@ -422,12 +410,6 @@
 
     [LayerTree]
     void layerTreeDidChange(Page*);
-
-    [LayerTree]
-    void renderLayerDestroyed(Page*, const RenderLayer*);
-
-    [LayerTree]
-    void pseudoElementDestroyed(Page*, PseudoElement*);
 }
 
 interface InspectorConsoleInstrumentation {
diff --git a/core/loader/appcache/DOMApplicationCache.idl b/core/loader/appcache/DOMApplicationCache.idl
index f1c98e6..8dc4c23 100644
--- a/core/loader/appcache/DOMApplicationCache.idl
+++ b/core/loader/appcache/DOMApplicationCache.idl
@@ -41,13 +41,13 @@
     void abort();
 
     // events
-    attribute EventListener onchecking;
-    attribute EventListener onerror;
-    attribute EventListener onnoupdate;
-    attribute EventListener ondownloading;
-    attribute EventListener onprogress;
-    attribute EventListener onupdateready;
-    attribute EventListener oncached;
-    attribute EventListener onobsolete;
+    attribute EventHandler onchecking;
+    attribute EventHandler onerror;
+    attribute EventHandler onnoupdate;
+    attribute EventHandler ondownloading;
+    attribute EventHandler onprogress;
+    attribute EventHandler onupdateready;
+    attribute EventHandler oncached;
+    attribute EventHandler onobsolete;
 };
 
diff --git a/core/page/Console.idl b/core/page/Console.idl
index f675e8e..d5373ca 100644
--- a/core/page/Console.idl
+++ b/core/page/Console.idl
@@ -41,7 +41,7 @@
     [CallWith=ScriptArguments&ScriptState] void trace();
     [CallWith=ScriptArguments&ScriptState, ImplementedAs=assertCondition] void assert([Default=Undefined] optional boolean condition);
     [CallWith=ScriptArguments&ScriptState] void count();
-    [CallWith=ScriptArguments] void markTimeline();
+    [DeprecateAs=ConsoleMarkTimeline, CallWith=ScriptArguments] void markTimeline();
 
     [CallWith=ScriptState] void profile([Default=NullString] optional DOMString title);
     [CallWith=ScriptState] void profileEnd([Default=NullString] optional DOMString title);
diff --git a/core/page/EventSource.idl b/core/page/EventSource.idl
index d92caa9..6aeade1 100644
--- a/core/page/EventSource.idl
+++ b/core/page/EventSource.idl
@@ -48,8 +48,8 @@
     readonly attribute unsigned short readyState;
 
     // networking
-    attribute EventListener onopen;
-    attribute EventListener onmessage;
-    attribute EventListener onerror;
+    attribute EventHandler onopen;
+    attribute EventHandler onmessage;
+    attribute EventHandler onerror;
     void close();
 };
diff --git a/core/page/ImageBitmapCallback.idl b/core/page/ImageBitmapCallback.idl
deleted file mode 100644
index fb2ae4f..0000000
--- a/core/page/ImageBitmapCallback.idl
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-callback interface ImageBitmapCallback {
-    boolean handleEvent(ImageBitmap bitmap);
-};
diff --git a/core/page/ImageBitmapFactories.idl b/core/page/ImageBitmapFactories.idl
new file mode 100644
index 0000000..65c0dc6
--- /dev/null
+++ b/core/page/ImageBitmapFactories.idl
@@ -0,0 +1,48 @@
+/*
+ * 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.
+ */
+
+[
+    NoInterfaceObject,
+    EnabledAtRuntime=experimentalCanvasFeatures
+] interface ImageBitmapFactories {
+    // FIXME: these methods should return |Promise|. http://crbug.com/266700
+    [RaisesException] any createImageBitmap(HTMLImageElement image);
+    [RaisesException] any createImageBitmap(HTMLImageElement image, long sx, long sy, long sw, long sh);
+    [RaisesException] any createImageBitmap(HTMLVideoElement video);
+    [RaisesException] any createImageBitmap(HTMLVideoElement video, long sx, long sy, long sw, long sh);
+    [RaisesException] any createImageBitmap(CanvasRenderingContext2D context);
+    [RaisesException] any createImageBitmap(CanvasRenderingContext2D context, long sx, long sy, long sw, long sh);
+    [RaisesException] any createImageBitmap(HTMLCanvasElement canvas);
+    [RaisesException] any createImageBitmap(HTMLCanvasElement canvas, long sx, long sy, long sw, long sh);
+    [RaisesException] any createImageBitmap(ImageData data);
+    [RaisesException] any createImageBitmap(ImageData data, long sx, long sy, long sw, long sh);
+    [RaisesException] any createImageBitmap(ImageBitmap bitmap);
+    [RaisesException] any createImageBitmap(ImageBitmap bitmap, long sx, long sy, long sw, long sh);
+};
\ No newline at end of file
diff --git a/core/page/Performance.idl b/core/page/Performance.idl
index e676085..8dd3ea8 100644
--- a/core/page/Performance.idl
+++ b/core/page/Performance.idl
@@ -30,7 +30,7 @@
  */
 
 // See: http://dev.w3.org/2006/webapi/WebTiming/
-interface Performance {
+interface Performance : EventTarget {
     readonly attribute PerformanceNavigation navigation;
     readonly attribute PerformanceTiming timing;
     readonly attribute MemoryInfo memory;
@@ -45,7 +45,7 @@
     void webkitClearResourceTimings();
     void webkitSetResourceTimingBufferSize(unsigned long maxSize);
 
-    attribute EventListener onwebkitresourcetimingbufferfull;
+    attribute EventHandler onwebkitresourcetimingbufferfull;
 
     // See http://www.w3.org/TR/2012/CR-user-timing-20120726/
     [RaisesException,MeasureAs=UnprefixedUserTiming] void mark(DOMString markName);
diff --git a/core/page/Selection.idl b/core/page/Selection.idl
index df2e24b..e5d7a9e 100644
--- a/core/page/Selection.idl
+++ b/core/page/Selection.idl
@@ -45,7 +45,7 @@
     [RaisesException] void collapseToEnd();
     [RaisesException] void collapseToStart();
 
-    void deleteFromDocument();
+    [CustomElementCallbacks=Enable] void deleteFromDocument();
     boolean containsNode([Default=Undefined] optional Node node,
                          [Default=Undefined] optional boolean allowPartial);
     [RaisesException] void selectAllChildren([Default=Undefined] optional Node node);
diff --git a/core/page/SpeechInputResultList.idl b/core/page/SpeechInputResultList.idl
index 0976ec3..1983aed 100644
--- a/core/page/SpeechInputResultList.idl
+++ b/core/page/SpeechInputResultList.idl
@@ -28,6 +28,6 @@
     Conditional=INPUT_SPEECH
 ] interface SpeechInputResultList {
     readonly attribute unsigned long length;
-    getter SpeechInputResult item([IsIndex] unsigned long index);
+    getter SpeechInputResult item(unsigned long index);
 };
 
diff --git a/core/page/Window.idl b/core/page/Window.idl
index f15f3e4..cbfa00a 100644
--- a/core/page/Window.idl
+++ b/core/page/Window.idl
@@ -160,20 +160,6 @@
 
     [Replaceable] readonly attribute Performance performance;
 
-    // Images
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void createImageBitmap(HTMLImageElement image, ImageBitmapCallback callback);
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void createImageBitmap(HTMLImageElement image, ImageBitmapCallback callback, long sx, long sy, long sw, long sh);
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void createImageBitmap(HTMLVideoElement video, ImageBitmapCallback callback);
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void createImageBitmap(HTMLVideoElement video, ImageBitmapCallback callback, long sx, long sy, long sw, long sh);
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void createImageBitmap(CanvasRenderingContext2D context, ImageBitmapCallback callback);
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void createImageBitmap(CanvasRenderingContext2D context, ImageBitmapCallback callback, long sx, long sy, long sw, long sh);
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void createImageBitmap(HTMLCanvasElement canvas, ImageBitmapCallback callback);
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void createImageBitmap(HTMLCanvasElement canvas, ImageBitmapCallback callback, long sx, long sy, long sw, long sh);
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void createImageBitmap(ImageData data, ImageBitmapCallback callback);
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void createImageBitmap(ImageData data, ImageBitmapCallback callback, long sx, long sy, long sw, long sh);
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void createImageBitmap(ImageBitmap bitmap, ImageBitmapCallback callback);
-    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void createImageBitmap(ImageBitmap bitmap, ImageBitmapCallback callback, long sx, long sy, long sw, long sh);
-
     [MeasureAs=UnprefixedRequestAnimationFrame] long requestAnimationFrame(RequestAnimationFrameCallback callback);
     void cancelAnimationFrame(long id);
     [MeasureAs=PrefixedRequestAnimationFrame] long webkitRequestAnimationFrame(RequestAnimationFrameCallback callback);
@@ -183,94 +169,97 @@
     [Replaceable] readonly attribute CSS CSS;
 
     // Events
-    attribute EventListener onabort;
-    attribute EventListener onbeforeunload;
-    attribute EventListener onblur;
-    attribute EventListener oncanplay;
-    attribute EventListener oncanplaythrough;
-    attribute EventListener onchange;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onclick;
-    attribute EventListener oncontextmenu;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondblclick;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondrag;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragend;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragenter;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragleave;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragover;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondragstart;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener ondrop;
-    attribute EventListener ondurationchange;
-    attribute EventListener onemptied;
-    attribute EventListener onended;
-    attribute EventListener onerror;
-    attribute EventListener onfocus;
-    attribute EventListener onhashchange;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener oninput;
-    attribute EventListener oninvalid;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onkeydown;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onkeypress;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onkeyup;
-    attribute EventListener onload;
-    attribute EventListener onloadeddata;
-    attribute EventListener onloadedmetadata;
-    attribute EventListener onloadstart;
-    attribute EventListener onmessage;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmousedown;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseenter;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseleave;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmousemove;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseout;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseover;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmouseup;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onmousewheel;
-    attribute EventListener onoffline;
-    attribute EventListener ononline;
-    attribute EventListener onpagehide;
-    attribute EventListener onpageshow;
-    attribute EventListener onpause;
-    attribute EventListener onplay;
-    attribute EventListener onplaying;
-    attribute EventListener onpopstate;
-    attribute EventListener onprogress;
-    attribute EventListener onratechange;
-    attribute EventListener onresize;
-    attribute EventListener onscroll;
-    attribute EventListener onseeked;
-    attribute EventListener onseeking;
-    attribute EventListener onselect;
-    attribute EventListener onstalled;
-    attribute EventListener onstorage;
-    attribute EventListener onsubmit;
-    attribute EventListener onsuspend;
-    attribute EventListener ontimeupdate;
-    attribute EventListener onunload;
-    attribute EventListener onvolumechange;
-    attribute EventListener onwaiting;
+    attribute EventHandler onabort;
+    attribute EventHandler onbeforeunload;
+    attribute EventHandler onblur;
+    attribute EventHandler oncanplay;
+    attribute EventHandler oncanplaythrough;
+    attribute EventHandler onchange;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onclick;
+    attribute EventHandler oncontextmenu;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondblclick;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondrag;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragend;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragenter;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragleave;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragover;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondragstart;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler ondrop;
+    attribute EventHandler ondurationchange;
+    attribute EventHandler onemptied;
+    attribute EventHandler onended;
+    attribute EventHandler onerror;
+    attribute EventHandler onfocus;
+    attribute EventHandler onhashchange;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler oninput;
+    attribute EventHandler oninvalid;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onkeydown;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onkeypress;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onkeyup;
+    attribute EventHandler onload;
+    attribute EventHandler onloadeddata;
+    attribute EventHandler onloadedmetadata;
+    attribute EventHandler onloadstart;
+    attribute EventHandler onmessage;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousedown;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseenter;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseleave;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousemove;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseout;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseover;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseup;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousewheel;
+    attribute EventHandler onoffline;
+    attribute EventHandler ononline;
+    attribute EventHandler onpagehide;
+    attribute EventHandler onpageshow;
+    attribute EventHandler onpause;
+    attribute EventHandler onplay;
+    attribute EventHandler onplaying;
+    attribute EventHandler onpopstate;
+    attribute EventHandler onprogress;
+    attribute EventHandler onratechange;
+    attribute EventHandler onresize;
+    attribute EventHandler onscroll;
+    attribute EventHandler onseeked;
+    attribute EventHandler onseeking;
+    attribute EventHandler onselect;
+    attribute EventHandler onstalled;
+    attribute EventHandler onstorage;
+    attribute EventHandler onsubmit;
+    attribute EventHandler onsuspend;
+    attribute EventHandler ontimeupdate;
+    attribute EventHandler onunload;
+    attribute EventHandler onvolumechange;
+    attribute EventHandler onwaiting;
 
     // Not implemented yet.
-    // attribute EventListener onafterprint;
-    // attribute EventListener onbeforeprint;
-    // attribute EventListener onreadystatechange;
-    // attribute EventListener onredo;
-    // attribute EventListener onshow;
-    // attribute EventListener onundo;
+    // attribute EventHandler onafterprint;
+    // attribute EventHandler onbeforeprint;
+    // attribute EventHandler onreadystatechange;
+    // attribute EventHandler onredo;
+    // attribute EventHandler onshow;
+    // attribute EventHandler onundo;
 
     // Webkit extensions
-    attribute EventListener onreset;
-    attribute EventListener onsearch;
-    attribute EventListener onwebkitanimationend;
-    attribute EventListener onwebkitanimationiteration;
-    attribute EventListener onwebkitanimationstart;
-    attribute EventListener onwebkittransitionend;
-    attribute EventListener ontransitionend;
-    [Conditional=ORIENTATION_EVENTS] attribute EventListener onorientationchange;
-    [EnabledAtRuntime=touch] attribute EventListener ontouchstart;
-    [EnabledAtRuntime=touch] attribute EventListener ontouchmove;
-    [EnabledAtRuntime=touch] attribute EventListener ontouchend;
-    [EnabledAtRuntime=touch] attribute EventListener ontouchcancel;
+    attribute EventHandler onreset;
+    attribute EventHandler onsearch;
+    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=deviceMotion] attribute EventListener ondevicemotion;
-    [EnabledAtRuntime=deviceOrientation] attribute EventListener ondeviceorientation;
+    [EnabledAtRuntime=deviceMotion] attribute EventHandler ondevicemotion;
+    [EnabledAtRuntime=deviceOrientation] attribute EventHandler ondeviceorientation;
+
+    [DeprecateAs=CaptureEvents] void captureEvents();
+    [DeprecateAs=ReleaseEvents] void releaseEvents();
 
     // Additional constructors.
     attribute TransitionEventConstructor WebKitTransitionEvent;
@@ -300,9 +289,15 @@
     [EnabledAtRuntime=scriptedSpeech] attribute SpeechRecognitionConstructor webkitSpeechRecognition;
     [EnabledAtRuntime=scriptedSpeech] attribute SpeechRecognitionErrorConstructor webkitSpeechRecognitionError;
     [EnabledAtRuntime=scriptedSpeech] attribute SpeechRecognitionEventConstructor webkitSpeechRecognitionEvent;
-    attribute ShadowRootConstructor WebKitShadowRoot;
     [Conditional=WEB_AUDIO] attribute PannerNodeConstructor webkitAudioPannerNode;
 
+    // Prefixed ShadowRoot constructor should be phased out eventually, but for the moment it must be always exposed.
+    // Unprefixed ShadowRoot constructor should be visible when the feature flag is enabled.
+    // FIXME: When it's ready to remove WebKitShadowRoot, get rid of both constructors from Window.idl and remove
+    // [NoInterfaceObject] from ShadowRoot interface definition.
+    [EnabledAtRuntime=ShadowDOM] attribute ShadowRootConstructor ShadowRoot;
+    [MeasureAs=PrefixedShadowRootConstructor] attribute ShadowRootConstructor WebKitShadowRoot;
+
     // window.toString() requires special handling in V8
     [DoNotCheckSignature, DoNotCheckSecurity, Custom, NotEnumerable] DOMString toString();
 
@@ -310,5 +305,6 @@
     [Custom, NotEnumerable] getter Window (DOMString name);
 };
 
+Window implements ImageBitmapFactories;
 Window implements WindowTimers;
 Window implements WindowBase64;
diff --git a/core/scripts/action_derivedsourcesallinone.py b/core/scripts/action_derivedsourcesallinone.py
index bac8081..fec5088 100644
--- a/core/scripts/action_derivedsourcesallinone.py
+++ b/core/scripts/action_derivedsourcesallinone.py
@@ -54,7 +54,7 @@
 copyrightTemplate = """/*
  * THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT.
  *
- * This file was generated by the make_jni_lists.py script.
+ * This file was generated by the action_derivedsourcesallinone.py script.
  *
  * Copyright (C) 2009 Google Inc.  All rights reserved.
  *
diff --git a/core/scripts/make_style_builder.py b/core/scripts/make_style_builder.py
index bdad99e..b408c94 100755
--- a/core/scripts/make_style_builder.py
+++ b/core/scripts/make_style_builder.py
@@ -38,10 +38,7 @@
     class_name = 'StyleBuilder'
 
     valid_values = {
-        'apply_type': ['default', 'length'],
-        'use_none': [True, False],
-        'use_intrinsic': [True, False],
-        'use_auto': [True, False],
+        'svg': [True, False],
         'custom_all': [True, False],
         'custom_initial': [True, False],
         'custom_inherit': [True, False],
@@ -49,9 +46,10 @@
     }
     defaults = {
         'condition': None,
-        'apply_type': 'default',
         'name_for_methods': None,
         'use_handlers_for': None,
+        'svg': False,
+        'converter': None,
 # These depend on property name by default
         'type_name': None,
         'getter': None,
@@ -63,10 +61,6 @@
         'custom_initial': False,
         'custom_inherit': False,
         'custom_value': False,
-# For the length apply type. Will get moved out to StyleBuilderFunctions.cpp.tmpl
-        'use_none': False,
-        'use_intrinsic': False,
-        'use_auto': False,
     }
 
     def __init__(self, in_files, enabled_conditions):
diff --git a/core/scripts/make_style_shorthands.py b/core/scripts/make_style_shorthands.py
index db5d188..c73de2f 100644
--- a/core/scripts/make_style_shorthands.py
+++ b/core/scripts/make_style_shorthands.py
@@ -40,6 +40,7 @@
 
     defaults = {
         'longhands': "",
+        'runtimeEnabledShorthand': None,
     }
 
     def __init__(self, in_files, enabled_conditions):
@@ -61,6 +62,9 @@
                 longhand = self._create_css_property_name_enum_value(longhand)
                 property["camel_case_longhands"].append(longhand)
                 self._longhand_dictionary[longhand].append(property)
+            if property["runtimeEnabledShorthand"] is not None:
+                lowerFirstConditional = self._lower_first(property["runtimeEnabledShorthand"])
+                property["runtime_conditional_getter"] = "%sEnabled" % lowerFirstConditional
         self._properties = dict((property["property_id"], property) for property in self._properties)
 
 # FIXME: some of these might be better in a utils file
@@ -70,6 +74,11 @@
     def _create_css_property_name_enum_value(self, property_name):
         return "CSSProperty" + property_name
 
+    def _lower_first(self, string):
+        lowered = string[0].lower() + string[1:]
+        lowered = lowered.replace("cSS", "css")
+        return lowered
+
     @template_expander.use_jinja("StylePropertyShorthand.cpp.tmpl")
     def generate_style_property_shorthand_cpp(self):
         return {
diff --git a/core/svg/SVGDescElement.idl b/core/svg/SVGDescElement.idl
index 70a5033..701fbe3 100644
--- a/core/svg/SVGDescElement.idl
+++ b/core/svg/SVGDescElement.idl
@@ -23,6 +23,6 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGDescElement : SVGStyledElement {
+interface SVGDescElement : SVGElement {
 };
 
diff --git a/core/svg/SVGElement.idl b/core/svg/SVGElement.idl
index 7e45efb..26d6c95 100644
--- a/core/svg/SVGElement.idl
+++ b/core/svg/SVGElement.idl
@@ -23,12 +23,16 @@
 [
     CustomToV8
 ] interface SVGElement : Element {
-    [Reflect] attribute DOMString id;
     [TreatNullAs=NullString] attribute DOMString xmlbase;
     readonly attribute SVGSVGElement ownerSVGElement;
     readonly attribute SVGElement viewportElement;
 
     attribute DOMString xmllang;
     attribute DOMString xmlspace;
+
+    readonly attribute SVGAnimatedString className;
+    readonly attribute CSSStyleDeclaration style;
+
+    CSSValue getPresentationAttribute([Default=Undefined] optional DOMString name);
 };
 
diff --git a/core/svg/SVGElementInstance.idl b/core/svg/SVGElementInstance.idl
index 3fbf3b7..4344913 100644
--- a/core/svg/SVGElementInstance.idl
+++ b/core/svg/SVGElementInstance.idl
@@ -36,46 +36,46 @@
     readonly attribute SVGElementInstance nextSibling;
 
     // EventTarget
-    [NotEnumerable] attribute EventListener onabort;
-    [NotEnumerable] attribute EventListener onblur;
-    [NotEnumerable] attribute EventListener onchange;
-    [NotEnumerable] attribute EventListener onclick;
-    [NotEnumerable] attribute EventListener oncontextmenu;
-    [NotEnumerable] attribute EventListener ondblclick;
-    [NotEnumerable] attribute EventListener onerror;
-    [NotEnumerable] attribute EventListener onfocus;
-    [NotEnumerable] attribute EventListener oninput;
-    [NotEnumerable] attribute EventListener onkeydown;
-    [NotEnumerable] attribute EventListener onkeypress;
-    [NotEnumerable] attribute EventListener onkeyup;
-    [NotEnumerable] attribute EventListener onload;
-    [NotEnumerable] attribute EventListener onmousedown;
-    [NotEnumerable] attribute EventListener onmouseenter;
-    [NotEnumerable] attribute EventListener onmouseleave;
-    [NotEnumerable] attribute EventListener onmousemove;
-    [NotEnumerable] attribute EventListener onmouseout;
-    [NotEnumerable] attribute EventListener onmouseover;
-    [NotEnumerable] attribute EventListener onmouseup;
-    [NotEnumerable] attribute EventListener onmousewheel;
-    [NotEnumerable] attribute EventListener onbeforecut;
-    [NotEnumerable] attribute EventListener oncut;
-    [NotEnumerable] attribute EventListener onbeforecopy;
-    [NotEnumerable] attribute EventListener oncopy;
-    [NotEnumerable] attribute EventListener onbeforepaste;
-    [NotEnumerable] attribute EventListener onpaste;
-    [NotEnumerable] attribute EventListener ondragenter;
-    [NotEnumerable] attribute EventListener ondragover;
-    [NotEnumerable] attribute EventListener ondragleave;
-    [NotEnumerable] attribute EventListener ondrop;
-    [NotEnumerable] attribute EventListener ondragstart;
-    [NotEnumerable] attribute EventListener ondrag;
-    [NotEnumerable] attribute EventListener ondragend;
-    [NotEnumerable] attribute EventListener onreset;
-    [NotEnumerable] attribute EventListener onresize;
-    [NotEnumerable] attribute EventListener onscroll;
-    [NotEnumerable] attribute EventListener onsearch;
-    [NotEnumerable] attribute EventListener onselect;
-    [NotEnumerable] attribute EventListener onselectstart;
-    [NotEnumerable] attribute EventListener onsubmit;
-    [NotEnumerable] attribute EventListener onunload;
+    [NotEnumerable] attribute EventHandler onabort;
+    [NotEnumerable] attribute EventHandler onblur;
+    [NotEnumerable] attribute EventHandler onchange;
+    [NotEnumerable] attribute EventHandler onclick;
+    [NotEnumerable] attribute EventHandler oncontextmenu;
+    [NotEnumerable] attribute EventHandler ondblclick;
+    [NotEnumerable] attribute EventHandler onerror;
+    [NotEnumerable] attribute EventHandler onfocus;
+    [NotEnumerable] attribute EventHandler oninput;
+    [NotEnumerable] attribute EventHandler onkeydown;
+    [NotEnumerable] attribute EventHandler onkeypress;
+    [NotEnumerable] attribute EventHandler onkeyup;
+    [NotEnumerable] attribute EventHandler onload;
+    [NotEnumerable] attribute EventHandler onmousedown;
+    [NotEnumerable] attribute EventHandler onmouseenter;
+    [NotEnumerable] attribute EventHandler onmouseleave;
+    [NotEnumerable] attribute EventHandler onmousemove;
+    [NotEnumerable] attribute EventHandler onmouseout;
+    [NotEnumerable] attribute EventHandler onmouseover;
+    [NotEnumerable] attribute EventHandler onmouseup;
+    [NotEnumerable] attribute EventHandler onmousewheel;
+    [NotEnumerable] attribute EventHandler onbeforecut;
+    [NotEnumerable] attribute EventHandler oncut;
+    [NotEnumerable] attribute EventHandler onbeforecopy;
+    [NotEnumerable] attribute EventHandler oncopy;
+    [NotEnumerable] attribute EventHandler onbeforepaste;
+    [NotEnumerable] attribute EventHandler onpaste;
+    [NotEnumerable] attribute EventHandler ondragenter;
+    [NotEnumerable] attribute EventHandler ondragover;
+    [NotEnumerable] attribute EventHandler ondragleave;
+    [NotEnumerable] attribute EventHandler ondrop;
+    [NotEnumerable] attribute EventHandler ondragstart;
+    [NotEnumerable] attribute EventHandler ondrag;
+    [NotEnumerable] attribute EventHandler ondragend;
+    [NotEnumerable] attribute EventHandler onreset;
+    [NotEnumerable] attribute EventHandler onresize;
+    [NotEnumerable] attribute EventHandler onscroll;
+    [NotEnumerable] attribute EventHandler onsearch;
+    [NotEnumerable] attribute EventHandler onselect;
+    [NotEnumerable] attribute EventHandler onselectstart;
+    [NotEnumerable] attribute EventHandler onsubmit;
+    [NotEnumerable] attribute EventHandler onunload;
 };
diff --git a/core/svg/SVGFEBlendElement.idl b/core/svg/SVGFEBlendElement.idl
index 66925d0..fc3abe6 100644
--- a/core/svg/SVGFEBlendElement.idl
+++ b/core/svg/SVGFEBlendElement.idl
@@ -25,7 +25,7 @@
 
 [
     DoNotCheckConstants
-] interface SVGFEBlendElement : SVGStyledElement {
+] interface SVGFEBlendElement : SVGElement {
     // Blend Mode Types
     const unsigned short SVG_FEBLEND_MODE_UNKNOWN  = 0;
     const unsigned short SVG_FEBLEND_MODE_NORMAL   = 1;
diff --git a/core/svg/SVGFEColorMatrixElement.idl b/core/svg/SVGFEColorMatrixElement.idl
index 93d064e..4d5504b 100644
--- a/core/svg/SVGFEColorMatrixElement.idl
+++ b/core/svg/SVGFEColorMatrixElement.idl
@@ -25,7 +25,7 @@
 
 [
     DoNotCheckConstants
-] interface SVGFEColorMatrixElement : SVGStyledElement {
+] interface SVGFEColorMatrixElement : SVGElement {
     // Color Matrix Types
     const unsigned short SVG_FECOLORMATRIX_TYPE_UNKNOWN          = 0;
     const unsigned short SVG_FECOLORMATRIX_TYPE_MATRIX           = 1;
diff --git a/core/svg/SVGFEComponentTransferElement.idl b/core/svg/SVGFEComponentTransferElement.idl
index 48f91da..a91f58b 100644
--- a/core/svg/SVGFEComponentTransferElement.idl
+++ b/core/svg/SVGFEComponentTransferElement.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFEComponentTransferElement : SVGStyledElement {
+interface SVGFEComponentTransferElement : SVGElement {
     readonly attribute SVGAnimatedString in1;
 };
 
diff --git a/core/svg/SVGFECompositeElement.idl b/core/svg/SVGFECompositeElement.idl
index 264aaae..986e4e1 100644
--- a/core/svg/SVGFECompositeElement.idl
+++ b/core/svg/SVGFECompositeElement.idl
@@ -25,7 +25,7 @@
 
 [
     DoNotCheckConstants
-] interface SVGFECompositeElement : SVGStyledElement {
+] interface SVGFECompositeElement : SVGElement {
     // Composite Operators
     const unsigned short SVG_FECOMPOSITE_OPERATOR_UNKNOWN    = 0;
     const unsigned short SVG_FECOMPOSITE_OPERATOR_OVER       = 1;
diff --git a/core/svg/SVGFEConvolveMatrixElement.idl b/core/svg/SVGFEConvolveMatrixElement.idl
index 0cfcb71..b759230 100644
--- a/core/svg/SVGFEConvolveMatrixElement.idl
+++ b/core/svg/SVGFEConvolveMatrixElement.idl
@@ -25,7 +25,7 @@
 
 [
     DoNotCheckConstants
-] interface SVGFEConvolveMatrixElement : SVGStyledElement {
+] interface SVGFEConvolveMatrixElement : SVGElement {
     // Edge Mode Values
     const unsigned short SVG_EDGEMODE_UNKNOWN   = 0;
     const unsigned short SVG_EDGEMODE_DUPLICATE = 1;
diff --git a/core/svg/SVGFEDiffuseLightingElement.idl b/core/svg/SVGFEDiffuseLightingElement.idl
index a1f5012..b4ebb2b 100644
--- a/core/svg/SVGFEDiffuseLightingElement.idl
+++ b/core/svg/SVGFEDiffuseLightingElement.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFEDiffuseLightingElement : SVGStyledElement {
+interface SVGFEDiffuseLightingElement : SVGElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber surfaceScale;
     readonly attribute SVGAnimatedNumber diffuseConstant;
diff --git a/core/svg/SVGFEDisplacementMapElement.idl b/core/svg/SVGFEDisplacementMapElement.idl
index 40fc6e7..74ad074 100644
--- a/core/svg/SVGFEDisplacementMapElement.idl
+++ b/core/svg/SVGFEDisplacementMapElement.idl
@@ -25,7 +25,7 @@
 
 [
     DoNotCheckConstants
-] interface SVGFEDisplacementMapElement : SVGStyledElement {
+] interface SVGFEDisplacementMapElement : SVGElement {
     // Channel Selectors
     const unsigned short SVG_CHANNEL_UNKNOWN = 0;
     const unsigned short SVG_CHANNEL_R       = 1;
diff --git a/core/svg/SVGFEDropShadowElement.idl b/core/svg/SVGFEDropShadowElement.idl
index a3f3d85..8e7f36f 100644
--- a/core/svg/SVGFEDropShadowElement.idl
+++ b/core/svg/SVGFEDropShadowElement.idl
@@ -17,7 +17,7 @@
  * Boston, MA 02110-1301, USA.
  */
 
-interface SVGFEDropShadowElement : SVGStyledElement {
+interface SVGFEDropShadowElement : SVGElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber dx;
     readonly attribute SVGAnimatedNumber dy;
diff --git a/core/svg/SVGFEFloodElement.idl b/core/svg/SVGFEFloodElement.idl
index 3504083..5334c50 100644
--- a/core/svg/SVGFEFloodElement.idl
+++ b/core/svg/SVGFEFloodElement.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFEFloodElement : SVGStyledElement {
+interface SVGFEFloodElement : SVGElement {
 };
 
 SVGFEFloodElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFEGaussianBlurElement.idl b/core/svg/SVGFEGaussianBlurElement.idl
index c257049..53a06f3 100644
--- a/core/svg/SVGFEGaussianBlurElement.idl
+++ b/core/svg/SVGFEGaussianBlurElement.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFEGaussianBlurElement : SVGStyledElement {
+interface SVGFEGaussianBlurElement : SVGElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber stdDeviationX;
     readonly attribute SVGAnimatedNumber stdDeviationY;
diff --git a/core/svg/SVGFEImageElement.idl b/core/svg/SVGFEImageElement.idl
index 9cf092e..40e4191 100644
--- a/core/svg/SVGFEImageElement.idl
+++ b/core/svg/SVGFEImageElement.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFEImageElement : SVGStyledElement {
+interface SVGFEImageElement : SVGElement {
     readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
 };
 
diff --git a/core/svg/SVGFEMergeElement.idl b/core/svg/SVGFEMergeElement.idl
index 91d26f6..f4d8558 100644
--- a/core/svg/SVGFEMergeElement.idl
+++ b/core/svg/SVGFEMergeElement.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFEMergeElement : SVGStyledElement {
+interface SVGFEMergeElement : SVGElement {
 };
 
 SVGFEMergeElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFEMorphologyElement.idl b/core/svg/SVGFEMorphologyElement.idl
index 168b4ef..550c368 100644
--- a/core/svg/SVGFEMorphologyElement.idl
+++ b/core/svg/SVGFEMorphologyElement.idl
@@ -25,7 +25,7 @@
 
 [
     DoNotCheckConstants
-] interface SVGFEMorphologyElement : SVGStyledElement {
+] interface SVGFEMorphologyElement : SVGElement {
     // Morphology Operators
     const unsigned short SVG_MORPHOLOGY_OPERATOR_UNKNOWN  = 0;
     const unsigned short SVG_MORPHOLOGY_OPERATOR_ERODE    = 1;
diff --git a/core/svg/SVGFEOffsetElement.idl b/core/svg/SVGFEOffsetElement.idl
index d0c6829..1b6460a 100644
--- a/core/svg/SVGFEOffsetElement.idl
+++ b/core/svg/SVGFEOffsetElement.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFEOffsetElement : SVGStyledElement {
+interface SVGFEOffsetElement : SVGElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber dx;
     readonly attribute SVGAnimatedNumber dy;
diff --git a/core/svg/SVGFESpecularLightingElement.idl b/core/svg/SVGFESpecularLightingElement.idl
index 015c239..00b609e 100644
--- a/core/svg/SVGFESpecularLightingElement.idl
+++ b/core/svg/SVGFESpecularLightingElement.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFESpecularLightingElement : SVGStyledElement {
+interface SVGFESpecularLightingElement : SVGElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber surfaceScale;
     readonly attribute SVGAnimatedNumber specularConstant;
diff --git a/core/svg/SVGFETileElement.idl b/core/svg/SVGFETileElement.idl
index a9fa454..c384323 100644
--- a/core/svg/SVGFETileElement.idl
+++ b/core/svg/SVGFETileElement.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFETileElement : SVGStyledElement {
+interface SVGFETileElement : SVGElement {
     readonly attribute SVGAnimatedString in1;
 };
 
diff --git a/core/svg/SVGFETurbulenceElement.idl b/core/svg/SVGFETurbulenceElement.idl
index d786498..b914739 100644
--- a/core/svg/SVGFETurbulenceElement.idl
+++ b/core/svg/SVGFETurbulenceElement.idl
@@ -25,7 +25,7 @@
 
 [
     DoNotCheckConstants
-] interface SVGFETurbulenceElement : SVGStyledElement {
+] interface SVGFETurbulenceElement : SVGElement {
     // Turbulence Types
     const unsigned short SVG_TURBULENCE_TYPE_UNKNOWN      = 0;
     const unsigned short SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
diff --git a/core/svg/SVGFilterElement.idl b/core/svg/SVGFilterElement.idl
index d982992..7934751 100644
--- a/core/svg/SVGFilterElement.idl
+++ b/core/svg/SVGFilterElement.idl
@@ -24,7 +24,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFilterElement : SVGStyledElement {
+interface SVGFilterElement : SVGElement {
     readonly attribute SVGAnimatedEnumeration filterUnits;
     readonly attribute SVGAnimatedEnumeration primitiveUnits;
     readonly attribute SVGAnimatedLength      x;
diff --git a/core/svg/SVGGlyphRefElement.idl b/core/svg/SVGGlyphRefElement.idl
index a9d07ca..e10bf7b 100644
--- a/core/svg/SVGGlyphRefElement.idl
+++ b/core/svg/SVGGlyphRefElement.idl
@@ -19,7 +19,7 @@
 
 [
     Conditional=SVG_FONTS
-] interface SVGGlyphRefElement : SVGStyledElement {
+] interface SVGGlyphRefElement : SVGElement {
     // FIXME: Use [Reflect] after https://bugs.webkit.org/show_bug.cgi?id=64843 is fixed.
     attribute DOMString glyphRef;
     [Reflect] attribute DOMString format;
diff --git a/core/svg/SVGGradientElement.idl b/core/svg/SVGGradientElement.idl
index cba4d69..cc2f00b 100644
--- a/core/svg/SVGGradientElement.idl
+++ b/core/svg/SVGGradientElement.idl
@@ -25,7 +25,7 @@
 
 [
     DoNotCheckConstants
-] interface SVGGradientElement : SVGStyledElement {
+] interface SVGGradientElement : SVGElement {
     // Spread Method Types
     const unsigned short SVG_SPREADMETHOD_UNKNOWN = 0;
     const unsigned short SVG_SPREADMETHOD_PAD     = 1;
diff --git a/core/svg/SVGGraphicsElement.idl b/core/svg/SVGGraphicsElement.idl
index a0585ae..0af2440 100644
--- a/core/svg/SVGGraphicsElement.idl
+++ b/core/svg/SVGGraphicsElement.idl
@@ -28,7 +28,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGGraphicsElement : SVGStyledElement {
+interface SVGGraphicsElement : SVGElement {
     readonly attribute SVGAnimatedTransformList transform;
 
     readonly attribute SVGElement nearestViewportElement;
diff --git a/core/svg/SVGMarkerElement.idl b/core/svg/SVGMarkerElement.idl
index 5ebd240..0918d76 100644
--- a/core/svg/SVGMarkerElement.idl
+++ b/core/svg/SVGMarkerElement.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGMarkerElement : SVGStyledElement {
+interface SVGMarkerElement : SVGElement {
     // Marker Unit Types
     const unsigned short SVG_MARKERUNITS_UNKNOWN        = 0;
     const unsigned short SVG_MARKERUNITS_USERSPACEONUSE = 1;
diff --git a/core/svg/SVGMaskElement.idl b/core/svg/SVGMaskElement.idl
index f24eb2e..22658d5 100644
--- a/core/svg/SVGMaskElement.idl
+++ b/core/svg/SVGMaskElement.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGMaskElement : SVGStyledElement {
+interface SVGMaskElement : SVGElement {
     readonly attribute SVGAnimatedEnumeration maskUnits;
     readonly attribute SVGAnimatedEnumeration maskContentUnits;
 
diff --git a/core/svg/SVGMissingGlyphElement.idl b/core/svg/SVGMissingGlyphElement.idl
index c2b68ad..c0a7974 100644
--- a/core/svg/SVGMissingGlyphElement.idl
+++ b/core/svg/SVGMissingGlyphElement.idl
@@ -25,6 +25,6 @@
 
 [
     Conditional=SVG_FONTS
-] interface SVGMissingGlyphElement : SVGStyledElement {
+] interface SVGMissingGlyphElement : SVGElement {
 };
 
diff --git a/core/svg/SVGPatternElement.idl b/core/svg/SVGPatternElement.idl
index 390fcb6..55aa2e9 100644
--- a/core/svg/SVGPatternElement.idl
+++ b/core/svg/SVGPatternElement.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPatternElement : SVGStyledElement {
+interface SVGPatternElement : SVGElement {
     readonly attribute SVGAnimatedEnumeration   patternUnits;
     readonly attribute SVGAnimatedEnumeration   patternContentUnits;
     readonly attribute SVGAnimatedTransformList patternTransform;
diff --git a/core/svg/SVGStopElement.idl b/core/svg/SVGStopElement.idl
index 63f6411..44da1f9 100644
--- a/core/svg/SVGStopElement.idl
+++ b/core/svg/SVGStopElement.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGStopElement : SVGStyledElement {
+interface SVGStopElement : SVGElement {
     readonly attribute SVGAnimatedNumber offset;
 };
 
diff --git a/core/svg/SVGStyledElement.idl b/core/svg/SVGStyledElement.idl
deleted file mode 100644
index 3b7ee61..0000000
--- a/core/svg/SVGStyledElement.idl
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2007 Rob Buis <rwlbuis@gmail.com>
- * 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.
- */
-
-[
-    NoInterfaceObject
-] interface SVGStyledElement : SVGElement {
-    readonly attribute SVGAnimatedString className;
-    readonly attribute CSSStyleDeclaration style;
-
-    CSSValue getPresentationAttribute([Default=Undefined] optional DOMString name);
-};
-
diff --git a/core/svg/SVGSymbolElement.idl b/core/svg/SVGSymbolElement.idl
index 4a69122..aeb7d80 100644
--- a/core/svg/SVGSymbolElement.idl
+++ b/core/svg/SVGSymbolElement.idl
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGSymbolElement : SVGStyledElement {
+interface SVGSymbolElement : SVGElement {
 };
 
 SVGSymbolElement implements SVGExternalResourcesRequired;
diff --git a/core/svg/SVGTitleElement.idl b/core/svg/SVGTitleElement.idl
index cd3adf9..4894221 100644
--- a/core/svg/SVGTitleElement.idl
+++ b/core/svg/SVGTitleElement.idl
@@ -23,6 +23,6 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGTitleElement : SVGStyledElement {
+interface SVGTitleElement : SVGElement {
 };
 
diff --git a/modules/filesystem/EntryArray.idl b/core/testing/GCObservation.idl
similarity index 82%
copy from modules/filesystem/EntryArray.idl
copy to core/testing/GCObservation.idl
index 2e637f4..6c2d8e8 100644
--- a/modules/filesystem/EntryArray.idl
+++ b/core/testing/GCObservation.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 Google Inc. All rights reserved.
+ * 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
@@ -28,9 +28,10 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    NoInterfaceObject
-] interface EntryArray {
-    readonly attribute unsigned long length;
-    getter Entry item([IsIndex] unsigned long index);
+interface GCObservation {
+    // Technically, this is true if the object was "near death"; the
+    // object may have been kept alive through a weak handle. Having
+    // been collected is the common case, though.
+    readonly attribute boolean wasCollected;
 };
+
diff --git a/core/testing/Internals.idl b/core/testing/Internals.idl
index cabcf1f..d521c04 100644
--- a/core/testing/Internals.idl
+++ b/core/testing/Internals.idl
@@ -29,6 +29,8 @@
 ] interface Internals {
     DOMString address(Node node);
 
+    GCObservation observeGC(any observed);
+
     [RaisesException] DOMString elementRenderTreeAsText(Element element);
     boolean isPreloaded(DOMString url);
     boolean isLoadingFromMemoryCache(DOMString url);
@@ -213,7 +215,6 @@
     [RaisesException] DOMString pageSizeAndMarginsInPixels(long pageIndex, long width, long height, long marginTop, long marginRight, long marginBottom, long marginLeft);
 
     [RaisesException] void setDeviceScaleFactor(float scaleFactor);
-    [RaisesException] void setPageScaleFactor(float scaleFactor, long x, long y);
 
     [RaisesException] void setIsCursorVisible(Document document, boolean isVisible);
 
diff --git a/core/testing/LayerRectList.idl b/core/testing/LayerRectList.idl
index ee608cf..9dd2ca7 100644
--- a/core/testing/LayerRectList.idl
+++ b/core/testing/LayerRectList.idl
@@ -31,6 +31,6 @@
 [
 ] interface LayerRectList {
     readonly attribute unsigned long length;
-    getter LayerRect item([IsIndex,Default=Undefined] optional unsigned long index);
+    getter LayerRect item(unsigned long index);
 };
 
diff --git a/core/workers/AbstractWorker.idl b/core/workers/AbstractWorker.idl
index 2b6e1f9..9c13c6f 100644
--- a/core/workers/AbstractWorker.idl
+++ b/core/workers/AbstractWorker.idl
@@ -33,6 +33,6 @@
     NoInterfaceObject,
     LegacyImplementedInBaseClass
 ] interface AbstractWorker {
-    attribute EventListener onerror;
+    attribute EventHandler onerror;
 };
 
diff --git a/core/workers/DedicatedWorkerGlobalScope.idl b/core/workers/DedicatedWorkerGlobalScope.idl
index 7cb9399..659a5f5 100644
--- a/core/workers/DedicatedWorkerGlobalScope.idl
+++ b/core/workers/DedicatedWorkerGlobalScope.idl
@@ -32,6 +32,6 @@
     GlobalContext=DedicatedWorkerGlobalScope
 ] interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
     [Custom, RaisesException] void postMessage(any message, optional Array messagePorts);
-    attribute EventListener onmessage;
+    attribute EventHandler onmessage;
 };
 
diff --git a/core/workers/SharedWorkerGlobalScope.idl b/core/workers/SharedWorkerGlobalScope.idl
index 4c930a4..dcb59b8 100644
--- a/core/workers/SharedWorkerGlobalScope.idl
+++ b/core/workers/SharedWorkerGlobalScope.idl
@@ -32,6 +32,6 @@
     GlobalContext=SharedWorkerGlobalScope
 ] interface SharedWorkerGlobalScope : WorkerGlobalScope {
     readonly attribute DOMString name;
-             attribute EventListener onconnect;
+             attribute EventHandler onconnect;
 };
 
diff --git a/core/workers/Worker.idl b/core/workers/Worker.idl
index 34aa4be..40567a7 100644
--- a/core/workers/Worker.idl
+++ b/core/workers/Worker.idl
@@ -32,7 +32,7 @@
     ActiveDOMObject
 ] interface Worker : EventTarget {
 
-    attribute EventListener onmessage;
+    attribute EventHandler onmessage;
 
     [Custom, RaisesException] void postMessage(SerializedScriptValue message, optional Array messagePorts);
     void terminate();
diff --git a/core/workers/WorkerGlobalScope.idl b/core/workers/WorkerGlobalScope.idl
index e395d34..87c3594 100644
--- a/core/workers/WorkerGlobalScope.idl
+++ b/core/workers/WorkerGlobalScope.idl
@@ -34,7 +34,7 @@
     [Replaceable] readonly attribute WorkerGlobalScope self;
     [Replaceable] readonly attribute WorkerLocation location;
     void close();
-    attribute EventListener onerror;
+    attribute EventHandler onerror;
 
     // WorkerUtils
     [Custom] void importScripts(/*[Variadic] in DOMString urls */);
diff --git a/core/xml/XMLHttpRequest.idl b/core/xml/XMLHttpRequest.idl
index bad83ca..2c4f120 100644
--- a/core/xml/XMLHttpRequest.idl
+++ b/core/xml/XMLHttpRequest.idl
@@ -45,16 +45,16 @@
 ] interface XMLHttpRequest : EventTarget {
     // From XMLHttpRequestEventTarget
     // event handler attributes
-    attribute EventListener onabort;
-    attribute EventListener onerror;
-    attribute EventListener onload;
-    attribute EventListener onloadend;
-    attribute EventListener onloadstart;
-    attribute EventListener onprogress;
-    attribute EventListener ontimeout;
+    attribute EventHandler onabort;
+    attribute EventHandler onerror;
+    attribute EventHandler onload;
+    attribute EventHandler onloadend;
+    attribute EventHandler onloadstart;
+    attribute EventHandler onprogress;
+    attribute EventHandler ontimeout;
 
     // event handler attributes
-    attribute EventListener onreadystatechange;
+    attribute EventHandler onreadystatechange;
 
     // state
     const unsigned short UNSENT = 0;
diff --git a/core/xml/XMLHttpRequestUpload.idl b/core/xml/XMLHttpRequestUpload.idl
index d2170ed..eec9988 100644
--- a/core/xml/XMLHttpRequestUpload.idl
+++ b/core/xml/XMLHttpRequestUpload.idl
@@ -29,11 +29,11 @@
 interface XMLHttpRequestUpload : EventTarget {
     // From XMLHttpRequestEventTarget
     // event handler attributes
-    attribute EventListener onabort;
-    attribute EventListener onerror;
-    attribute EventListener onload;
-    attribute EventListener onloadend;
-    attribute EventListener onloadstart;
-    attribute EventListener onprogress;
+    attribute EventHandler onabort;
+    attribute EventHandler onerror;
+    attribute EventHandler onload;
+    attribute EventHandler onloadend;
+    attribute EventHandler onloadstart;
+    attribute EventHandler onprogress;
 };
 
diff --git a/core/xml/XSLTProcessor.idl b/core/xml/XSLTProcessor.idl
index 5cef21e..f552ed1 100644
--- a/core/xml/XSLTProcessor.idl
+++ b/core/xml/XSLTProcessor.idl
@@ -36,8 +36,8 @@
 ] interface XSLTProcessor {
 
     void importStylesheet([Default=Undefined] optional Node stylesheet);
-    DocumentFragment transformToFragment([Default=Undefined] optional Node source, [Default=Undefined] optional Document docVal);
-    Document transformToDocument([Default=Undefined] optional Node source);
+    [CustomElementCallbacks=Enable] DocumentFragment transformToFragment([Default=Undefined] optional Node source, [Default=Undefined] optional Document docVal);
+    [CustomElementCallbacks=Enable] Document transformToDocument([Default=Undefined] optional Node source);
 
     [Custom] void setParameter(DOMString namespaceURI, DOMString localName, DOMString value);
     [Custom, TreatReturnedNullStringAs=Undefined] DOMString getParameter(DOMString namespaceURI, DOMString localName);
diff --git a/modules/README b/modules/README
index 57d4efd..e8fce55 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: 1329
+Current revision: 1350
diff --git a/modules/filesystem/EntryArray.idl b/modules/crypto/RsaKeyGenParams.idl
similarity index 86%
copy from modules/filesystem/EntryArray.idl
copy to modules/crypto/RsaKeyGenParams.idl
index 2e637f4..0ec9d21 100644
--- a/modules/filesystem/EntryArray.idl
+++ b/modules/crypto/RsaKeyGenParams.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 Google Inc. All rights reserved.
+ * 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
@@ -29,8 +29,8 @@
  */
 
 [
-    NoInterfaceObject
-] interface EntryArray {
-    readonly attribute unsigned long length;
-    getter Entry item([IsIndex] unsigned long index);
+    NoInterfaceObject,
+] interface RsaKeyGenParams : Algorithm {
+    readonly attribute unsigned long modulusLength;
+    readonly attribute Uint8Array publicExponent;
 };
diff --git a/modules/filesystem/EntryArray.idl b/modules/crypto/RsaSsaParams.idl
similarity index 87%
rename from modules/filesystem/EntryArray.idl
rename to modules/crypto/RsaSsaParams.idl
index 2e637f4..f289529 100644
--- a/modules/filesystem/EntryArray.idl
+++ b/modules/crypto/RsaSsaParams.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 Google Inc. All rights reserved.
+ * 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
@@ -29,8 +29,7 @@
  */
 
 [
-    NoInterfaceObject
-] interface EntryArray {
-    readonly attribute unsigned long length;
-    getter Entry item([IsIndex] unsigned long index);
+    NoInterfaceObject,
+] interface RsaSsaParams : Algorithm {
+    readonly attribute Algorithm hash;
 };
diff --git a/modules/crypto/SubtleCrypto.idl b/modules/crypto/SubtleCrypto.idl
index d8f93f4..b283fe2 100644
--- a/modules/crypto/SubtleCrypto.idl
+++ b/modules/crypto/SubtleCrypto.idl
@@ -31,12 +31,13 @@
 [
     NoInterfaceObject,
 ] interface SubtleCrypto {
-    [RaisesException] CryptoOperation encrypt(Dictionary algorithm);
-    [RaisesException] CryptoOperation decrypt(Dictionary algorithm);
-    [RaisesException] CryptoOperation sign(Dictionary algorithm);
-    [RaisesException, ImplementedAs=verifySignature] CryptoOperation verify(Dictionary algorithm);
+    [RaisesException] CryptoOperation encrypt(Dictionary algorithm, Key key);
+    [RaisesException] CryptoOperation decrypt(Dictionary algorithm, Key key);
+    [RaisesException] CryptoOperation sign(Dictionary algorithm, Key key);
+    [RaisesException, ImplementedAs=verifySignature] CryptoOperation verify(Dictionary algorithm, Key key, ArrayBufferView signature);
     [RaisesException] CryptoOperation digest(Dictionary algorithm);
 
+    [RaisesException] any generateKey(Dictionary algorithm, boolean extractable, DOMString[] keyUsages);
     [RaisesException] any importKey(DOMString format, ArrayBufferView keyData, Dictionary algorithm, boolean extractable, DOMString[] keyUsages);
 };
 
diff --git a/modules/filesystem/EntryArray.idl b/modules/encoding/TextDecoder.idl
similarity index 77%
copy from modules/filesystem/EntryArray.idl
copy to modules/encoding/TextDecoder.idl
index 2e637f4..576d298 100644
--- a/modules/filesystem/EntryArray.idl
+++ b/modules/encoding/TextDecoder.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 Google Inc. All rights reserved.
+ * 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
@@ -29,8 +29,11 @@
  */
 
 [
-    NoInterfaceObject
-] interface EntryArray {
-    readonly attribute unsigned long length;
-    getter Entry item([IsIndex] unsigned long index);
+    EnabledAtRuntime=EncodingAPI,
+    GlobalContext=Window&WorkerGlobalScope,
+    Constructor([Default=NullString] optional DOMString label, optional Dictionary options),
+    ConstructorRaisesException
+] interface TextDecoder {
+    readonly attribute DOMString encoding;
+    [RaisesException] DOMString decode(optional ArrayBufferView input, optional Dictionary options);
 };
diff --git a/modules/filesystem/EntryArray.idl b/modules/encoding/TextEncoder.idl
similarity index 78%
copy from modules/filesystem/EntryArray.idl
copy to modules/encoding/TextEncoder.idl
index 2e637f4..ed63e27 100644
--- a/modules/filesystem/EntryArray.idl
+++ b/modules/encoding/TextEncoder.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 Google Inc. All rights reserved.
+ * 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
@@ -29,8 +29,11 @@
  */
 
 [
-    NoInterfaceObject
-] interface EntryArray {
-    readonly attribute unsigned long length;
-    getter Entry item([IsIndex] unsigned long index);
+    EnabledAtRuntime=EncodingAPI,
+    GlobalContext=Window&WorkerGlobalScope,
+    Constructor([Default=NullString] optional DOMString utfLabel),
+    ConstructorRaisesException
+] interface TextEncoder {
+    readonly attribute DOMString encoding;
+    Uint8Array encode([Default=NullString] optional DOMString input, optional Dictionary options);
 };
diff --git a/modules/encryptedmedia/MediaKeySession.idl b/modules/encryptedmedia/MediaKeySession.idl
index a353455..ad7acae 100644
--- a/modules/encryptedmedia/MediaKeySession.idl
+++ b/modules/encryptedmedia/MediaKeySession.idl
@@ -38,8 +38,8 @@
     [RaisesException] void update(Uint8Array key);
     void close();
 
-    // EventListeners
-    [EnabledAtRuntime=encryptedMedia] attribute EventListener onwebkitkeyadded;
-    [EnabledAtRuntime=encryptedMedia] attribute EventListener onwebkitkeyerror;
-    [EnabledAtRuntime=encryptedMedia] attribute EventListener onwebkitkeymessage;
+    // EventHandlers
+    [EnabledAtRuntime=encryptedMedia] attribute EventHandler onwebkitkeyadded;
+    [EnabledAtRuntime=encryptedMedia] attribute EventHandler onwebkitkeyerror;
+    [EnabledAtRuntime=encryptedMedia] attribute EventHandler onwebkitkeymessage;
 };
diff --git a/modules/filesystem/DirectoryReaderSync.idl b/modules/filesystem/DirectoryReaderSync.idl
index 9821f43..cf4937c 100644
--- a/modules/filesystem/DirectoryReaderSync.idl
+++ b/modules/filesystem/DirectoryReaderSync.idl
@@ -31,5 +31,5 @@
 [
     NoInterfaceObject
 ] interface DirectoryReaderSync {
-    [RaisesException] EntryArraySync readEntries();
+    [RaisesException] EntrySync[] readEntries();
 };
diff --git a/modules/filesystem/EntriesCallback.idl b/modules/filesystem/EntriesCallback.idl
index ef89851..8bed9d5 100644
--- a/modules/filesystem/EntriesCallback.idl
+++ b/modules/filesystem/EntriesCallback.idl
@@ -29,5 +29,5 @@
  */
 
 callback interface EntriesCallback {
-    boolean handleEvent(EntryArray entries);
+    boolean handleEvent(Entry[] entries);
 };
diff --git a/modules/filesystem/EntryArraySync.idl b/modules/filesystem/EntryArraySync.idl
deleted file mode 100644
index e456446..0000000
--- a/modules/filesystem/EntryArraySync.idl
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2010 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.
- */
-
-[
-    NoInterfaceObject
-] interface EntryArraySync {
-    readonly attribute unsigned long length;
-    getter EntrySync item([IsIndex] unsigned long index);
-};
diff --git a/modules/filesystem/FileWriter.idl b/modules/filesystem/FileWriter.idl
index 9216204..2d4b54b 100644
--- a/modules/filesystem/FileWriter.idl
+++ b/modules/filesystem/FileWriter.idl
@@ -50,10 +50,10 @@
     readonly attribute long long position;
     readonly attribute long long length;
 
-             attribute EventListener onwritestart;
-             attribute EventListener onprogress;
-             attribute EventListener onwrite;
-             attribute EventListener onabort;
-             attribute EventListener onerror;
-             attribute EventListener onwriteend;
+             attribute EventHandler onwritestart;
+             attribute EventHandler onprogress;
+             attribute EventHandler onwrite;
+             attribute EventHandler onabort;
+             attribute EventHandler onerror;
+             attribute EventHandler onwriteend;
 };
diff --git a/modules/filesystem/HTMLInputElementFileSystem.idl b/modules/filesystem/HTMLInputElementFileSystem.idl
index fc4a29d..758d6fc 100644
--- a/modules/filesystem/HTMLInputElementFileSystem.idl
+++ b/modules/filesystem/HTMLInputElementFileSystem.idl
@@ -29,6 +29,6 @@
  */
 
 partial interface HTMLInputElement {
-    [EnabledAtRuntime=FileSystem,CallWith=ScriptExecutionContext] readonly attribute EntryArray webkitEntries;
+[EnabledAtRuntime=FileSystem,CallWith=ScriptExecutionContext] readonly attribute Entry[] webkitEntries;
 };
 
diff --git a/modules/indexeddb/IDBDatabase.idl b/modules/indexeddb/IDBDatabase.idl
index 49b6acf..3d81ed2 100644
--- a/modules/indexeddb/IDBDatabase.idl
+++ b/modules/indexeddb/IDBDatabase.idl
@@ -31,10 +31,10 @@
     readonly attribute IDBAny version;
     readonly attribute DOMStringList objectStoreNames;
 
-    attribute EventListener onabort;
-    attribute EventListener onclose;
-    attribute EventListener onerror;
-    attribute EventListener onversionchange;
+    attribute EventHandler onabort;
+    attribute EventHandler onclose;
+    attribute EventHandler onerror;
+    attribute EventHandler onversionchange;
 
     [RaisesException] IDBObjectStore createObjectStore(DOMString name, optional Dictionary options);
     [RaisesException] void deleteObjectStore(DOMString name);
diff --git a/modules/indexeddb/IDBOpenDBRequest.idl b/modules/indexeddb/IDBOpenDBRequest.idl
index 7dbe0d1..a77f28f 100644
--- a/modules/indexeddb/IDBOpenDBRequest.idl
+++ b/modules/indexeddb/IDBOpenDBRequest.idl
@@ -24,6 +24,6 @@
  */
 
 interface IDBOpenDBRequest : IDBRequest {
-    attribute EventListener onblocked;
-    attribute EventListener onupgradeneeded;
+    attribute EventHandler onblocked;
+    attribute EventHandler onupgradeneeded;
 };
diff --git a/modules/indexeddb/IDBRequest.idl b/modules/indexeddb/IDBRequest.idl
index e8f87b8..1faea26 100644
--- a/modules/indexeddb/IDBRequest.idl
+++ b/modules/indexeddb/IDBRequest.idl
@@ -40,6 +40,6 @@
     readonly attribute DOMString readyState;
 
     // Events
-    attribute EventListener onsuccess;
-    attribute EventListener onerror;
+    attribute EventHandler onsuccess;
+    attribute EventHandler onerror;
 };
diff --git a/modules/indexeddb/IDBTransaction.idl b/modules/indexeddb/IDBTransaction.idl
index 9eac27f..1787cb4 100644
--- a/modules/indexeddb/IDBTransaction.idl
+++ b/modules/indexeddb/IDBTransaction.idl
@@ -38,7 +38,7 @@
     [RaisesException] void abort ();
 
     // Events
-    attribute EventListener onabort;
-    attribute EventListener oncomplete;
-    attribute EventListener onerror;
+    attribute EventHandler onabort;
+    attribute EventHandler oncomplete;
+    attribute EventHandler onerror;
 };
diff --git a/modules/mediasource/SourceBuffer.idl b/modules/mediasource/SourceBuffer.idl
index 5099e0d..f254f03 100644
--- a/modules/mediasource/SourceBuffer.idl
+++ b/modules/mediasource/SourceBuffer.idl
@@ -42,11 +42,18 @@
     // Applies an offset to media segment timestamps.
     [SetterRaisesException] attribute double timestampOffset;
 
+    // Presentation timestamp for the start of append window.
+    [SetterRaisesException] attribute double appendWindowStart;
+
+    // Presentation timestamp for the end of append window.
+    [SetterRaisesException] attribute double appendWindowEnd;
+
     // Append segment data.
     [RaisesException] void appendBuffer(ArrayBuffer data);
     [RaisesException] void appendBuffer(ArrayBufferView data);
 
     // Abort the current segment append sequence.
     [RaisesException] void abort();
+    [RaisesException] void remove(double start, double end);
 };
 
diff --git a/modules/mediastream/MediaStream.idl b/modules/mediastream/MediaStream.idl
index 5270472..62d387f 100644
--- a/modules/mediastream/MediaStream.idl
+++ b/modules/mediastream/MediaStream.idl
@@ -44,8 +44,8 @@
     readonly attribute boolean ended;
     void stop();
 
-    attribute EventListener onended;
-    attribute EventListener onaddtrack;
-    attribute EventListener onremovetrack;
+    attribute EventHandler onended;
+    attribute EventHandler onaddtrack;
+    attribute EventHandler onremovetrack;
 };
 
diff --git a/modules/mediastream/MediaStreamTrack.idl b/modules/mediastream/MediaStreamTrack.idl
index c2df9f9..f5d9ea9 100644
--- a/modules/mediastream/MediaStreamTrack.idl
+++ b/modules/mediastream/MediaStreamTrack.idl
@@ -32,9 +32,9 @@
 
     readonly attribute DOMString readyState;
 
-    attribute EventListener onmute;
-    attribute EventListener onunmute;
-    attribute EventListener onended;
+    attribute EventHandler onmute;
+    attribute EventHandler onunmute;
+    attribute EventHandler onended;
 
     [CallWith=ScriptExecutionContext, RaisesException] static void getSources(MediaStreamTrackSourcesCallback callback);
 };
diff --git a/modules/mediastream/RTCDTMFSender.idl b/modules/mediastream/RTCDTMFSender.idl
index c06a48c..375a6a5 100644
--- a/modules/mediastream/RTCDTMFSender.idl
+++ b/modules/mediastream/RTCDTMFSender.idl
@@ -35,5 +35,5 @@
 
     [RaisesException] void insertDTMF(DOMString tones, optional long duration, optional long interToneGap);
 
-    attribute EventListener ontonechange;
+    attribute EventHandler ontonechange;
 };
diff --git a/modules/mediastream/RTCDataChannel.idl b/modules/mediastream/RTCDataChannel.idl
index 5abf290..f826fb1 100644
--- a/modules/mediastream/RTCDataChannel.idl
+++ b/modules/mediastream/RTCDataChannel.idl
@@ -26,7 +26,17 @@
     NoInterfaceObject
 ] interface RTCDataChannel : EventTarget {
     readonly attribute DOMString label;
+
+    // DEPRECATED
     readonly attribute boolean reliable;
+
+    readonly attribute boolean ordered;
+    readonly attribute unsigned short maxRetransmitTime;
+    readonly attribute unsigned short maxRetransmits;
+    readonly attribute DOMString protocol;
+    readonly attribute boolean negotiated;
+    readonly attribute unsigned short id;
+    
     readonly attribute DOMString readyState;
     readonly attribute unsigned long bufferedAmount;
 
@@ -39,8 +49,8 @@
 
     void close();
 
-    attribute EventListener onopen;
-    attribute EventListener onerror;
-    attribute EventListener onclose;
-    attribute EventListener onmessage;
+    attribute EventHandler onopen;
+    attribute EventHandler onerror;
+    attribute EventHandler onclose;
+    attribute EventHandler onmessage;
 };
diff --git a/modules/mediastream/RTCPeerConnection.idl b/modules/mediastream/RTCPeerConnection.idl
index a2255c8..4a8c614 100644
--- a/modules/mediastream/RTCPeerConnection.idl
+++ b/modules/mediastream/RTCPeerConnection.idl
@@ -69,12 +69,12 @@
 
     [RaisesException] void close();
 
-    attribute EventListener onnegotiationneeded;
-    attribute EventListener onicecandidate;
-    attribute EventListener onsignalingstatechange;
-    attribute EventListener onaddstream;
-    attribute EventListener onremovestream;
-    attribute EventListener oniceconnectionstatechange;
-    attribute EventListener ondatachannel;
+    attribute EventHandler onnegotiationneeded;
+    attribute EventHandler onicecandidate;
+    attribute EventHandler onsignalingstatechange;
+    attribute EventHandler onaddstream;
+    attribute EventHandler onremovestream;
+    attribute EventHandler oniceconnectionstatechange;
+    attribute EventHandler ondatachannel;
 };
 
diff --git a/modules/notifications/Notification.idl b/modules/notifications/Notification.idl
index a8dd30a..24d25cc 100644
--- a/modules/notifications/Notification.idl
+++ b/modules/notifications/Notification.idl
@@ -43,11 +43,11 @@
     [CallWith=ScriptExecutionContext, Conditional=NOTIFICATIONS] static readonly attribute DOMString permission;
     [CallWith=ScriptExecutionContext, Conditional=NOTIFICATIONS] static void requestPermission(optional NotificationPermissionCallback callback);
 
-    attribute EventListener onshow;
-    [Conditional=LEGACY_NOTIFICATIONS] attribute EventListener ondisplay;
-    attribute EventListener onerror;
-    attribute EventListener onclose;
-    attribute EventListener onclick;
+    attribute EventHandler onshow;
+    [Conditional=LEGACY_NOTIFICATIONS] attribute EventHandler ondisplay;
+    attribute EventHandler onerror;
+    attribute EventHandler onclose;
+    attribute EventHandler onclick;
 
     [Conditional=LEGACY_NOTIFICATIONS] attribute DOMString dir;
     [Conditional=LEGACY_NOTIFICATIONS] attribute DOMString replaceId;
diff --git a/modules/notifications/NotificationCenter.idl b/modules/notifications/NotificationCenter.idl
index 50b5e15..9c27269 100644
--- a/modules/notifications/NotificationCenter.idl
+++ b/modules/notifications/NotificationCenter.idl
@@ -34,7 +34,6 @@
     Conditional=LEGACY_NOTIFICATIONS,
     ActiveDOMObject
 ] interface NotificationCenter {
-   [EnabledPerContext=htmlNotifications, MeasureAs=LegacyHTMLNotifications, ActivityLog=Access, RaisesException] Notification createHTMLNotification(DOMString url);
    [MeasureAs=LegacyTextNotifications, ActivityLog=Access, RaisesException] Notification createNotification(DOMString iconUrl, DOMString title, DOMString body);
 
    long checkPermission();
diff --git a/modules/speech/SpeechGrammarList.idl b/modules/speech/SpeechGrammarList.idl
index 83a06a3..fa7c5e8 100644
--- a/modules/speech/SpeechGrammarList.idl
+++ b/modules/speech/SpeechGrammarList.idl
@@ -28,7 +28,7 @@
     Constructor
 ] interface SpeechGrammarList {
     readonly attribute unsigned long length;
-    getter SpeechGrammar item([IsIndex] unsigned long index);
+    getter SpeechGrammar item(unsigned long index);
     [CallWith=ScriptExecutionContext] void addFromUri(DOMString src, optional float weight);
     void addFromString(DOMString string, optional float weight);
 };
diff --git a/modules/speech/SpeechRecognition.idl b/modules/speech/SpeechRecognition.idl
index 9f6634e..95eb5d5 100644
--- a/modules/speech/SpeechRecognition.idl
+++ b/modules/speech/SpeechRecognition.idl
@@ -39,15 +39,15 @@
     [ImplementedAs=stopFunction] void stop();
     void abort();
 
-    attribute EventListener onaudiostart;
-    attribute EventListener onsoundstart;
-    attribute EventListener onspeechstart;
-    attribute EventListener onspeechend;
-    attribute EventListener onsoundend;
-    attribute EventListener onaudioend;
-    attribute EventListener onresult;
-    attribute EventListener onnomatch;
-    attribute EventListener onerror;
-    attribute EventListener onstart;
-    attribute EventListener onend;
+    attribute EventHandler onaudiostart;
+    attribute EventHandler onsoundstart;
+    attribute EventHandler onspeechstart;
+    attribute EventHandler onspeechend;
+    attribute EventHandler onsoundend;
+    attribute EventHandler onaudioend;
+    attribute EventHandler onresult;
+    attribute EventHandler onnomatch;
+    attribute EventHandler onerror;
+    attribute EventHandler onstart;
+    attribute EventHandler onend;
 };
diff --git a/modules/speech/SpeechRecognitionResult.idl b/modules/speech/SpeechRecognitionResult.idl
index 45f6b51..91d3e90 100644
--- a/modules/speech/SpeechRecognitionResult.idl
+++ b/modules/speech/SpeechRecognitionResult.idl
@@ -27,6 +27,6 @@
     NoInterfaceObject
 ] interface SpeechRecognitionResult {
     readonly attribute unsigned long length;
-    getter SpeechRecognitionAlternative item([IsIndex] unsigned long index);
+    getter SpeechRecognitionAlternative item(unsigned long index);
     readonly attribute boolean isFinal;
 };
diff --git a/modules/speech/SpeechRecognitionResultList.idl b/modules/speech/SpeechRecognitionResultList.idl
index 6194649..c1eadd5 100644
--- a/modules/speech/SpeechRecognitionResultList.idl
+++ b/modules/speech/SpeechRecognitionResultList.idl
@@ -27,5 +27,5 @@
     NoInterfaceObject
 ] interface SpeechRecognitionResultList {
     readonly attribute unsigned long length;
-    getter SpeechRecognitionResult item([IsIndex] unsigned long index);
+    getter SpeechRecognitionResult item(unsigned long index);
 };
diff --git a/modules/speech/SpeechSynthesisUtterance.idl b/modules/speech/SpeechSynthesisUtterance.idl
index 916d51d..d9b02e6 100644
--- a/modules/speech/SpeechSynthesisUtterance.idl
+++ b/modules/speech/SpeechSynthesisUtterance.idl
@@ -35,11 +35,11 @@
     attribute float rate;
     attribute float pitch;
 
-    attribute EventListener onstart;
-    attribute EventListener onend;
-    attribute EventListener onerror;
-    attribute EventListener onpause;
-    attribute EventListener onresume;
-    attribute EventListener onmark;
-    attribute EventListener onboundary;
+    attribute EventHandler onstart;
+    attribute EventHandler onend;
+    attribute EventHandler onerror;
+    attribute EventHandler onpause;
+    attribute EventHandler onresume;
+    attribute EventHandler onmark;
+    attribute EventHandler onboundary;
 };
diff --git a/modules/webaudio/AudioBufferSourceNode.idl b/modules/webaudio/AudioBufferSourceNode.idl
index ca4982c..24c95eb 100644
--- a/modules/webaudio/AudioBufferSourceNode.idl
+++ b/modules/webaudio/AudioBufferSourceNode.idl
@@ -54,5 +54,5 @@
     [MeasureAs=LegacyWebAudio] void noteGrainOn(double when, double grainOffset, double grainDuration);
     void noteOff(double when);
 
-    attribute EventListener onended;
+    attribute EventHandler onended;
 };
diff --git a/modules/webaudio/AudioContext.idl b/modules/webaudio/AudioContext.idl
index c1d63ec..d1100f5 100644
--- a/modules/webaudio/AudioContext.idl
+++ b/modules/webaudio/AudioContext.idl
@@ -77,7 +77,7 @@
 
     // Offline rendering
     // void prepareOfflineBufferRendering(unsigned long numberOfChannels, unsigned long numberOfFrames, float sampleRate);
-    attribute EventListener oncomplete;
+    attribute EventHandler oncomplete;
     void startRendering();
 
     [MeasureAs=LegacyWebAudio, ImplementedAs=createGain] GainNode createGainNode();
diff --git a/modules/webaudio/OscillatorNode.idl b/modules/webaudio/OscillatorNode.idl
index 46fd044..949eac6 100644
--- a/modules/webaudio/OscillatorNode.idl
+++ b/modules/webaudio/OscillatorNode.idl
@@ -55,5 +55,5 @@
 
     void setPeriodicWave(PeriodicWave periodicWave);
 
-    attribute EventListener onended;
+    attribute EventHandler onended;
 };
diff --git a/modules/webaudio/ScriptProcessorNode.idl b/modules/webaudio/ScriptProcessorNode.idl
index 4d80d13..bc000b9 100644
--- a/modules/webaudio/ScriptProcessorNode.idl
+++ b/modules/webaudio/ScriptProcessorNode.idl
@@ -27,7 +27,7 @@
     Conditional=WEB_AUDIO
 ] interface ScriptProcessorNode : AudioNode {
     // Rendering callback
-    attribute EventListener onaudioprocess;
+    attribute EventHandler onaudioprocess;
 
     readonly attribute long bufferSize;
 };
diff --git a/modules/webmidi/MIDIAccess.idl b/modules/webmidi/MIDIAccess.idl
index c7a51a1..a20b6bc 100644
--- a/modules/webmidi/MIDIAccess.idl
+++ b/modules/webmidi/MIDIAccess.idl
@@ -35,6 +35,6 @@
     sequence<MIDIInput> inputs();
     sequence<MIDIOutput> outputs();
 
-    attribute EventListener onconnect;
-    attribute EventListener ondisconnect;
+    attribute EventHandler onconnect;
+    attribute EventHandler ondisconnect;
 };
diff --git a/modules/webmidi/MIDIInput.idl b/modules/webmidi/MIDIInput.idl
index 4bf7e8f..7b3e438 100644
--- a/modules/webmidi/MIDIInput.idl
+++ b/modules/webmidi/MIDIInput.idl
@@ -32,5 +32,5 @@
     NoInterfaceObject,
     ActiveDOMObject
 ] interface MIDIInput : MIDIPort {
-    attribute EventListener onmidimessage;
+    attribute EventHandler onmidimessage;
 };
diff --git a/modules/webmidi/MIDIPort.idl b/modules/webmidi/MIDIPort.idl
index 261eb7c..944cacb 100644
--- a/modules/webmidi/MIDIPort.idl
+++ b/modules/webmidi/MIDIPort.idl
@@ -43,5 +43,5 @@
     readonly attribute MIDIPortType type;
     readonly attribute DOMString version;
 
-    attribute EventListener ondisconnect;
+    attribute EventHandler ondisconnect;
 };
diff --git a/modules/websockets/WebSocket.idl b/modules/websockets/WebSocket.idl
index e332465..9748b64 100644
--- a/modules/websockets/WebSocket.idl
+++ b/modules/websockets/WebSocket.idl
@@ -51,10 +51,10 @@
     readonly attribute unsigned long bufferedAmount;
 
     // networking
-    attribute EventListener onopen;
-    attribute EventListener onmessage;
-    attribute EventListener onerror;
-    attribute EventListener onclose;
+    attribute EventHandler onopen;
+    attribute EventHandler onmessage;
+    attribute EventHandler onerror;
+    attribute EventHandler onclose;
 
     [TreatReturnedNullStringAs=Undefined] readonly attribute DOMString protocol;
     [TreatReturnedNullStringAs=Undefined] readonly attribute DOMString extensions;