diff --git a/core/README b/core/README
index e18cf12..3929bfb 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: 1242
+Current revision: 1246
diff --git a/core/css/CSSRule.idl b/core/css/CSSRule.idl
index 8a5d615..593305c 100644
--- a/core/css/CSSRule.idl
+++ b/core/css/CSSRule.idl
@@ -20,7 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
-    CustomToJSObject,
+    CustomToV8,
 
     DependentLifetime,
     SkipVTableValidation
@@ -40,9 +40,7 @@
 #if defined(ENABLE_CSS_DEVICE_ADAPTATION) && ENABLE_CSS_DEVICE_ADAPTATION
     const unsigned short WEBKIT_VIEWPORT_RULE = 15;
 #endif
-#if defined(ENABLE_CSS_REGIONS) && ENABLE_CSS_REGIONS
-    const unsigned short WEBKIT_REGION_RULE = 16;
-#endif
+    [EnabledAtRuntime=cssRegions] const unsigned short WEBKIT_REGION_RULE = 16;
     const unsigned short WEBKIT_FILTER_RULE = 17;
     const unsigned short HOST_RULE = 1001;
 
diff --git a/core/css/CSSRuleList.idl b/core/css/CSSRuleList.idl
index 5e6ef7a..0cbc656 100644
--- a/core/css/CSSRuleList.idl
+++ b/core/css/CSSRuleList.idl
@@ -25,11 +25,10 @@
 
 // Introduced in DOM Level 2:
 [
-    IndexedGetter,
     DependentLifetime,
     SkipVTableValidation
 ] interface CSSRuleList {
     readonly attribute unsigned long    length;
-    CSSRule           item([Default=Undefined] optional unsigned long index);
+    getter CSSRule           item([Default=Undefined] optional unsigned long index);
 };
 
diff --git a/core/css/CSSStyleDeclaration.idl b/core/css/CSSStyleDeclaration.idl
index 67da6d7..be7b708 100644
--- a/core/css/CSSStyleDeclaration.idl
+++ b/core/css/CSSStyleDeclaration.idl
@@ -22,7 +22,6 @@
 [
     CustomNamedSetter,
     CustomNamedGetter,
-    IndexedGetter,
     CustomEnumerateProperty,
     DependentLifetime,
     SkipVTableValidation
@@ -38,7 +37,7 @@
                                     [Default=Undefined] optional DOMString priority);
 
     readonly attribute unsigned long    length;
-    DOMString          item([Default=Undefined] optional unsigned long index);
+    getter DOMString          item([Default=Undefined] optional unsigned long index);
     readonly attribute CSSRule          parentRule;
 
     // Extensions
diff --git a/core/css/CSSValue.idl b/core/css/CSSValue.idl
index d668995..5440b74 100644
--- a/core/css/CSSValue.idl
+++ b/core/css/CSSValue.idl
@@ -19,7 +19,7 @@
  */
 
 [
-    CustomToJSObject,
+    CustomToV8,
     
     DependentLifetime,
     ImplementationLacksVTable
diff --git a/core/css/CSSValueList.idl b/core/css/CSSValueList.idl
index 9504c7b..ca51d6c 100644
--- a/core/css/CSSValueList.idl
+++ b/core/css/CSSValueList.idl
@@ -25,10 +25,9 @@
 
 // Introduced in DOM Level 2:
 [
-    IndexedGetter,
     ImplementationLacksVTable
 ] interface CSSValueList : CSSValue {
     readonly attribute unsigned long    length;
-    CSSValue           item([Default=Undefined] optional unsigned long index);
+    getter CSSValue           item([Default=Undefined] optional unsigned long index);
 };
 
diff --git a/core/css/MediaList.idl b/core/css/MediaList.idl
index 46ef79e..248a092 100644
--- a/core/css/MediaList.idl
+++ b/core/css/MediaList.idl
@@ -25,14 +25,13 @@
 
 // Introduced in DOM Level 2:
 [
-    IndexedGetter,
     ImplementationLacksVTable
 ] interface MediaList {
 
              [TreatNullAs=NullString, TreatReturnedNullStringAs=Null, SetterRaisesException] attribute DOMString mediaText;
     readonly attribute unsigned long length;
 
-    [TreatReturnedNullStringAs=Null] DOMString item([Default=Undefined] optional unsigned long index);
+    [TreatReturnedNullStringAs=Null] getter DOMString item([Default=Undefined] optional unsigned long index);
     [RaisesException] void deleteMedium([Default=Undefined] optional DOMString oldMedium);
     [RaisesException] void appendMedium([Default=Undefined] optional DOMString newMedium);
 
diff --git a/core/css/StyleSheet.idl b/core/css/StyleSheet.idl
index c078c08..842174a 100644
--- a/core/css/StyleSheet.idl
+++ b/core/css/StyleSheet.idl
@@ -20,7 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
-    CustomToJSObject,
+    CustomToV8,
     GenerateIsReachable=ImplOwnerNodeRoot
 ] interface StyleSheet {
     [TreatReturnedNullStringAs=Null] readonly attribute DOMString        type;
diff --git a/core/css/StyleSheetList.idl b/core/css/StyleSheetList.idl
index c9c044e..fce41cf 100644
--- a/core/css/StyleSheetList.idl
+++ b/core/css/StyleSheetList.idl
@@ -21,11 +21,10 @@
 // Introduced in DOM Level 2:
 [
     GenerateIsReachable=ImplDocument,
-    IndexedGetter,
     CustomNamedGetter,
     ImplementationLacksVTable
 ] interface StyleSheetList {
     readonly attribute unsigned long    length;
-    StyleSheet         item([Default=Undefined] optional unsigned long index);
+    getter StyleSheet         item([Default=Undefined] optional unsigned long index);
 };
 
diff --git a/core/css/WebKitCSSFilterValue.idl b/core/css/WebKitCSSFilterValue.idl
index ce66c6d..2547661 100644
--- a/core/css/WebKitCSSFilterValue.idl
+++ b/core/css/WebKitCSSFilterValue.idl
@@ -24,7 +24,6 @@
  */
 
 [
-        IndexedGetter,
         DoNotCheckConstants,
     ImplementationLacksVTable
 ] interface WebKitCSSFilterValue : CSSValueList {
diff --git a/core/css/WebKitCSSKeyframesRule.idl b/core/css/WebKitCSSKeyframesRule.idl
index 19faaa5..826413f 100644
--- a/core/css/WebKitCSSKeyframesRule.idl
+++ b/core/css/WebKitCSSKeyframesRule.idl
@@ -28,7 +28,6 @@
 
 // Introduced in DOM Level ?:
 [
-    IndexedGetter
 ] interface WebKitCSSKeyframesRule : CSSRule {
 
     [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] attribute DOMString name;
diff --git a/core/css/WebKitCSSRegionRule.idl b/core/css/WebKitCSSRegionRule.idl
index 05c3c92..7549b75 100644
--- a/core/css/WebKitCSSRegionRule.idl
+++ b/core/css/WebKitCSSRegionRule.idl
@@ -28,7 +28,6 @@
  */
 
 [
-    Conditional=CSS_REGIONS,
     EnabledAtRuntime=cssRegions,
 ] interface WebKitCSSRegionRule : CSSRule {
     readonly attribute CSSRuleList cssRules;
diff --git a/core/css/WebKitCSSTransformValue.idl b/core/css/WebKitCSSTransformValue.idl
index 95dbb28..ddbb799 100644
--- a/core/css/WebKitCSSTransformValue.idl
+++ b/core/css/WebKitCSSTransformValue.idl
@@ -27,7 +27,6 @@
  */
 
 [
-        IndexedGetter,
         DoNotCheckConstants,
     ImplementationLacksVTable
 ] interface WebKitCSSTransformValue : CSSValueList {
diff --git a/core/dom/ClientRectList.idl b/core/dom/ClientRectList.idl
index de579f5..8017c6b 100644
--- a/core/dom/ClientRectList.idl
+++ b/core/dom/ClientRectList.idl
@@ -25,11 +25,10 @@
  */
 
 [
-    IndexedGetter,
     ImplementationLacksVTable
 ] interface ClientRectList {
     readonly attribute unsigned long length;
-    ClientRect item([IsIndex,Default=Undefined] optional unsigned long index);
+    getter ClientRect item([IsIndex,Default=Undefined] optional unsigned long index);
     // FIXME: Fix list behavior to allow custom exceptions to be thrown.
 };
 
diff --git a/core/dom/DOMNamedFlowCollection.idl b/core/dom/DOMNamedFlowCollection.idl
index 2e3c353..6225e98 100644
--- a/core/dom/DOMNamedFlowCollection.idl
+++ b/core/dom/DOMNamedFlowCollection.idl
@@ -28,13 +28,11 @@
  */
 
 [
-    Conditional=CSS_REGIONS,
     EnabledAtRuntime=cssRegions,
     InterfaceName=WebKitNamedFlowCollection,
-    IndexedGetter,
     ImplementationLacksVTable
 ] interface DOMNamedFlowCollection {
     readonly attribute unsigned long length;
-    NamedFlow item(unsigned long index);
+    getter NamedFlow item(unsigned long index);
     getter NamedFlow namedItem(DOMString name);
 };
diff --git a/core/dom/DOMStringList.idl b/core/dom/DOMStringList.idl
index 6eccd57..5109dc6 100644
--- a/core/dom/DOMStringList.idl
+++ b/core/dom/DOMStringList.idl
@@ -24,11 +24,10 @@
  */
 
 [
-    IndexedGetter,
     ImplementationLacksVTable
 ] interface DOMStringList {
     readonly attribute unsigned long length;
-    [TreatReturnedNullStringAs=Null] DOMString item([Default=Undefined] optional unsigned long index);
+    [TreatReturnedNullStringAs=Null] getter DOMString item([Default=Undefined] optional unsigned long index);
     boolean contains([Default=Undefined] optional DOMString string);
 };
 
diff --git a/core/dom/DataTransferItemList.idl b/core/dom/DataTransferItemList.idl
index 9b63b49..0217784 100644
--- a/core/dom/DataTransferItemList.idl
+++ b/core/dom/DataTransferItemList.idl
@@ -29,12 +29,10 @@
  */
 
 [
-    IndexedGetter,
-    CustomDeleteProperty,
     ImplementationLacksVTable
 ] interface DataTransferItemList {
     readonly attribute long length;
-    DataTransferItem item([Default=Undefined] optional unsigned long index);
+    getter DataTransferItem item([Default=Undefined] optional unsigned long index);
 
     void clear();
     void add(File? file);
diff --git a/core/dom/Document.idl b/core/dom/Document.idl
index 2d621eb..985097c 100644
--- a/core/dom/Document.idl
+++ b/core/dom/Document.idl
@@ -19,7 +19,7 @@
  */
 
 [
-    CustomToJSObject
+    CustomToV8
 ] interface Document : Node {
 
     // DOM Level 1 Core
@@ -27,24 +27,24 @@
     readonly attribute DOMImplementation implementation;
     readonly attribute Element documentElement;
 
-    [ReturnNewObject, DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElement([TreatNullAs=NullString,Default=Undefined] optional DOMString tagName);
+    [DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElement([TreatNullAs=NullString,Default=Undefined] optional DOMString tagName);
     DocumentFragment   createDocumentFragment();
-    [ReturnNewObject, PerWorldBindings] Text createTextNode([Default=Undefined] optional DOMString data);
-    [ReturnNewObject] Comment createComment([Default=Undefined] optional DOMString data);
-    [ReturnNewObject, RaisesException] CDATASection createCDATASection([Default=Undefined] optional DOMString data);
-    [ReturnNewObject, RaisesException] ProcessingInstruction createProcessingInstruction([Default=Undefined] optional DOMString target,
+    [PerWorldBindings] Text createTextNode([Default=Undefined] optional DOMString data);
+    Comment createComment([Default=Undefined] optional DOMString data);
+    [RaisesException] CDATASection createCDATASection([Default=Undefined] optional DOMString data);
+    [RaisesException] ProcessingInstruction createProcessingInstruction([Default=Undefined] optional DOMString target,
                                                                                  [Default=Undefined] optional DOMString data);
-    [ReturnNewObject, RaisesException] Attr createAttribute([Default=Undefined] optional DOMString name);
-    [ReturnNewObject, RaisesException] EntityReference createEntityReference([Default=Undefined] optional DOMString name);
+    [RaisesException] Attr createAttribute([Default=Undefined] optional DOMString name);
+    [RaisesException] EntityReference createEntityReference([Default=Undefined] optional DOMString name);
     [PerWorldBindings] NodeList           getElementsByTagName([Default=Undefined] optional DOMString tagname);
 
     // Introduced in DOM Level 2:
 
-    [ReturnNewObject, DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Node importNode([Default=Undefined] optional Node importedNode,
+    [DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Node importNode([Default=Undefined] optional Node importedNode,
                     optional boolean deep);
-    [ReturnNewObject, DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElementNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
+    [DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElementNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                             [TreatNullAs=NullString,Default=Undefined] optional DOMString qualifiedName);
-    [ReturnNewObject, RaisesException] Attr createAttributeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
+    [RaisesException] Attr createAttributeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                                                           [TreatNullAs=NullString,Default=Undefined] optional DOMString qualifiedName);
      NodeList getElementsByTagNameNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                                    [Default=Undefined] optional DOMString localName);
@@ -184,7 +184,7 @@
     void webkitExitPointerLock();
     readonly attribute Element webkitPointerLockElement;
 
-    [Conditional=CSS_REGIONS, EnabledAtRuntime=cssRegions] DOMNamedFlowCollection webkitGetNamedFlows();
+    [EnabledAtRuntime=cssRegions] DOMNamedFlowCollection webkitGetNamedFlows();
 
     [EnabledAtRuntime=fontLoadEvents] readonly attribute FontLoader fontloader;
 
@@ -264,7 +264,7 @@
     [NotEnumerable] attribute EventListener onwebkitpointerlockerror;
     [NotEnumerable, EnabledAtRuntime=experimentalContentSecurityPolicyFeatures] attribute EventListener onsecuritypolicyviolation;
 
-    [ReturnNewObject, EnabledAtRuntime=touch, RaisesException] Touch createTouch([Default=Undefined] optional DOMWindow window,
+    [EnabledAtRuntime=touch, RaisesException] Touch createTouch([Default=Undefined] optional DOMWindow window,
                                                      [Default=Undefined] optional EventTarget target,
                                                      [Default=Undefined] optional long identifier,
                                                      [Default=Undefined] optional long pageX,
@@ -275,11 +275,11 @@
                                                      [Default=Undefined] optional long webkitRadiusY,
                                                      [Default=Undefined] optional float webkitRotationAngle,
                                                      [Default=Undefined] optional float webkitForce);
-    [ReturnNewObject, EnabledAtRuntime=touch, Custom, RaisesException] TouchList createTouchList();
+    [EnabledAtRuntime=touch, Custom, RaisesException] TouchList createTouchList();
 
     [EnabledAtRuntime=customDOMElements, ImplementedAs=registerElement, CallWith=ScriptState, DeliverCustomElementCallbacks, RaisesException] CustomElementConstructor webkitRegister(DOMString name, optional Dictionary options);
-    [ReturnNewObject, DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElement(DOMString localName, [TreatNullAs=NullString] DOMString typeExtension);
-    [ReturnNewObject, DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElementNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString qualifiedName,
+    [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,
                             [TreatNullAs=NullString] DOMString typeExtension);
 
     // Page visibility API.
diff --git a/core/dom/Element.idl b/core/dom/Element.idl
index 30c5155..76136bc 100644
--- a/core/dom/Element.idl
+++ b/core/dom/Element.idl
@@ -19,7 +19,7 @@
  */
 
 [
-    CustomToJSObject,
+    CustomToV8,
     SkipVTableValidation
 ] interface Element : Node {
 
@@ -131,8 +131,8 @@
     void webkitRequestPointerLock();
 
     // CSS Regions API
-    [Conditional=CSS_REGIONS, EnabledAtRuntime=cssRegions, PerWorldBindings] readonly attribute DOMString webkitRegionOverset;
-    [Conditional=CSS_REGIONS, EnabledAtRuntime=cssRegions] sequence<Range> webkitGetRegionFlowRanges();
+    [EnabledAtRuntime=cssRegions, PerWorldBindings] readonly attribute DOMString webkitRegionOverset;
+    [EnabledAtRuntime=cssRegions] sequence<Range> webkitGetRegionFlowRanges();
 
     // Event handler DOM attributes
     [NotEnumerable, PerWorldBindings] attribute EventListener onabort;
diff --git a/core/dom/Event.idl b/core/dom/Event.idl
index 9fee227..82b8e28 100644
--- a/core/dom/Event.idl
+++ b/core/dom/Event.idl
@@ -20,7 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
-    CustomToJSObject,
+    CustomToV8,
     ConstructorTemplate=Event,
     
     SkipVTableValidation
diff --git a/core/dom/EventTarget.idl b/core/dom/EventTarget.idl
index 161b03f..8647c27 100644
--- a/core/dom/EventTarget.idl
+++ b/core/dom/EventTarget.idl
@@ -19,8 +19,8 @@
  */
 
 [
-    CustomToJSObject,
-    NoWrapperCache,
+    CustomToV8,
+    DoNotGenerateWrap,
     EventTarget
 ] interface EventTarget {
     void addEventListener(DOMString type, 
diff --git a/core/dom/NamedFlow.idl b/core/dom/NamedFlow.idl
index 147f089..b7e09e5 100644
--- a/core/dom/NamedFlow.idl
+++ b/core/dom/NamedFlow.idl
@@ -28,6 +28,7 @@
  */
 
 [
+    EnabledAtRuntime=cssRegions,
     EventTarget,
     InterfaceName=WebKitNamedFlow,
     GenerateIsReachable=ImplOwnerNodeRoot
diff --git a/core/dom/NamedNodeMap.idl b/core/dom/NamedNodeMap.idl
index 8752794..17e7736 100644
--- a/core/dom/NamedNodeMap.idl
+++ b/core/dom/NamedNodeMap.idl
@@ -20,7 +20,6 @@
 
 [
     GenerateIsReachable=ImplElementRoot,
-    IndexedGetter,
     CustomNamedGetter,
     ImplementationLacksVTable
 ] interface NamedNodeMap {
@@ -31,7 +30,7 @@
 
     [RaisesException] Node removeNamedItem([Default=Undefined] optional DOMString name);
 
-    Node item([Default=Undefined] optional unsigned long index);
+    getter Node item([Default=Undefined] optional unsigned long index);
     
     readonly attribute unsigned long length;
 
diff --git a/core/dom/Node.idl b/core/dom/Node.idl
index a693fde..28d760e 100644
--- a/core/dom/Node.idl
+++ b/core/dom/Node.idl
@@ -20,7 +20,7 @@
 
 // FIXME: Node should inherit EventTarget.
 [
-    CustomToJSObject,
+    CustomToV8,
     EventTarget,
     DependentLifetime
 ] interface Node {
diff --git a/core/dom/NodeList.idl b/core/dom/NodeList.idl
index 4a6394d..02bf971 100644
--- a/core/dom/NodeList.idl
+++ b/core/dom/NodeList.idl
@@ -20,13 +20,12 @@
 
 [
     CustomIsReachable,
-    IndexedGetter,
     CustomNamedGetter,
     DependentLifetime,
     SkipVTableValidation
 ] interface NodeList {
 
-    Node item([IsIndex,Default=Undefined] optional unsigned long index);
+    getter Node item([IsIndex,Default=Undefined] optional unsigned long index);
 
     readonly attribute unsigned long length;
 
diff --git a/core/dom/RangeException.idl b/core/dom/RangeException.idl
deleted file mode 100644
index df58c81..0000000
--- a/core/dom/RangeException.idl
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-[
-    DoNotCheckConstants,
-    ImplementationLacksVTable
-] exception RangeException {
-
-    readonly attribute unsigned short   code;
-    readonly attribute DOMString        name;
-    readonly attribute DOMString        message;
-
-    [NotEnumerable] DOMString toString();
-
-    // DOM Level 2
-
-    const unsigned short BAD_BOUNDARYPOINTS_ERR = 1;
-    const unsigned short INVALID_NODE_TYPE_ERR = 2;
-};
-
diff --git a/core/dom/Text.idl b/core/dom/Text.idl
index f420593..68e1b8d 100644
--- a/core/dom/Text.idl
+++ b/core/dom/Text.idl
@@ -17,7 +17,7 @@
  * Boston, MA 02110-1301, USA.
  */
 [
-    CustomToJSObject,
+    CustomToV8,
     SkipVTableValidation,
 ] interface Text : CharacterData {
 
diff --git a/core/dom/TouchList.idl b/core/dom/TouchList.idl
index acbc149..0034249 100644
--- a/core/dom/TouchList.idl
+++ b/core/dom/TouchList.idl
@@ -24,10 +24,9 @@
  */
 
 [
-    IndexedGetter,
     ImplementationLacksVTable
 ] interface TouchList {
     readonly attribute unsigned long length;
 
-    Touch item(unsigned long index);
+    getter Touch item(unsigned long index);
 };
diff --git a/core/fileapi/Blob.idl b/core/fileapi/Blob.idl
index d8ef965..05a9973 100644
--- a/core/fileapi/Blob.idl
+++ b/core/fileapi/Blob.idl
@@ -29,7 +29,7 @@
  */
 
 [
-    CustomToJSObject,
+    CustomToV8,
     CustomConstructor,
     CustomConstructor(sequence<any> blobParts, optional BlobPropertyBag options)
 ] interface Blob {
diff --git a/core/fileapi/FileList.idl b/core/fileapi/FileList.idl
index 9086f1c..4ef8bf6 100644
--- a/core/fileapi/FileList.idl
+++ b/core/fileapi/FileList.idl
@@ -24,10 +24,9 @@
  */
 
 [
-    IndexedGetter,
     ImplementationLacksVTable
 ] interface FileList {
     readonly attribute unsigned long length;
-    File item(unsigned long index);
+    getter File item(unsigned long index);
 };
 
diff --git a/core/html/DOMSettableTokenList.idl b/core/html/DOMSettableTokenList.idl
index 5bde9cd..ab242f7 100644
--- a/core/html/DOMSettableTokenList.idl
+++ b/core/html/DOMSettableTokenList.idl
@@ -23,7 +23,6 @@
  */
 
 [
-    IndexedGetter,
     SkipVTableValidation
 ] interface DOMSettableTokenList : DOMTokenList {
     attribute DOMString value;
diff --git a/core/html/DOMTokenList.idl b/core/html/DOMTokenList.idl
index 2fb088d..64bc636 100644
--- a/core/html/DOMTokenList.idl
+++ b/core/html/DOMTokenList.idl
@@ -24,11 +24,10 @@
 
 [
     GenerateIsReachable=ImplElementRoot,
-    IndexedGetter,
     SkipVTableValidation
 ] interface DOMTokenList {
     readonly attribute unsigned long length;
-    [TreatReturnedNullStringAs=Null] DOMString item(unsigned long index);
+    [TreatReturnedNullStringAs=Null] getter DOMString item(unsigned long index);
     [RaisesException] boolean contains(DOMString token);
     [RaisesException] void add(DOMString... tokens);
     [RaisesException] void remove(DOMString... tokens);
diff --git a/core/html/DOMURL.idl b/core/html/DOMURL.idl
index 65c1895..c9fdd0a 100644
--- a/core/html/DOMURL.idl
+++ b/core/html/DOMURL.idl
@@ -30,9 +30,7 @@
     ImplementationLacksVTable
 ] interface DOMURL {
     [CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(MediaSource? source);
-#if defined(ENABLE_MEDIA_STREAM) && ENABLE_MEDIA_STREAM
     [CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(MediaStream? stream);
-#endif
     [CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(Blob? blob);
     [CallWith=ScriptExecutionContext] static void revokeObjectURL(DOMString url);
 };
diff --git a/core/html/HTMLAllCollection.idl b/core/html/HTMLAllCollection.idl
index 3fcf555..f421caf 100644
--- a/core/html/HTMLAllCollection.idl
+++ b/core/html/HTMLAllCollection.idl
@@ -24,7 +24,6 @@
  */
 
 [
-    IndexedGetter,
     CustomNamedGetter,
     CustomCall,
     MasqueradesAsUndefined,
@@ -32,7 +31,7 @@
     DependentLifetime,
 ] interface HTMLAllCollection {
     readonly attribute unsigned long length;
-    [Custom] Node item([Default=Undefined] optional unsigned long index);
+    [Custom] getter Node item([Default=Undefined] optional unsigned long index);
     [Custom] Node namedItem(DOMString name);
     // FIXME: This should return an HTMLAllCollection.
     NodeList tags(DOMString name);
diff --git a/core/html/HTMLAppletElement.idl b/core/html/HTMLAppletElement.idl
index c42e5e9..e5f8707 100644
--- a/core/html/HTMLAppletElement.idl
+++ b/core/html/HTMLAppletElement.idl
@@ -19,8 +19,10 @@
  */
 
 [
+    CustomNamedGetter,
     CustomNamedSetter,
     CustomIndexedGetter,
+    CustomIndexedSetter,
     CustomCall
 ] interface HTMLAppletElement : HTMLElement {
     [Reflect] attribute DOMString align;
diff --git a/core/html/HTMLCollection.idl b/core/html/HTMLCollection.idl
index 4d33c09..ee1d158 100644
--- a/core/html/HTMLCollection.idl
+++ b/core/html/HTMLCollection.idl
@@ -19,15 +19,14 @@
  */
 
 [
-    IndexedGetter,
-    CustomToJSObject,
+    CustomToV8,
     GenerateIsReachable=ImplOwnerNodeRoot,
     DependentLifetime,
     
     SkipVTableValidation
 ] interface HTMLCollection {
     readonly attribute unsigned long length;
-    Node item([Default=Undefined] optional unsigned long index);
+    getter Node item([Default=Undefined] optional unsigned long index);
     getter Node namedItem([Default=Undefined] optional DOMString name);
 };
 
diff --git a/core/html/HTMLDocument.idl b/core/html/HTMLDocument.idl
index ec69153..91f2905 100644
--- a/core/html/HTMLDocument.idl
+++ b/core/html/HTMLDocument.idl
@@ -19,8 +19,7 @@
  */
 
 [
-    CustomNamedGetter,
-    CustomToJSObject,
+    CustomToV8,
     SkipVTableValidation
 ] interface HTMLDocument : Document {
     [Custom] void open();
diff --git a/core/html/HTMLElement.idl b/core/html/HTMLElement.idl
index 4b1cfa7..78e4a5e 100644
--- a/core/html/HTMLElement.idl
+++ b/core/html/HTMLElement.idl
@@ -19,7 +19,7 @@
  */
 
 [
-    CustomToJSObject,
+    CustomToV8,
     SkipVTableValidation
 ] interface HTMLElement : Element {
              // iht.com relies on id returning the empty string when no id is present. 
diff --git a/core/html/HTMLEmbedElement.idl b/core/html/HTMLEmbedElement.idl
index 7f74cb3..b702089 100644
--- a/core/html/HTMLEmbedElement.idl
+++ b/core/html/HTMLEmbedElement.idl
@@ -19,9 +19,11 @@
  */
 
 [
+    CustomNamedGetter,
     CustomNamedSetter,
     CustomCall,
     CustomIndexedGetter,
+    CustomIndexedSetter,
     SkipVTableValidation
 ] interface HTMLEmbedElement : HTMLElement {
 [Reflect] attribute DOMString align;
diff --git a/core/html/HTMLFormControlsCollection.idl b/core/html/HTMLFormControlsCollection.idl
index ba47fd3..e590abf 100644
--- a/core/html/HTMLFormControlsCollection.idl
+++ b/core/html/HTMLFormControlsCollection.idl
@@ -19,7 +19,6 @@
  */
 
 [
-    IndexedGetter,
     CustomNamedGetter,
     GenerateIsReachable=ImplOwnerNodeRoot,
     DependentLifetime,
diff --git a/core/html/HTMLObjectElement.idl b/core/html/HTMLObjectElement.idl
index c98914c..6082baa 100644
--- a/core/html/HTMLObjectElement.idl
+++ b/core/html/HTMLObjectElement.idl
@@ -19,8 +19,10 @@
  */
 
 [
+    CustomNamedGetter,
     CustomNamedSetter,
     CustomIndexedGetter,
+    CustomIndexedSetter,
     CustomCall
 ] interface HTMLObjectElement : HTMLElement {
     readonly attribute HTMLFormElement form;
diff --git a/core/html/HTMLSelectElement.idl b/core/html/HTMLSelectElement.idl
index 922cdc6..5fd7bb5 100644
--- a/core/html/HTMLSelectElement.idl
+++ b/core/html/HTMLSelectElement.idl
@@ -20,7 +20,6 @@
 
 [
     CustomIndexedSetter,
-    CustomIndexedGetter,
     SkipVTableValidation
 ] interface HTMLSelectElement : HTMLElement {
     [Reflect] attribute boolean autofocus;
@@ -36,7 +35,7 @@
     readonly attribute HTMLOptionsCollection options;
     [SetterRaisesException] attribute unsigned long length;
 
-    Node item([IsIndex,Default=Undefined] optional unsigned long index);
+    getter Node item([IsIndex,Default=Undefined] optional unsigned long index);
     Node namedItem([Default=Undefined] optional DOMString name);
      [RaisesException] void add([Default=Undefined] optional HTMLElement element,
                             [Default=Undefined] optional HTMLElement before);
diff --git a/core/html/ImageData.idl b/core/html/ImageData.idl
index db2b4a7..180eb78 100644
--- a/core/html/ImageData.idl
+++ b/core/html/ImageData.idl
@@ -27,7 +27,7 @@
  */
 
 [
-    CustomToJSObject,
+    CustomToV8,
     ImplementationLacksVTable
 ] interface ImageData {
     readonly attribute long width;
diff --git a/core/html/RadioNodeList.idl b/core/html/RadioNodeList.idl
index cfb85c2..d3132f0 100644
--- a/core/html/RadioNodeList.idl
+++ b/core/html/RadioNodeList.idl
@@ -24,7 +24,6 @@
  */
 
 [
-    IndexedGetter,
 ] interface RadioNodeList : NodeList {
     attribute DOMString value;
 };
diff --git a/core/html/canvas/ArrayBufferView.idl b/core/html/canvas/ArrayBufferView.idl
index 552927e..1ed4f9f 100644
--- a/core/html/canvas/ArrayBufferView.idl
+++ b/core/html/canvas/ArrayBufferView.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    CustomToJSObject,
+    CustomToV8,
     ImplementationNamespace=WTF
 ] interface ArrayBufferView {
     readonly attribute ArrayBuffer buffer;
diff --git a/core/html/canvas/CanvasRenderingContext.idl b/core/html/canvas/CanvasRenderingContext.idl
index a340905..819ae77 100644
--- a/core/html/canvas/CanvasRenderingContext.idl
+++ b/core/html/canvas/CanvasRenderingContext.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    CustomToJSObject
+    CustomToV8
 ] interface CanvasRenderingContext {
     readonly attribute HTMLCanvasElement canvas;
 };
diff --git a/core/html/canvas/DataView.idl b/core/html/canvas/DataView.idl
index 7224fc5..1636c4c 100644
--- a/core/html/canvas/DataView.idl
+++ b/core/html/canvas/DataView.idl
@@ -25,7 +25,7 @@
 
 [
     CustomConstructor(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long byteLength),
-    CustomToJSObject
+    CustomToV8
 ] interface DataView : ArrayBufferView {
     // All these methods raise an exception if they would read or write beyond the end of the view.
 
diff --git a/core/html/canvas/EXTTextureFilterAnisotropic.idl b/core/html/canvas/EXTTextureFilterAnisotropic.idl
index d8f0fa7..d454a9b 100644
--- a/core/html/canvas/EXTTextureFilterAnisotropic.idl
+++ b/core/html/canvas/EXTTextureFilterAnisotropic.idl
@@ -27,6 +27,6 @@
     Conditional=WEBGL,
     DoNotCheckConstants
 ] interface EXTTextureFilterAnisotropic {
-    const unsigned int TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE;
-    const unsigned int MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
+    const unsigned long TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE;
+    const unsigned long MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
 };
diff --git a/core/html/canvas/Float32Array.idl b/core/html/canvas/Float32Array.idl
index b438e24..306b7e3 100644
--- a/core/html/canvas/Float32Array.idl
+++ b/core/html/canvas/Float32Array.idl
@@ -26,7 +26,7 @@
 
 [
     ConstructorTemplate=TypedArray,
-    CustomToJSObject,
+    CustomToV8,
     DoNotCheckConstants,
     TypedArray=float,
     ImplementationNamespace=WTF
diff --git a/core/html/canvas/Float64Array.idl b/core/html/canvas/Float64Array.idl
index e6076b5..51870fa 100644
--- a/core/html/canvas/Float64Array.idl
+++ b/core/html/canvas/Float64Array.idl
@@ -26,7 +26,7 @@
 
 [
     ConstructorTemplate=TypedArray,
-    CustomToJSObject,
+    CustomToV8,
     DoNotCheckConstants,
     TypedArray=double,
     ImplementationNamespace=WTF
diff --git a/core/html/canvas/Int16Array.idl b/core/html/canvas/Int16Array.idl
index a7740ec..ffa5682 100644
--- a/core/html/canvas/Int16Array.idl
+++ b/core/html/canvas/Int16Array.idl
@@ -25,7 +25,7 @@
 
 [
     ConstructorTemplate=TypedArray,
-    CustomToJSObject,
+    CustomToV8,
     DoNotCheckConstants,
     TypedArray=short,
     ImplementationNamespace=WTF
diff --git a/core/html/canvas/Int32Array.idl b/core/html/canvas/Int32Array.idl
index c893f8f..c46242b 100644
--- a/core/html/canvas/Int32Array.idl
+++ b/core/html/canvas/Int32Array.idl
@@ -26,7 +26,7 @@
 
 [
     ConstructorTemplate=TypedArray,
-    CustomToJSObject,
+    CustomToV8,
     DoNotCheckConstants,
     TypedArray=int,
     ImplementationNamespace=WTF
diff --git a/core/html/canvas/Int8Array.idl b/core/html/canvas/Int8Array.idl
index f0bd812..5cb46ab 100644
--- a/core/html/canvas/Int8Array.idl
+++ b/core/html/canvas/Int8Array.idl
@@ -26,7 +26,7 @@
 
 [
     ConstructorTemplate=TypedArray,
-    CustomToJSObject,
+    CustomToV8,
     DoNotCheckConstants,
     TypedArray=signed char,
     ImplementationNamespace=WTF
diff --git a/core/html/canvas/OESStandardDerivatives.idl b/core/html/canvas/OESStandardDerivatives.idl
index 2ffba96..6dbfd5d 100644
--- a/core/html/canvas/OESStandardDerivatives.idl
+++ b/core/html/canvas/OESStandardDerivatives.idl
@@ -27,5 +27,5 @@
     Conditional=WEBGL,
     DoNotCheckConstants
 ] interface OESStandardDerivatives {
-    const unsigned int FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B;
+    const unsigned long FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B;
 };
diff --git a/core/html/canvas/OESVertexArrayObject.idl b/core/html/canvas/OESVertexArrayObject.idl
index 29b1972..5de854f 100644
--- a/core/html/canvas/OESVertexArrayObject.idl
+++ b/core/html/canvas/OESVertexArrayObject.idl
@@ -27,7 +27,7 @@
     Conditional=WEBGL, 
     DoNotCheckConstants
 ] interface OESVertexArrayObject {
-    const unsigned int VERTEX_ARRAY_BINDING_OES = 0x85B5;
+    const unsigned long VERTEX_ARRAY_BINDING_OES = 0x85B5;
     
     [StrictTypeChecking] WebGLVertexArrayObjectOES createVertexArrayOES();
     [StrictTypeChecking] void         deleteVertexArrayOES([Default=Undefined] optional WebGLVertexArrayObjectOES arrayObject);
diff --git a/core/html/canvas/Uint16Array.idl b/core/html/canvas/Uint16Array.idl
index ca376a1..4268ef6 100644
--- a/core/html/canvas/Uint16Array.idl
+++ b/core/html/canvas/Uint16Array.idl
@@ -26,7 +26,7 @@
 
 [
     ConstructorTemplate=TypedArray,
-    CustomToJSObject,
+    CustomToV8,
     DoNotCheckConstants,
     TypedArray=unsigned short,
     ImplementationNamespace=WTF
diff --git a/core/html/canvas/Uint32Array.idl b/core/html/canvas/Uint32Array.idl
index cd5bf20..76936df 100644
--- a/core/html/canvas/Uint32Array.idl
+++ b/core/html/canvas/Uint32Array.idl
@@ -26,7 +26,7 @@
 
 [
     ConstructorTemplate=TypedArray,
-    CustomToJSObject,
+    CustomToV8,
     DoNotCheckConstants,
     TypedArray=unsigned int,
     ImplementationNamespace=WTF
diff --git a/core/html/canvas/Uint8Array.idl b/core/html/canvas/Uint8Array.idl
index a1c3f1b..b6e3917 100644
--- a/core/html/canvas/Uint8Array.idl
+++ b/core/html/canvas/Uint8Array.idl
@@ -26,7 +26,7 @@
 
 [
     ConstructorTemplate=TypedArray,
-    CustomToJSObject,
+    CustomToV8,
     DoNotCheckConstants,
     TypedArray=unsigned char,
     ImplementationNamespace=WTF
diff --git a/core/html/canvas/Uint8ClampedArray.idl b/core/html/canvas/Uint8ClampedArray.idl
index 230e33f..cd15b26 100644
--- a/core/html/canvas/Uint8ClampedArray.idl
+++ b/core/html/canvas/Uint8ClampedArray.idl
@@ -26,7 +26,7 @@
 
 [
     ConstructorTemplate=TypedArray,
-    CustomToJSObject,
+    CustomToV8,
     DoNotCheckConstants,
     TypedArray=unsigned char,
     ImplementationNamespace=WTF
diff --git a/core/html/canvas/WebGLCompressedTextureATC.idl b/core/html/canvas/WebGLCompressedTextureATC.idl
index 2c7fac0..10db90e 100644
--- a/core/html/canvas/WebGLCompressedTextureATC.idl
+++ b/core/html/canvas/WebGLCompressedTextureATC.idl
@@ -28,7 +28,7 @@
     DoNotCheckConstants
 ] interface WebGLCompressedTextureATC {
     /* Compressed Texture Formats */
-    const unsigned int COMPRESSED_RGB_ATC_WEBGL                     = 0x8C92;
-    const unsigned int COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL     = 0x8C93;
-    const unsigned int COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 0x87EE;
+    const unsigned long COMPRESSED_RGB_ATC_WEBGL                     = 0x8C92;
+    const unsigned long COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL     = 0x8C93;
+    const unsigned long COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 0x87EE;
 };
diff --git a/core/html/canvas/WebGLCompressedTexturePVRTC.idl b/core/html/canvas/WebGLCompressedTexturePVRTC.idl
index f30c349..36e73dc 100644
--- a/core/html/canvas/WebGLCompressedTexturePVRTC.idl
+++ b/core/html/canvas/WebGLCompressedTexturePVRTC.idl
@@ -28,8 +28,8 @@
     DoNotCheckConstants
 ] interface WebGLCompressedTexturePVRTC {
     /* Compressed Texture Formats */
-    const unsigned int COMPRESSED_RGB_PVRTC_4BPPV1_IMG  = 0x8C00;
-    const unsigned int COMPRESSED_RGB_PVRTC_2BPPV1_IMG  = 0x8C01;
-    const unsigned int COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02;
-    const unsigned int COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03;
+    const unsigned long COMPRESSED_RGB_PVRTC_4BPPV1_IMG  = 0x8C00;
+    const unsigned long COMPRESSED_RGB_PVRTC_2BPPV1_IMG  = 0x8C01;
+    const unsigned long COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02;
+    const unsigned long COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03;
 };
diff --git a/core/html/canvas/WebGLDebugRendererInfo.idl b/core/html/canvas/WebGLDebugRendererInfo.idl
index f0687e5..bd37ddb 100644
--- a/core/html/canvas/WebGLDebugRendererInfo.idl
+++ b/core/html/canvas/WebGLDebugRendererInfo.idl
@@ -27,6 +27,6 @@
     Conditional=WEBGL,
     DoNotCheckConstants
 ] interface WebGLDebugRendererInfo {
-    const unsigned int UNMASKED_VENDOR_WEBGL = 0x9245;
-    const unsigned int UNMASKED_RENDERER_WEBGL = 0x9246;
+    const unsigned long UNMASKED_VENDOR_WEBGL = 0x9245;
+    const unsigned long UNMASKED_RENDERER_WEBGL = 0x9246;
 };
diff --git a/core/html/canvas/WebGLDepthTexture.idl b/core/html/canvas/WebGLDepthTexture.idl
index 1aaf21f..84f3acd 100644
--- a/core/html/canvas/WebGLDepthTexture.idl
+++ b/core/html/canvas/WebGLDepthTexture.idl
@@ -27,5 +27,5 @@
     Conditional=WEBGL,
     DoNotCheckConstants
 ] interface WebGLDepthTexture {
-    const unsigned int UNSIGNED_INT_24_8_WEBGL = 0x84FA;
+    const unsigned long UNSIGNED_INT_24_8_WEBGL = 0x84FA;
 };
diff --git a/core/html/track/TextTrackCueList.idl b/core/html/track/TextTrackCueList.idl
index 1c5b63f..a77ede9 100644
--- a/core/html/track/TextTrackCueList.idl
+++ b/core/html/track/TextTrackCueList.idl
@@ -25,11 +25,10 @@
 
 [
     EnabledAtRuntime=webkitVideoTrack,
-    IndexedGetter,
     ImplementationLacksVTable
 ] interface TextTrackCueList {
     readonly attribute unsigned long length;
-    TextTrackCue item(unsigned long index);
+    getter TextTrackCue item(unsigned long index);
     TextTrackCue getCueById(DOMString id);
 };
 
diff --git a/core/html/track/TextTrackList.idl b/core/html/track/TextTrackList.idl
index b837eaf..7fcbacd 100644
--- a/core/html/track/TextTrackList.idl
+++ b/core/html/track/TextTrackList.idl
@@ -25,12 +25,11 @@
 
 [
     EnabledAtRuntime=webkitVideoTrack,
-    IndexedGetter,
     EventTarget,
     GenerateIsReachable=ImplOwnerRoot
 ] interface TextTrackList {
     readonly attribute unsigned long length;
-    TextTrack item(unsigned long index);
+    getter TextTrack item(unsigned long index);
 
     attribute EventListener onaddtrack;
 
diff --git a/core/html/track/TextTrackRegionList.idl b/core/html/track/TextTrackRegionList.idl
index 49c6772..c6274cb 100644
--- a/core/html/track/TextTrackRegionList.idl
+++ b/core/html/track/TextTrackRegionList.idl
@@ -26,11 +26,10 @@
 [
     Conditional=WEBVTT_REGIONS,
     EnabledAtRuntime=webkitVideoTrack,
-    IndexedGetter,
     ImplementationLacksVTable
 ] interface TextTrackRegionList {
     readonly attribute unsigned long length;
-    TextTrackRegion item(unsigned long index);
+    getter TextTrackRegion item(unsigned long index);
     TextTrackRegion getRegionById(DOMString id);
 };
 
diff --git a/core/inspector/InjectedScriptHost.idl b/core/inspector/InjectedScriptHost.idl
index 468724f..b285d67 100644
--- a/core/inspector/InjectedScriptHost.idl
+++ b/core/inspector/InjectedScriptHost.idl
@@ -37,7 +37,7 @@
 
     void copyText(DOMString text);
     [Custom] void inspect(any objectId, any hints);
-    [Custom] any inspectedObject(int num);
+    [Custom] any inspectedObject(long num);
     [Custom] any internalConstructorName(any object);
     [Custom] boolean isHTMLAllCollection(any object);
     [Custom] DOMString type(any object);
diff --git a/core/inspector/JavaScriptCallFrame.idl b/core/inspector/JavaScriptCallFrame.idl
index 0b8b8ed..ebd87d4 100644
--- a/core/inspector/JavaScriptCallFrame.idl
+++ b/core/inspector/JavaScriptCallFrame.idl
@@ -39,14 +39,14 @@
     [Custom] any restart();
     
     // Only declarative scope (local, with and catch) is accepted. Returns undefined. 
-    [Custom] any setVariableValue(int scopeIndex, DOMString variableName, any newValue);
+    [Custom] any setVariableValue(long scopeIndex, DOMString variableName, any newValue);
 
     readonly attribute JavaScriptCallFrame caller;
     readonly attribute long sourceID;
     readonly attribute long line;
     readonly attribute long column;
     [CustomGetter] readonly attribute Array scopeChain;
-    [Custom] unsigned short scopeType(int scopeIndex);
+    [Custom] unsigned short scopeType(long scopeIndex);
     [CustomGetter] readonly attribute Object thisObject;
     readonly attribute DOMString functionName;
     [CustomGetter] readonly attribute DOMString type;
diff --git a/core/page/DOMWindow.idl b/core/page/DOMWindow.idl
index 633839c..f68dd94 100644
--- a/core/page/DOMWindow.idl
+++ b/core/page/DOMWindow.idl
@@ -26,10 +26,10 @@
 
 [
     CheckSecurity,
-    CustomGetOwnPropertySlot,
     EventTarget,
-    CustomToJSObject,
-    NoWrapperCache,
+    CustomToV8,
+    CustomNamedGetter,
+    DoNotGenerateWrap,
     CustomIndexedGetter,
     InterfaceName=Window
 ] interface DOMWindow {
@@ -527,7 +527,7 @@
 
     attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
     attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
-    [Conditional=CSS_REGIONS, EnabledAtRuntime=cssRegions] attribute WebKitCSSRegionRuleConstructor WebKitCSSRegionRule;
+    [EnabledAtRuntime=cssRegions] attribute WebKitCSSRegionRuleConstructor WebKitCSSRegionRule;
 
     attribute WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
 
@@ -544,7 +544,6 @@
 
     attribute NodeFilterConstructor NodeFilter;
     attribute RangeConstructor Range;
-    attribute RangeExceptionConstructor RangeException;
 
     attribute EventSourceConstructor EventSource; // Usable with new the operator
 
@@ -555,13 +554,10 @@
     attribute XMLSerializerConstructor XMLSerializer;
     attribute XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator
     attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
-    attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
     attribute XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
 
-#if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING
     attribute MessagePortConstructor MessagePort;
     attribute MessageChannelConstructor MessageChannel; // Usable with the new operator
-#endif
 
     attribute DOMPluginConstructor Plugin;
     attribute DOMPluginArrayConstructor PluginArray;
diff --git a/core/page/PerformanceEntry.idl b/core/page/PerformanceEntry.idl
index 045cab3..94638f8 100644
--- a/core/page/PerformanceEntry.idl
+++ b/core/page/PerformanceEntry.idl
@@ -30,7 +30,7 @@
 
 // See: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html
 [
-    CustomToJSObject,
+    CustomToV8,
 ] interface PerformanceEntry {
     readonly attribute DOMString name;
     readonly attribute DOMString entryType;
diff --git a/core/page/SpeechInputResultList.idl b/core/page/SpeechInputResultList.idl
index c5b32ac..0e2bf56 100644
--- a/core/page/SpeechInputResultList.idl
+++ b/core/page/SpeechInputResultList.idl
@@ -24,11 +24,10 @@
  */
 
 [
-    IndexedGetter,
     Conditional=INPUT_SPEECH,
     ImplementationLacksVTable
 ] interface SpeechInputResultList {
     readonly attribute unsigned long length;
-    SpeechInputResult item([IsIndex] unsigned long index);
+    getter SpeechInputResult item([IsIndex] unsigned long index);
 };
 
diff --git a/core/plugins/DOMMimeTypeArray.idl b/core/plugins/DOMMimeTypeArray.idl
index cefde58..fd5fe9e 100644
--- a/core/plugins/DOMMimeTypeArray.idl
+++ b/core/plugins/DOMMimeTypeArray.idl
@@ -19,11 +19,10 @@
 */
 
 [
-    IndexedGetter,
     InterfaceName=MimeTypeArray
 ] interface DOMMimeTypeArray {
     readonly attribute unsigned long length;
-    DOMMimeType item([Default=Undefined] optional unsigned long index);
+    getter DOMMimeType item([Default=Undefined] optional unsigned long index);
     getter DOMMimeType namedItem([Default=Undefined] optional DOMString name);
 };
 
diff --git a/core/plugins/DOMPlugin.idl b/core/plugins/DOMPlugin.idl
index f4ac45c..08e4a84 100644
--- a/core/plugins/DOMPlugin.idl
+++ b/core/plugins/DOMPlugin.idl
@@ -19,14 +19,13 @@
 */
 
 [
-    IndexedGetter,
     InterfaceName=Plugin
 ] interface DOMPlugin {
     readonly attribute DOMString name;
     readonly attribute DOMString filename;
     readonly attribute DOMString description;
     readonly attribute unsigned long length;
-    DOMMimeType item([Default=Undefined] optional unsigned long index);
+    getter DOMMimeType item([Default=Undefined] optional unsigned long index);
     getter DOMMimeType namedItem([Default=Undefined] optional DOMString name);
 };
 
diff --git a/core/plugins/DOMPluginArray.idl b/core/plugins/DOMPluginArray.idl
index 08b9cab..52430aa 100644
--- a/core/plugins/DOMPluginArray.idl
+++ b/core/plugins/DOMPluginArray.idl
@@ -19,11 +19,10 @@
 */
 
 [
-    IndexedGetter,
     InterfaceName=PluginArray
 ] interface DOMPluginArray {
     readonly attribute unsigned long length;
-    DOMPlugin item([Default=Undefined] optional unsigned long index);
+    getter DOMPlugin item([Default=Undefined] optional unsigned long index);
     getter DOMPlugin namedItem([Default=Undefined] optional DOMString name);
     void refresh([Default=Undefined] optional boolean reload);
 };
diff --git a/core/scripts/in_generator.py b/core/scripts/in_generator.py
index 1ee994a..47b85f5 100644
--- a/core/scripts/in_generator.py
+++ b/core/scripts/in_generator.py
@@ -49,6 +49,11 @@
     def generate_implementation(self):
         raise NotImplementedError
 
+    def wrap_with_condition(self, string, condition):
+        if not condition:
+            return string
+        return "#if ENABLE(%(condition)s)\n%(string)s\n#endif" % { 'condition' : condition, 'string' : string }
+
     def _forcibly_create_text_file_at_path_with_contents(self, file_path, contents):
         # FIXME: This method can be made less force-full anytime after 6/1/2013.
         # A gyp error was briefly checked into the tree, causing
@@ -65,12 +70,18 @@
             file_to_write.write(contents)
 
     def write_header(self, output_dir):
-        header_path = os.path.join(output_dir, self.class_name + ".h")
-        self._forcibly_create_text_file_at_path_with_contents(header_path, self.generate_header())
+        contents = self.generate_header()
+        if not contents:
+            return
+        path = os.path.join(output_dir, self.class_name + ".h")
+        self._forcibly_create_text_file_at_path_with_contents(path, contents)
 
     def write_implmentation(self, output_dir):
-        implmentation_path = os.path.join(output_dir, self.class_name + ".cpp")
-        self._forcibly_create_text_file_at_path_with_contents(implmentation_path, self.generate_implementation())
+        contents = self.generate_implementation()
+        if not contents:
+            return
+        path = os.path.join(output_dir, self.class_name + ".cpp")
+        self._forcibly_create_text_file_at_path_with_contents(path, contents)
 
 
 class Maker(object):
diff --git a/core/scripts/make_event_factory.py b/core/scripts/make_event_factory.py
new file mode 100644
index 0000000..c5a5f0b
--- /dev/null
+++ b/core/scripts/make_event_factory.py
@@ -0,0 +1,101 @@
+#!/usr/bin/env python
+# 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.
+
+import os.path
+import sys
+import shutil
+
+from in_file import InFile
+import in_generator
+import license
+
+
+IMPLEMENTATION_TEMPLATE = """%(license)s
+#include "config.h"
+#include "%(namespace)sFactory.h"
+
+#include "%(namespace)sHeaders.h"
+#include "RuntimeEnabledFeatures.h"
+
+namespace WebCore {
+
+PassRefPtr<%(namespace)s> %(namespace)sFactory::create(const String& type)
+{
+%(factory_implementation)s
+    return 0;
+}
+
+} // namespace WebCore
+"""
+
+
+class EventFactoryWriter(in_generator.Writer):
+    defaults = {
+        'interfaceName' : None,
+        'conditional' : None,
+        'runtimeConditional': None,
+    }
+    default_parameters = {
+        'namespace': '',
+    }
+    class_name = 'EventFactory'
+
+    def _namespace(self):
+        return self.in_file.parameters['namespace']
+
+    def _events(self):
+        return self.in_file.name_dictionaries
+
+    def _factory_implementation(self, event):
+        runtime_condition = ''
+        if event['runtimeConditional']:
+            runtime_condition = ' && RuntimeEnabledFeatures::' + event['runtimeConditional'] + '()'
+        name = os.path.basename(event['name'])
+        interface_name = event['interfaceName'] if event['interfaceName'] else name
+        implementation = """    if (type == "%(name)s"%(runtime_condition)s)
+        return %(interface_name)s::create();""" % {
+            'name': name,
+            'runtime_condition': runtime_condition,
+            'interface_name': interface_name,
+        }
+        return self.wrap_with_condition(implementation, event['conditional'])
+
+    def generate_header(self):
+        pass
+
+    def generate_implementation(self):
+        return IMPLEMENTATION_TEMPLATE % {
+            'namespace': self._namespace().strip('"'),
+            'license': license.license_for_generated_cpp(),
+            'factory_implementation': "\n".join(map(self._factory_implementation, self._events())),
+        }
+
+
+if __name__ == "__main__":
+    in_generator.Maker(EventFactoryWriter).main(sys.argv)
diff --git a/core/scripts/make_runtime_features.py b/core/scripts/make_runtime_features.py
index 3890a61..13e1f9b 100755
--- a/core/scripts/make_runtime_features.py
+++ b/core/scripts/make_runtime_features.py
@@ -97,11 +97,6 @@
         lowered = lowered.replace("iME", "ime")
         return lowered
 
-    def _wrap_with_condition(self, string, condition):
-        if not condition:
-            return string
-        return "#if ENABLE(%(condition)s)\n%(string)s\n#endif" % { 'condition' : condition, 'string' : string }
-
     def _method_declaration(self, feature):
         if feature['custom']:
             return "    static bool %(first_lowered_name)sEnabled();\n" % feature
@@ -118,7 +113,7 @@
 
     def _storage_declarations(self, feature):
         declaration = "    static bool is%(name)sEnabled;" % feature
-        return self._wrap_with_condition(declaration, feature['condition'])
+        return self.wrap_with_condition(declaration, feature['condition'])
 
     def generate_header(self):
         return HEADER_TEMPLATE % {
@@ -130,7 +125,7 @@
 
     def _storage_definition(self, feature):
         definition = "bool RuntimeEnabledFeatures::is%(name)sEnabled = %(default)s;" % feature
-        return self._wrap_with_condition(definition, feature['condition'])
+        return self.wrap_with_condition(definition, feature['condition'])
 
     def generate_implementation(self):
         return IMPLEMENTATION_TEMPLATE % {
diff --git a/core/storage/Storage.idl b/core/storage/Storage.idl
index 3d0364b..ce94506 100644
--- a/core/storage/Storage.idl
+++ b/core/storage/Storage.idl
@@ -28,6 +28,7 @@
     CustomDeleteProperty,
     CustomEnumerateProperty,
     CustomIndexedGetter,
+    CustomIndexedSetter,
     CustomNamedSetter,
 ] interface Storage {
     [NotEnumerable, GetterRaisesException] readonly attribute unsigned long length;
diff --git a/core/svg/SVGDocument.idl b/core/svg/SVGDocument.idl
index 98f4114..1758849 100644
--- a/core/svg/SVGDocument.idl
+++ b/core/svg/SVGDocument.idl
@@ -21,7 +21,7 @@
 
 [
     Conditional=SVG,
-    CustomToJSObject
+    CustomToV8
 ] interface SVGDocument : Document {
     readonly attribute SVGSVGElement        rootElement;
 
diff --git a/core/svg/SVGElement.idl b/core/svg/SVGElement.idl
index 589bb5c..73d0077 100644
--- a/core/svg/SVGElement.idl
+++ b/core/svg/SVGElement.idl
@@ -22,7 +22,7 @@
 
 [
     Conditional=SVG,
-    CustomToJSObject
+    CustomToV8
 ] interface SVGElement : Element {
     [Reflect] attribute DOMString id;
     [TreatNullAs=NullString, SetterRaisesException] attribute DOMString xmlbase;
diff --git a/core/svg/SVGExternalResourcesRequired.idl b/core/svg/SVGExternalResourcesRequired.idl
index 36bff05..854b268 100644
--- a/core/svg/SVGExternalResourcesRequired.idl
+++ b/core/svg/SVGExternalResourcesRequired.idl
@@ -27,7 +27,7 @@
 [
     Conditional=SVG,
     
-    SuppressToJSObject,
+    DoNotGenerateToV8,
 ] interface SVGExternalResourcesRequired { 
     readonly attribute SVGAnimatedBoolean externalResourcesRequired;
 };
diff --git a/core/svg/SVGFitToViewBox.idl b/core/svg/SVGFitToViewBox.idl
index e9ad2ab..ccd61c5 100644
--- a/core/svg/SVGFitToViewBox.idl
+++ b/core/svg/SVGFitToViewBox.idl
@@ -27,7 +27,7 @@
 [
     Conditional=SVG,
     
-    SuppressToJSObject,
+    DoNotGenerateToV8,
 ] interface SVGFitToViewBox {
     readonly attribute SVGAnimatedRect                viewBox;
     readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
diff --git a/core/svg/SVGLangSpace.idl b/core/svg/SVGLangSpace.idl
index fef8c46..c5152cc 100644
--- a/core/svg/SVGLangSpace.idl
+++ b/core/svg/SVGLangSpace.idl
@@ -27,7 +27,7 @@
 [
     Conditional=SVG,
     
-    SuppressToJSObject,
+    DoNotGenerateToV8,
 ] interface SVGLangSpace {
              attribute DOMString xmllang;
              attribute DOMString xmlspace;
diff --git a/core/svg/SVGLocatable.idl b/core/svg/SVGLocatable.idl
index ef547b8..7a71bd5 100644
--- a/core/svg/SVGLocatable.idl
+++ b/core/svg/SVGLocatable.idl
@@ -27,7 +27,7 @@
 [
     Conditional=SVG,
     
-    SuppressToJSObject,
+    DoNotGenerateToV8,
 ] interface SVGLocatable {
     readonly attribute SVGElement nearestViewportElement;
     readonly attribute SVGElement farthestViewportElement;
diff --git a/core/svg/SVGPathSeg.idl b/core/svg/SVGPathSeg.idl
index 2d1267d..cda62ad 100644
--- a/core/svg/SVGPathSeg.idl
+++ b/core/svg/SVGPathSeg.idl
@@ -26,7 +26,7 @@
 
 [
     Conditional=SVG,
-    CustomToJSObject,
+    CustomToV8,
     
     ImplementationLacksVTable
 ] interface SVGPathSeg {
diff --git a/core/svg/SVGRenderingIntent.idl b/core/svg/SVGRenderingIntent.idl
index 708f7a1..9383422 100644
--- a/core/svg/SVGRenderingIntent.idl
+++ b/core/svg/SVGRenderingIntent.idl
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG,
-    SuppressToJSObject,
+    DoNotGenerateToV8,
     ImplementationLacksVTable
 ] interface SVGRenderingIntent {
     // Rendering Intent Types
diff --git a/core/svg/SVGTests.idl b/core/svg/SVGTests.idl
index 6b33373..3941d6a 100644
--- a/core/svg/SVGTests.idl
+++ b/core/svg/SVGTests.idl
@@ -27,7 +27,7 @@
 [
     Conditional=SVG,
     
-    SuppressToJSObject,
+    DoNotGenerateToV8,
 ] interface SVGTests {
     readonly attribute SVGStringList requiredFeatures;
     readonly attribute SVGStringList requiredExtensions;
diff --git a/core/svg/SVGURIReference.idl b/core/svg/SVGURIReference.idl
index 8722ada..7ed40e8 100644
--- a/core/svg/SVGURIReference.idl
+++ b/core/svg/SVGURIReference.idl
@@ -27,7 +27,7 @@
 [
     Conditional=SVG,
     
-    SuppressToJSObject,
+    DoNotGenerateToV8,
 ] interface SVGURIReference {
     readonly attribute SVGAnimatedString href;
 };
diff --git a/core/svg/SVGUnitTypes.idl b/core/svg/SVGUnitTypes.idl
index c6c0551..b872b3e 100644
--- a/core/svg/SVGUnitTypes.idl
+++ b/core/svg/SVGUnitTypes.idl
@@ -25,7 +25,7 @@
 
 [
     Conditional=SVG,
-    SuppressToJSObject,
+    DoNotGenerateToV8,
     ImplementationLacksVTable
 ] interface SVGUnitTypes {
     // Unit Types
diff --git a/core/svg/SVGZoomAndPan.idl b/core/svg/SVGZoomAndPan.idl
index cf10f3c..738a916 100644
--- a/core/svg/SVGZoomAndPan.idl
+++ b/core/svg/SVGZoomAndPan.idl
@@ -27,7 +27,7 @@
 [
     Conditional=SVG,
     
-    SuppressToJSObject,
+    DoNotGenerateToV8,
     ImplementationLacksVTable
 ] interface SVGZoomAndPan {
     const unsigned short SVG_ZOOMANDPAN_UNKNOWN = 0;
diff --git a/core/testing/InternalSettings.idl b/core/testing/InternalSettings.idl
index 6359c27..30c0d91 100644
--- a/core/testing/InternalSettings.idl
+++ b/core/testing/InternalSettings.idl
@@ -25,11 +25,10 @@
 
 [
 ] interface InternalSettings : InternalSettingsGenerated {
+    // All methods which access Page::settings() can raise an exception
+    // when the page cannot be accessed. (Such as during page tear-down.)
     [RaisesException] void setMockScrollbarsEnabled(boolean enabled);
     [RaisesException] void setTouchEventEmulationEnabled(boolean enabled);
-    void setAuthorShadowDOMForAnyElementEnabled(boolean isEnabled);
-    void setExperimentalShadowDOMEnabled(boolean isEnabled);
-    void setStyleScopedEnabled(boolean isEnabled);
     [RaisesException] void setStandardFontFamily(DOMString family, DOMString script);
     [RaisesException] void setSerifFontFamily(DOMString family, DOMString script);
     [RaisesException] void setSansSerifFontFamily(DOMString family, DOMString script);
@@ -42,17 +41,26 @@
     [RaisesException] void setTextAutosizingFontScaleFactor(float fontScaleFactor);
     [RaisesException] void setResolutionOverride(long dotsPerCSSInchHorizontally, long dotsPerCSSInchVertically);
     [RaisesException] void setMediaTypeOverride(DOMString mediaTypeOverride);
-    [RaisesException] void setCSSExclusionsEnabled(boolean enabled);
-    [RaisesException] void setCSSVariablesEnabled(boolean enabled);
-    [RaisesException] boolean cssVariablesEnabled();
-    [RaisesException] void setCanStartMedia(boolean enabled);
     [RaisesException] void setEditingBehavior(DOMString behavior);
-    [RaisesException] void setDialogElementEnabled(boolean enabled);
-    [RaisesException] void setLazyLayoutEnabled(boolean enabled);
-    void setLangAttributeAwareFormControlUIEnabled(boolean enabled);
 
     [RaisesException] void setShouldDisplayTrackKind(DOMString kind, boolean enabled);
     [RaisesException] boolean shouldDisplayTrackKind(DOMString trackKind);
     [RaisesException] void setImagesEnabled(boolean enabled);
     [RaisesException] void setDefaultVideoPosterURL(DOMString poster);
+
+    // FIXME: cssVariablesEnabled is a real Setting and not a
+    // RuntimeEnabledFeature, but it should be changed to be a REF.
+    [RaisesException] boolean cssVariablesEnabled();
+    [RaisesException] void setCSSVariablesEnabled(boolean enabled);
+
+    // FIXME: The following are RuntimeEnabledFeatures and likely
+    // cannot be changed after process start.  These setters should
+    // be removed or moved onto internals.runtimeFlags:
+    void setAuthorShadowDOMForAnyElementEnabled(boolean enabled);
+    void setCSSExclusionsEnabled(boolean enabled);
+    void setDialogElementEnabled(boolean enabled);
+    void setExperimentalShadowDOMEnabled(boolean enabled);
+    void setLangAttributeAwareFormControlUIEnabled(boolean enabled);
+    void setLazyLayoutEnabled(boolean enabled);
+    void setStyleScopedEnabled(boolean enabled);
 };
diff --git a/core/testing/Internals.idl b/core/testing/Internals.idl
index 89ab3d5..3be4238 100644
--- a/core/testing/Internals.idl
+++ b/core/testing/Internals.idl
@@ -212,6 +212,8 @@
 
     [RaisesException] void setPageScaleFactor(float scaleFactor, long x, long y);
 
+    [RaisesException] void setIsCursorVisible(Document document, boolean isVisible);
+
     void webkitWillEnterFullScreenForElement(Document document, Element element);
     void webkitDidEnterFullScreenForElement(Document document, Element element);
     void webkitWillExitFullScreenForElement(Document document, Element element);
diff --git a/core/workers/WorkerContext.idl b/core/workers/WorkerContext.idl
index eaa6313..ef788ac 100644
--- a/core/workers/WorkerContext.idl
+++ b/core/workers/WorkerContext.idl
@@ -26,8 +26,8 @@
 
 [
     EventTarget,
-    CustomToJSObject,
-    NoWrapperCache
+    CustomToV8,
+    DoNotGenerateWrap
 ] interface WorkerContext {
 
     // WorkerGlobalScope
@@ -60,9 +60,7 @@
     attribute MessageEventConstructor MessageEvent;
     attribute WorkerLocationConstructor WorkerLocation;
 
-#if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING
     attribute MessageChannelConstructor MessageChannel;
-#endif
     attribute EventSourceConstructor EventSource;
     attribute XMLHttpRequestConstructor XMLHttpRequest;
 
diff --git a/core/xml/XMLHttpRequestException.idl b/core/xml/XMLHttpRequestException.idl
deleted file mode 100644
index 6bf63a0..0000000
--- a/core/xml/XMLHttpRequestException.idl
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2007 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.
- * 3.  Neither the name of Apple Computer, Inc. ("Apple") 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 APPLE AND ITS 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 APPLE OR ITS 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.
- */
-
-[
-    DoNotCheckConstants,
-    ImplementationLacksVTable
-] exception XMLHttpRequestException {
-
-    readonly attribute unsigned short   code;
-    readonly attribute DOMString        name;
-    readonly attribute DOMString        message;
-
-    // Override in a Mozilla compatible format
-    [NotEnumerable] DOMString toString();
-
-    // XMLHttpRequestExceptionCode
-    const unsigned short NETWORK_ERR = 101;
-    const unsigned short ABORT_ERR = 102;
-};
-
diff --git a/modules/README b/modules/README
index e18cf12..3929bfb 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: 1242
+Current revision: 1246
diff --git a/modules/filesystem/Entry.idl b/modules/filesystem/Entry.idl
index e6638ab..ba90dfe 100644
--- a/modules/filesystem/Entry.idl
+++ b/modules/filesystem/Entry.idl
@@ -29,7 +29,7 @@
  */
 
 [
-    CustomToJSObject
+    CustomToV8
 ] interface Entry {
     readonly attribute boolean isFile;
     readonly attribute boolean isDirectory;
diff --git a/modules/filesystem/EntryArray.idl b/modules/filesystem/EntryArray.idl
index 03fd973..6d75100 100644
--- a/modules/filesystem/EntryArray.idl
+++ b/modules/filesystem/EntryArray.idl
@@ -29,9 +29,8 @@
  */
 
 [
-    IndexedGetter,
     ImplementationLacksVTable
 ] interface EntryArray {
     readonly attribute unsigned long length;
-    Entry item([IsIndex] unsigned long index);
+    getter Entry item([IsIndex] unsigned long index);
 };
diff --git a/modules/filesystem/EntryArraySync.idl b/modules/filesystem/EntryArraySync.idl
index 9b85156..52651e4 100644
--- a/modules/filesystem/EntryArraySync.idl
+++ b/modules/filesystem/EntryArraySync.idl
@@ -29,9 +29,8 @@
  */
 
 [
-    IndexedGetter,
     ImplementationLacksVTable
 ] interface EntryArraySync {
     readonly attribute unsigned long length;
-    EntrySync item([IsIndex] unsigned long index);
+    getter EntrySync item([IsIndex] unsigned long index);
 };
diff --git a/modules/filesystem/EntrySync.idl b/modules/filesystem/EntrySync.idl
index 1131652..08021da 100644
--- a/modules/filesystem/EntrySync.idl
+++ b/modules/filesystem/EntrySync.idl
@@ -29,7 +29,7 @@
  */
 
 [
-    CustomToJSObject
+    CustomToV8
 ] interface EntrySync {
     readonly attribute boolean isFile;
     readonly attribute boolean isDirectory;
diff --git a/modules/gamepad/GamepadList.idl b/modules/gamepad/GamepadList.idl
index 2eb45f9..0277a61 100644
--- a/modules/gamepad/GamepadList.idl
+++ b/modules/gamepad/GamepadList.idl
@@ -24,10 +24,9 @@
  */
 
 [
-    IndexedGetter,
     ImplementationLacksVTable
 ] interface GamepadList {
     readonly attribute unsigned long length;
-    Gamepad item([Default=Undefined] optional unsigned long index);
+    getter Gamepad item([Default=Undefined] optional unsigned long index);
 };
 
diff --git a/modules/indexeddb/IDBAny.idl b/modules/indexeddb/IDBAny.idl
index f742222..485e3db 100644
--- a/modules/indexeddb/IDBAny.idl
+++ b/modules/indexeddb/IDBAny.idl
@@ -24,8 +24,8 @@
  */
 
 [
-    CustomToJSObject,
-    NoWrapperCache
+    CustomToV8,
+    DoNotGenerateWrap
 ] interface IDBAny {
     // This space is intentionally left blank.
 };
diff --git a/modules/mediasource/SourceBufferList.idl b/modules/mediasource/SourceBufferList.idl
index f8531ed..443edb3 100644
--- a/modules/mediasource/SourceBufferList.idl
+++ b/modules/mediasource/SourceBufferList.idl
@@ -30,12 +30,11 @@
  
 [
     EnabledAtRuntime=mediaSource,
-    IndexedGetter,
     EventTarget,
     CallWith=ScriptExecutionContext
 ] interface SourceBufferList {
     readonly attribute unsigned long length;
-    SourceBuffer item(unsigned long index);
+    getter SourceBuffer item(unsigned long index);
 
     // EventTarget interface
     void addEventListener(DOMString type,
diff --git a/modules/mediastream/DOMWindowMediaStream.idl b/modules/mediastream/DOMWindowMediaStream.idl
index c492de4..c9cffef 100644
--- a/modules/mediastream/DOMWindowMediaStream.idl
+++ b/modules/mediastream/DOMWindowMediaStream.idl
@@ -24,9 +24,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    Conditional=MEDIA_STREAM,
-] partial interface DOMWindow {
+partial interface DOMWindow {
     [EnabledAtRuntime=mediaStream] attribute MediaStreamConstructor webkitMediaStream;
     [EnabledAtRuntime=peerConnection] attribute RTCPeerConnectionConstructor webkitRTCPeerConnection;
     attribute RTCSessionDescriptionConstructor RTCSessionDescription;
diff --git a/modules/mediastream/MediaStream.idl b/modules/mediastream/MediaStream.idl
index e41ea5c..45c415d 100644
--- a/modules/mediastream/MediaStream.idl
+++ b/modules/mediastream/MediaStream.idl
@@ -23,7 +23,6 @@
  */
 
 [
-    Conditional=MEDIA_STREAM,
     EventTarget,
     Constructor,
     Constructor(MediaStream stream),
diff --git a/modules/mediastream/MediaStreamEvent.idl b/modules/mediastream/MediaStreamEvent.idl
index b44729c..ee96157 100644
--- a/modules/mediastream/MediaStreamEvent.idl
+++ b/modules/mediastream/MediaStreamEvent.idl
@@ -23,7 +23,6 @@
  */
 
 [
-    Conditional=MEDIA_STREAM,
     ConstructorTemplate=Event
 ] interface MediaStreamEvent : Event {
    [InitializedByEventConstructor] readonly attribute MediaStream stream;
diff --git a/modules/mediastream/MediaStreamTrack.idl b/modules/mediastream/MediaStreamTrack.idl
index 48495fd..b58a085 100644
--- a/modules/mediastream/MediaStreamTrack.idl
+++ b/modules/mediastream/MediaStreamTrack.idl
@@ -23,7 +23,6 @@
  */
 
 [
-    Conditional=MEDIA_STREAM,
     EventTarget,
     ActiveDOMObject
 ] interface MediaStreamTrack {
diff --git a/modules/mediastream/MediaStreamTrackEvent.idl b/modules/mediastream/MediaStreamTrackEvent.idl
index 640a2af..c7ad507 100644
--- a/modules/mediastream/MediaStreamTrackEvent.idl
+++ b/modules/mediastream/MediaStreamTrackEvent.idl
@@ -22,9 +22,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    Conditional=MEDIA_STREAM,
-] interface MediaStreamTrackEvent : Event {
+interface MediaStreamTrackEvent : Event {
    readonly attribute MediaStreamTrack track;
 };
 
diff --git a/modules/mediastream/NavigatorMediaStream.idl b/modules/mediastream/NavigatorMediaStream.idl
index 5da3ed9..94df656 100644
--- a/modules/mediastream/NavigatorMediaStream.idl
+++ b/modules/mediastream/NavigatorMediaStream.idl
@@ -17,9 +17,7 @@
  * Boston, MA 02110-1301, USA.
  */
 
-[
-    Conditional=MEDIA_STREAM,
-] partial interface Navigator {
+partial interface Navigator {
     [EnabledAtRuntime=mediaStream, RaisesException] void webkitGetUserMedia(Dictionary options,
                                                  NavigatorUserMediaSuccessCallback successCallback,
                                                  optional NavigatorUserMediaErrorCallback errorCallback);
diff --git a/modules/mediastream/NavigatorUserMediaError.idl b/modules/mediastream/NavigatorUserMediaError.idl
index 9c6df79..cdaa5c0 100644
--- a/modules/mediastream/NavigatorUserMediaError.idl
+++ b/modules/mediastream/NavigatorUserMediaError.idl
@@ -22,9 +22,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    Conditional=MEDIA_STREAM
-] interface NavigatorUserMediaError {
+interface NavigatorUserMediaError {
     const unsigned short PERMISSION_DENIED = 1;
     readonly attribute unsigned short code;
 };
diff --git a/modules/mediastream/NavigatorUserMediaErrorCallback.idl b/modules/mediastream/NavigatorUserMediaErrorCallback.idl
index da94ad8..37c581d 100644
--- a/modules/mediastream/NavigatorUserMediaErrorCallback.idl
+++ b/modules/mediastream/NavigatorUserMediaErrorCallback.idl
@@ -22,9 +22,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    Conditional=MEDIA_STREAM
-] callback interface NavigatorUserMediaErrorCallback {
+callback interface NavigatorUserMediaErrorCallback {
     boolean handleEvent(NavigatorUserMediaError error);
 };
 
diff --git a/modules/mediastream/NavigatorUserMediaSuccessCallback.idl b/modules/mediastream/NavigatorUserMediaSuccessCallback.idl
index 3912797..c520266 100644
--- a/modules/mediastream/NavigatorUserMediaSuccessCallback.idl
+++ b/modules/mediastream/NavigatorUserMediaSuccessCallback.idl
@@ -22,9 +22,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    Conditional=MEDIA_STREAM,
-] callback interface NavigatorUserMediaSuccessCallback {
+callback interface NavigatorUserMediaSuccessCallback {
     boolean handleEvent(MediaStream stream);
 };
 
diff --git a/modules/mediastream/RTCDTMFSender.idl b/modules/mediastream/RTCDTMFSender.idl
index 6c3f419..ad97c75 100644
--- a/modules/mediastream/RTCDTMFSender.idl
+++ b/modules/mediastream/RTCDTMFSender.idl
@@ -24,7 +24,6 @@
  */
 
 [
-    Conditional=MEDIA_STREAM,
     ActiveDOMObject,
     EventTarget
 ] interface RTCDTMFSender {
diff --git a/modules/mediastream/RTCDTMFToneChangeEvent.idl b/modules/mediastream/RTCDTMFToneChangeEvent.idl
index b8057f5..ee1ae8a 100644
--- a/modules/mediastream/RTCDTMFToneChangeEvent.idl
+++ b/modules/mediastream/RTCDTMFToneChangeEvent.idl
@@ -24,7 +24,6 @@
  */
 
 [
-    Conditional=MEDIA_STREAM,
     ConstructorTemplate=Event
 ] interface RTCDTMFToneChangeEvent : Event {
     [InitializedByEventConstructor] readonly attribute DOMString tone;
diff --git a/modules/mediastream/RTCDataChannel.idl b/modules/mediastream/RTCDataChannel.idl
index 265c822..4532213 100644
--- a/modules/mediastream/RTCDataChannel.idl
+++ b/modules/mediastream/RTCDataChannel.idl
@@ -23,7 +23,6 @@
  */
 
 [
-    Conditional=MEDIA_STREAM,
     EventTarget
 ] interface RTCDataChannel {
     readonly attribute DOMString label;
diff --git a/modules/mediastream/RTCDataChannelEvent.idl b/modules/mediastream/RTCDataChannelEvent.idl
index 7fd7ec9..2a820b8 100644
--- a/modules/mediastream/RTCDataChannelEvent.idl
+++ b/modules/mediastream/RTCDataChannelEvent.idl
@@ -22,8 +22,6 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    Conditional=MEDIA_STREAM,
-] interface RTCDataChannelEvent : Event {
+interface RTCDataChannelEvent : Event {
     readonly attribute RTCDataChannel channel;
 };
diff --git a/modules/mediastream/RTCErrorCallback.idl b/modules/mediastream/RTCErrorCallback.idl
index 5af5bfc..d215353 100644
--- a/modules/mediastream/RTCErrorCallback.idl
+++ b/modules/mediastream/RTCErrorCallback.idl
@@ -28,9 +28,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    Conditional=MEDIA_STREAM
-] callback interface RTCErrorCallback {
+callback interface RTCErrorCallback {
     boolean handleEvent(DOMString errorInformation);
 };
 
diff --git a/modules/mediastream/RTCIceCandidate.idl b/modules/mediastream/RTCIceCandidate.idl
index 9cba455..acad5fa 100644
--- a/modules/mediastream/RTCIceCandidate.idl
+++ b/modules/mediastream/RTCIceCandidate.idl
@@ -29,7 +29,6 @@
  */
 
 [
-    Conditional=MEDIA_STREAM,
     Constructor(Dictionary dictionary),
     RaisesException
 ] interface RTCIceCandidate {
diff --git a/modules/mediastream/RTCIceCandidateEvent.idl b/modules/mediastream/RTCIceCandidateEvent.idl
index 331d3b3..26b5a61 100644
--- a/modules/mediastream/RTCIceCandidateEvent.idl
+++ b/modules/mediastream/RTCIceCandidateEvent.idl
@@ -22,9 +22,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    Conditional=MEDIA_STREAM,
-] interface RTCIceCandidateEvent : Event {
+interface RTCIceCandidateEvent : Event {
     readonly attribute RTCIceCandidate candidate;
 };
 
diff --git a/modules/mediastream/RTCPeerConnection.idl b/modules/mediastream/RTCPeerConnection.idl
index 940e96c..ac044ab 100644
--- a/modules/mediastream/RTCPeerConnection.idl
+++ b/modules/mediastream/RTCPeerConnection.idl
@@ -29,7 +29,6 @@
  */
 
 [
-    Conditional=MEDIA_STREAM,
     ActiveDOMObject,
     Constructor(Dictionary rtcIceServers, optional Dictionary mediaConstraints),
     RaisesException,
diff --git a/modules/mediastream/RTCSessionDescription.idl b/modules/mediastream/RTCSessionDescription.idl
index 5802e0b..bdd8d69 100644
--- a/modules/mediastream/RTCSessionDescription.idl
+++ b/modules/mediastream/RTCSessionDescription.idl
@@ -29,7 +29,6 @@
  */
 
 [
-    Conditional=MEDIA_STREAM,
     Constructor(Dictionary dictionary),
     RaisesException
 ] interface RTCSessionDescription {
diff --git a/modules/mediastream/RTCSessionDescriptionCallback.idl b/modules/mediastream/RTCSessionDescriptionCallback.idl
index 2fb8560..e80be03 100644
--- a/modules/mediastream/RTCSessionDescriptionCallback.idl
+++ b/modules/mediastream/RTCSessionDescriptionCallback.idl
@@ -28,9 +28,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    Conditional=MEDIA_STREAM
-] callback interface RTCSessionDescriptionCallback {
+callback interface RTCSessionDescriptionCallback {
     boolean handleEvent(RTCSessionDescription sdp);
 };
 
diff --git a/modules/mediastream/RTCStatsCallback.idl b/modules/mediastream/RTCStatsCallback.idl
index 437e03f..c81c725 100644
--- a/modules/mediastream/RTCStatsCallback.idl
+++ b/modules/mediastream/RTCStatsCallback.idl
@@ -22,9 +22,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    Conditional=MEDIA_STREAM
-] callback interface RTCStatsCallback {
+callback interface RTCStatsCallback {
     boolean handleEvent(RTCStatsResponse response);
 };
 
diff --git a/modules/mediastream/RTCStatsReport.idl b/modules/mediastream/RTCStatsReport.idl
index 0259add..00ae129 100644
--- a/modules/mediastream/RTCStatsReport.idl
+++ b/modules/mediastream/RTCStatsReport.idl
@@ -23,7 +23,6 @@
  */
 
 [
-    Conditional=MEDIA_STREAM,
     ImplementationLacksVTable
 ] interface RTCStatsReport {
     readonly attribute Date timestamp;
diff --git a/modules/mediastream/RTCStatsResponse.idl b/modules/mediastream/RTCStatsResponse.idl
index bbec09b..384bd6b 100644
--- a/modules/mediastream/RTCStatsResponse.idl
+++ b/modules/mediastream/RTCStatsResponse.idl
@@ -22,9 +22,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    Conditional=MEDIA_STREAM
-] interface RTCStatsResponse {
+interface RTCStatsResponse {
     sequence<RTCStatsReport> result();
     getter RTCStatsReport namedItem([Default=Undefined] optional DOMString name);
 };
diff --git a/modules/notifications/NotificationCenter.idl b/modules/notifications/NotificationCenter.idl
index 0263f91..ceddbe3 100644
--- a/modules/notifications/NotificationCenter.idl
+++ b/modules/notifications/NotificationCenter.idl
@@ -38,7 +38,7 @@
 #endif
    [MeasureAs=LegacyTextNotifications, ActivityLog=Access, RaisesException] Notification createNotification(DOMString iconUrl, DOMString title, DOMString body);
 
-   int checkPermission();
+   long checkPermission();
    void requestPermission(optional VoidCallback callback);
 };
 
diff --git a/modules/speech/SpeechGrammarList.idl b/modules/speech/SpeechGrammarList.idl
index 18ae829..2c6db68 100644
--- a/modules/speech/SpeechGrammarList.idl
+++ b/modules/speech/SpeechGrammarList.idl
@@ -24,12 +24,11 @@
  */
 
 [
-    IndexedGetter,
     Constructor,
     ImplementationLacksVTable
 ] interface SpeechGrammarList {
     readonly attribute unsigned long length;
-    SpeechGrammar item([IsIndex] unsigned long index);
+    getter SpeechGrammar item([IsIndex] unsigned long index);
     [CallWith=ScriptExecutionContext] void addFromUri(DOMString src, optional float weight);
     void addFromString(DOMString string, optional float weight);
 };
diff --git a/modules/speech/SpeechRecognitionResult.idl b/modules/speech/SpeechRecognitionResult.idl
index 9abd376..15a7f7d 100644
--- a/modules/speech/SpeechRecognitionResult.idl
+++ b/modules/speech/SpeechRecognitionResult.idl
@@ -24,10 +24,9 @@
  */
 
 [
-    IndexedGetter,
     ImplementationLacksVTable
 ] interface SpeechRecognitionResult {
     readonly attribute unsigned long length;
-    SpeechRecognitionAlternative item([IsIndex] unsigned long index);
+    getter SpeechRecognitionAlternative item([IsIndex] unsigned long index);
     readonly attribute boolean isFinal;
 };
diff --git a/modules/speech/SpeechRecognitionResultList.idl b/modules/speech/SpeechRecognitionResultList.idl
index 51a83ae..f2ccdeb 100644
--- a/modules/speech/SpeechRecognitionResultList.idl
+++ b/modules/speech/SpeechRecognitionResultList.idl
@@ -24,9 +24,8 @@
  */
 
 [
-    IndexedGetter,
     ImplementationLacksVTable
 ] interface SpeechRecognitionResultList {
     readonly attribute unsigned long length;
-    SpeechRecognitionResult item([IsIndex] unsigned long index);
+    getter SpeechRecognitionResult item([IsIndex] unsigned long index);
 };
diff --git a/modules/webaudio/AudioContext.idl b/modules/webaudio/AudioContext.idl
index 6326afa..088f684 100644
--- a/modules/webaudio/AudioContext.idl
+++ b/modules/webaudio/AudioContext.idl
@@ -55,10 +55,8 @@
 
     [RaisesException] MediaElementAudioSourceNode createMediaElementSource(HTMLMediaElement mediaElement);
 
-#if defined(ENABLE_MEDIA_STREAM) && ENABLE_MEDIA_STREAM
     [RaisesException] MediaStreamAudioSourceNode createMediaStreamSource(MediaStream mediaStream);
     MediaStreamAudioDestinationNode createMediaStreamDestination();
-#endif
 
     // Processing nodes
     GainNode createGain();
diff --git a/modules/webaudio/MediaStreamAudioDestinationNode.idl b/modules/webaudio/MediaStreamAudioDestinationNode.idl
index 26f2c3d..8e2fa8a 100644
--- a/modules/webaudio/MediaStreamAudioDestinationNode.idl
+++ b/modules/webaudio/MediaStreamAudioDestinationNode.idl
@@ -23,7 +23,7 @@
  */
 
 [
-    Conditional=WEB_AUDIO&MEDIA_STREAM
+    Conditional=WEB_AUDIO
 ] interface MediaStreamAudioDestinationNode : AudioSourceNode {
     readonly attribute MediaStream stream;
 };
diff --git a/modules/webaudio/MediaStreamAudioSourceNode.idl b/modules/webaudio/MediaStreamAudioSourceNode.idl
index f32a332..78f29df 100644
--- a/modules/webaudio/MediaStreamAudioSourceNode.idl
+++ b/modules/webaudio/MediaStreamAudioSourceNode.idl
@@ -23,7 +23,7 @@
  */
 
 [
-    Conditional=WEB_AUDIO&MEDIA_STREAM
+    Conditional=WEB_AUDIO
 ] interface MediaStreamAudioSourceNode : AudioSourceNode {
     readonly attribute MediaStream mediaStream;
 };
diff --git a/modules/webmidi/MIDIInput.idl b/modules/webmidi/MIDIInput.idl
new file mode 100644
index 0000000..f4cd4f2
--- /dev/null
+++ b/modules/webmidi/MIDIInput.idl
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+[
+    ActiveDOMObject,
+    EventTarget
+] interface MIDIInput : MIDIPort {
+    attribute EventListener onmidimessage;
+};
