Roll IDL to multivm@1329

TBR=blois@google.com

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

git-svn-id: http://dart.googlecode.com/svn/third_party/WebCore@25845 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/core/README b/core/README
index b922618..57d4efd 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: 1316
+Current revision: 1329
diff --git a/core/css/CSSHostRule.idl b/core/css/CSSHostRule.idl
index 1f78088..237a051 100644
--- a/core/css/CSSHostRule.idl
+++ b/core/css/CSSHostRule.idl
@@ -21,8 +21,8 @@
 // Introduced in Shadow DOM spec:
 interface CSSHostRule : CSSRule {
     readonly attribute CSSRuleList cssRules;
-    
-    [RaisesException] unsigned long      insertRule([Default=Undefined] optional DOMString rule, 
+
+    [RaisesException] unsigned long      insertRule([Default=Undefined] optional DOMString rule,
                                   [Default=Undefined] optional unsigned long index);
     [RaisesException] void               deleteRule([Default=Undefined] optional unsigned long index);
 };
diff --git a/core/css/CSSMediaRule.idl b/core/css/CSSMediaRule.idl
index b1ea13a..71185a7 100644
--- a/core/css/CSSMediaRule.idl
+++ b/core/css/CSSMediaRule.idl
@@ -22,8 +22,8 @@
 interface CSSMediaRule : CSSRule {
     readonly attribute MediaList media;
     readonly attribute CSSRuleList cssRules;
-    
-     [RaisesException] unsigned long      insertRule([Default=Undefined] optional DOMString rule, 
+
+     [RaisesException] unsigned long      insertRule([Default=Undefined] optional DOMString rule,
                                                  [Default=Undefined] optional unsigned long index);
     [RaisesException] void               deleteRule([Default=Undefined] optional unsigned long index);
 };
diff --git a/core/css/CSSPrimitiveValue.idl b/core/css/CSSPrimitiveValue.idl
index ff49620..06904da 100644
--- a/core/css/CSSPrimitiveValue.idl
+++ b/core/css/CSSPrimitiveValue.idl
@@ -51,13 +51,13 @@
     const unsigned short CSS_VH         = 27;
     const unsigned short CSS_VMIN       = 28;
     const unsigned short CSS_VMAX       = 29;
-    
+
     readonly attribute unsigned short primitiveType;
 
      [RaisesException] void setFloatValue([Default=Undefined] optional unsigned short unitType,
                                       [Default=Undefined] optional float floatValue);
     [RaisesException] float getFloatValue([Default=Undefined] optional unsigned short unitType);
-     [RaisesException] void setStringValue([Default=Undefined] optional unsigned short stringType, 
+     [RaisesException] void setStringValue([Default=Undefined] optional unsigned short stringType,
                                        [Default=Undefined] optional DOMString stringValue);
     [RaisesException] DOMString getStringValue();
     [RaisesException] Counter getCounterValue();
diff --git a/core/css/CSSRuleList.idl b/core/css/CSSRuleList.idl
index e89a820..b2d90d6 100644
--- a/core/css/CSSRuleList.idl
+++ b/core/css/CSSRuleList.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 // Introduced in DOM Level 2:
diff --git a/core/css/CSSStyleDeclaration.idl b/core/css/CSSStyleDeclaration.idl
index c94f081..4f1bdf6 100644
--- a/core/css/CSSStyleDeclaration.idl
+++ b/core/css/CSSStyleDeclaration.idl
@@ -28,8 +28,8 @@
     CSSValue           getPropertyCSSValue([Default=Undefined] optional DOMString propertyName);
     [TreatReturnedNullStringAs=Null, RaisesException] DOMString          removeProperty([Default=Undefined] optional DOMString propertyName);
     [TreatReturnedNullStringAs=Null] DOMString          getPropertyPriority([Default=Undefined] optional DOMString propertyName);
-     [RaisesException] void setProperty([Default=Undefined] optional DOMString propertyName, 
-                                    [TreatNullAs=NullString,Default=Undefined] optional DOMString value, 
+     [RaisesException] void setProperty([Default=Undefined] optional DOMString propertyName,
+                                    [TreatNullAs=NullString,Default=Undefined] optional DOMString value,
                                     [Default=Undefined] optional DOMString priority);
 
     readonly attribute unsigned long    length;
@@ -37,5 +37,6 @@
     [Custom, CustomEnumerateProperty] getter (DOMString or float) (DOMString name);
     [Custom] setter void (DOMString propertyName, [TreatNullAs=NullString] DOMString propertyValue);
     readonly attribute CSSRule          parentRule;
+    [EnabledAtRuntime=CSSVariables] readonly attribute CSSVariablesMap var;
 };
 
diff --git a/core/css/CSSStyleSheet.idl b/core/css/CSSStyleSheet.idl
index 62350f5..7d00744 100644
--- a/core/css/CSSStyleSheet.idl
+++ b/core/css/CSSStyleSheet.idl
@@ -25,7 +25,7 @@
     readonly attribute CSSRule          ownerRule;
     readonly attribute CSSRuleList      cssRules;
 
-    [RaisesException] unsigned long insertRule([Default=Undefined] optional DOMString rule, 
+    [RaisesException] unsigned long insertRule([Default=Undefined] optional DOMString rule,
                                             [Default=Undefined] optional unsigned long index);
     [RaisesException] void               deleteRule([Default=Undefined] optional unsigned long index);
 
diff --git a/core/css/CSSValue.idl b/core/css/CSSValue.idl
index e8a4a13..9ac1fc8 100644
--- a/core/css/CSSValue.idl
+++ b/core/css/CSSValue.idl
@@ -20,7 +20,7 @@
 
 [
     CustomToV8,
-    
+
     DependentLifetime
 ] interface CSSValue {
 
diff --git a/core/css/CSSValueList.idl b/core/css/CSSValueList.idl
index 7d0b63e..ea58b39 100644
--- a/core/css/CSSValueList.idl
+++ b/core/css/CSSValueList.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 // Introduced in DOM Level 2:
diff --git a/modules/crypto/WorkerContextCrypto.idl b/core/css/CSSVariablesMap.idl
similarity index 81%
copy from modules/crypto/WorkerContextCrypto.idl
copy to core/css/CSSVariablesMap.idl
index 83b298c..b6ab78a 100644
--- a/modules/crypto/WorkerContextCrypto.idl
+++ b/core/css/CSSVariablesMap.idl
@@ -11,9 +11,6 @@
  * 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
@@ -28,6 +25,11 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface WorkerContext {
-    [EnabledAtRuntime=Crypto] readonly attribute WorkerCrypto crypto;
+interface CSSVariablesMap {
+    readonly attribute unsigned long size;
+    DOMString get(DOMString name);
+    boolean has(DOMString name);
+    [RaisesException] void set(DOMString name, DOMString value);
+    [ImplementedAs=remove] boolean delete(DOMString name);
+    [RaisesException] void clear();
 };
diff --git a/core/css/FontLoader.idl b/core/css/FontLoader.idl
index 7e7842a..4e922c1 100644
--- a/core/css/FontLoader.idl
+++ b/core/css/FontLoader.idl
@@ -32,9 +32,8 @@
     NoInterfaceObject,
     EnabledAtRuntime=fontLoadEvents,
     ActiveDOMObject,
-    EventTarget,
     GenerateIsReachable=document
-] interface FontLoader {
+] interface FontLoader : EventTarget {
 
     attribute EventListener onloading;
     attribute EventListener onloadingdone;
@@ -46,12 +45,4 @@
     void loadFont(Dictionary params);
     void notifyWhenFontsReady(VoidCallback callback);
     readonly attribute boolean loading;
-
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
diff --git a/core/css/MediaList.idl b/core/css/MediaList.idl
index 1aba7ce..9d26617 100644
--- a/core/css/MediaList.idl
+++ b/core/css/MediaList.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 // Introduced in DOM Level 2:
diff --git a/core/css/MediaQueryListListener.idl b/core/css/MediaQueryListListener.idl
index d8ff09e..755c416 100644
--- a/core/css/MediaQueryListListener.idl
+++ b/core/css/MediaQueryListListener.idl
@@ -18,7 +18,7 @@
  */
 
 [
-    
+
     CPPPureInterface
 ] interface MediaQueryListListener {
     void queryChanged([Default=Undefined] optional MediaQueryList list);
diff --git a/core/css/StyleMedia.idl b/core/css/StyleMedia.idl
index 27424f3..370eee8 100644
--- a/core/css/StyleMedia.idl
+++ b/core/css/StyleMedia.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/css/WebKitCSSFilterValue.idl b/core/css/WebKitCSSFilterValue.idl
index 52500df..c6f4b80 100644
--- a/core/css/WebKitCSSFilterValue.idl
+++ b/core/css/WebKitCSSFilterValue.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/css/WebKitCSSKeyframesRule.idl b/core/css/WebKitCSSKeyframesRule.idl
index 5fdc800..94a3609 100644
--- a/core/css/WebKitCSSKeyframesRule.idl
+++ b/core/css/WebKitCSSKeyframesRule.idl
@@ -33,7 +33,7 @@
 
     [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] attribute DOMString name;
     readonly attribute CSSRuleList cssRules;
-    
+
     [ImplementedAs=item, NotEnumerable] getter WebKitCSSKeyframeRule(unsigned long index);
     void insertRule([Default=Undefined] optional DOMString rule);
     void deleteRule([Default=Undefined] optional DOMString key);
diff --git a/core/css/WebKitCSSMatrix.idl b/core/css/WebKitCSSMatrix.idl
index fa581b4..b3232da 100644
--- a/core/css/WebKitCSSMatrix.idl
+++ b/core/css/WebKitCSSMatrix.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 // Introduced in DOM Level ?:
@@ -56,39 +56,39 @@
     attribute double m44;
 
     [RaisesException] void setMatrixValue([Default=Undefined] optional DOMString string);
-    
+
     // Multiply this matrix by secondMatrix, on the right (result = this * secondMatrix)
     [Immutable] WebKitCSSMatrix multiply([Default=Undefined] optional WebKitCSSMatrix secondMatrix);
-    
+
     // Return the inverse of this matrix. Throw an exception if the matrix is not invertible
     [Immutable, RaisesException] WebKitCSSMatrix inverse();
-    
+
     // Return this matrix translated by the passed values.
-    // Passing a NaN will use a value of 0. This allows the 3D form to used for 2D operations    
-    [Immutable] WebKitCSSMatrix translate([Default=Undefined] optional double x, 
-                                          [Default=Undefined] optional double y, 
+    // Passing a NaN will use a value of 0. This allows the 3D form to used for 2D operations
+    [Immutable] WebKitCSSMatrix translate([Default=Undefined] optional double x,
+                                          [Default=Undefined] optional double y,
                                           [Default=Undefined] optional double z);
-    
+
     // Returns this matrix scaled by the passed values.
-    // Passing scaleX or scaleZ as NaN uses a value of 1, but passing scaleY of NaN 
+    // Passing scaleX or scaleZ as NaN uses a value of 1, but passing scaleY of NaN
     // makes it the same as scaleX. This allows the 3D form to used for 2D operations
-    [Immutable] WebKitCSSMatrix scale([Default=Undefined] optional double scaleX, 
-                                      [Default=Undefined] optional double scaleY, 
+    [Immutable] WebKitCSSMatrix scale([Default=Undefined] optional double scaleX,
+                                      [Default=Undefined] optional double scaleY,
                                       [Default=Undefined] optional double scaleZ);
-    
+
     // Returns this matrix rotated by the passed values.
     // If rotY and rotZ are NaN, rotate about Z (rotX=0, rotateY=0, rotateZ=rotX).
-    // Otherwise use a rotation value of 0 for any passed NaN.    
-    [Immutable] WebKitCSSMatrix rotate([Default=Undefined] optional double rotX, 
-                                       [Default=Undefined] optional double rotY, 
+    // Otherwise use a rotation value of 0 for any passed NaN.
+    [Immutable] WebKitCSSMatrix rotate([Default=Undefined] optional double rotX,
+                                       [Default=Undefined] optional double rotY,
                                        [Default=Undefined] optional double rotZ);
-    
+
     // Returns this matrix rotated about the passed axis by the passed angle.
     // Passing a NaN will use a value of 0. If the axis is (0,0,0) use a value
     // of (0,0,1).
-    [Immutable] WebKitCSSMatrix rotateAxisAngle([Default=Undefined] optional double x, 
-                                                [Default=Undefined] optional double y, 
-                                                [Default=Undefined] optional double z, 
+    [Immutable] WebKitCSSMatrix rotateAxisAngle([Default=Undefined] optional double x,
+                                                [Default=Undefined] optional double y,
+                                                [Default=Undefined] optional double z,
                                                 [Default=Undefined] optional double angle);
 
     // Returns this matrix skewed along the X axis by the passed values.
diff --git a/core/dom/AutocompleteErrorEvent.idl b/core/dom/AutocompleteErrorEvent.idl
index 807ef04..5f9b700 100644
--- a/core/dom/AutocompleteErrorEvent.idl
+++ b/core/dom/AutocompleteErrorEvent.idl
@@ -1,6 +1,6 @@
 /*
  * 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:
@@ -9,7 +9,7 @@
  * 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. 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
diff --git a/core/dom/BeforeLoadEvent.idl b/core/dom/BeforeLoadEvent.idl
index 54b8501..428a513 100644
--- a/core/dom/BeforeLoadEvent.idl
+++ b/core/dom/BeforeLoadEvent.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
 
diff --git a/core/dom/CharacterData.idl b/core/dom/CharacterData.idl
index 2e3262c..eb6bfe7 100644
--- a/core/dom/CharacterData.idl
+++ b/core/dom/CharacterData.idl
@@ -22,18 +22,18 @@
     [TreatNullAs=NullString] attribute DOMString data;
 
     readonly attribute unsigned long length;
-    
+
     [TreatReturnedNullStringAs=Null, RaisesException] DOMString substringData([IsIndex,Default=Undefined] optional unsigned long offset, [IsIndex,Default=Undefined] optional unsigned long length);
 
     void appendData([Default=Undefined] optional DOMString data);
 
-     [RaisesException] void insertData([IsIndex,Default=Undefined] optional unsigned long offset, 
+     [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, 
+     [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, 
+     [RaisesException] void replaceData([IsIndex,Default=Undefined] optional unsigned long offset,
                                     [IsIndex,Default=Undefined] optional unsigned long length,
                                     [Default=Undefined] optional DOMString data);
 };
diff --git a/core/dom/ChildNode.idl b/core/dom/ChildNode.idl
index b37f05f..d320e11 100644
--- a/core/dom/ChildNode.idl
+++ b/core/dom/ChildNode.idl
@@ -2,7 +2,7 @@
  * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
  * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
  * Copyright (C) 2013 Samsung Electronics. All rights reserved.
- * 
+ *
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -20,10 +20,12 @@
  * Boston, MA 02110-1301, USA.
  */
 
-[NoInterfaceObject]
-interface ChildNode {
+[
+    NoInterfaceObject,
+    LegacyImplementedInBaseClass
+] interface ChildNode {
     [PerWorldBindings] readonly attribute Element previousElementSibling;
     [PerWorldBindings] readonly attribute Element nextElementSibling;
-    [RaisesException] void remove();
+    [RaisesException, DeliverCustomElementCallbacks] void remove();
 };
 
diff --git a/core/dom/ClientRect.idl b/core/dom/ClientRect.idl
index 2d96ed0..ffdcfdd 100644
--- a/core/dom/ClientRect.idl
+++ b/core/dom/ClientRect.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
 
diff --git a/core/dom/ClientRectList.idl b/core/dom/ClientRectList.idl
index 2d35d67..7635d1e 100644
--- a/core/dom/ClientRectList.idl
+++ b/core/dom/ClientRectList.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
 
diff --git a/core/dom/CompositionEvent.idl b/core/dom/CompositionEvent.idl
index 4f1a5b0..c54d50f 100644
--- a/core/dom/CompositionEvent.idl
+++ b/core/dom/CompositionEvent.idl
@@ -9,7 +9,7 @@
  * 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
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
@@ -29,10 +29,10 @@
 
     [InitializedByEventConstructor] readonly attribute DOMString data;
 
-    void initCompositionEvent([Default=Undefined] optional DOMString typeArg, 
-                              [Default=Undefined] optional boolean canBubbleArg, 
-                              [Default=Undefined] optional boolean cancelableArg, 
-                              [Default=Undefined] optional Window viewArg, 
+    void initCompositionEvent([Default=Undefined] optional DOMString typeArg,
+                              [Default=Undefined] optional boolean canBubbleArg,
+                              [Default=Undefined] optional boolean cancelableArg,
+                              [Default=Undefined] optional Window viewArg,
                               [Default=Undefined] optional DOMString dataArg);
 
 };
diff --git a/core/dom/CustomEvent.idl b/core/dom/CustomEvent.idl
index f4a67e4..12edaa5 100644
--- a/core/dom/CustomEvent.idl
+++ b/core/dom/CustomEvent.idl
@@ -9,7 +9,7 @@
  * 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
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
@@ -28,8 +28,8 @@
 ] interface CustomEvent : Event {
     [InitializedByEventConstructor, Custom] readonly attribute any detail;
 
-    void initCustomEvent([Default=Undefined] optional DOMString typeArg, 
-                         [Default=Undefined] optional boolean canBubbleArg, 
-                         [Default=Undefined] optional boolean cancelableArg, 
-                         [Default=Undefined] optional any detailArg);
+    [Custom] void initCustomEvent([Default=Undefined] optional DOMString typeArg,
+                                  [Default=Undefined] optional boolean canBubbleArg,
+                                  [Default=Undefined] optional boolean cancelableArg,
+                                  [Default=Undefined] optional any detailArg);
 };
diff --git a/core/dom/DOMException.idl b/core/dom/DOMException.idl
index d4e9520..68d04bf 100644
--- a/core/dom/DOMException.idl
+++ b/core/dom/DOMException.idl
@@ -27,8 +27,7 @@
  */
 
 [
-    DoNotCheckConstants,
-    ImplementedAs=DOMCoreException
+    DoNotCheckConstants
 ] exception DOMException {
 
     readonly attribute unsigned short   code;
diff --git a/core/dom/DOMImplementation.idl b/core/dom/DOMImplementation.idl
index 0040c11..0d627f5 100644
--- a/core/dom/DOMImplementation.idl
+++ b/core/dom/DOMImplementation.idl
@@ -24,7 +24,7 @@
 
     // DOM Level 1
 
-     boolean hasFeature([Default=Undefined] optional DOMString feature, 
+     boolean hasFeature([Default=Undefined] optional DOMString feature,
                                       [TreatNullAs=NullString,Default=Undefined] optional DOMString version);
 
     // DOM Level 2
@@ -32,8 +32,8 @@
      [RaisesException] DocumentType createDocumentType([TreatNullAs=NullString, TreatUndefinedAs=NullString,Default=Undefined] optional DOMString qualifiedName,
                                                    [TreatNullAs=NullString, TreatUndefinedAs=NullString,Default=Undefined] optional DOMString publicId,
                                                    [TreatNullAs=NullString, TreatUndefinedAs=NullString,Default=Undefined] optional DOMString systemId);
-     [RaisesException] Document createDocument([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI, 
-                                           [TreatNullAs=NullString,Default=Undefined] optional DOMString qualifiedName, 
+     [RaisesException] Document createDocument([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
+                                           [TreatNullAs=NullString,Default=Undefined] optional DOMString qualifiedName,
                                            [TreatNullAs=NullString,Default=Undefined] optional DocumentType doctype);
 
     // DOMImplementationCSS interface from DOM Level 2 CSS
diff --git a/core/dom/DataTransferItemList.idl b/core/dom/DataTransferItemList.idl
index 07e9e2a..eec5c0c 100644
--- a/core/dom/DataTransferItemList.idl
+++ b/core/dom/DataTransferItemList.idl
@@ -36,7 +36,7 @@
 
     void clear();
     void add(File? file);
-    [RaisesException] void add([Default=Undefined] optional DOMString data, 
+    [RaisesException] void add([Default=Undefined] optional DOMString data,
              [Default=Undefined] optional DOMString type);
 };
 
diff --git a/core/dom/Document.idl b/core/dom/Document.idl
index 7afd390..3e1af34 100644
--- a/core/dom/Document.idl
+++ b/core/dom/Document.idl
@@ -97,16 +97,6 @@
      CSSStyleDeclaration getOverrideStyle([Default=Undefined] optional Element element,
                                                         [Default=Undefined] optional DOMString pseudoElement);
 
-    // DOM Level 3 XPath (XPathEvaluator interface)
-     [RaisesException] XPathExpression createExpression([Default=Undefined] optional DOMString expression,
-                                                    [Default=Undefined] optional XPathNSResolver resolver);
-    XPathNSResolver    createNSResolver(Node nodeResolver);
-    [Custom, RaisesException] XPathResult evaluate([Default=Undefined] optional DOMString expression,
-                                                  [Default=Undefined] optional Node contextNode,
-                                                  [Default=Undefined] optional XPathNSResolver resolver,
-                                                  [Default=Undefined] optional unsigned short type,
-                                                  [Default=Undefined] optional XPathResult inResult);
-
     // Common extensions
     [DeliverCustomElementCallbacks]
     boolean            execCommand([Default=Undefined] optional DOMString command,
@@ -184,30 +174,32 @@
     [NotEnumerable] attribute EventListener onabort;
     [NotEnumerable] attribute EventListener onblur;
     [NotEnumerable] attribute EventListener onchange;
-    [NotEnumerable] attribute EventListener onclick;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onclick;
     [NotEnumerable] attribute EventListener oncontextmenu;
-    [NotEnumerable] attribute EventListener ondblclick;
-    [NotEnumerable] attribute EventListener ondrag;
-    [NotEnumerable] attribute EventListener ondragend;
-    [NotEnumerable] attribute EventListener ondragenter;
-    [NotEnumerable] attribute EventListener ondragleave;
-    [NotEnumerable] attribute EventListener ondragover;
-    [NotEnumerable] attribute EventListener ondragstart;
-    [NotEnumerable] attribute EventListener ondrop;
+    [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] attribute EventListener oninput;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener oninput;
     [NotEnumerable] attribute EventListener oninvalid;
-    [NotEnumerable] attribute EventListener onkeydown;
-    [NotEnumerable] attribute EventListener onkeypress;
-    [NotEnumerable] attribute EventListener onkeyup;
+    [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] attribute EventListener onmousedown;
-    [NotEnumerable] attribute EventListener onmousemove;
-    [NotEnumerable] attribute EventListener onmouseout;
-    [NotEnumerable] attribute EventListener onmouseover;
-    [NotEnumerable] attribute EventListener onmouseup;
-    [NotEnumerable] attribute EventListener onmousewheel;
+    [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;
diff --git a/core/dom/Element.idl b/core/dom/Element.idl
index 543a8a1..29954ca 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] void setAttribute([Default=Undefined] optional DOMString name,
+    [RaisesException, DeliverCustomElementCallbacks] void setAttribute([Default=Undefined] optional DOMString name,
                                      [Default=Undefined] optional DOMString value);
-    void removeAttribute([Default=Undefined] optional DOMString name);
+    [DeliverCustomElementCallbacks] void removeAttribute([Default=Undefined] optional DOMString name);
     Attr getAttributeNode([Default=Undefined] optional DOMString name);
-    [RaisesException] Attr setAttributeNode([Default=Undefined, StrictTypeChecking] optional Attr newAttr);
-    [RaisesException] Attr removeAttributeNode([Default=Undefined, StrictTypeChecking] optional Attr oldAttr);
+    [RaisesException, DeliverCustomElementCallbacks] Attr setAttributeNode([Default=Undefined, StrictTypeChecking] optional Attr newAttr);
+    [RaisesException, DeliverCustomElementCallbacks] 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,10 +43,10 @@
 
      DOMString getAttributeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                             [Default=Undefined] optional DOMString localName);
-     [RaisesException] void setAttributeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
+     [RaisesException, DeliverCustomElementCallbacks] void setAttributeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                        [Default=Undefined] optional DOMString qualifiedName,
                                        [Default=Undefined] optional DOMString value);
-     void removeAttributeNS([TreatNullAs=NullString] DOMString namespaceURI,
+     [DeliverCustomElementCallbacks] void removeAttributeNS([TreatNullAs=NullString] DOMString namespaceURI,
                                           DOMString localName);
      NodeList getElementsByTagNameNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                                    [Default=Undefined] optional DOMString localName);
@@ -100,10 +100,15 @@
     // WebKit extension, pending specification.
     [RaisesException] boolean webkitMatchesSelector([Default=Undefined] optional DOMString selectors);
 
-    // ShadowAware API
-    [Reflect=pseudo, ImplementedAs=pseudo, PerWorldBindings] attribute DOMString webkitPseudo;
-    [ImplementedAs=createShadowRoot, RaisesException] ShadowRoot webkitCreateShadowRoot();
-    [ImplementedAs=shadowRoot, PerWorldBindings] readonly attribute ShadowRoot webkitShadowRoot;
+    // Shadow DOM API
+    [EnabledAtRuntime=ShadowDOM, Reflect, PerWorldBindings] attribute DOMString pseudo;
+    [EnabledAtRuntime=ShadowDOM, RaisesException] ShadowRoot createShadowRoot();
+    [EnabledAtRuntime=ShadowDOM, PerWorldBindings] readonly attribute ShadowRoot shadowRoot;
+
+    // To-be-deprecated prefixed Shadow DOM API
+    [Reflect=pseudo, ImplementedAs=pseudo, PerWorldBindings, MeasureAs=ShadowDOMPrefixedPseudo] attribute DOMString webkitPseudo;
+    [ImplementedAs=createShadowRoot, RaisesException, MeasureAs=ShadowDOMPrefixedCreateShadowRoot] ShadowRoot webkitCreateShadowRoot();
+    [ImplementedAs=shadowRoot, PerWorldBindings, MeasureAs=ShadowDOMPrefixedShadowRoot] readonly attribute ShadowRoot webkitShadowRoot;
 
     // CSSOM View Module API
     ClientRectList getClientRects();
@@ -126,30 +131,32 @@
     [NotEnumerable, PerWorldBindings] attribute EventListener onabort;
     [NotEnumerable, PerWorldBindings] attribute EventListener onblur;
     [NotEnumerable, PerWorldBindings] attribute EventListener onchange;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onclick;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onclick;
     [NotEnumerable, PerWorldBindings] attribute EventListener oncontextmenu;
-    [NotEnumerable, PerWorldBindings] attribute EventListener ondblclick;
-    [NotEnumerable, PerWorldBindings] attribute EventListener ondrag;
-    [NotEnumerable, PerWorldBindings] attribute EventListener ondragend;
-    [NotEnumerable, PerWorldBindings] attribute EventListener ondragenter;
-    [NotEnumerable, PerWorldBindings] attribute EventListener ondragleave;
-    [NotEnumerable, PerWorldBindings] attribute EventListener ondragover;
-    [NotEnumerable, PerWorldBindings] attribute EventListener ondragstart;
-    [NotEnumerable, PerWorldBindings] attribute EventListener ondrop;
+    [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] attribute EventListener oninput;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener oninput;
     [NotEnumerable, PerWorldBindings] attribute EventListener oninvalid;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onkeydown;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onkeypress;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onkeyup;
+    [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] attribute EventListener onmousedown;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onmousemove;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onmouseout;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onmouseover;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onmouseup;
-    [NotEnumerable, PerWorldBindings] attribute EventListener onmousewheel;
+    [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;
diff --git a/core/dom/ErrorEvent.idl b/core/dom/ErrorEvent.idl
index 612a970..21195e9 100644
--- a/core/dom/ErrorEvent.idl
+++ b/core/dom/ErrorEvent.idl
@@ -34,5 +34,9 @@
     [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;
 };
 
diff --git a/core/dom/Event.idl b/core/dom/Event.idl
index 680b038..74af6e1 100644
--- a/core/dom/Event.idl
+++ b/core/dom/Event.idl
@@ -22,7 +22,7 @@
 [
     CustomToV8,
     ConstructorTemplate=Event
-    
+
 ] interface Event {
 
     // DOM PhaseType
@@ -59,8 +59,8 @@
 
     void               stopPropagation();
     void               preventDefault();
-     void initEvent([Default=Undefined] optional DOMString eventTypeArg, 
-                                  [Default=Undefined] optional boolean canBubbleArg, 
+     void initEvent([Default=Undefined] optional DOMString eventTypeArg,
+                                  [Default=Undefined] optional boolean canBubbleArg,
                                   [Default=Undefined] optional boolean cancelableArg);
 
     // DOM Level 3 Additions.
@@ -72,7 +72,7 @@
              attribute boolean          returnValue;
              attribute boolean          cancelBubble;
 
-    [EnabledAtRuntime=experimentalShadowDOM] readonly attribute NodeList path;
+    [EnabledAtRuntime=ShadowDOM] readonly attribute NodeList path;
 
     [Custom] readonly attribute Clipboard        clipboardData;
 };
diff --git a/core/dom/EventTarget.idl b/core/dom/EventTarget.idl
index 32af401..7c87036 100644
--- a/core/dom/EventTarget.idl
+++ b/core/dom/EventTarget.idl
@@ -19,17 +19,14 @@
  */
 
 [
-    NoInterfaceObject,
     CustomToV8,
-    DoNotGenerateWrap,
-    EventTarget
+    DoNotGenerateWrap
 ] interface EventTarget {
-    void addEventListener(DOMString type, 
-                                         EventListener listener, 
-                                         optional boolean useCapture);
-    void removeEventListener(DOMString type, 
-                                         EventListener listener, 
-                                         optional boolean useCapture);
+    void addEventListener(DOMString type,
+                          EventListener listener,
+                          optional boolean useCapture);
+    void removeEventListener(DOMString type,
+                             EventListener listener,
+                             optional boolean useCapture);
     [RaisesException] boolean dispatchEvent(Event event);
 };
-
diff --git a/core/dom/HashChangeEvent.idl b/core/dom/HashChangeEvent.idl
index 2408afe..470a208 100644
--- a/core/dom/HashChangeEvent.idl
+++ b/core/dom/HashChangeEvent.idl
@@ -21,11 +21,11 @@
 [
     ConstructorTemplate=Event
 ] interface HashChangeEvent : Event {
-    void initHashChangeEvent([Default=Undefined] optional DOMString type, 
-                             [Default=Undefined] optional boolean canBubble, 
-                             [Default=Undefined] optional boolean cancelable, 
-                             [Default=Undefined] optional DOMString oldURL, 
-                             [Default=Undefined] optional DOMString newURL); 
+    void initHashChangeEvent([Default=Undefined] optional DOMString type,
+                             [Default=Undefined] optional boolean canBubble,
+                             [Default=Undefined] optional boolean cancelable,
+                             [Default=Undefined] optional DOMString oldURL,
+                             [Default=Undefined] optional DOMString newURL);
     [InitializedByEventConstructor] readonly attribute DOMString oldURL;
     [InitializedByEventConstructor] readonly attribute DOMString newURL;
 };
diff --git a/core/dom/KeyboardEvent.idl b/core/dom/KeyboardEvent.idl
index 134cb59..cda219f 100644
--- a/core/dom/KeyboardEvent.idl
+++ b/core/dom/KeyboardEvent.idl
@@ -31,10 +31,10 @@
     readonly attribute boolean          altGraphKey;
 
     // 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, 
+    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 boolean ctrlKey,
diff --git a/core/dom/MessageChannel.idl b/core/dom/MessageChannel.idl
index ca0e39f..3d62729 100644
--- a/core/dom/MessageChannel.idl
+++ b/core/dom/MessageChannel.idl
@@ -20,12 +20,12 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     Constructor,
     ConstructorCallWith=ScriptExecutionContext,
     CustomConstructor
diff --git a/core/dom/MessageEvent.idl b/core/dom/MessageEvent.idl
index 540b17d..3bc8866 100644
--- a/core/dom/MessageEvent.idl
+++ b/core/dom/MessageEvent.idl
@@ -21,12 +21,12 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     ConstructorTemplate=Event
 ] interface MessageEvent : Event {
     [InitializedByEventConstructor] readonly attribute DOMString origin;
@@ -35,13 +35,13 @@
     [InitializedByEventConstructor, CustomGetter] readonly attribute any data;
     [InitializedByEventConstructor] readonly attribute MessagePort[] ports;
 
-    [Custom] void initMessageEvent([Default=Undefined] optional DOMString typeArg, 
-                                   [Default=Undefined] optional boolean canBubbleArg, 
-                                   [Default=Undefined] optional boolean cancelableArg, 
-                                   [Default=Undefined] optional any dataArg, 
-                                   [Default=Undefined] optional DOMString originArg, 
-                                   [Default=Undefined] optional DOMString lastEventIdArg, 
-                                   [Default=Undefined] optional Window sourceArg, 
+    [Custom] void initMessageEvent([Default=Undefined] optional DOMString typeArg,
+                                   [Default=Undefined] optional boolean canBubbleArg,
+                                   [Default=Undefined] optional boolean cancelableArg,
+                                   [Default=Undefined] optional any dataArg,
+                                   [Default=Undefined] optional DOMString originArg,
+                                   [Default=Undefined] optional DOMString lastEventIdArg,
+                                   [Default=Undefined] optional Window sourceArg,
                                    [Default=Undefined] optional Array messagePorts);
 
     [Custom] void webkitInitMessageEvent([Default=Undefined] optional DOMString typeArg,
diff --git a/core/dom/MessagePort.idl b/core/dom/MessagePort.idl
index 85514c2..aa6ddb3 100644
--- a/core/dom/MessagePort.idl
+++ b/core/dom/MessagePort.idl
@@ -21,14 +21,13 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
 
 [
-    ActiveDOMObject,
-    EventTarget
-] interface MessagePort {
+    ActiveDOMObject
+] interface MessagePort : EventTarget {
 // We need to have something as an ObjC binding, because MessagePort is used in MessageEvent, which already has one,
 // but we don't want to actually expose the API while it is in flux.
     [Custom, RaisesException] void postMessage(any message, optional Array messagePorts);
@@ -38,14 +37,5 @@
 
     // event handler attributes
     attribute EventListener onmessage;
-
-    // EventTarget interface
-    void addEventListener(DOMString type, 
-                          EventListener listener, 
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type, 
-                             EventListener listener, 
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
 
diff --git a/core/dom/MouseEvent.idl b/core/dom/MouseEvent.idl
index 516cb1e..92c3bfb 100644
--- a/core/dom/MouseEvent.idl
+++ b/core/dom/MouseEvent.idl
@@ -32,21 +32,21 @@
     [InitializedByEventConstructor] readonly attribute EventTarget      relatedTarget;
                                     readonly attribute long             webkitMovementX;
                                     readonly attribute long             webkitMovementY;
-    
-     void initMouseEvent([Default=Undefined] optional DOMString type, 
-                                       [Default=Undefined] optional boolean canBubble, 
-                                       [Default=Undefined] optional boolean cancelable, 
-                                       [Default=Undefined] optional Window view, 
-                                       [Default=Undefined] optional long detail, 
-                                       [Default=Undefined] optional long screenX, 
-                                       [Default=Undefined] optional long screenY, 
-                                       [Default=Undefined] optional long clientX, 
-                                       [Default=Undefined] optional long clientY, 
-                                       [Default=Undefined] optional boolean ctrlKey, 
-                                       [Default=Undefined] optional boolean altKey, 
-                                       [Default=Undefined] optional boolean shiftKey, 
-                                       [Default=Undefined] optional boolean metaKey, 
-                                       [Default=Undefined] optional unsigned short button, 
+
+     void initMouseEvent([Default=Undefined] optional DOMString type,
+                                       [Default=Undefined] optional boolean canBubble,
+                                       [Default=Undefined] optional boolean cancelable,
+                                       [Default=Undefined] optional Window view,
+                                       [Default=Undefined] optional long detail,
+                                       [Default=Undefined] optional long screenX,
+                                       [Default=Undefined] optional long screenY,
+                                       [Default=Undefined] optional long clientX,
+                                       [Default=Undefined] optional long clientY,
+                                       [Default=Undefined] optional boolean ctrlKey,
+                                       [Default=Undefined] optional boolean altKey,
+                                       [Default=Undefined] optional boolean shiftKey,
+                                       [Default=Undefined] optional boolean metaKey,
+                                       [Default=Undefined] optional unsigned short button,
                                        [Default=Undefined] optional EventTarget relatedTarget);
 
     // extensions
diff --git a/core/dom/MutationEvent.idl b/core/dom/MutationEvent.idl
index 16c183e..0aae4e3 100644
--- a/core/dom/MutationEvent.idl
+++ b/core/dom/MutationEvent.idl
@@ -31,13 +31,13 @@
     readonly attribute DOMString      attrName;
     readonly attribute unsigned short attrChange;
 
-     void initMutationEvent([Default=Undefined] optional DOMString type, 
-                                          [Default=Undefined] optional boolean canBubble, 
-                                          [Default=Undefined] optional boolean cancelable, 
-                                          [Default=Undefined] optional Node relatedNode, 
-                                          [Default=Undefined] optional DOMString prevValue, 
-                                          [Default=Undefined] optional DOMString newValue, 
-                                          [Default=Undefined] optional DOMString attrName, 
+     void initMutationEvent([Default=Undefined] optional DOMString type,
+                                          [Default=Undefined] optional boolean canBubble,
+                                          [Default=Undefined] optional boolean cancelable,
+                                          [Default=Undefined] optional Node relatedNode,
+                                          [Default=Undefined] optional DOMString prevValue,
+                                          [Default=Undefined] optional DOMString newValue,
+                                          [Default=Undefined] optional DOMString attrName,
                                           [Default=Undefined] optional unsigned short attrChange);
 
 };
diff --git a/core/dom/NamedNodeMap.idl b/core/dom/NamedNodeMap.idl
index 6a8e4e0..698a035 100644
--- a/core/dom/NamedNodeMap.idl
+++ b/core/dom/NamedNodeMap.idl
@@ -25,24 +25,24 @@
     Node getNamedItem([Default=Undefined] optional DOMString name);
     [NotEnumerable, ImplementedAs=getNamedItem] getter Node ([Default=Undefined] optional DOMString name);
 
-    [RaisesException] Node setNamedItem([Default=Undefined] optional Node node);
+    [RaisesException, DeliverCustomElementCallbacks] Node setNamedItem([Default=Undefined] optional Node node);
 
-    [RaisesException] Node removeNamedItem([Default=Undefined] optional DOMString name);
+    [RaisesException, DeliverCustomElementCallbacks] Node removeNamedItem([Default=Undefined] optional DOMString name);
 
     getter Node item([Default=Undefined] optional unsigned long index);
-    
+
     readonly attribute unsigned long length;
 
 
     // Introduced in DOM Level 2:
 
     // FIXME: the implementation does take an exceptioncode parameter.
-    /*[RaisesException]*/ Node getNamedItemNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI, 
+    /*[RaisesException]*/ Node getNamedItemNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                               [Default=Undefined] optional DOMString localName);
 
-    [RaisesException] Node setNamedItemNS([Default=Undefined] optional Node node);
+    [RaisesException, DeliverCustomElementCallbacks] Node setNamedItemNS([Default=Undefined] optional Node node);
 
-     [RaisesException] Node removeNamedItemNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI, 
+    [RaisesException, DeliverCustomElementCallbacks] 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 ba0eb17..b14d4f7 100644
--- a/core/dom/Node.idl
+++ b/core/dom/Node.idl
@@ -18,12 +18,10 @@
  * Boston, MA 02110-1301, USA.
  */
 
-// FIXME: Node should inherit EventTarget.
 [
     CustomToV8,
-    EventTarget,
     DependentLifetime
-] interface Node {
+] interface Node : EventTarget {
     // NodeType
     const unsigned short      ELEMENT_NODE                   = 1;
     const unsigned short      ATTRIBUTE_NODE                 = 2;
@@ -41,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, SetterRaisesException] attribute DOMString        nodeValue;
+             [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings] attribute DOMString        nodeValue;
 
     [PerWorldBindings] readonly attribute unsigned short   nodeType;
     [PerWorldBindings] readonly attribute Node             parentNode;
@@ -59,11 +57,11 @@
 
     boolean            hasChildNodes();
     [DeliverCustomElementCallbacks, PerWorldBindings]
-    Node               cloneNode([Default=Undefined] optional boolean deep);
+    Node               cloneNode(optional boolean deep);
     void               normalize();
 
     // Introduced in DOM Level 2:
-     boolean isSupported([Default=Undefined] optional DOMString feature, 
+     boolean isSupported([Default=Undefined] optional DOMString feature,
                                        [TreatNullAs=NullString,Default=Undefined] optional DOMString version);
 
     [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString        namespaceURI;
@@ -74,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] attribute DOMString       textContent;
+             [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, SetterRaisesException, DeliverCustomElementCallbacks] attribute DOMString       textContent;
 
     boolean            isSameNode([Default=Undefined] optional Node other);
     boolean            isEqualNode([Default=Undefined] optional Node other);
@@ -97,12 +95,4 @@
 
     // IE extensions
     [PerWorldBindings] readonly attribute Element          parentElement;
-
-    void addEventListener(DOMString type, 
-                          EventListener listener, 
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type, 
-                             EventListener listener, 
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
diff --git a/core/dom/OverflowEvent.idl b/core/dom/OverflowEvent.idl
index 04a86c8..69adee9 100644
--- a/core/dom/OverflowEvent.idl
+++ b/core/dom/OverflowEvent.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
@@ -29,7 +29,7 @@
     const unsigned short HORIZONTAL = 0;
     const unsigned short VERTICAL   = 1;
     const unsigned short BOTH       = 2;
-    
+
     [InitializedByEventConstructor] readonly attribute unsigned short orient;
     [InitializedByEventConstructor] readonly attribute boolean horizontalOverflow;
     [InitializedByEventConstructor] readonly attribute boolean verticalOverflow;
diff --git a/core/dom/PageTransitionEvent.idl b/core/dom/PageTransitionEvent.idl
index c8cea7f..47749be 100644
--- a/core/dom/PageTransitionEvent.idl
+++ b/core/dom/PageTransitionEvent.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/dom/ParentNode.idl b/core/dom/ParentNode.idl
index 10b418e..358271b 100644
--- a/core/dom/ParentNode.idl
+++ b/core/dom/ParentNode.idl
@@ -1,5 +1,6 @@
 [
-    NoInterfaceObject
+    NoInterfaceObject,
+    LegacyImplementedInBaseClass
 ] interface ParentNode {
     [PerWorldBindings] readonly attribute HTMLCollection children;
     [PerWorldBindings] readonly attribute Element firstElementChild;
diff --git a/core/dom/PopStateEvent.idl b/core/dom/PopStateEvent.idl
index 709777f..20ddbaa 100644
--- a/core/dom/PopStateEvent.idl
+++ b/core/dom/PopStateEvent.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
 
diff --git a/core/dom/ProgressEvent.idl b/core/dom/ProgressEvent.idl
index fd82129..d775b88 100644
--- a/core/dom/ProgressEvent.idl
+++ b/core/dom/ProgressEvent.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/dom/Promise.idl b/core/dom/Promise.idl
index 893b8ee..fe9edf0 100644
--- a/core/dom/Promise.idl
+++ b/core/dom/Promise.idl
@@ -28,8 +28,20 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+callback PromiseInit = void (PromiseResolver resolver);
+callback AnyCallback = any (optional any value);
 [
-   CustomConstructor(any init),
+   CustomConstructor(PromiseInit init),
    EnabledAtRuntime=promise
 ] interface Promise {
+   [Custom] Promise then(optional AnyCallback fulfillCallback, optional AnyCallback rejectCallback);
+   [Custom] Promise catch(optional AnyCallback rejectCallback);
+
+   [Custom] static Promise fulfill(any value);
+   [Custom] static Promise resolve(any value);
+   [Custom] static Promise reject(any value);
+
+   [Custom] static Promise _any(any... values);
+   [Custom] static Promise every(any... values);
+   [Custom] static Promise some(any... values);
 };
diff --git a/core/dom/PromiseResolver.idl b/core/dom/PromiseResolver.idl
index 86fe307..f2c80b4 100644
--- a/core/dom/PromiseResolver.idl
+++ b/core/dom/PromiseResolver.idl
@@ -31,4 +31,7 @@
 [
    EnabledAtRuntime=promise
 ] interface PromiseResolver {
+   [Custom] void fulfill(optional any value);
+   [Custom] void resolve(optional any value);
+   [Custom] void reject(optional any value);
 };
diff --git a/core/dom/Range.idl b/core/dom/Range.idl
index 8418229..b34558f 100644
--- a/core/dom/Range.idl
+++ b/core/dom/Range.idl
@@ -31,9 +31,9 @@
     [GetterRaisesException] readonly attribute boolean collapsed;
     [GetterRaisesException] readonly attribute Node commonAncestorContainer;
 
-     [RaisesException] void setStart([Default=Undefined] optional Node refNode, 
+     [RaisesException] void setStart([Default=Undefined] optional Node refNode,
                                  [Default=Undefined] optional long offset);
-     [RaisesException] void setEnd([Default=Undefined] optional Node refNode, 
+     [RaisesException] void setEnd([Default=Undefined] optional Node refNode,
                                [Default=Undefined] optional long offset);
     [RaisesException] void setStartBefore([Default=Undefined] optional Node refNode);
     [RaisesException] void setStartAfter([Default=Undefined] optional Node refNode);
@@ -83,10 +83,10 @@
     const unsigned short NODE_BEFORE_AND_AFTER = 2;
     const unsigned short NODE_INSIDE           = 3;
 
-    [RaisesException] short comparePoint([Default=Undefined] optional Node refNode, 
+    [RaisesException] short comparePoint([Default=Undefined] optional Node refNode,
                        [Default=Undefined] optional long offset);
 
-    [RaisesException] boolean isPointInRange([Default=Undefined] optional Node refNode, 
+    [RaisesException] boolean isPointInRange([Default=Undefined] optional Node refNode,
                            [Default=Undefined] optional long offset);
 
     [RaisesException] void expand([Default=Undefined] optional DOMString unit);
diff --git a/core/dom/ResourceProgressEvent.idl b/core/dom/ResourceProgressEvent.idl
index c08192a..660b8b1 100644
--- a/core/dom/ResourceProgressEvent.idl
+++ b/core/dom/ResourceProgressEvent.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 // ResourceProgressEvent is a non-standard class that is simply a ProgressEvent
diff --git a/core/dom/SecurityPolicyViolationEvent.idl b/core/dom/SecurityPolicyViolationEvent.idl
index 528b0cc..8eab91e 100644
--- a/core/dom/SecurityPolicyViolationEvent.idl
+++ b/core/dom/SecurityPolicyViolationEvent.idl
@@ -35,4 +35,5 @@
     [InitializedByEventConstructor] readonly attribute DOMString sourceFile;
     [InitializedByEventConstructor] readonly attribute long      lineNumber;
     [InitializedByEventConstructor] readonly attribute long      columnNumber;
+    [InitializedByEventConstructor] readonly attribute long      statusCode;
 };
diff --git a/core/dom/TextEvent.idl b/core/dom/TextEvent.idl
index 10ec19a..3d03594e 100644
--- a/core/dom/TextEvent.idl
+++ b/core/dom/TextEvent.idl
@@ -9,7 +9,7 @@
  * 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
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 // Introduced in DOM Level 3:
@@ -28,10 +28,10 @@
 
     readonly attribute DOMString data;
 
-    void initTextEvent([Default=Undefined] optional DOMString typeArg, 
-                       [Default=Undefined] optional boolean canBubbleArg, 
-                       [Default=Undefined] optional boolean cancelableArg, 
-                       [Default=Undefined] optional Window viewArg, 
+    void initTextEvent([Default=Undefined] optional DOMString typeArg,
+                       [Default=Undefined] optional boolean canBubbleArg,
+                       [Default=Undefined] optional boolean cancelableArg,
+                       [Default=Undefined] optional Window viewArg,
                        [Default=Undefined] optional DOMString dataArg);
 
 };
diff --git a/core/dom/TouchEvent.idl b/core/dom/TouchEvent.idl
index 6348e68..f4b396e 100644
--- a/core/dom/TouchEvent.idl
+++ b/core/dom/TouchEvent.idl
@@ -22,7 +22,6 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
-
 interface TouchEvent : UIEvent {
     readonly attribute TouchList touches;
     readonly attribute TouchList targetTouches;
@@ -37,9 +36,9 @@
                         [Default=Undefined] optional TouchList changedTouches,
                         [Default=Undefined] optional DOMString type,
                         [Default=Undefined] optional Window view,
-                        [Default=Undefined] optional long screenX, 
-                        [Default=Undefined] optional long screenY, 
-                        [Default=Undefined] optional long clientX, 
+                        [Default=Undefined] optional long screenX,
+                        [Default=Undefined] optional long screenY,
+                        [Default=Undefined] optional long clientX,
                         [Default=Undefined] optional long clientY,
                         [Default=Undefined] optional boolean ctrlKey,
                         [Default=Undefined] optional boolean altKey,
diff --git a/core/dom/TransitionEvent.idl b/core/dom/TransitionEvent.idl
index afce660..b2bd8ed 100644
--- a/core/dom/TransitionEvent.idl
+++ b/core/dom/TransitionEvent.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/dom/TreeWalker.idl b/core/dom/TreeWalker.idl
index 3a844b7..bfb435b 100644
--- a/core/dom/TreeWalker.idl
+++ b/core/dom/TreeWalker.idl
@@ -23,7 +23,7 @@
     readonly attribute Node root;
     readonly attribute unsigned long whatToShow;
     readonly attribute NodeFilter filter;
-    readonly attribute boolean expandEntityReferences;        
+    readonly attribute boolean expandEntityReferences;
              [SetterRaisesException] attribute Node currentNode;
 
     [CallWith=ScriptState] Node parentNode();
diff --git a/core/dom/UIEvent.idl b/core/dom/UIEvent.idl
index 09960d7..bfa6da9 100644
--- a/core/dom/UIEvent.idl
+++ b/core/dom/UIEvent.idl
@@ -22,11 +22,11 @@
 ] interface UIEvent : Event {
     [InitializedByEventConstructor] readonly attribute Window view;
     [InitializedByEventConstructor] readonly attribute long detail;
-    
-     void initUIEvent([Default=Undefined] optional DOMString type, 
-                                    [Default=Undefined] optional boolean canBubble, 
-                                    [Default=Undefined] optional boolean cancelable, 
-                                    [Default=Undefined] optional Window view, 
+
+     void initUIEvent([Default=Undefined] optional DOMString type,
+                                    [Default=Undefined] optional boolean canBubble,
+                                    [Default=Undefined] optional boolean cancelable,
+                                    [Default=Undefined] optional Window view,
                                     [Default=Undefined] optional long detail);
 
     // extensions
diff --git a/core/dom/WebKitNamedFlow.idl b/core/dom/WebKitNamedFlow.idl
index 5a008bd..a8f68dd 100644
--- a/core/dom/WebKitNamedFlow.idl
+++ b/core/dom/WebKitNamedFlow.idl
@@ -12,7 +12,7 @@
  *    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 THE COPYRIGHT HOLDER "AS IS" AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
@@ -30,23 +30,13 @@
 [
     NoInterfaceObject,
     EnabledAtRuntime=cssRegions,
-    EventTarget,
     ImplementedAs=NamedFlow,
     GenerateIsReachable=ownerNode
-] interface WebKitNamedFlow {
+] interface WebKitNamedFlow : EventTarget {
     readonly attribute DOMString name;
     readonly attribute boolean overset;
     readonly attribute long firstEmptyRegionIndex;
     NodeList getRegionsByContent(Node contentNode);
     NodeList getRegions();
     NodeList getContent();
-
-    // EventTarget interface
-    void addEventListener(DOMString type, 
-                          EventListener listener, 
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type, 
-                             EventListener listener, 
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
diff --git a/core/dom/WheelEvent.idl b/core/dom/WheelEvent.idl
index 6c8dad4..9dc0e4a 100644
--- a/core/dom/WheelEvent.idl
+++ b/core/dom/WheelEvent.idl
@@ -35,8 +35,8 @@
     readonly attribute boolean webkitDirectionInvertedFromDevice;
 
     void initWebKitWheelEvent([Default=Undefined] optional long wheelDeltaX,
-                              [Default=Undefined] optional long wheelDeltaY, 
-                              [Default=Undefined] optional Window view, 
+                              [Default=Undefined] optional long wheelDeltaY,
+                              [Default=Undefined] optional Window view,
                               [Default=Undefined] optional long screenX,
                               [Default=Undefined] optional long screenY,
                               [Default=Undefined] optional long clientX,
diff --git a/core/dom/shadow/ShadowRoot.idl b/core/dom/shadow/ShadowRoot.idl
index 6a6e07e..b659c7c 100644
--- a/core/dom/shadow/ShadowRoot.idl
+++ b/core/dom/shadow/ShadowRoot.idl
@@ -30,7 +30,7 @@
     readonly attribute Element activeElement;
     attribute boolean applyAuthorStyles;
     attribute boolean resetStyleInheritance;
-    [EnabledAtRuntime=experimentalShadowDOM, ImplementedAs=bindingsOlderShadowRoot] readonly attribute ShadowRoot olderShadowRoot;
+    [EnabledAtRuntime=ShadowDOM, ImplementedAs=bindingsOlderShadowRoot] readonly attribute ShadowRoot olderShadowRoot;
 
     [TreatNullAs=NullString, DeliverCustomElementCallbacks, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds, SetterRaisesException] attribute DOMString innerHTML;
 
@@ -42,6 +42,6 @@
     NodeList getElementsByTagNameNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                     [Default=Undefined] optional DOMString localName);
 
-    Element elementFromPoint([Default=Undefined] optional long x, 
+    Element elementFromPoint([Default=Undefined] optional long x,
                              [Default=Undefined] optional long y);
 };
diff --git a/core/fileapi/Blob.idl b/core/fileapi/Blob.idl
index 3f61283..8dddc35 100644
--- a/core/fileapi/Blob.idl
+++ b/core/fileapi/Blob.idl
@@ -29,7 +29,7 @@
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     CustomToV8,
     CustomConstructor,
     CustomConstructor(sequence<any> blobParts, optional BlobPropertyBag options)
diff --git a/core/fileapi/File.idl b/core/fileapi/File.idl
index 4e653fd..bfdf6b1 100644
--- a/core/fileapi/File.idl
+++ b/core/fileapi/File.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface File : Blob {
diff --git a/core/fileapi/FileError.idl b/core/fileapi/FileError.idl
index 46c910f..7e5542a 100644
--- a/core/fileapi/FileError.idl
+++ b/core/fileapi/FileError.idl
@@ -30,7 +30,6 @@
 
 [
 ] interface FileError {
-    // FIXME: Some of constant names are already defined in DOMException.h for Objective-C binding and we cannot have the same names here (they are translated into a enum in the same namespace).
     const unsigned short NOT_FOUND_ERR = 1;
     const unsigned short SECURITY_ERR = 2;
     const unsigned short ABORT_ERR = 3;
diff --git a/core/fileapi/FileException.idl b/core/fileapi/FileException.idl
deleted file mode 100644
index c64d716..0000000
--- a/core/fileapi/FileException.idl
+++ /dev/null
@@ -1,56 +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,
-    DoNotCheckConstants
-] exception FileException {
-
-    readonly attribute unsigned short   code;
-    readonly attribute DOMString        name;
-    readonly attribute DOMString        message;
-
-    // Override in a Mozilla compatible format
-    [NotEnumerable] DOMString toString();
-
-    // FileExceptionCode
-    const unsigned short NOT_FOUND_ERR = 1;
-    const unsigned short SECURITY_ERR = 2;
-    const unsigned short ABORT_ERR = 3;
-    const unsigned short NOT_READABLE_ERR = 4;
-    const unsigned short ENCODING_ERR = 5;
-    const unsigned short NO_MODIFICATION_ALLOWED_ERR = 6;
-    const unsigned short INVALID_STATE_ERR = 7;
-    const unsigned short SYNTAX_ERR = 8;
-    const unsigned short INVALID_MODIFICATION_ERR = 9;
-    const unsigned short QUOTA_EXCEEDED_ERR = 10;
-    const unsigned short TYPE_MISMATCH_ERR = 11;
-    const unsigned short PATH_EXISTS_ERR = 12;
-};
diff --git a/core/fileapi/FileList.idl b/core/fileapi/FileList.idl
index b0a09ef..a2a2472 100644
--- a/core/fileapi/FileList.idl
+++ b/core/fileapi/FileList.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/fileapi/FileReader.idl b/core/fileapi/FileReader.idl
index a9bf2e5..2727d12 100644
--- a/core/fileapi/FileReader.idl
+++ b/core/fileapi/FileReader.idl
@@ -30,12 +30,11 @@
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     ActiveDOMObject,
     Constructor,
-    ConstructorCallWith=ScriptExecutionContext,
-    EventTarget
-] interface FileReader {
+    ConstructorCallWith=ScriptExecutionContext
+] interface FileReader : EventTarget {
     // ready states
     const unsigned short EMPTY = 0;
     const unsigned short LOADING = 1;
@@ -55,15 +54,6 @@
 
     readonly attribute FileError error;
 
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
-
     attribute EventListener onloadstart;
     attribute EventListener onprogress;
     attribute EventListener onload;
diff --git a/core/fileapi/FileReaderSync.idl b/core/fileapi/FileReaderSync.idl
index 9bc21f8..4930687 100644
--- a/core/fileapi/FileReaderSync.idl
+++ b/core/fileapi/FileReaderSync.idl
@@ -29,7 +29,7 @@
  */
 
 [
-    GlobalContext=WorkerOnly,
+    GlobalContext=WorkerGlobalScope,
     Constructor
 ] interface FileReaderSync {
     [CallWith=ScriptExecutionContext, RaisesException] ArrayBuffer readAsArrayBuffer(Blob blob);
diff --git a/core/html/DOMTokenList.idl b/core/html/DOMTokenList.idl
index bfc142a..c885018 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] void add(DOMString... tokens);
-    [RaisesException] void remove(DOMString... tokens);
-    [RaisesException] boolean toggle(DOMString token, optional boolean force);
+    [RaisesException, DeliverCustomElementCallbacks] void add(DOMString... tokens);
+    [RaisesException, DeliverCustomElementCallbacks] void remove(DOMString... tokens);
+    [RaisesException, DeliverCustomElementCallbacks] boolean toggle(DOMString token, optional boolean force);
     [NotEnumerable] DOMString toString();
 };
 
diff --git a/core/html/FormData.idl b/core/html/FormData.idl
index 3652d4e..0391d3a 100644
--- a/core/html/FormData.idl
+++ b/core/html/FormData.idl
@@ -34,7 +34,7 @@
 ] interface FormData {
     // void append(DOMString name, DOMString value);
     // void append(DOMString name, Blob value, optional DOMString filename);
-    [Custom] void append([Default=Undefined] optional DOMString name, 
+    [Custom] void append([Default=Undefined] optional DOMString name,
                          [Default=Undefined] optional DOMString value,
                          [Default=Undefined] optional DOMString filename);
 };
diff --git a/core/html/HTMLAllCollection.idl b/core/html/HTMLAllCollection.idl
index 659e087..5eae2ee 100644
--- a/core/html/HTMLAllCollection.idl
+++ b/core/html/HTMLAllCollection.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/html/HTMLAudioElement.idl b/core/html/HTMLAudioElement.idl
index b4e9004..ce003cf 100644
--- a/core/html/HTMLAudioElement.idl
+++ b/core/html/HTMLAudioElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/html/HTMLCanvasElement.idl b/core/html/HTMLCanvasElement.idl
index 28af6fa..c095796 100644
--- a/core/html/HTMLCanvasElement.idl
+++ b/core/html/HTMLCanvasElement.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface HTMLCanvasElement : HTMLElement {
diff --git a/core/html/HTMLDialogElement.idl b/core/html/HTMLDialogElement.idl
index 3fddf94..2cf7e38 100644
--- a/core/html/HTMLDialogElement.idl
+++ b/core/html/HTMLDialogElement.idl
@@ -27,7 +27,8 @@
     EnabledPerContext=dialogElement
 ] interface HTMLDialogElement : HTMLElement {
     [Reflect] attribute boolean open;
-    [RaisesException] void close();
+    attribute DOMString returnValue;
+    [RaisesException] void close([Default=NullString] optional DOMString returnValue);
     void show();
     [RaisesException] void showModal();
 };
diff --git a/core/html/HTMLDocument.idl b/core/html/HTMLDocument.idl
index 889f741..860900f 100644
--- a/core/html/HTMLDocument.idl
+++ b/core/html/HTMLDocument.idl
@@ -32,14 +32,12 @@
 
     // Extensions
 
-    [Replaceable] readonly attribute HTMLAllCollection all;
+    [Replaceable, ImplementedAs=allForBinding] readonly attribute HTMLAllCollection all;
 
     [DeprecateAs=DocumentClear] void clear();
 
-    readonly attribute long width;
-    readonly attribute long height;
-             [TreatNullAs=NullString] attribute DOMString dir;
-             [TreatNullAs=NullString] attribute DOMString designMode;
+    [TreatNullAs=NullString] attribute DOMString dir;
+    [TreatNullAs=NullString] attribute DOMString designMode;
     readonly attribute DOMString compatMode;
 
     readonly attribute Element activeElement;
diff --git a/core/html/HTMLElement.idl b/core/html/HTMLElement.idl
index 8bcdc4b..1156124 100644
--- a/core/html/HTMLElement.idl
+++ b/core/html/HTMLElement.idl
@@ -21,7 +21,7 @@
 [
     CustomToV8
 ] interface HTMLElement : Element {
-             // iht.com relies on id returning the empty string when no id is present. 
+             // 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;
diff --git a/core/html/HTMLImageElement.idl b/core/html/HTMLImageElement.idl
index 360b2b5..1056b5d 100644
--- a/core/html/HTMLImageElement.idl
+++ b/core/html/HTMLImageElement.idl
@@ -33,7 +33,7 @@
     [Reflect] attribute DOMString useMap;
     [Reflect] attribute long vspace;
     attribute long width;
-    
+
     // Extensions
     readonly attribute boolean complete;
     [Reflect,URL] attribute DOMString lowsrc;
diff --git a/core/html/HTMLInputElement.idl b/core/html/HTMLInputElement.idl
index 00e4a1e..2911901 100644
--- a/core/html/HTMLInputElement.idl
+++ b/core/html/HTMLInputElement.idl
@@ -30,6 +30,8 @@
     [Reflect] attribute DOMString dirName;
     [Reflect] attribute boolean disabled;
     readonly attribute HTMLFormElement form;
+    // The 'files' attribute is intentionally not readonly.
+    // https://www.w3.org/Bugs/Public/show_bug.cgi?id=22682
     attribute FileList files;
     [Reflect, URL] attribute DOMString formAction;
     [TreatNullAs=NullString] attribute DOMString formEnctype;
@@ -57,6 +59,7 @@
     [TreatNullAs=NullString, SetterRaisesException] attribute DOMString value;
     [SetterRaisesException] attribute Date valueAsDate;
     [SetterRaisesException] attribute double valueAsNumber;
+    [EnabledAtRuntime=inputModeAttribute, Reflect] attribute DOMString inputMode;
 
     [RaisesException] void stepUp(optional long n);
     [RaisesException] void stepDown(optional long n);
@@ -96,5 +99,5 @@
     [Conditional=INPUT_SPEECH, NotEnumerable] attribute EventListener onwebkitspeechchange;
 
     // See http://www.w3.org/TR/html-media-capture/
-    [Conditional=MEDIA_CAPTURE] attribute DOMString capture;
+    [Conditional=MEDIA_CAPTURE, Reflect] attribute boolean capture;
 };
diff --git a/core/html/HTMLLIElement.idl b/core/html/HTMLLIElement.idl
index ba3eaae..f79f1cb 100644
--- a/core/html/HTMLLIElement.idl
+++ b/core/html/HTMLLIElement.idl
@@ -19,6 +19,6 @@
 
 interface HTMLLIElement : HTMLElement {
     [Reflect] attribute DOMString type;
-    [Reflect] attribute long value;    
+    [Reflect] attribute long value;
 };
 
diff --git a/core/html/HTMLMarqueeElement.idl b/core/html/HTMLMarqueeElement.idl
index 5b8e3a9..9fc56be 100644
--- a/core/html/HTMLMarqueeElement.idl
+++ b/core/html/HTMLMarqueeElement.idl
@@ -20,7 +20,7 @@
 interface HTMLMarqueeElement : HTMLElement {
     void start();
     void stop();
-    
+
     [Reflect] attribute DOMString behavior;
     [Reflect] attribute DOMString bgColor;
     [Reflect] attribute DOMString direction;
diff --git a/core/html/HTMLOptionsCollection.idl b/core/html/HTMLOptionsCollection.idl
index a6f232a..9f32344 100644
--- a/core/html/HTMLOptionsCollection.idl
+++ b/core/html/HTMLOptionsCollection.idl
@@ -30,7 +30,7 @@
 
     [Custom] Node namedItem([Default=Undefined] optional DOMString name);
 
-    [Custom, RaisesException] void add([Default=Undefined] optional HTMLOptionElement option, 
+    [Custom, RaisesException] void add([Default=Undefined] optional HTMLOptionElement option,
                       optional unsigned long index);
     [Custom] void remove([Default=Undefined] optional unsigned long index);
 };
diff --git a/core/html/HTMLPreElement.idl b/core/html/HTMLPreElement.idl
index 807248c..3d035940 100644
--- a/core/html/HTMLPreElement.idl
+++ b/core/html/HTMLPreElement.idl
@@ -22,7 +22,7 @@
     // FIXME: DOM spec says that width should be of type DOMString
     // see http://bugs.webkit.org/show_bug.cgi?id=8992
     [Reflect] attribute long width;
-    
+
     // Extensions
     [Reflect] attribute boolean wrap;
 };
diff --git a/core/html/HTMLSelectElement.idl b/core/html/HTMLSelectElement.idl
index 3c6a8f3..a1d0e77 100644
--- a/core/html/HTMLSelectElement.idl
+++ b/core/html/HTMLSelectElement.idl
@@ -33,7 +33,7 @@
     [SetterRaisesException] attribute unsigned long length;
 
     getter Node item([IsIndex,Default=Undefined] optional unsigned long index);
-    [ImplementedAs=anonymousIndexedSetter, RaisesException] setter HTMLOptionElement (unsigned long index, HTMLOptionElement value);
+    [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,
                             [Default=Undefined] optional HTMLElement before);
diff --git a/core/html/HTMLSourceElement.idl b/core/html/HTMLSourceElement.idl
index 4502f86..0cad1e5 100644
--- a/core/html/HTMLSourceElement.idl
+++ b/core/html/HTMLSourceElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/html/HTMLTextAreaElement.idl b/core/html/HTMLTextAreaElement.idl
index 105683b..cefbca9 100644
--- a/core/html/HTMLTextAreaElement.idl
+++ b/core/html/HTMLTextAreaElement.idl
@@ -32,6 +32,7 @@
     [Reflect] attribute boolean required;
     attribute long rows;
     [Reflect] attribute DOMString wrap;
+    [EnabledAtRuntime=inputModeAttribute, Reflect] attribute DOMString inputMode;
 
     readonly attribute DOMString type;
     [TreatNullAs=NullString] attribute DOMString defaultValue;
diff --git a/core/html/HTMLVideoElement.idl b/core/html/HTMLVideoElement.idl
index ef4bd8b..5d9d744 100644
--- a/core/html/HTMLVideoElement.idl
+++ b/core/html/HTMLVideoElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/html/MediaController.idl b/core/html/MediaController.idl
index 54c4153..b988d1a 100644
--- a/core/html/MediaController.idl
+++ b/core/html/MediaController.idl
@@ -20,15 +20,14 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
     EnabledAtRuntime=media,
     Constructor,
-    ConstructorCallWith=ScriptExecutionContext,
-    EventTarget
-] interface MediaController {
+    ConstructorCallWith=ScriptExecutionContext
+] interface MediaController : EventTarget {
     readonly attribute TimeRanges buffered;
     readonly attribute TimeRanges seekable;
 
@@ -47,13 +46,4 @@
 
     [SetterRaisesException] attribute double volume;
     attribute boolean muted;
-
-    // EventTarget interface
-    void addEventListener(DOMString type, 
-                          EventListener listener, 
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type, 
-                             EventListener listener, 
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
diff --git a/core/html/MediaError.idl b/core/html/MediaError.idl
index 16d339f..3d35b71 100644
--- a/core/html/MediaError.idl
+++ b/core/html/MediaError.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/html/MediaKeyError.idl b/core/html/MediaKeyError.idl
index 03188d0..a2660d7 100644
--- a/core/html/MediaKeyError.idl
+++ b/core/html/MediaKeyError.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/html/MediaKeyEvent.idl b/core/html/MediaKeyEvent.idl
index 8a5adc3..78c0ecb 100644
--- a/core/html/MediaKeyEvent.idl
+++ b/core/html/MediaKeyEvent.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/html/TextMetrics.idl b/core/html/TextMetrics.idl
index 5f217b8..fc37998 100644
--- a/core/html/TextMetrics.idl
+++ b/core/html/TextMetrics.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 [
 ] interface TextMetrics {
diff --git a/core/html/TimeRanges.idl b/core/html/TimeRanges.idl
index c6ad136..ec11b43 100644
--- a/core/html/TimeRanges.idl
+++ b/core/html/TimeRanges.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/html/URL.idl b/core/html/URL.idl
index b631c4c..265f371 100644
--- a/core/html/URL.idl
+++ b/core/html/URL.idl
@@ -25,13 +25,10 @@
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     Constructor,
     ImplementedAs=DOMURL
 ] interface URL {
-    [CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(MediaSource? source);
-    [CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(WebKitMediaSource? source);
-    [CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(MediaStream? stream);
     [CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(Blob? blob);
     [CallWith=ScriptExecutionContext] static void revokeObjectURL(DOMString url);
 };
diff --git a/core/html/VoidCallback.idl b/core/html/VoidCallback.idl
index 577fcf5..d403ecc 100644
--- a/core/html/VoidCallback.idl
+++ b/core/html/VoidCallback.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 callback interface VoidCallback {
diff --git a/core/html/canvas/ANGLEInstancedArrays.idl b/core/html/canvas/ANGLEInstancedArrays.idl
index 487b8cd..2d257cc 100644
--- a/core/html/canvas/ANGLEInstancedArrays.idl
+++ b/core/html/canvas/ANGLEInstancedArrays.idl
@@ -36,5 +36,5 @@
 
     [StrictTypeChecking] void drawArraysInstancedANGLE(unsigned long mode, long first, long count, long primcount);
     [StrictTypeChecking] void drawElementsInstancedANGLE(unsigned long mode, long count, unsigned long type, long long offset, long primcount);
-    [StrictTypeChecking] void vertexAttribDivisorANGLE(unsigned long index, long divisor); 
+    [StrictTypeChecking] void vertexAttribDivisorANGLE(unsigned long index, long divisor);
 };
diff --git a/core/html/canvas/ArrayBuffer.idl b/core/html/canvas/ArrayBuffer.idl
deleted file mode 100644
index 1a6df2d..0000000
--- a/core/html/canvas/ArrayBuffer.idl
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2009, 2010 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 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=WindowAndWorker,
-    CustomConstructor(unsigned long length)
-] interface ArrayBuffer {
-    readonly attribute unsigned long byteLength;
-    ArrayBuffer slice(long begin, optional long end);
-};
-
diff --git a/core/html/canvas/ArrayBufferView.idl b/core/html/canvas/ArrayBufferView.idl
index 9626c46..5545731 100644
--- a/core/html/canvas/ArrayBufferView.idl
+++ b/core/html/canvas/ArrayBufferView.idl
@@ -20,10 +20,11 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
+    NoInterfaceObject,
     CustomToV8
 ] interface ArrayBufferView {
     readonly attribute ArrayBuffer buffer;
diff --git a/core/html/canvas/CanvasGradient.idl b/core/html/canvas/CanvasGradient.idl
index 4d06b83..35a4e2a 100644
--- a/core/html/canvas/CanvasGradient.idl
+++ b/core/html/canvas/CanvasGradient.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 [
 ] interface CanvasGradient {
diff --git a/core/html/canvas/CanvasPattern.idl b/core/html/canvas/CanvasPattern.idl
index 68003c7..1d8e7a0 100644
--- a/core/html/canvas/CanvasPattern.idl
+++ b/core/html/canvas/CanvasPattern.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 [
 ] interface CanvasPattern {
diff --git a/core/html/canvas/CanvasRenderingContext.idl b/core/html/canvas/CanvasRenderingContext.idl
index 56363a2..36a7911 100644
--- a/core/html/canvas/CanvasRenderingContext.idl
+++ b/core/html/canvas/CanvasRenderingContext.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/html/canvas/CanvasRenderingContext2D.idl b/core/html/canvas/CanvasRenderingContext2D.idl
index 7e3d07f..ed6cbc4 100644
--- a/core/html/canvas/CanvasRenderingContext2D.idl
+++ b/core/html/canvas/CanvasRenderingContext2D.idl
@@ -126,6 +126,9 @@
     [RaisesException] void drawImage(HTMLVideoElement? video, float x, float y);
     [RaisesException] void drawImage(HTMLVideoElement? video, float x, float y, float width, float height);
     [RaisesException] void drawImage(HTMLVideoElement? video, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh);
+    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void drawImage(ImageBitmap? imageBitmap, float x, float y);
+    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void drawImage(ImageBitmap? imageBitmap, float x, float y, float width, float height);
+    [EnabledAtRuntime=experimentalCanvasFeatures, RaisesException] void drawImage(ImageBitmap? imageBitmap, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh);
 
     void drawImageFromRect(HTMLImageElement image,
                            optional float sx, optional float sy, optional float sw, optional float sh,
diff --git a/core/html/canvas/DataView.idl b/core/html/canvas/DataView.idl
index 5ff575d..5847f9c 100644
--- a/core/html/canvas/DataView.idl
+++ b/core/html/canvas/DataView.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     CustomConstructor(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long byteLength),
     CustomToV8
 ] interface DataView : ArrayBufferView {
diff --git a/core/html/canvas/Float32Array.idl b/core/html/canvas/Float32Array.idl
index a9b9dac..09e368b 100644
--- a/core/html/canvas/Float32Array.idl
+++ b/core/html/canvas/Float32Array.idl
@@ -25,7 +25,7 @@
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     ConstructorTemplate=TypedArray,
     CustomToV8,
     DoNotCheckConstants
@@ -33,7 +33,7 @@
     const unsigned long BYTES_PER_ELEMENT = 4;
 
     readonly attribute unsigned long length;
-    Float32Array subarray([Default=Undefined] optional long start, 
+    Float32Array subarray([Default=Undefined] optional long start,
                           optional long end);
 
     // void set(Float32Array array, optional in unsigned long offset);
diff --git a/core/html/canvas/Float64Array.idl b/core/html/canvas/Float64Array.idl
index 28f9d6b..f9335ff 100644
--- a/core/html/canvas/Float64Array.idl
+++ b/core/html/canvas/Float64Array.idl
@@ -25,7 +25,7 @@
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     ConstructorTemplate=TypedArray,
     CustomToV8,
     DoNotCheckConstants
@@ -33,7 +33,7 @@
     const unsigned long BYTES_PER_ELEMENT = 8;
 
     readonly attribute unsigned long length;
-    Float64Array subarray([Default=Undefined] optional long start, 
+    Float64Array subarray([Default=Undefined] optional long start,
                           optional long end);
 
     // void set(Float64Array array, optional in unsigned long offset);
diff --git a/core/html/canvas/Int16Array.idl b/core/html/canvas/Int16Array.idl
index 42c8dac..350bcbb 100644
--- a/core/html/canvas/Int16Array.idl
+++ b/core/html/canvas/Int16Array.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     ConstructorTemplate=TypedArray,
     CustomToV8,
     DoNotCheckConstants
@@ -32,7 +32,7 @@
     const unsigned long BYTES_PER_ELEMENT = 2;
 
     readonly attribute unsigned long length;
-    Int16Array subarray([Default=Undefined] optional long start, 
+    Int16Array subarray([Default=Undefined] optional long start,
                         optional long end);
 
     // void set(Int16Array array, optional in unsigned long offset);
diff --git a/core/html/canvas/Int32Array.idl b/core/html/canvas/Int32Array.idl
index fb4b6d1..7b28526 100644
--- a/core/html/canvas/Int32Array.idl
+++ b/core/html/canvas/Int32Array.idl
@@ -21,11 +21,11 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     ConstructorTemplate=TypedArray,
     CustomToV8,
     DoNotCheckConstants
@@ -33,7 +33,7 @@
     const unsigned long BYTES_PER_ELEMENT = 4;
 
     readonly attribute unsigned long length;
-    Int32Array subarray([Default=Undefined] optional long start, 
+    Int32Array subarray([Default=Undefined] optional long start,
                         optional long end);
 
     // void set(Int32Array array, optional in unsigned long offset);
diff --git a/core/html/canvas/Int8Array.idl b/core/html/canvas/Int8Array.idl
index 52434af..0cd83d5 100644
--- a/core/html/canvas/Int8Array.idl
+++ b/core/html/canvas/Int8Array.idl
@@ -21,11 +21,11 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     ConstructorTemplate=TypedArray,
     CustomToV8,
     DoNotCheckConstants
@@ -33,7 +33,7 @@
     const unsigned long BYTES_PER_ELEMENT = 1;
 
     readonly attribute unsigned long length;
-    Int8Array subarray([Default=Undefined] optional long start, 
+    Int8Array subarray([Default=Undefined] optional long start,
                        optional long end);
 
     // void set(Int8Array array, optional in unsigned long offset);
diff --git a/core/html/canvas/OESVertexArrayObject.idl b/core/html/canvas/OESVertexArrayObject.idl
index 0a7bd1f..f8c8583 100644
--- a/core/html/canvas/OESVertexArrayObject.idl
+++ b/core/html/canvas/OESVertexArrayObject.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
@@ -28,7 +28,7 @@
     DoNotCheckConstants
 ] interface OESVertexArrayObject {
     const unsigned long VERTEX_ARRAY_BINDING_OES = 0x85B5;
-    
+
     [StrictTypeChecking] WebGLVertexArrayObjectOES createVertexArrayOES();
     [StrictTypeChecking] void         deleteVertexArrayOES([Default=Undefined] optional WebGLVertexArrayObjectOES arrayObject);
     [StrictTypeChecking] boolean      isVertexArrayOES([Default=Undefined] optional WebGLVertexArrayObjectOES arrayObject);
diff --git a/core/html/canvas/Path.idl b/core/html/canvas/Path.idl
index ae5943f..5b767e3 100644
--- a/core/html/canvas/Path.idl
+++ b/core/html/canvas/Path.idl
@@ -27,7 +27,7 @@
  */
 
 [
-    EnabledAtRuntime=canvasPath,
+    EnabledAtRuntime=experimentalCanvasFeatures,
     Constructor,
     Constructor(Path path),
     Constructor(DOMString text),
diff --git a/core/html/canvas/Uint16Array.idl b/core/html/canvas/Uint16Array.idl
index 086ee28..dd62b02 100644
--- a/core/html/canvas/Uint16Array.idl
+++ b/core/html/canvas/Uint16Array.idl
@@ -21,11 +21,11 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     ConstructorTemplate=TypedArray,
     CustomToV8,
     DoNotCheckConstants
diff --git a/core/html/canvas/Uint32Array.idl b/core/html/canvas/Uint32Array.idl
index 3c69bfd..d47c7ca 100644
--- a/core/html/canvas/Uint32Array.idl
+++ b/core/html/canvas/Uint32Array.idl
@@ -21,11 +21,11 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     ConstructorTemplate=TypedArray,
     CustomToV8,
     DoNotCheckConstants
diff --git a/core/html/canvas/Uint8Array.idl b/core/html/canvas/Uint8Array.idl
index b9c6a21..6058506 100644
--- a/core/html/canvas/Uint8Array.idl
+++ b/core/html/canvas/Uint8Array.idl
@@ -21,11 +21,11 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     ConstructorTemplate=TypedArray,
     CustomToV8,
     DoNotCheckConstants
diff --git a/core/html/canvas/Uint8ClampedArray.idl b/core/html/canvas/Uint8ClampedArray.idl
index 895505a..66c9289 100644
--- a/core/html/canvas/Uint8ClampedArray.idl
+++ b/core/html/canvas/Uint8ClampedArray.idl
@@ -25,7 +25,7 @@
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     ConstructorTemplate=TypedArray,
     CustomToV8,
     DoNotCheckConstants
diff --git a/core/html/canvas/WebGLActiveInfo.idl b/core/html/canvas/WebGLActiveInfo.idl
index f5ac864..8443d8f 100644
--- a/core/html/canvas/WebGLActiveInfo.idl
+++ b/core/html/canvas/WebGLActiveInfo.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface WebGLActiveInfo {
diff --git a/core/html/canvas/WebGLBuffer.idl b/core/html/canvas/WebGLBuffer.idl
index 9ae6c92..5272404 100644
--- a/core/html/canvas/WebGLBuffer.idl
+++ b/core/html/canvas/WebGLBuffer.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface WebGLBuffer {
diff --git a/core/html/canvas/WebGLFramebuffer.idl b/core/html/canvas/WebGLFramebuffer.idl
index 3d1eab8..1fd6dd1 100644
--- a/core/html/canvas/WebGLFramebuffer.idl
+++ b/core/html/canvas/WebGLFramebuffer.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface WebGLFramebuffer {
diff --git a/core/html/canvas/WebGLProgram.idl b/core/html/canvas/WebGLProgram.idl
index 399661c..7cec34a 100644
--- a/core/html/canvas/WebGLProgram.idl
+++ b/core/html/canvas/WebGLProgram.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface WebGLProgram {
diff --git a/core/html/canvas/WebGLRenderbuffer.idl b/core/html/canvas/WebGLRenderbuffer.idl
index f9c837e..2ecef6b 100644
--- a/core/html/canvas/WebGLRenderbuffer.idl
+++ b/core/html/canvas/WebGLRenderbuffer.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface WebGLRenderbuffer {
diff --git a/core/html/canvas/WebGLRenderingContext.idl b/core/html/canvas/WebGLRenderingContext.idl
index 7343bcd..e82cc8a 100644
--- a/core/html/canvas/WebGLRenderingContext.idl
+++ b/core/html/canvas/WebGLRenderingContext.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 typedef unsigned long  GLenum;
@@ -490,7 +490,7 @@
                                                            GLsizei width, GLsizei height, GLint border, ArrayBufferView data);
     [StrictTypeChecking] void         compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
                                                               GLsizei width, GLsizei height, GLenum format, ArrayBufferView data);
-    
+
     [StrictTypeChecking] void         copyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
     [StrictTypeChecking] void         copyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 
@@ -527,7 +527,7 @@
     [StrictTypeChecking, RaisesException] 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);
 
@@ -584,7 +584,7 @@
     [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         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);
@@ -600,7 +600,7 @@
     [StrictTypeChecking] void         texParameteri(GLenum target, GLenum pname, GLint param);
 
     // Supported forms:
-    [StrictTypeChecking, RaisesException] void         texImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, 
+    [StrictTypeChecking, RaisesException] void         texImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height,
                                                  GLint border, GLenum format, GLenum type, ArrayBufferView? pixels);
     [StrictTypeChecking, RaisesException] void         texImage2D(GLenum target, GLint level, GLenum internalformat,
                                                  GLenum format, GLenum type, ImageData? pixels);
@@ -611,8 +611,8 @@
     [StrictTypeChecking, RaisesException] void         texImage2D(GLenum target, GLint level, GLenum internalformat,
                                                  GLenum format, GLenum type, HTMLVideoElement? video);
 
-    [StrictTypeChecking, RaisesException] void         texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, 
-                                                    GLsizei width, GLsizei height, 
+    [StrictTypeChecking, RaisesException] void         texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
+                                                    GLsizei width, GLsizei height,
                                                     GLenum format, GLenum type, ArrayBufferView? pixels);
     [StrictTypeChecking, RaisesException] void         texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
                                                     GLenum format, GLenum type, ImageData? pixels);
@@ -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, RaisesException] 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/canvas/WebGLShader.idl b/core/html/canvas/WebGLShader.idl
index 820cd0d..624d490 100644
--- a/core/html/canvas/WebGLShader.idl
+++ b/core/html/canvas/WebGLShader.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface WebGLShader {
diff --git a/core/html/canvas/WebGLTexture.idl b/core/html/canvas/WebGLTexture.idl
index d0d0f2b..caed3ac 100644
--- a/core/html/canvas/WebGLTexture.idl
+++ b/core/html/canvas/WebGLTexture.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface WebGLTexture {
diff --git a/core/html/canvas/WebGLUniformLocation.idl b/core/html/canvas/WebGLUniformLocation.idl
index 7a7a693..503804e 100644
--- a/core/html/canvas/WebGLUniformLocation.idl
+++ b/core/html/canvas/WebGLUniformLocation.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface WebGLUniformLocation {
diff --git a/core/html/canvas/WebGLVertexArrayObjectOES.idl b/core/html/canvas/WebGLVertexArrayObjectOES.idl
index bc9b545..6c07bd1 100644
--- a/core/html/canvas/WebGLVertexArrayObjectOES.idl
+++ b/core/html/canvas/WebGLVertexArrayObjectOES.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/html/ime/Composition.idl b/core/html/ime/Composition.idl
index 43ead5c..494d2a0 100644
--- a/core/html/ime/Composition.idl
+++ b/core/html/ime/Composition.idl
@@ -32,6 +32,8 @@
 [
     NoInterfaceObject
 ] interface Composition {
-    readonly attribute Node text;
-    readonly attribute Range caret;
+    readonly attribute DOMString text;
+    readonly attribute long selectionStart;
+    readonly attribute long selectionEnd;
+    sequence<unsigned long> getSegments();
 };
diff --git a/core/html/ime/InputMethodContext.idl b/core/html/ime/InputMethodContext.idl
index b86a1cd..2ad97b9 100644
--- a/core/html/ime/InputMethodContext.idl
+++ b/core/html/ime/InputMethodContext.idl
@@ -32,11 +32,9 @@
 [
 ] interface InputMethodContext {
     readonly attribute Composition composition;
-    attribute boolean enabled;
     readonly attribute DOMString locale;
-
+    readonly attribute HTMLElement target;
     void confirmComposition();
     void setCaretRectangle(Node anchor, long x, long y, long w, long h);
     void setExclusionRectangle(Node anchor, long x, long y, long w, long h);
-    boolean open();
 };
diff --git a/core/html/track/TextTrack.idl b/core/html/track/TextTrack.idl
index c1b39ff..8b2e8aa 100644
--- a/core/html/track/TextTrack.idl
+++ b/core/html/track/TextTrack.idl
@@ -24,9 +24,8 @@
  */
 
 [
-    EnabledAtRuntime=videoTrack,
-    EventTarget
-] interface TextTrack {
+    EnabledAtRuntime=videoTrack
+] interface TextTrack : EventTarget {
     readonly attribute DOMString kind;
     readonly attribute DOMString label;
     readonly attribute DOMString language;
@@ -43,13 +42,4 @@
     [Conditional=WEBVTT_REGIONS] readonly attribute TextTrackRegionList regions;
     [Conditional=WEBVTT_REGIONS] void addRegion(TextTrackRegion region);
     [RaisesException, Conditional=WEBVTT_REGIONS] void removeRegion(TextTrackRegion region);
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
diff --git a/core/html/track/TextTrackCue.idl b/core/html/track/TextTrackCue.idl
index 962f695..f398a9a 100644
--- a/core/html/track/TextTrackCue.idl
+++ b/core/html/track/TextTrackCue.idl
@@ -26,9 +26,8 @@
 [
     EnabledAtRuntime=videoTrack,
     Constructor(double startTime, double endTime, DOMString text),
-    ConstructorCallWith=ScriptExecutionContext,
-    EventTarget
-] interface TextTrackCue {
+    ConstructorCallWith=ScriptExecutionContext
+] interface TextTrackCue : EventTarget {
     readonly attribute TextTrack track;
 
     attribute DOMString id;
@@ -49,15 +48,6 @@
     attribute EventListener onenter;
     attribute EventListener onexit;
 
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
-
     [Conditional=WEBVTT_REGIONS] attribute DOMString regionId;
 };
 
diff --git a/core/html/track/TextTrackList.idl b/core/html/track/TextTrackList.idl
index 905efc3..a6e51b3 100644
--- a/core/html/track/TextTrackList.idl
+++ b/core/html/track/TextTrackList.idl
@@ -25,20 +25,11 @@
 
 [
     EnabledAtRuntime=videoTrack,
-    EventTarget,
     GenerateIsReachable=owner
-] interface TextTrackList {
+] interface TextTrackList : EventTarget {
     readonly attribute unsigned long length;
     getter TextTrack item(unsigned long index);
 
     attribute EventListener onaddtrack;
-
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
 
diff --git a/core/inspector/CodeGeneratorInspector.py b/core/inspector/CodeGeneratorInspector.py
index 4c81796..20122e6 100755
--- a/core/inspector/CodeGeneratorInspector.py
+++ b/core/inspector/CodeGeneratorInspector.py
@@ -48,8 +48,8 @@
 
 
 TYPES_WITH_RUNTIME_CAST_SET = frozenset(["Runtime.RemoteObject", "Runtime.PropertyDescriptor", "Runtime.InternalPropertyDescriptor",
-                                         "Debugger.FunctionDetails", "Debugger.CallFrame",
-                                         "Canvas.TraceLog", "Canvas.ResourceInfo", "Canvas.ResourceState",
+                                         "Debugger.FunctionDetails", "Debugger.CallFrame", "Debugger.Location",
+                                         "Canvas.TraceLog", "Canvas.ResourceState",
                                          # This should be a temporary hack. TimelineEvent should be created via generated C++ API.
                                          "Timeline.TimelineEvent"])
 
@@ -62,25 +62,21 @@
 EXACTLY_INT_SUPPORTED = False
 
 cmdline_parser = optparse.OptionParser()
-cmdline_parser.add_option("--output_h_dir")
-cmdline_parser.add_option("--output_cpp_dir")
+cmdline_parser.add_option("--output_dir")
 
 try:
     arg_options, arg_values = cmdline_parser.parse_args()
     if (len(arg_values) != 1):
         raise Exception("Exactly one plain argument expected (found %s)" % len(arg_values))
     input_json_filename = arg_values[0]
-    output_header_dirname = arg_options.output_h_dir
-    output_cpp_dirname = arg_options.output_cpp_dir
-    if not output_header_dirname:
-        raise Exception("Output .h directory must be specified")
-    if not output_cpp_dirname:
-        raise Exception("Output .cpp directory must be specified")
+    output_dirname = arg_options.output_dir
+    if not output_dirname:
+        raise Exception("Output directory must be specified")
 except Exception:
     # Work with python 2 and 3 http://docs.python.org/py3k/howto/pyporting.html
     exc = sys.exc_info()[1]
     sys.stderr.write("Failed to parse command-line arguments: %s\n\n" % exc)
-    sys.stderr.write("Usage: <script> protocol.json --output_h_dir <output_header_dir> --output_cpp_dir <output_cpp_dir>\n")
+    sys.stderr.write("Usage: <script> --output_dir <output_dir> protocol.json\n")
     exit(1)
 
 
@@ -2291,14 +2287,14 @@
 
 Generator.go()
 
-backend_h_file = output_file(output_header_dirname + "/InspectorBackendDispatcher.h")
-backend_cpp_file = output_file(output_cpp_dirname + "/InspectorBackendDispatcher.cpp")
+backend_h_file = output_file(output_dirname + "/InspectorBackendDispatcher.h")
+backend_cpp_file = output_file(output_dirname + "/InspectorBackendDispatcher.cpp")
 
-frontend_h_file = output_file(output_header_dirname + "/InspectorFrontend.h")
-frontend_cpp_file = output_file(output_cpp_dirname + "/InspectorFrontend.cpp")
+frontend_h_file = output_file(output_dirname + "/InspectorFrontend.h")
+frontend_cpp_file = output_file(output_dirname + "/InspectorFrontend.cpp")
 
-typebuilder_h_file = output_file(output_header_dirname + "/InspectorTypeBuilder.h")
-typebuilder_cpp_file = output_file(output_cpp_dirname + "/InspectorTypeBuilder.cpp")
+typebuilder_h_file = output_file(output_dirname + "/InspectorTypeBuilder.h")
+typebuilder_cpp_file = output_file(output_dirname + "/InspectorTypeBuilder.cpp")
 
 
 backend_h_file.write(Templates.backend_h.substitute(None,
diff --git a/core/inspector/CodeGeneratorInspectorStrings.py b/core/inspector/CodeGeneratorInspectorStrings.py
index 8759b2f..b7e7422 100644
--- a/core/inspector/CodeGeneratorInspectorStrings.py
+++ b/core/inspector/CodeGeneratorInspectorStrings.py
@@ -130,9 +130,9 @@
 
 #include "InspectorTypeBuilder.h"
 
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-#include <wtf/text/WTFString.h>
+#include "wtf/PassRefPtr.h"
+#include "wtf/RefCounted.h"
+#include "wtf/text/WTFString.h"
 
 namespace WebCore {
 
diff --git a/core/inspector/CodeGeneratorInstrumentation.py b/core/inspector/CodeGeneratorInstrumentation.py
index b72cb5d..5cfe1f9 100644
--- a/core/inspector/CodeGeneratorInstrumentation.py
+++ b/core/inspector/CodeGeneratorInstrumentation.py
@@ -115,10 +115,10 @@
 #ifndef InstrumentingAgentsInl_h
 #define InstrumentingAgentsInl_h
 
-#include <wtf/FastAllocBase.h>
-#include <wtf/Noncopyable.h>
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
+#include "wtf/FastAllocBase.h"
+#include "wtf/Noncopyable.h"
+#include "wtf/PassRefPtr.h"
+#include "wtf/RefCounted.h"
 
 namespace WebCore {
 
@@ -469,7 +469,7 @@
     return header_lines, cpp_lines
 
 
-def generate(input_path, output_h_dir, output_cpp_dir):
+def generate(input_path, output_dir):
     fin = open(input_path, "r")
     files = load_model_from_idl(fin.read())
     fin.close()
@@ -480,7 +480,7 @@
     for f in files:
         cpp_includes.append(include_header(f.header_name))
 
-        fout = open(output_h_dir + "/" + f.header_name + ".h", "w")
+        fout = open(output_dir + "/" + f.header_name + ".h", "w")
         fout.write(f.generate(cpp_lines, used_agents))
         fout.close()
 
@@ -491,11 +491,11 @@
 
     instrumenting_agents_header, instrumenting_agents_cpp = generate_instrumenting_agents(used_agents)
 
-    fout = open(output_h_dir + "/" + "InstrumentingAgentsInl.h", "w")
+    fout = open(output_dir + "/" + "InstrumentingAgentsInl.h", "w")
     fout.write(instrumenting_agents_header)
     fout.close()
 
-    fout = open(output_cpp_dir + "/InspectorInstrumentationImpl.cpp", "w")
+    fout = open(output_dir + "/InspectorInstrumentationImpl.cpp", "w")
     fout.write(template_cpp.substitute(None,
                                        includes="\n".join(cpp_includes),
                                        extra_definitions=instrumenting_agents_cpp,
@@ -504,25 +504,21 @@
 
 
 cmdline_parser = optparse.OptionParser()
-cmdline_parser.add_option("--output_h_dir")
-cmdline_parser.add_option("--output_cpp_dir")
+cmdline_parser.add_option("--output_dir")
 
 try:
     arg_options, arg_values = cmdline_parser.parse_args()
     if (len(arg_values) != 1):
         raise Exception("Exactly one plain argument expected (found %s)" % len(arg_values))
     input_path = arg_values[0]
-    output_header_dirpath = arg_options.output_h_dir
-    output_cpp_dirpath = arg_options.output_cpp_dir
-    if not output_header_dirpath:
-        raise Exception("Output .h directory must be specified")
-    if not output_cpp_dirpath:
-        raise Exception("Output .cpp directory must be specified")
+    output_dirpath = arg_options.output_dir
+    if not output_dirpath:
+        raise Exception("Output directory must be specified")
 except Exception:
     # Work with python 2 and 3 http://docs.python.org/py3k/howto/pyporting.html
     exc = sys.exc_info()[1]
     sys.stderr.write("Failed to parse command-line arguments: %s\n\n" % exc)
-    sys.stderr.write("Usage: <script> InspectorInstrumentation.idl --output_h_dir <output_header_dir> --output_cpp_dir <output_cpp_dir>\n")
+    sys.stderr.write("Usage: <script> --output_dir <output_dir> InspectorInstrumentation.idl\n")
     exit(1)
 
-generate(input_path, output_header_dirpath, output_cpp_dirpath)
+generate(input_path, output_dirpath)
diff --git a/core/inspector/InjectedScriptHost.idl b/core/inspector/InjectedScriptHost.idl
index 87dc9d8..77e4cbe 100644
--- a/core/inspector/InjectedScriptHost.idl
+++ b/core/inspector/InjectedScriptHost.idl
@@ -35,7 +35,6 @@
 ] interface InjectedScriptHost {
     void clearConsoleMessages();
 
-    void copyText(DOMString text);
     [Custom] void inspect(any objectId, any hints);
     [Custom] any inspectedObject(long num);
     [Custom] any internalConstructorName(any obj);
@@ -52,6 +51,6 @@
     [Custom] void monitorFunction(any fn);
     [Custom] void unmonitorFunction(any fn);
 
-    // Only declarative scope (local, with and catch) is accepted. Returns undefined. 
+    // Only declarative scope (local, with and catch) is accepted. Returns undefined.
     [Custom] any setFunctionVariableValue(any functionObject, int scopeIndex, DOMString variableName, any newValue);
 };
diff --git a/core/inspector/InspectorInstrumentation.idl b/core/inspector/InspectorInstrumentation.idl
index 41e5840..1be3df8 100644
--- a/core/inspector/InspectorInstrumentation.idl
+++ b/core/inspector/InspectorInstrumentation.idl
@@ -112,11 +112,20 @@
     [CSS, Inline=FastReturn]
     void didUpdateRegionLayout([Keep] Document*, NamedFlow*);
 
+    [CSS, Inline=FastReturn]
+    void didChangeRegionOverset([Keep] Document*, NamedFlow*);
+
     [DOMDebugger, Inline=FastReturn]
     void willSendXMLHttpRequest(ScriptExecutionContext*, const String& url);
 
     [DOMDebugger, Inline=FastReturn]
-    void didFireWebGLError(Document*, const String& errorName);
+    void didFireWebGLError(Element*, const String& errorName);
+
+    [DOMDebugger, Inline=FastReturn]
+    void didFireWebGLWarning(Element*);
+
+    [DOMDebugger, Inline=FastReturn]
+    void didFireWebGLErrorOrWarning(Element*, const String& message);
 
     [Timeline, Inline=FastReturn]
     void didScheduleResourceRequest([Keep] Document*, const String& url);
@@ -197,10 +206,10 @@
     void didDispatchXHRLoadEvent(const InspectorInstrumentationCookie&);
 
     [Timeline, Inline=FastReturn]
-    void willScrollLayer([Keep] Frame*);
+    void willScrollLayer([Keep] RenderObject*);
 
     [Timeline, Inline=FastReturn]
-    void didScrollLayer(Frame*);
+    void didScrollLayer(RenderObject*);
 
     [Timeline, Inline=FastReturn]
     void willPaint([Keep] RenderObject*);
@@ -245,7 +254,7 @@
     void applyEmulatedMedia(Frame*, String* media);
 
     [Timeline, Resource]
-    void willSendRequest(Frame*, unsigned long identifier, DocumentLoader*, ResourceRequest&, const ResourceResponse& redirectResponse, const CachedResourceInitiatorInfo&);
+    void willSendRequest(Frame*, unsigned long identifier, DocumentLoader*, ResourceRequest&, const ResourceResponse& redirectResponse, const FetchInitiatorInfo&);
 
     void continueAfterPingLoader(Frame*, unsigned long identifier, DocumentLoader*, ResourceRequest&, const ResourceResponse&);
 
@@ -321,6 +330,9 @@
     [Canvas, Page, CSS]
     void frameDetachedFromParent([Keep] Frame*);
 
+    [Page]
+    void childDocumentOpened([Keep] Document*);
+
     [Console, Resource, CSS, Database, DOM, LayerTree, Inspector, Canvas, Page]
     void didCommitLoad([Keep] Frame*, DocumentLoader*);
 
@@ -349,7 +361,7 @@
     void didRunJavaScriptDialog(const InspectorInstrumentationCookie&);
 
     [Inline=Forward]
-    void willDestroyCachedResource(CachedResource* cachedResource);
+    void willDestroyResource(Resource* cachedResource);
 
     [Timeline, Inline=FastReturn]
     InspectorInstrumentationCookie willWriteHTML([Keep] Document*, unsigned startLine);
@@ -373,13 +385,13 @@
     void didDispatchDOMStorageEvent(Page* page, const String& key, const String& oldValue, const String& newValue, StorageType storageType, SecurityOrigin* securityOrigin);
 
     [Worker]
-    void didStartWorkerContext(ScriptExecutionContext*, WorkerContextProxy* proxy, const KURL& url);
+    void didStartWorkerGlobalScope(ScriptExecutionContext*, WorkerGlobalScopeProxy* proxy, const KURL& url);
 
     [WorkerRuntime]
-    void willEvaluateWorkerScript([Keep] WorkerContext* context, int workerThreadStartMode);
+    void willEvaluateWorkerScript([Keep] WorkerGlobalScope* context, int workerThreadStartMode);
 
     [Worker]
-    void workerContextTerminated(ScriptExecutionContext*, WorkerContextProxy* proxy);
+    void workerGlobalScopeTerminated(ScriptExecutionContext*, WorkerGlobalScopeProxy* proxy);
 
     [Resource, Timeline]
     void didCreateWebSocket([Keep] Document*, unsigned long identifier, const KURL& requestURL, const String& protocol);
@@ -431,14 +443,14 @@
     void addMessageToConsole(Page* page, MessageSource source, MessageType type, MessageLevel level, const String& message, ScriptState* state, PassRefPtr<ScriptArguments> arguments, unsigned long requestIdentifier = 0);
 
     [Console]
-    void addMessageToConsole(Page* page, MessageSource source, MessageType type, MessageLevel level, const String& message, const String& scriptId, unsigned lineNumber, ScriptState* state = 0, unsigned long requestIdentifier = 0);
+    void addMessageToConsole(Page* page, MessageSource source, MessageType type, MessageLevel level, const String& message, const String& scriptId, unsigned lineNumber, unsigned columnNumber = 0, ScriptState* state = 0, unsigned long requestIdentifier = 0);
 
     // FIXME: Convert to ScriptArguments to match non-worker context.
     // Use the same implementation as above as a similar method dispatched on Page.
-    void addMessageToConsole(WorkerContext* workerContext, MessageSource source, MessageType type, MessageLevel level, const String& message, PassRefPtr<ScriptCallStack> callStack, unsigned long requestIdentifier = 0);
+    void addMessageToConsole(WorkerGlobalScope* workerGlobalScope, MessageSource source, MessageType type, MessageLevel level, const String& message, PassRefPtr<ScriptCallStack> callStack, unsigned long requestIdentifier = 0);
 
     // Use the same implementation as above as a similar method dispatched on Page.
-    void addMessageToConsole(WorkerContext* workerContext, MessageSource source, MessageType type, MessageLevel level, const String& message, const String& scriptId, unsigned lineNumber, ScriptState* state, unsigned long requestIdentifier = 0);
+    void addMessageToConsole(WorkerGlobalScope* workerGlobalScope, MessageSource source, MessageType type, MessageLevel level, const String& message, const String& scriptId, unsigned lineNumber, unsigned columnNumber, ScriptState* state, unsigned long requestIdentifier = 0);
 
     [Console]
     void consoleCount(Page* page, ScriptState* state, PassRefPtr<ScriptArguments> arguments);
diff --git a/core/inspector/JavaScriptCallFrame.idl b/core/inspector/JavaScriptCallFrame.idl
index 86ae41d..fa31924 100644
--- a/core/inspector/JavaScriptCallFrame.idl
+++ b/core/inspector/JavaScriptCallFrame.idl
@@ -37,8 +37,8 @@
 
     [Custom] void evaluate(DOMString script);
     [Custom] any restart();
-    
-    // Only declarative scope (local, with and catch) is accepted. Returns undefined. 
+
+    // Only declarative scope (local, with and catch) is accepted. Returns undefined.
     [Custom] any setVariableValue(long scopeIndex, DOMString variableName, any newValue);
 
     readonly attribute JavaScriptCallFrame caller;
@@ -48,6 +48,7 @@
     [CustomGetter] readonly attribute Array scopeChain;
     [Custom] unsigned short scopeType(long scopeIndex);
     [CustomGetter] readonly attribute Object thisObject;
+    readonly attribute DOMString stepInPositions;
     readonly attribute DOMString functionName;
     [CustomGetter] readonly attribute DOMString type;
 };
diff --git a/core/loader/appcache/DOMApplicationCache.idl b/core/loader/appcache/DOMApplicationCache.idl
index c58f5e3..f1c98e6 100644
--- a/core/loader/appcache/DOMApplicationCache.idl
+++ b/core/loader/appcache/DOMApplicationCache.idl
@@ -20,14 +20,13 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
     NoInterfaceObject,
-    EventTarget,
     DoNotCheckConstants
-] interface DOMApplicationCache {
+] interface DOMApplicationCache : EventTarget {
     // update status
     const unsigned short UNCACHED = 0;
     const unsigned short IDLE = 1;
@@ -50,14 +49,5 @@
     attribute EventListener onupdateready;
     attribute EventListener oncached;
     attribute EventListener onobsolete;
-
-    // EventTarget interface
-    void addEventListener(DOMString type, 
-                          EventListener listener, 
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type, 
-                             EventListener listener, 
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
 
diff --git a/core/page/AbstractView.idl b/core/page/AbstractView.idl
index 371bb15..60c537f 100644
--- a/core/page/AbstractView.idl
+++ b/core/page/AbstractView.idl
@@ -21,12 +21,12 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 // Introduced in DOM Level 2:
 [
-    
+
 ] interface AbstractView {
     readonly attribute Document document;
     readonly attribute StyleMedia styleMedia;
diff --git a/core/page/BarProp.idl b/core/page/BarProp.idl
index 8f91d38..cc9ce71 100644
--- a/core/page/BarProp.idl
+++ b/core/page/BarProp.idl
@@ -6,13 +6,13 @@
  * are met:
  *
  * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer. 
+ *     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. 
+ *     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. 
+ *     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
diff --git a/core/page/Console.idl b/core/page/Console.idl
index e536e49..f675e8e 100644
--- a/core/page/Console.idl
+++ b/core/page/Console.idl
@@ -30,17 +30,17 @@
     NoInterfaceObject
 ] interface Console {
 
-    [CallWith=ScriptArguments|ScriptState] void debug();
-    [CallWith=ScriptArguments|ScriptState] void error();
-    [CallWith=ScriptArguments|ScriptState] void info();
-    [CallWith=ScriptArguments|ScriptState] void log();
-    [CallWith=ScriptArguments|ScriptState] void warn();
-    [CallWith=ScriptArguments|ScriptState] void dir();
-    [CallWith=ScriptArguments|ScriptState] void dirxml();
-    [CallWith=ScriptArguments|ScriptState] void table();
-    [CallWith=ScriptArguments|ScriptState] void trace();
-    [CallWith=ScriptArguments|ScriptState, ImplementedAs=assertCondition] void assert([Default=Undefined] optional boolean condition);
-    [CallWith=ScriptArguments|ScriptState] void count();
+    [CallWith=ScriptArguments&ScriptState] void debug();
+    [CallWith=ScriptArguments&ScriptState] void error();
+    [CallWith=ScriptArguments&ScriptState] void info();
+    [CallWith=ScriptArguments&ScriptState] void log();
+    [CallWith=ScriptArguments&ScriptState] void warn();
+    [CallWith=ScriptArguments&ScriptState] void dir();
+    [CallWith=ScriptArguments&ScriptState] void dirxml();
+    [CallWith=ScriptArguments&ScriptState] void table();
+    [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();
 
     [CallWith=ScriptState] void profile([Default=NullString] optional DOMString title);
@@ -49,10 +49,10 @@
     void time([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString title);
     [CallWith=ScriptState] void timeEnd([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString title);
     [CallWith=ScriptArguments] void timeStamp();
-    [CallWith=ScriptArguments|ScriptState] void group();
-    [CallWith=ScriptArguments|ScriptState] void groupCollapsed();
+    [CallWith=ScriptArguments&ScriptState] void group();
+    [CallWith=ScriptArguments&ScriptState] void groupCollapsed();
     void groupEnd();
-    [CallWith=ScriptArguments|ScriptState] void clear();
+    [CallWith=ScriptArguments&ScriptState] void clear();
 
     readonly attribute MemoryInfo memory;
 };
diff --git a/core/page/EventSource.idl b/core/page/EventSource.idl
index b50a876..d92caa9 100644
--- a/core/page/EventSource.idl
+++ b/core/page/EventSource.idl
@@ -30,13 +30,12 @@
  */
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     ActiveDOMObject,
     Constructor(DOMString url, optional Dictionary eventSourceInit),
     ConstructorCallWith=ScriptExecutionContext,
-    ConstructorRaisesException,
-    EventTarget
-] interface EventSource {
+    ConstructorRaisesException
+] interface EventSource : EventTarget {
 
     readonly attribute DOMString URL; // Lowercased .url is the one in the spec, but leaving .URL for compatibility reasons.
     readonly attribute DOMString url;
@@ -53,14 +52,4 @@
     attribute EventListener onmessage;
     attribute EventListener onerror;
     void close();
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
-
 };
diff --git a/core/page/ImageBitmap.idl b/core/page/ImageBitmap.idl
new file mode 100644
index 0000000..b7eec85
--- /dev/null
+++ b/core/page/ImageBitmap.idl
@@ -0,0 +1,9 @@
+// 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.
+
+[
+] interface ImageBitmap {
+    readonly attribute long width;
+    readonly attribute long height;
+};
\ No newline at end of file
diff --git a/core/page/ImageBitmapCallback.idl b/core/page/ImageBitmapCallback.idl
new file mode 100644
index 0000000..fb2ae4f
--- /dev/null
+++ b/core/page/ImageBitmapCallback.idl
@@ -0,0 +1,7 @@
+// 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/Location.idl b/core/page/Location.idl
index 96b211a..77778e1 100644
--- a/core/page/Location.idl
+++ b/core/page/Location.idl
@@ -6,13 +6,13 @@
  * are met:
  *
  * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer. 
+ *     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. 
+ *     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. 
+ *     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
@@ -29,20 +29,20 @@
 [
     CheckSecurity
 ] interface Location {
-    [SetterCallWith=ActiveWindow|FirstWindow, DoNotCheckSecurityOnSetter, Unforgeable] attribute DOMString href;
+    [SetterCallWith=ActiveWindow&FirstWindow, DoNotCheckSecurityOnSetter, Unforgeable] attribute DOMString href;
 
-    [CallWith=ActiveWindow|FirstWindow, DoNotCheckSecurity, Unforgeable, ReadOnly, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds] void assign([Default=Undefined] optional DOMString url);
-    [CallWith=ActiveWindow|FirstWindow, DoNotCheckSecurity, Unforgeable, ReadOnly, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds] void replace([Default=Undefined] optional DOMString url);
-    [CallWith=ActiveWindow, DoNotCheckSecurity, Unforgeable, ReadOnly] void reload();
+    [CallWith=ActiveWindow&FirstWindow, DoNotCheckSecurity, Unforgeable, ReadOnly, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds] void assign([Default=Undefined] optional DOMString url);
+    [CallWith=ActiveWindow&FirstWindow, DoNotCheckSecurity, Unforgeable, ReadOnly, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds] void replace([Default=Undefined] optional DOMString url);
+    [CallWith=ActiveWindow, Unforgeable, ReadOnly] void reload();
 
     // URI decomposition attributes
-    [SetterCallWith=ActiveWindow|FirstWindow, SetterRaisesException] attribute DOMString protocol;
-    [SetterCallWith=ActiveWindow|FirstWindow] attribute DOMString host;
-    [SetterCallWith=ActiveWindow|FirstWindow] attribute DOMString hostname;
-    [SetterCallWith=ActiveWindow|FirstWindow] attribute DOMString port;
-    [SetterCallWith=ActiveWindow|FirstWindow] attribute DOMString pathname;
-    [SetterCallWith=ActiveWindow|FirstWindow] attribute DOMString search;
-    [SetterCallWith=ActiveWindow|FirstWindow] attribute DOMString hash;
+    [SetterCallWith=ActiveWindow&FirstWindow, SetterRaisesException] attribute DOMString protocol;
+    [SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString host;
+    [SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString hostname;
+    [SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString port;
+    [SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString pathname;
+    [SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString search;
+    [SetterCallWith=ActiveWindow&FirstWindow] attribute DOMString hash;
 
     readonly attribute DOMString origin;
 
diff --git a/core/page/Performance.idl b/core/page/Performance.idl
index 87a5b06..e676085 100644
--- a/core/page/Performance.idl
+++ b/core/page/Performance.idl
@@ -30,9 +30,7 @@
  */
 
 // See: http://dev.w3.org/2006/webapi/WebTiming/
-[
-    EventTarget
-] interface Performance {
+interface Performance {
     readonly attribute PerformanceNavigation navigation;
     readonly attribute PerformanceTiming timing;
     readonly attribute MemoryInfo memory;
diff --git a/core/page/Screen.idl b/core/page/Screen.idl
index e3df7b0..184a863 100644
--- a/core/page/Screen.idl
+++ b/core/page/Screen.idl
@@ -6,13 +6,13 @@
  * are met:
  *
  * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer. 
+ *     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. 
+ *     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. 
+ *     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
diff --git a/core/page/Selection.idl b/core/page/Selection.idl
index 1c93773..df2e24b 100644
--- a/core/page/Selection.idl
+++ b/core/page/Selection.idl
@@ -40,17 +40,17 @@
     readonly attribute boolean isCollapsed;
     readonly attribute long rangeCount;
 
-    [RaisesException] void collapse([Default=Undefined] optional Node node, 
+    [RaisesException] void collapse([Default=Undefined] optional Node node,
                   [Default=Undefined] optional long index);
     [RaisesException] void collapseToEnd();
     [RaisesException] void collapseToStart();
 
     void deleteFromDocument();
-    boolean containsNode([Default=Undefined] optional Node node, 
+    boolean containsNode([Default=Undefined] optional Node node,
                          [Default=Undefined] optional boolean allowPartial);
     [RaisesException] void selectAllChildren([Default=Undefined] optional Node node);
 
-    [RaisesException] void extend([Default=Undefined] optional Node node, 
+    [RaisesException] void extend([Default=Undefined] optional Node node,
                 [Default=Undefined] optional long offset);
 
     [RaisesException] Range getRangeAt([Default=Undefined] optional long index);
@@ -69,14 +69,14 @@
     // IE's type accessor returns "none", "text" and "control"
     readonly attribute DOMString type;
 
-    void modify([Default=Undefined] optional DOMString alter, 
-                [Default=Undefined] optional DOMString direction, 
+    void modify([Default=Undefined] optional DOMString alter,
+                [Default=Undefined] optional DOMString direction,
                 [Default=Undefined] optional DOMString granularity);
-    [RaisesException] void setBaseAndExtent([Default=Undefined] optional Node baseNode, 
-                          [Default=Undefined] optional long baseOffset, 
-                          [Default=Undefined] optional Node extentNode, 
+    [RaisesException] void setBaseAndExtent([Default=Undefined] optional Node baseNode,
+                          [Default=Undefined] optional long baseOffset,
+                          [Default=Undefined] optional Node extentNode,
                           [Default=Undefined] optional long extentOffset);
-    [RaisesException] void setPosition([Default=Undefined] optional Node node, 
+    [RaisesException] void setPosition([Default=Undefined] optional Node node,
                      [Default=Undefined] optional long offset);
 
     // IE extentions
diff --git a/core/page/WebKitPoint.idl b/core/page/WebKitPoint.idl
index 6ac44cd..4e3637a 100644
--- a/core/page/WebKitPoint.idl
+++ b/core/page/WebKitPoint.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/page/Window.idl b/core/page/Window.idl
index d468230..f15f3e4 100644
--- a/core/page/Window.idl
+++ b/core/page/Window.idl
@@ -26,11 +26,10 @@
 
 [
     CheckSecurity,
-    EventTarget,
     CustomToV8,
     DoNotGenerateWrap,
     ImplementedAs=DOMWindow
-] interface Window {
+] interface Window : EventTarget {
     // DOM Level 0
     [Replaceable] readonly attribute Screen screen;
     [Replaceable] readonly attribute History history;
@@ -161,16 +160,26 @@
 
     [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);
     [ImplementedAs=cancelAnimationFrame] void webkitCancelAnimationFrame(long id);
     [ImplementedAs=cancelAnimationFrame] void webkitCancelRequestAnimationFrame(long id); // This is a deprecated alias for webkitCancelAnimationFrame(). Remove this when removing vendor prefix.
 
-    // Base64
-    [RaisesException] DOMString atob([TreatNullAs=NullString,Default=Undefined] optional DOMString string);
-    [RaisesException] DOMString btoa([TreatNullAs=NullString,Default=Undefined] optional DOMString string);
-
     [Replaceable] readonly attribute CSS CSS;
 
     // Events
@@ -180,38 +189,40 @@
     attribute EventListener oncanplay;
     attribute EventListener oncanplaythrough;
     attribute EventListener onchange;
-    attribute EventListener onclick;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener onclick;
     attribute EventListener oncontextmenu;
-    attribute EventListener ondblclick;
-    attribute EventListener ondrag;
-    attribute EventListener ondragend;
-    attribute EventListener ondragenter;
-    attribute EventListener ondragleave;
-    attribute EventListener ondragover;
-    attribute EventListener ondragstart;
-    attribute EventListener ondrop;
+    [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;
-    attribute EventListener oninput;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventListener oninput;
     attribute EventListener oninvalid;
-    attribute EventListener onkeydown;
-    attribute EventListener onkeypress;
-    attribute EventListener onkeyup;
+    [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;
-    attribute EventListener onmousedown;
-    attribute EventListener onmousemove;
-    attribute EventListener onmouseout;
-    attribute EventListener onmouseover;
-    attribute EventListener onmouseup;
-    attribute EventListener onmousewheel;
+    [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;
@@ -261,15 +272,6 @@
     [EnabledAtRuntime=deviceMotion] attribute EventListener ondevicemotion;
     [EnabledAtRuntime=deviceOrientation] attribute EventListener ondeviceorientation;
 
-    // EventTarget interface
-    [Custom] void addEventListener(DOMString type,
-                                  EventListener listener,
-                                  optional boolean useCapture);
-    [Custom] void removeEventListener(DOMString type,
-                                      EventListener listener,
-                                      optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
-
     // Additional constructors.
     attribute TransitionEventConstructor WebKitTransitionEvent;
     [CustomConstructor] attribute HTMLImageElementConstructorConstructor Image; // Usable with new operator
@@ -309,4 +311,4 @@
 };
 
 Window implements WindowTimers;
-
+Window implements WindowBase64;
diff --git a/modules/notifications/WorkerContextNotifications.idl b/core/page/WindowBase64.idl
similarity index 76%
copy from modules/notifications/WorkerContextNotifications.idl
copy to core/page/WindowBase64.idl
index e8f86b9..e27a93b 100644
--- a/modules/notifications/WorkerContextNotifications.idl
+++ b/core/page/WindowBase64.idl
@@ -1,5 +1,7 @@
 /*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ * Copyright (C) 2013 Samsung Electronics. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -21,12 +23,12 @@
  * 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.
- *
  */
 
 [
-    Conditional=NOTIFICATIONS|LEGACY_NOTIFICATIONS
-] partial interface WorkerContext {
-    [EnabledAtRuntime=notifications, Conditional=LEGACY_NOTIFICATIONS] readonly attribute NotificationCenter webkitNotifications;
+    NoInterfaceObject,
+    ImplementedAs=DOMWindowBase64
+] interface WindowBase64 {
+    [RaisesException] DOMString atob(DOMString string);
+    [RaisesException] DOMString btoa(DOMString string);
 };
-
diff --git a/core/page/WindowTimers.idl b/core/page/WindowTimers.idl
index 97d5d42..744567d 100644
--- a/core/page/WindowTimers.idl
+++ b/core/page/WindowTimers.idl
@@ -26,7 +26,8 @@
  */
 
 [
-    NoInterfaceObject
+    NoInterfaceObject,
+    ImplementedAs=DOMWindowTimers
 ] interface WindowTimers {
     [Custom] long setTimeout(any handler, [Default=Undefined] optional long timeout);
     void clearTimeout([Default=Undefined] optional long handle);
diff --git a/core/page/WorkerNavigator.idl b/core/page/WorkerNavigator.idl
index 5304e83..1a1a77c 100644
--- a/core/page/WorkerNavigator.idl
+++ b/core/page/WorkerNavigator.idl
@@ -6,13 +6,13 @@
  * are met:
  *
  * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer. 
+ *     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. 
+ *     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. 
+ *     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
diff --git a/core/scripts/action_makenames.py b/core/scripts/action_makenames.py
index 4cf45cd..224abd6 100644
--- a/core/scripts/action_makenames.py
+++ b/core/scripts/action_makenames.py
@@ -1,11 +1,11 @@
 #!/usr/bin/python
 #
 # 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:
-# 
+#
 #     * 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
@@ -15,7 +15,7 @@
 #     * 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
@@ -137,7 +137,7 @@
             assert False
 
     assert makeNamesInput != None
-    assert tagInput != None or attrInput != None or eventsInput != None or ('--fonts' in options)
+    assert tagInput != None or attrInput != None or eventsInput != None or ('--fonts' in options) or ('--resourceTypes' in options)
 
     # scriptsPath is a Perl include directory, located relative to
     # makeNamesInput.
diff --git a/core/scripts/action_useragentstylesheets.py b/core/scripts/action_useragentstylesheets.py
index 850dd07..c0712b3 100644
--- a/core/scripts/action_useragentstylesheets.py
+++ b/core/scripts/action_useragentstylesheets.py
@@ -1,11 +1,11 @@
 #!/usr/bin/python
 #
 # 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:
-# 
+#
 #     * 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
@@ -15,7 +15,7 @@
 #     * 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
diff --git a/core/scripts/in_file.py b/core/scripts/in_file.py
index 39a016b..d8d8235 100644
--- a/core/scripts/in_file.py
+++ b/core/scripts/in_file.py
@@ -75,6 +75,7 @@
 
     def _parse(self, lines):
         parsing_parameters = True
+        indices = {}
         for line in lines:
             if _is_comment(line):
                 continue
@@ -84,7 +85,40 @@
             if parsing_parameters:
                 self._parse_parameter(line)
             else:
-                self.name_dictionaries.append(self._parse_line(line))
+                entry = self._parse_line(line)
+                name = entry['name']
+                if name in indices:
+                    entry = self._merge_entries(entry, self.name_dictionaries[indices[name]])
+                    entry['name'] = name
+                    self.name_dictionaries[indices[name]] = entry
+                else:
+                    indices[name] = len(self.name_dictionaries)
+                    self.name_dictionaries.append(entry)
+
+
+    def _merge_entries(self, one, two):
+        merged = {}
+        for key in one:
+            if key not in two:
+                self._fatal("Expected key '%s' not found in entry: %s" % (key, two))
+            if one[key] and two[key]:
+                val_one = one[key]
+                val_two = two[key]
+                if isinstance(val_one, list) and isinstance(val_two, list):
+                    val = val_one + val_two
+                elif isinstance(val_one, list):
+                    val = val_one + [val_two]
+                elif isinstance(val_two, list):
+                    val = [val_one] + val_two
+                else:
+                    val = [val_one, val_two]
+                merged[key] = val
+            elif one[key]:
+                merged[key] = one[key]
+            else:
+                merged[key] = two[key]
+        return merged
+
 
     def _parse_parameter(self, line):
         if '=' in line:
diff --git a/core/scripts/supplemental_idl_files.py b/core/scripts/list_idl_files_with_partial_interface.py
similarity index 98%
rename from core/scripts/supplemental_idl_files.py
rename to core/scripts/list_idl_files_with_partial_interface.py
index eaf0270..edebc51 100644
--- a/core/scripts/supplemental_idl_files.py
+++ b/core/scripts/list_idl_files_with_partial_interface.py
@@ -1,5 +1,3 @@
-#!/usr/bin/python
-#
 # Copyright (C) 2013 Google Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -35,6 +33,7 @@
 
 partial_interface_regex = re.compile(r'partial\s+interface\s+(\w+).+\]', re.M | re.S)
 
+
 def DoMain(filenames):
     partial_files = set()
     for filename in filenames:
diff --git a/core/scripts/make_css_property_names.py b/core/scripts/make_css_property_names.py
index 58f85f2..f775462 100755
--- a/core/scripts/make_css_property_names.py
+++ b/core/scripts/make_css_property_names.py
@@ -78,10 +78,14 @@
 #include "wtf/text/WTFString.h"
 
 namespace WebCore {
-const char* const propertyNameStrings[numCSSProperties] = {
+static const char propertyNameStringsPool[] = {
 %(property_name_strings)s
 };
 
+static const unsigned short propertyNameStringsOffsets[] = {
+%(property_name_offsets)s
+};
+
 %%}
 %%struct-type
 struct Property;
@@ -93,6 +97,7 @@
 %%define class-name %(class_name)sHash
 %%define lookup-function-name findPropertyImpl
 %%define hash-function-name propery_hash_function
+%%define slot-name nameOffset
 %%define word-array-name property_wordlist
 %%enum
 %%%%
@@ -110,7 +115,7 @@
     int index = id - firstCSSProperty;
     if (index >= numCSSProperties)
         return 0;
-    return propertyNameStrings[index];
+    return propertyNameStringsPool + propertyNameStringsOffsets[index];
 }
 
 const AtomicString& getPropertyNameAtomicString(CSSPropertyID id)
@@ -124,7 +129,7 @@
     static AtomicString* propertyStrings = new AtomicString[numCSSProperties]; // Intentionally never destroyed.
     AtomicString& propertyString = propertyStrings[index];
     if (propertyString.isNull()) {
-        const char* propertyName = propertyNameStrings[index];
+        const char* propertyName = propertyNameStringsPool + propertyNameStringsOffsets[index];
         propertyString = AtomicString(propertyName, strlen(propertyName), AtomicString::ConstructFromLiteral);
     }
     return propertyString;
@@ -210,14 +215,21 @@
         }
 
     def generate_implementation(self):
+        property_offsets = []
+        current_offset = 0
+        for property in self._properties:
+            property_offsets.append(current_offset)
+            current_offset += len(property["name"]) + 1
+
         gperf_input = GPERF_TEMPLATE % {
             'license': license.license_for_generated_cpp(),
             'class_name': self.class_name,
-            'property_name_strings': '\n'.join(map(lambda property: '    "%(name)s",' % property, self._properties)),
+            'property_name_strings': '\n'.join(map(lambda property: '    "%(name)s\\0"' % property, self._properties)),
+            'property_name_offsets': '\n'.join(map(lambda offset: '    %d,' % offset, property_offsets)),
             'property_to_enum_map': '\n'.join(map(lambda property: '%(name)s, %(enum_name)s' % property, self._properties + self._aliases)),
         }
         # FIXME: If we could depend on Python 2.7, we would use subprocess.check_output
-        gperf_args = ['gperf', '--key-positions=*', '-D', '-n', '-s', '2']
+        gperf_args = ['gperf', '--key-positions=*', '-P', '-D', '-n', '-s', '2']
         gperf = subprocess.Popen(gperf_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
         return gperf.communicate(gperf_input)[0]
 
diff --git a/core/scripts/make_css_value_keywords.py b/core/scripts/make_css_value_keywords.py
index a51823c..0b5a3d6 100755
--- a/core/scripts/make_css_value_keywords.py
+++ b/core/scripts/make_css_value_keywords.py
@@ -46,10 +46,13 @@
 #include <string.h>
 
 namespace WebCore {
-const char* const valueList[] = {
-"",
+static const char valueListStringPool[] = {
+"\\0"
 %(value_keyword_strings)s
-0
+};
+
+static const unsigned short valueListStringOffsets[] = {
+%(value_keyword_offsets)s
 };
 
 %%}
@@ -62,7 +65,9 @@
 %%define class-name %(class_name)sHash
 %%define lookup-function-name findValueImpl
 %%define hash-function-name value_hash_function
+%%define slot-name nameOffset
 %%define word-array-name value_word_list
+%%pic
 %%enum
 %%%%
 %(value_keyword_to_enum_map)s
@@ -76,7 +81,7 @@
 {
     if (id >= numCSSValueKeywords || id <= 0)
         return 0;
-    return valueList[id];
+    return valueListStringPool + valueListStringOffsets[id];
 }
 
 bool isValueAllowedInMode(unsigned short id, CSSParserMode mode)
@@ -146,14 +151,21 @@
         return filter(lambda property: property['mode'] == mode, self._value_keywords)
 
     def generate_implementation(self):
+        keyword_offsets = [0]
+        current_offset = 1
+        for keyword in self._value_keywords:
+            keyword_offsets.append(current_offset)
+            current_offset += len(keyword["name"]) + 1
+
         gperf_input = GPERF_TEMPLATE % {
             'license': license.license_for_generated_cpp(),
             'class_name': self.class_name,
-            'value_keyword_strings': '\n'.join(map(lambda property: '    "%(name)s",' % property, self._value_keywords)),
+            'value_keyword_strings': '\n'.join(map(lambda property: '    "%(name)s\\0"' % property, self._value_keywords)),
+            'value_keyword_offsets': '\n'.join(map(lambda offset: '  %d,' % offset, keyword_offsets)),
             'value_keyword_to_enum_map': '\n'.join(map(lambda property: '%(name)s, %(enum_name)s' % property, self._value_keywords)),
-            'ua_sheet_mode_values_keywords': '\n'.join(map(self._case_value_keyword, self._value_keywords_with_mode('UASheet'))),
-            'quirks_mode_values_keywords': '\n'.join(map(self._case_value_keyword, self._value_keywords_with_mode('Quirks'))),
-            'quirks_mode_or_ua_sheet_mode_values_keywords': '\n'.join(map(self._case_value_keyword, self._value_keywords_with_mode('QuirksOrUASheet'))),
+            'ua_sheet_mode_values_keywords': '\n        '.join(map(self._case_value_keyword, self._value_keywords_with_mode('UASheet'))),
+            'quirks_mode_values_keywords': '\n        '.join(map(self._case_value_keyword, self._value_keywords_with_mode('Quirks'))),
+            'quirks_mode_or_ua_sheet_mode_values_keywords': '\n    '.join(map(self._case_value_keyword, self._value_keywords_with_mode('QuirksOrUASheet'))),
         }
         # FIXME: If we could depend on Python 2.7, we would use subprocess.check_output
         gperf_args = ['gperf', '--key-positions=*', '-D', '-n', '-s', '2']
diff --git a/core/scripts/make_dom_exceptions.py b/core/scripts/make_dom_exceptions.py
deleted file mode 100755
index f0c7dde..0000000
--- a/core/scripts/make_dom_exceptions.py
+++ /dev/null
@@ -1,161 +0,0 @@
-#!/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 name_macros
-import license
-
-
-HEADER_TEMPLATE = """%(license)s
-
-#ifndef %(class_name)s_h
-#define %(class_name)s_h
-
-namespace WebCore {
-
-typedef int ExceptionCode;
-
-enum ExceptionType {
-%(exception_types)s
-};
-
-struct ExceptionCodeDescription {
-    explicit ExceptionCodeDescription(ExceptionCode);
-
-    // |name| is the exception name, also intended for use in exception
-    // description strings; 0 if name not known; maximum length is 27
-    // characters.
-    const char* name;
-
-    // |description| is the exception description, intended for use in
-    // exception strings. It is a more readable explanation of error.
-    const char* description;
-
-    // |code| is the numeric value of the exception within a particular type.
-    int code;
-
-    ExceptionType type;
-};
-
-} // namespace WebCore
-
-#endif // %(class_name)s_h
-"""
-
-
-IMPLEMENTATION_TEMPLATE = """%(license)s
-
-#include "config.h"
-#include "%(class_name)s.h"
-
-#include "ExceptionCode.h"
-
-%(includes)s
-
-#include "modules/indexeddb/IDBDatabaseException.h"
-
-namespace WebCore {
-
-ExceptionCodeDescription::ExceptionCodeDescription(ExceptionCode ec)
-{
-    ASSERT(ec);
-
-%(description_initalizations)s
-
-    // FIXME: This special case for IDB is undesirable. It is the first usage
-    // of "new style" DOMExceptions where there is no IDL type, but there are
-    // API-specific exception names and/or messages. Consider refactoring back
-    // into the code generator when a common pattern emerges.
-    if (IDBDatabaseException::initializeDescription(ec, this))
-        return;
-
-    if (DOMCoreException::initializeDescription(ec, this))
-        return;
-
-    ASSERT_NOT_REACHED();
-}
-
-} // namespace WebCore
-"""
-
-
-class ExceptionCodeDescriptionWriter(name_macros.Writer):
-    defaults = {
-        'implementedAs': None,
-        'conditional': None,
-    }
-    default_parameters = {
-        'namespace': '',
-    }
-
-    def __init__(self, in_file_path, enabled_conditions):
-        super(ExceptionCodeDescriptionWriter, self).__init__(in_file_path, enabled_conditions)
-        self._outputs[(self.class_name + ".cpp")] = self.generate_implementation
-        self._outputs[(self.class_name + ".h")] = self.generate_header
-
-    def _exceptions(self):
-        return self.in_file.name_dictionaries
-
-    def _exception_type(self, exception):
-        return self.wrap_with_condition('    ' + self._class_name_for_entry(exception) + 'Type,', exception['conditional'])
-
-    def generate_header(self):
-        return HEADER_TEMPLATE % {
-            'license': license.license_for_generated_cpp(),
-            'class_name': self.class_name,
-            'exception_types': '\n'.join(map(self._exception_type, self._exceptions())),
-        }
-
-    def _include(self, exception):
-        include = '#include "' + self._headers_header_include_path(exception) + '"'
-        return self.wrap_with_condition(include, exception['conditional'])
-
-    def _description_initalization(self, exception):
-        name = os.path.basename(exception['name'])
-        if name == 'DOMException':
-            return ''  # DOMException needs to be last because it's a catch-all.
-        description_initalization = """    if (%(name)s::initializeDescription(ec, this))
-        return;""" % {'name': name}
-        return self.wrap_with_condition(description_initalization, exception['conditional'])
-
-    def generate_implementation(self):
-        return IMPLEMENTATION_TEMPLATE % {
-            'license': license.license_for_generated_cpp(),
-            'class_name': self.class_name,
-            'includes': '\n'.join(map(self._include, self._exceptions())),
-            'description_initalizations': '\n'.join(map(self._description_initalization, self._exceptions())),
-        }
-
-
-if __name__ == "__main__":
-    name_macros.Maker(ExceptionCodeDescriptionWriter).main(sys.argv)
diff --git a/core/scripts/make_event_factory.py b/core/scripts/make_event_factory.py
index 06d0880..d34e4be 100644
--- a/core/scripts/make_event_factory.py
+++ b/core/scripts/make_event_factory.py
@@ -57,9 +57,9 @@
 
 class EventFactoryWriter(name_macros.Writer):
     defaults = {
-        'implementedAs': None,
-        'conditional': None,
-        'runtimeConditional': None,
+        'ImplementedAs': None,
+        'Conditional': None,
+        'EnabledAtRuntime': None,
     }
     default_parameters = {
         'namespace': '',
@@ -74,8 +74,8 @@
 
     def _factory_implementation(self, event):
         runtime_condition = ''
-        if event['runtimeConditional']:
-            runtime_condition = ' && RuntimeEnabledFeatures::' + event['runtimeConditional'] + '()'
+        if event['EnabledAtRuntime']:
+            runtime_condition = ' && RuntimeEnabledFeatures::' + event['EnabledAtRuntime'] + '()'
         name = os.path.basename(event['name'])
         class_name = self._class_name_for_entry(event)
         implementation = """    if (type == "%(name)s"%(runtime_condition)s)
@@ -84,7 +84,7 @@
             'runtime_condition': runtime_condition,
             'class_name': class_name,
         }
-        return self.wrap_with_condition(implementation, event['conditional'])
+        return self.wrap_with_condition(implementation, event['Conditional'])
 
     def generate_implementation(self):
         return IMPLEMENTATION_TEMPLATE % {
diff --git a/core/scripts/make_style_shorthands.py b/core/scripts/make_style_shorthands.py
new file mode 100644
index 0000000..db5d188
--- /dev/null
+++ b/core/scripts/make_style_shorthands.py
@@ -0,0 +1,87 @@
+#!/usr/bin/env python
+# Copyright (C) 2013 Intel Corporation. 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 re
+import sys
+from collections import defaultdict
+
+import in_generator
+import template_expander
+
+
+class StylePropertyShorthandWriter(in_generator.Writer):
+    class_name = 'StylePropertyShorthand'
+
+    defaults = {
+        'longhands': "",
+    }
+
+    def __init__(self, in_files, enabled_conditions):
+        super(StylePropertyShorthandWriter, self).__init__(in_files, enabled_conditions)
+        self._outputs = {("StylePropertyShorthand.cpp"): self.generate_style_property_shorthand_cpp, ("StylePropertyShorthand.h"): self.generate_style_property_shorthand_h}
+
+        self._properties = self.in_file.name_dictionaries
+        self._longhand_dictionary = defaultdict(list)
+
+        for property in self._properties:
+            cc = self._camelcase_property_name(property["name"])
+            property["property_id"] = self._create_css_property_name_enum_value(cc)
+            cc = cc[0].lower() + cc[1:]
+            property["camel_case_name"] = cc
+            longhands = property["longhands"].split(';')
+            property["camel_case_longhands"] = list()
+            for longhand in longhands:
+                longhand = self._camelcase_property_name(longhand)
+                longhand = self._create_css_property_name_enum_value(longhand)
+                property["camel_case_longhands"].append(longhand)
+                self._longhand_dictionary[longhand].append(property)
+        self._properties = dict((property["property_id"], property) for property in self._properties)
+
+# FIXME: some of these might be better in a utils file
+    def _camelcase_property_name(self, property_name):
+        return re.sub(r'(^[^-])|-(.)', lambda match: (match.group(1) or match.group(2)).upper(), property_name)
+
+    def _create_css_property_name_enum_value(self, property_name):
+        return "CSSProperty" + property_name
+
+    @template_expander.use_jinja("StylePropertyShorthand.cpp.tmpl")
+    def generate_style_property_shorthand_cpp(self):
+        return {
+            "properties": self._properties,
+            "longhands_dictionary": self._longhand_dictionary,
+        }
+
+    @template_expander.use_jinja("StylePropertyShorthand.h.tmpl")
+    def generate_style_property_shorthand_h(self):
+        return {
+            "properties": self._properties,
+        }
+
+if __name__ == "__main__":
+    in_generator.Maker(StylePropertyShorthandWriter).main(sys.argv)
diff --git a/core/scripts/make_token_matcher.py b/core/scripts/make_token_matcher.py
new file mode 100755
index 0000000..3631ed9
--- /dev/null
+++ b/core/scripts/make_token_matcher.py
@@ -0,0 +1,231 @@
+#!/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 io
+import itertools
+import re
+import sys
+
+
+class BadInput(Exception):
+    """Unsupported input has been found."""
+
+
+class SwitchCase(object):
+    """Represents a CASE block."""
+    def __init__(self, identifier, block):
+        self.identifier = identifier
+        self.block = block
+
+
+class Optimizer(object):
+    """Generates optimized identifier matching code."""
+    def __init__(self, output_file, array_variable, length_variable):
+        self.output_file = output_file
+        self.array_variable = array_variable
+        self.length_variable = length_variable
+
+    def inspect(self, cases):
+        lengths = list(set([len(c.identifier) for c in cases]))
+        lengths.sort()
+
+        def response(length):
+            self.inspect_array([c for c in cases if len(c.identifier) == length], range(length))
+        self.write_selection(self.length_variable, lengths, str, response)
+
+    def score(self, alternatives):
+        return -sum([len(list(count)) ** 2 for _, count in itertools.groupby(sorted(alternatives))])
+
+    def choose_selection_pos(self, cases, pending):
+        candidates = [pos for pos in pending if all(alternative.isalpha() for alternative in [c.identifier[pos] for c in cases])]
+        if not candidates:
+            raise BadInput('Case-insensitive switching on non-alphabetic characters not yet implemented')
+        return sorted(candidates, key=lambda pos: self.score([c.identifier[pos] for c in cases]))[0]
+
+    def inspect_array(self, cases, pending):
+        assert len(cases) >= 1
+        if pending:
+            common = [pos for pos in pending
+                      if len(set([c.identifier[pos] for c in cases])) == 1]
+            if common:
+                identifier = cases[0].identifier
+                for index in xrange(len(common)):
+                    if index == 0:
+                        self.output_file.write(u'if (LIKELY(')
+                    else:
+                        self.output_file.write(u' && ')
+                    pos = common[index]
+                    if identifier[pos].isalpha():
+                        self.output_file.write("(%s[%d] | 0x20) == '%s'" %
+                                               (self.array_variable, pos, identifier[pos]))
+                    else:
+                        self.output_file.write("%s[%d] == '%s'" %
+                                               (self.array_variable, pos, identifier[pos]))
+                self.output_file.write(u')) {\n')
+                next_pending = list(set(pending) - set(common))
+                next_pending.sort()
+                self.inspect_array(cases, next_pending)
+                self.output_file.write(u'}\n')
+            else:
+                pos = self.choose_selection_pos(cases, pending)
+                next_pending = filter(lambda p: p != pos, pending)
+
+                alternatives = list(set([c.identifier[pos] for c in cases]))
+                alternatives.sort()
+
+                def literal(alternative):
+                    if isinstance(alternative, int):
+                        return str(alternative)
+                    else:
+                        return "'%s'" % alternative
+
+                def response(alternative):
+                    self.inspect_array([c for c in cases if c.identifier[pos] == alternative],
+                                       next_pending)
+
+                expression = '(%s[%d] | 0x20)' % (self.array_variable, pos)
+                self.write_selection(expression, alternatives, literal, response)
+        else:
+            assert len(cases) == 1
+            for block_line in cases[0].block:
+                self.output_file.write(block_line)
+
+    def write_selection(self, expression, alternatives, literal, response):
+        if len(alternatives) == 1:
+            self.output_file.write(u'if (LIKELY(%s == %s)) {\n' % (expression, literal(alternatives[0])))
+            response(alternatives[0])
+            self.output_file.write(u'}\n')
+        elif len(alternatives) == 2:
+            self.output_file.write(u'if (%s == %s) {\n' % (expression, literal(alternatives[0])))
+            response(alternatives[0])
+            self.output_file.write(u'} else if (LIKELY(%s == %s)) {\n' % (expression, literal(alternatives[1])))
+            response(alternatives[1])
+            self.output_file.write(u'}\n')
+        else:
+            self.output_file.write('switch (%s) {\n' % expression)
+            for alternative in alternatives:
+                self.output_file.write(u'case %s: {\n' % literal(alternative))
+                response(alternative)
+                self.output_file.write(u'} break;\n')
+            self.output_file.write(u'}\n')
+
+
+class LineProcessor(object):
+    def process_line(self, line):
+        pass
+
+
+class MainLineProcessor(LineProcessor):
+    """Processes the contents of an input file."""
+    SWITCH_PATTERN = re.compile(r'\s*SWITCH\s*\((\w*),\s*(\w*)\) \{$')
+
+    def __init__(self, output_file):
+        self.output_file = output_file
+
+    def process_line(self, line):
+        match_switch = MainLineProcessor.SWITCH_PATTERN.match(line)
+        if match_switch:
+            array_variable = match_switch.group(1)
+            length_variable = match_switch.group(2)
+            return SwitchLineProcessor(self, self.output_file, array_variable, length_variable)
+        else:
+            self.output_file.write(line)
+            return self
+
+
+class SwitchLineProcessor(LineProcessor):
+    """Processes the contents of a SWITCH block."""
+    CASE_PATTERN = re.compile(r'\s*CASE\s*\(\"([a-z0-9_\-\(]*)\"\) \{$')
+    CLOSE_BRACE_PATTERN = re.compile(r'\s*\}$')
+    EMPTY_PATTERN = re.compile(r'\s*$')
+
+    def __init__(self, parent, output_file, array_variable, length_variable):
+        self.parent = parent
+        self.output_file = output_file
+        self.array_variable = array_variable
+        self.length_variable = length_variable
+        self.cases = []
+
+    def process_line(self, line):
+        match_case = SwitchLineProcessor.CASE_PATTERN.match(line)
+        match_close_brace = SwitchLineProcessor.CLOSE_BRACE_PATTERN.match(line)
+        match_empty = SwitchLineProcessor.EMPTY_PATTERN.match(line)
+        if match_case:
+            identifier = match_case.group(1)
+            return CaseLineProcessor(self, self.output_file, identifier)
+        elif match_close_brace:
+            Optimizer(self.output_file, self.array_variable, self.length_variable).inspect(self.cases)
+            return self.parent
+        elif match_empty:
+            return self
+        else:
+            raise BadInput('Invalid line within SWITCH: %s' % line)
+
+    def add_case(self, latest_case):
+        if latest_case.identifier in [c.identifier for c in self.cases]:
+            raise BadInput('Repeated case: %s' % latest_case.identifier)
+        self.cases.append(latest_case)
+
+
+class CaseLineProcessor(LineProcessor):
+    """Processes the contents of a CASE block."""
+    CLOSE_BRACE_PATTERN = re.compile(r'\s*\}$')
+    BREAK_PATTERN = re.compile(r'break;')
+
+    def __init__(self, parent, output_file, identifier):
+        self.parent = parent
+        self.output_file = output_file
+        self.identifier = identifier
+        self.block = []
+
+    def process_line(self, line):
+        match_close_brace = CaseLineProcessor.CLOSE_BRACE_PATTERN.match(line)
+        match_break = CaseLineProcessor.BREAK_PATTERN.search(line)
+        if match_close_brace:
+            self.parent.add_case(SwitchCase(self.identifier, self.block))
+            return self.parent
+        elif match_break:
+            raise BadInput('break within CASE not supported: %s' % line)
+        else:
+            self.block.append(line)
+            return self
+
+
+def process_file(input_name, output_name):
+    """Transforms input file into legal C++ source code."""
+    with io.open(input_name) as input_file:
+        with io.open(output_name, 'w') as output_file:
+            processor = MainLineProcessor(output_file)
+            input_lines = input_file.readlines()
+            for line in input_lines:
+                processor = processor.process_line(line)
+
+
+if __name__ == '__main__':
+        process_file(sys.argv[1], sys.argv[2])
diff --git a/core/scripts/make_token_matcher_unittest.py b/core/scripts/make_token_matcher_unittest.py
new file mode 100755
index 0000000..c0c8286
--- /dev/null
+++ b/core/scripts/make_token_matcher_unittest.py
@@ -0,0 +1,243 @@
+#!/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 tempfile
+import unittest
+
+from make_token_matcher import BadInput, CaseLineProcessor, MainLineProcessor, Optimizer, process_file, SwitchCase, SwitchLineProcessor
+
+
+class OptimizerTest(unittest.TestCase):
+    def test_nonalphabetic(self):
+        optimizer = Optimizer(None, None, None)
+        self.assertRaises(
+            BadInput,
+            optimizer.inspect_array,
+            [SwitchCase('-', None), SwitchCase('x', None)],
+            [0])
+
+
+class MainLineProcessorTest(unittest.TestCase):
+    def test_switch(self):
+        processor = MainLineProcessor(None)
+        switchLineProcessor = processor.process_line('SWITCH(array, length) {')
+        self.assertIsInstance(switchLineProcessor, SwitchLineProcessor)
+        self.assertEquals('array', switchLineProcessor.array_variable)
+        self.assertEquals('length', switchLineProcessor.length_variable)
+
+
+class SwitchLineProcessorTest(unittest.TestCase):
+    def test_case(self):
+        processor = SwitchLineProcessor(None, None, None, None)
+        caseLineProcessor = processor.process_line('CASE("identifier") {')
+        self.assertIsInstance(caseLineProcessor, CaseLineProcessor)
+        self.assertEquals('identifier', caseLineProcessor.identifier)
+
+    def test_unexpected(self):
+        processor = SwitchLineProcessor(None, None, None, None)
+        self.assertRaises(
+            BadInput,
+            processor.process_line,
+            'unexpected')
+
+    def test_repeated(self):
+        processor = SwitchLineProcessor(None, None, None, None)
+        processor.process_line('CASE("x") {').process_line('}')
+        caseLineProcessor = processor.process_line('CASE("x") {')
+        self.assertRaises(
+            BadInput,
+            caseLineProcessor.process_line,
+            '}')
+
+
+class CaseLineProcessorTest(unittest.TestCase):
+    def test_break(self):
+        processor = CaseLineProcessor(None, None, None)
+        self.assertRaises(
+            BadInput,
+            processor.process_line,
+            'break;')
+
+
+class ProcessFileTest(unittest.TestCase):
+    SOURCE_SMALL = """
+        SWITCH(p, q) {
+            CASE("a(") {
+                X;
+            }
+            CASE("b(") {
+                Y;
+            }
+        }
+        """
+
+    EXPECTED_SMALL = """
+        if (LIKELY(q == 2)) {
+            if (LIKELY(p[1] == '(')) {
+                if ((p[0] | 0x20) == 'a') {
+                    X;
+                } else if (LIKELY((p[0] | 0x20) == 'b')) {
+                    Y;
+                }
+            }
+        }
+        """
+
+    SOURCE_MEDIUM = """
+        SWITCH (p, q) {
+            CASE ("ab") {
+                X;
+            }
+            CASE ("cd") {
+                Y;
+            }
+            CASE ("ed") {
+                Z;
+            }
+        }
+        """
+
+    EXPECTED_MEDIUM = """
+        if (LIKELY(q == 2)) {
+            if ((p[1] | 0x20) == 'b') {
+                if (LIKELY((p[0] | 0x20) == 'a')) {
+                    X;
+                }
+            } else if (LIKELY((p[1] | 0x20) == 'd')) {
+                if ((p[0] | 0x20) == 'c') {
+                    Y;
+                } else if (LIKELY((p[0] | 0x20) == 'e')) {
+                    Z;
+                }
+            }
+        }
+        """
+
+    SOURCE_LARGE = """
+        prefix;
+        SWITCH(p, q) {
+            CASE("hij") {
+                R;
+            }
+            CASE("efg") {
+                S;
+            }
+            CASE("c-") {
+                T;
+            }
+            CASE("klm") {
+                U;
+            }
+
+            CASE("d-") {
+                V;
+            }
+            CASE("a") {
+                W;
+                X;
+            }
+            CASE("b-") {
+                Y;
+                Z;
+            }
+        }
+        suffix;
+        """
+
+    EXPECTED_LARGE = """
+        prefix;
+        switch (q) {
+        case 1: {
+            if (LIKELY((p[0] | 0x20) == 'a')) {
+                W;
+                X;
+            }
+        } break;
+        case 2: {
+            if (LIKELY(p[1] == '-')) {
+                switch ((p[0] | 0x20)) {
+                case 'b': {
+                    Y;
+                    Z;
+                } break;
+                case 'c': {
+                    T;
+                } break;
+                case 'd': {
+                    V;
+                } break;
+                }
+            }
+        } break;
+        case 3: {
+            switch ((p[0] | 0x20)) {
+            case 'e': {
+                if (LIKELY((p[1] | 0x20) == 'f' && (p[2] | 0x20) == 'g')) {
+                    S;
+                }
+            } break;
+            case 'h': {
+                if (LIKELY((p[1] | 0x20) == 'i' && (p[2] | 0x20) == 'j')) {
+                    R;
+                }
+            } break;
+            case 'k': {
+                if (LIKELY((p[1] | 0x20) == 'l' && (p[2] | 0x20) == 'm')) {
+                    U;
+                }
+            } break;
+            }
+        } break;
+        }
+        suffix;
+        """
+
+    def validate(self, source, expected):
+        with tempfile.NamedTemporaryFile() as input_file:
+            with tempfile.NamedTemporaryFile() as generated_file:
+                input_file.write(source)
+                input_file.flush()
+                process_file(input_file.name, generated_file.name)
+                # Our code generation does not yet implement pretty indentation.
+                actual = generated_file.read().replace('    ', '')
+                expected = expected.replace('    ', '')
+                self.assertEquals(actual, expected)
+
+    def test_small(self):
+        self.validate(ProcessFileTest.SOURCE_SMALL, ProcessFileTest.EXPECTED_SMALL)
+
+    def test_medium(self):
+        self.validate(ProcessFileTest.SOURCE_MEDIUM, ProcessFileTest.EXPECTED_MEDIUM)
+
+    def test_large(self):
+        self.validate(ProcessFileTest.SOURCE_LARGE, ProcessFileTest.EXPECTED_LARGE)
+
+
+if __name__ == "__main__":
+    unittest.main()
diff --git a/core/scripts/name_macros.py b/core/scripts/name_macros.py
index 11d2228..01d3644 100644
--- a/core/scripts/name_macros.py
+++ b/core/scripts/name_macros.py
@@ -81,7 +81,7 @@
     def _sort_entries_by_conditional(self):
         unconditional_names = set()
         for entry in self.in_file.name_dictionaries:
-            conditional = entry['conditional']
+            conditional = entry['Conditional']
             if not conditional:
                 name = self._class_name_for_entry(entry)
                 if name in unconditional_names:
@@ -93,22 +93,22 @@
             name = self._class_name_for_entry(entry)
             if name in unconditional_names:
                 continue
-            conditional = entry['conditional']
+            conditional = entry['Conditional']
             if not conditional in self._entries_by_conditional:
                 self._entries_by_conditional[conditional] = []
             self._entries_by_conditional[conditional].append(entry)
 
     def _class_name_for_entry(self, entry):
-        if entry['implementedAs']:
-            return entry['implementedAs']
+        if entry['ImplementedAs']:
+            return entry['ImplementedAs']
         return os.path.basename(entry['name'])
 
     def _headers_header_include_path(self, entry):
-        if entry['implementedAs']:
+        if entry['ImplementedAs']:
             path = os.path.dirname(entry['name'])
             if len(path):
                 path += '/'
-            path += entry['implementedAs']
+            path += entry['ImplementedAs']
         else:
             path = entry['name']
         return path + '.h'
@@ -124,7 +124,7 @@
                 'path': self._headers_header_include_path(entry),
                 'js_name': os.path.basename(entry['name']),
             }
-            includes[class_name] = self.wrap_with_condition(include, entry['conditional'])
+            includes[class_name] = self.wrap_with_condition(include, entry['Conditional'])
         return includes.values()
 
     def generate_headers_header(self):
diff --git a/core/scripts/rule_bison.py b/core/scripts/rule_bison.py
index 952165a..97a0541 100644
--- a/core/scripts/rule_bison.py
+++ b/core/scripts/rule_bison.py
@@ -1,11 +1,11 @@
 #!/usr/bin/python
 #
 # 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:
-# 
+#
 #     * 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
@@ -15,7 +15,7 @@
 #     * 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
diff --git a/core/storage/Storage.idl b/core/storage/Storage.idl
index 89cd95a..e3b5c70 100644
--- a/core/storage/Storage.idl
+++ b/core/storage/Storage.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface Storage {
diff --git a/core/storage/StorageEvent.idl b/core/storage/StorageEvent.idl
index 8624b06..f7b4e8b 100644
--- a/core/storage/StorageEvent.idl
+++ b/core/storage/StorageEvent.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
@@ -32,13 +32,13 @@
     [InitializedByEventConstructor] readonly attribute DOMString url;
     [InitializedByEventConstructor] readonly attribute Storage storageArea;
 
-    void initStorageEvent([Default=Undefined] optional DOMString typeArg, 
-                          [Default=Undefined] optional boolean canBubbleArg, 
-                          [Default=Undefined] optional boolean cancelableArg, 
-                          [Default=Undefined] optional DOMString keyArg, 
-                          [Default=Undefined, TreatNullAs=NullString] optional DOMString oldValueArg, 
-                          [Default=Undefined, TreatNullAs=NullString] optional DOMString newValueArg, 
-                          [Default=Undefined] optional DOMString urlArg, 
+    void initStorageEvent([Default=Undefined] optional DOMString typeArg,
+                          [Default=Undefined] optional boolean canBubbleArg,
+                          [Default=Undefined] optional boolean cancelableArg,
+                          [Default=Undefined] optional DOMString keyArg,
+                          [Default=Undefined, TreatNullAs=NullString] optional DOMString oldValueArg,
+                          [Default=Undefined, TreatNullAs=NullString] optional DOMString newValueArg,
+                          [Default=Undefined] optional DOMString urlArg,
                           [Default=Undefined] optional Storage storageAreaArg);
 
     // Needed once we support init<blank>EventNS
diff --git a/core/svg/ElementTimeControl.idl b/core/svg/ElementTimeControl.idl
deleted file mode 100644
index eb3047e..0000000
--- a/core/svg/ElementTimeControl.idl
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
- * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-interface ElementTimeControl {
-    void beginElement();
-    void beginElementAt([Default=Undefined] optional float offset);
-    void endElement();
-    void endElementAt([Default=Undefined] optional float offset);
-};
-
diff --git a/core/svg/SVGAElement.idl b/core/svg/SVGAElement.idl
index 0cbbdf8..bcbb517 100644
--- a/core/svg/SVGAElement.idl
+++ b/core/svg/SVGAElement.idl
@@ -20,16 +20,13 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGAElement : SVGStyledElement,
-                        SVGLangSpace,
-                        SVGTransformable {
-    readonly attribute SVGAnimatedString target;
+interface SVGAElement : SVGGraphicsElement {
+    [ImplementedAs=svgTarget] readonly attribute SVGAnimatedString target;
 };
 
 SVGAElement implements SVGExternalResourcesRequired;
-SVGAElement implements SVGTests;
 SVGAElement implements SVGURIReference;
 
diff --git a/core/svg/SVGAltGlyphElement.idl b/core/svg/SVGAltGlyphElement.idl
index b3fe315..999598e 100644
--- a/core/svg/SVGAltGlyphElement.idl
+++ b/core/svg/SVGAltGlyphElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/svg/SVGAnimateColorElement.idl b/core/svg/SVGAnimateColorElement.idl
index 48fb42c..69a58eb 100644
--- a/core/svg/SVGAnimateColorElement.idl
+++ b/core/svg/SVGAnimateColorElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimateColorElement : SVGAnimationElement {
diff --git a/core/svg/SVGAnimateElement.idl b/core/svg/SVGAnimateElement.idl
index eb848c4..9ee19c8 100644
--- a/core/svg/SVGAnimateElement.idl
+++ b/core/svg/SVGAnimateElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimateElement : SVGAnimationElement {
diff --git a/core/svg/SVGAnimateMotionElement.idl b/core/svg/SVGAnimateMotionElement.idl
index 51003c6..f153f19 100644
--- a/core/svg/SVGAnimateMotionElement.idl
+++ b/core/svg/SVGAnimateMotionElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimateMotionElement : SVGAnimationElement {
diff --git a/core/svg/SVGAnimateTransformElement.idl b/core/svg/SVGAnimateTransformElement.idl
index eddecc3..a7364e9 100644
--- a/core/svg/SVGAnimateTransformElement.idl
+++ b/core/svg/SVGAnimateTransformElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimateTransformElement : SVGAnimationElement {
diff --git a/core/svg/SVGAnimatedAngle.idl b/core/svg/SVGAnimatedAngle.idl
index b6ede9f..9a51845 100644
--- a/core/svg/SVGAnimatedAngle.idl
+++ b/core/svg/SVGAnimatedAngle.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimatedAngle {
diff --git a/core/svg/SVGAnimatedBoolean.idl b/core/svg/SVGAnimatedBoolean.idl
index 0c5e90f..fa2ca08 100644
--- a/core/svg/SVGAnimatedBoolean.idl
+++ b/core/svg/SVGAnimatedBoolean.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimatedBoolean {
diff --git a/core/svg/SVGAnimatedEnumeration.idl b/core/svg/SVGAnimatedEnumeration.idl
index e4136f8..cb04e75 100644
--- a/core/svg/SVGAnimatedEnumeration.idl
+++ b/core/svg/SVGAnimatedEnumeration.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimatedEnumeration {
diff --git a/core/svg/SVGAnimatedInteger.idl b/core/svg/SVGAnimatedInteger.idl
index 306846e..ae72080 100644
--- a/core/svg/SVGAnimatedInteger.idl
+++ b/core/svg/SVGAnimatedInteger.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimatedInteger {
diff --git a/core/svg/SVGAnimatedLength.idl b/core/svg/SVGAnimatedLength.idl
index 999d1c7..d300347 100644
--- a/core/svg/SVGAnimatedLength.idl
+++ b/core/svg/SVGAnimatedLength.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimatedLength {
diff --git a/core/svg/SVGAnimatedLengthList.idl b/core/svg/SVGAnimatedLengthList.idl
index 0e687a5..f193b7c 100644
--- a/core/svg/SVGAnimatedLengthList.idl
+++ b/core/svg/SVGAnimatedLengthList.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimatedLengthList {
diff --git a/core/svg/SVGAnimatedNumber.idl b/core/svg/SVGAnimatedNumber.idl
index 73574d1..6e3485c 100644
--- a/core/svg/SVGAnimatedNumber.idl
+++ b/core/svg/SVGAnimatedNumber.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimatedNumber {
diff --git a/core/svg/SVGAnimatedNumberList.idl b/core/svg/SVGAnimatedNumberList.idl
index 2f41c18..43845d3 100644
--- a/core/svg/SVGAnimatedNumberList.idl
+++ b/core/svg/SVGAnimatedNumberList.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimatedNumberList {
diff --git a/core/svg/SVGAnimatedPreserveAspectRatio.idl b/core/svg/SVGAnimatedPreserveAspectRatio.idl
index 4263cf5..b2e6c7f 100644
--- a/core/svg/SVGAnimatedPreserveAspectRatio.idl
+++ b/core/svg/SVGAnimatedPreserveAspectRatio.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimatedPreserveAspectRatio {
diff --git a/core/svg/SVGAnimatedRect.idl b/core/svg/SVGAnimatedRect.idl
index 6f55b0d..6bce556 100644
--- a/core/svg/SVGAnimatedRect.idl
+++ b/core/svg/SVGAnimatedRect.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimatedRect {
diff --git a/core/svg/SVGAnimatedString.idl b/core/svg/SVGAnimatedString.idl
index 1f66bd6..27e27dc 100644
--- a/core/svg/SVGAnimatedString.idl
+++ b/core/svg/SVGAnimatedString.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimatedString {
diff --git a/core/svg/SVGAnimatedTransformList.idl b/core/svg/SVGAnimatedTransformList.idl
index 1608b3c..718a2a6 100644
--- a/core/svg/SVGAnimatedTransformList.idl
+++ b/core/svg/SVGAnimatedTransformList.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGAnimatedTransformList {
diff --git a/core/svg/SVGAnimationElement.idl b/core/svg/SVGAnimationElement.idl
index 55e90f5..9e11278 100644
--- a/core/svg/SVGAnimationElement.idl
+++ b/core/svg/SVGAnimationElement.idl
@@ -1,5 +1,6 @@
 /*
- * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -20,20 +21,21 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    NoInterfaceObject
-] interface SVGAnimationElement : SVGElement,
-                                  ElementTimeControl {
+interface SVGAnimationElement : SVGElement {
     readonly attribute SVGElement targetElement;
 
     float getStartTime();
     float getCurrentTime();
     float getSimpleDuration();
+
+    void beginElement();
+    void beginElementAt([Default=Undefined] optional float offset);
+    void endElement();
+    void endElementAt([Default=Undefined] optional float offset);
 };
 
 SVGAnimationElement implements SVGExternalResourcesRequired;
 SVGAnimationElement implements SVGTests;
-
diff --git a/core/svg/SVGCircleElement.idl b/core/svg/SVGCircleElement.idl
index b60422d..00ef676 100644
--- a/core/svg/SVGCircleElement.idl
+++ b/core/svg/SVGCircleElement.idl
@@ -21,17 +21,14 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGCircleElement : SVGStyledElement,
-                             SVGLangSpace,
-                             SVGTransformable {
+interface SVGCircleElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedLength cx;
     readonly attribute SVGAnimatedLength cy;
     readonly attribute SVGAnimatedLength r;
 };
 
 SVGCircleElement implements SVGExternalResourcesRequired;
-SVGCircleElement implements SVGTests;
 
diff --git a/core/svg/SVGClipPathElement.idl b/core/svg/SVGClipPathElement.idl
index ed27856..0d729d2 100644
--- a/core/svg/SVGClipPathElement.idl
+++ b/core/svg/SVGClipPathElement.idl
@@ -21,15 +21,11 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGClipPathElement : SVGStyledElement,
-                               SVGLangSpace,
-                               SVGTransformable {
+interface SVGClipPathElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedEnumeration clipPathUnits;
 };
 
 SVGClipPathElement implements SVGExternalResourcesRequired;
-SVGClipPathElement implements SVGTests;
-
diff --git a/core/svg/SVGComponentTransferFunctionElement.idl b/core/svg/SVGComponentTransferFunctionElement.idl
index a5b045d..1e42835 100644
--- a/core/svg/SVGComponentTransferFunctionElement.idl
+++ b/core/svg/SVGComponentTransferFunctionElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/svg/SVGCursorElement.idl b/core/svg/SVGCursorElement.idl
index 3d76a2d..d386935 100644
--- a/core/svg/SVGCursorElement.idl
+++ b/core/svg/SVGCursorElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGCursorElement : SVGElement {
diff --git a/core/svg/SVGDefsElement.idl b/core/svg/SVGDefsElement.idl
index c62e757..f4e727a 100644
--- a/core/svg/SVGDefsElement.idl
+++ b/core/svg/SVGDefsElement.idl
@@ -20,14 +20,11 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGDefsElement : SVGStyledElement,
-                           SVGLangSpace,
-                           SVGTransformable {
+interface SVGDefsElement : SVGGraphicsElement {
 };
 
 SVGDefsElement implements SVGExternalResourcesRequired;
-SVGDefsElement implements SVGTests;
 
diff --git a/core/svg/SVGDescElement.idl b/core/svg/SVGDescElement.idl
index 2076880..70a5033 100644
--- a/core/svg/SVGDescElement.idl
+++ b/core/svg/SVGDescElement.idl
@@ -20,10 +20,9 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGDescElement : SVGStyledElement,
-                           SVGLangSpace {
+interface SVGDescElement : SVGStyledElement {
 };
 
diff --git a/core/svg/SVGElement.idl b/core/svg/SVGElement.idl
index 912a6a0..7e45efb 100644
--- a/core/svg/SVGElement.idl
+++ b/core/svg/SVGElement.idl
@@ -27,5 +27,8 @@
     [TreatNullAs=NullString] attribute DOMString xmlbase;
     readonly attribute SVGSVGElement ownerSVGElement;
     readonly attribute SVGElement viewportElement;
+
+    attribute DOMString xmllang;
+    attribute DOMString xmlspace;
 };
 
diff --git a/core/svg/SVGElementInstance.idl b/core/svg/SVGElementInstance.idl
index 083e3ed..3fbf3b7 100644
--- a/core/svg/SVGElementInstance.idl
+++ b/core/svg/SVGElementInstance.idl
@@ -21,12 +21,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    EventTarget
-] interface SVGElementInstance : EventTarget
+interface SVGElementInstance : EventTarget
 {
     readonly attribute SVGElement correspondingElement;
     readonly attribute SVGUseElement correspondingUseElement;
@@ -52,6 +50,8 @@
     [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;
diff --git a/core/svg/SVGElementInstanceList.idl b/core/svg/SVGElementInstanceList.idl
index 6fdb983..91534bb 100644
--- a/core/svg/SVGElementInstanceList.idl
+++ b/core/svg/SVGElementInstanceList.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGElementInstanceList {
diff --git a/core/svg/SVGEllipseElement.idl b/core/svg/SVGEllipseElement.idl
index b2f791e..a9ea183 100644
--- a/core/svg/SVGEllipseElement.idl
+++ b/core/svg/SVGEllipseElement.idl
@@ -20,12 +20,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGEllipseElement : SVGStyledElement,
-                              SVGLangSpace,
-                              SVGTransformable {
+interface SVGEllipseElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedLength cx;
     readonly attribute SVGAnimatedLength cy;
     readonly attribute SVGAnimatedLength rx;
@@ -33,5 +31,4 @@
 };
 
 SVGEllipseElement implements SVGExternalResourcesRequired;
-SVGEllipseElement implements SVGTests;
 
diff --git a/core/svg/SVGExternalResourcesRequired.idl b/core/svg/SVGExternalResourcesRequired.idl
index 50f8471..efc8366 100644
--- a/core/svg/SVGExternalResourcesRequired.idl
+++ b/core/svg/SVGExternalResourcesRequired.idl
@@ -21,12 +21,13 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
-    NoInterfaceObject
-] interface SVGExternalResourcesRequired { 
+    NoInterfaceObject,
+    LegacyImplementedInBaseClass
+] interface SVGExternalResourcesRequired {
     readonly attribute SVGAnimatedBoolean externalResourcesRequired;
 };
 
diff --git a/core/svg/SVGFEBlendElement.idl b/core/svg/SVGFEBlendElement.idl
index 17dd692..66925d0 100644
--- a/core/svg/SVGFEBlendElement.idl
+++ b/core/svg/SVGFEBlendElement.idl
@@ -20,13 +20,12 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
     DoNotCheckConstants
-] interface SVGFEBlendElement : SVGStyledElement,
-                                SVGFilterPrimitiveStandardAttributes {
+] interface SVGFEBlendElement : SVGStyledElement {
     // Blend Mode Types
     const unsigned short SVG_FEBLEND_MODE_UNKNOWN  = 0;
     const unsigned short SVG_FEBLEND_MODE_NORMAL   = 1;
@@ -40,3 +39,4 @@
     readonly attribute SVGAnimatedEnumeration mode;
 };
 
+SVGFEBlendElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFEColorMatrixElement.idl b/core/svg/SVGFEColorMatrixElement.idl
index 90cc35d..93d064e 100644
--- a/core/svg/SVGFEColorMatrixElement.idl
+++ b/core/svg/SVGFEColorMatrixElement.idl
@@ -20,13 +20,12 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
     DoNotCheckConstants
-] interface SVGFEColorMatrixElement : SVGStyledElement,
-                                      SVGFilterPrimitiveStandardAttributes {
+] interface SVGFEColorMatrixElement : SVGStyledElement {
     // Color Matrix Types
     const unsigned short SVG_FECOLORMATRIX_TYPE_UNKNOWN          = 0;
     const unsigned short SVG_FECOLORMATRIX_TYPE_MATRIX           = 1;
@@ -39,3 +38,4 @@
     readonly attribute SVGAnimatedNumberList  values;
 };
 
+SVGFEColorMatrixElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFEComponentTransferElement.idl b/core/svg/SVGFEComponentTransferElement.idl
index b68de27..48f91da 100644
--- a/core/svg/SVGFEComponentTransferElement.idl
+++ b/core/svg/SVGFEComponentTransferElement.idl
@@ -20,11 +20,11 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFEComponentTransferElement : SVGStyledElement,
-                                          SVGFilterPrimitiveStandardAttributes {
+interface SVGFEComponentTransferElement : SVGStyledElement {
     readonly attribute SVGAnimatedString in1;
 };
 
+SVGFEComponentTransferElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFECompositeElement.idl b/core/svg/SVGFECompositeElement.idl
index 1a4aa40..264aaae 100644
--- a/core/svg/SVGFECompositeElement.idl
+++ b/core/svg/SVGFECompositeElement.idl
@@ -20,13 +20,12 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
     DoNotCheckConstants
-] interface SVGFECompositeElement : SVGStyledElement,
-                                    SVGFilterPrimitiveStandardAttributes {
+] interface SVGFECompositeElement : SVGStyledElement {
     // Composite Operators
     const unsigned short SVG_FECOMPOSITE_OPERATOR_UNKNOWN    = 0;
     const unsigned short SVG_FECOMPOSITE_OPERATOR_OVER       = 1;
@@ -38,10 +37,11 @@
 
     readonly attribute SVGAnimatedString      in1;
     readonly attribute SVGAnimatedString      in2;
-    readonly attribute SVGAnimatedEnumeration operator;
+    [ImplementedAs=svgOperator] readonly attribute SVGAnimatedEnumeration operator;
     readonly attribute SVGAnimatedNumber      k1;
     readonly attribute SVGAnimatedNumber      k2;
     readonly attribute SVGAnimatedNumber      k3;
     readonly attribute SVGAnimatedNumber      k4;
 };
 
+SVGFECompositeElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFEConvolveMatrixElement.idl b/core/svg/SVGFEConvolveMatrixElement.idl
index 1ae8935..0cfcb71 100644
--- a/core/svg/SVGFEConvolveMatrixElement.idl
+++ b/core/svg/SVGFEConvolveMatrixElement.idl
@@ -20,13 +20,12 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
     DoNotCheckConstants
-] interface SVGFEConvolveMatrixElement : SVGStyledElement,
-                                         SVGFilterPrimitiveStandardAttributes {
+] interface SVGFEConvolveMatrixElement : SVGStyledElement {
     // Edge Mode Values
     const unsigned short SVG_EDGEMODE_UNKNOWN   = 0;
     const unsigned short SVG_EDGEMODE_DUPLICATE = 1;
@@ -47,3 +46,4 @@
     readonly attribute SVGAnimatedBoolean     preserveAlpha;
 };
 
+SVGFEConvolveMatrixElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFEDiffuseLightingElement.idl b/core/svg/SVGFEDiffuseLightingElement.idl
index 5cf37d8..a1f5012 100644
--- a/core/svg/SVGFEDiffuseLightingElement.idl
+++ b/core/svg/SVGFEDiffuseLightingElement.idl
@@ -20,11 +20,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFEDiffuseLightingElement : SVGStyledElement,
-                                        SVGFilterPrimitiveStandardAttributes {
+interface SVGFEDiffuseLightingElement : SVGStyledElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber surfaceScale;
     readonly attribute SVGAnimatedNumber diffuseConstant;
@@ -32,3 +31,4 @@
     readonly attribute SVGAnimatedNumber kernelUnitLengthY;
 };
 
+SVGFEDiffuseLightingElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFEDisplacementMapElement.idl b/core/svg/SVGFEDisplacementMapElement.idl
index 87570dd..40fc6e7 100644
--- a/core/svg/SVGFEDisplacementMapElement.idl
+++ b/core/svg/SVGFEDisplacementMapElement.idl
@@ -20,13 +20,12 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
     DoNotCheckConstants
-] interface SVGFEDisplacementMapElement : SVGStyledElement,
-                                          SVGFilterPrimitiveStandardAttributes {
+] interface SVGFEDisplacementMapElement : SVGStyledElement {
     // Channel Selectors
     const unsigned short SVG_CHANNEL_UNKNOWN = 0;
     const unsigned short SVG_CHANNEL_R       = 1;
@@ -41,3 +40,4 @@
     readonly attribute SVGAnimatedEnumeration yChannelSelector;
 };
 
+SVGFEDisplacementMapElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFEDistantLightElement.idl b/core/svg/SVGFEDistantLightElement.idl
index dd24f21..85624d9 100644
--- a/core/svg/SVGFEDistantLightElement.idl
+++ b/core/svg/SVGFEDistantLightElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGFEDistantLightElement : SVGElement {
diff --git a/core/svg/SVGFEDropShadowElement.idl b/core/svg/SVGFEDropShadowElement.idl
index 840f96f..a3f3d85 100644
--- a/core/svg/SVGFEDropShadowElement.idl
+++ b/core/svg/SVGFEDropShadowElement.idl
@@ -17,15 +17,15 @@
  * Boston, MA 02110-1301, USA.
  */
 
-interface SVGFEDropShadowElement : SVGStyledElement,
-                                   SVGFilterPrimitiveStandardAttributes {
+interface SVGFEDropShadowElement : SVGStyledElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber dx;
     readonly attribute SVGAnimatedNumber dy;
     readonly attribute SVGAnimatedNumber stdDeviationX;
     readonly attribute SVGAnimatedNumber stdDeviationY;
 
-    void setStdDeviation([Default=Undefined] optional float stdDeviationX, 
+    void setStdDeviation([Default=Undefined] optional float stdDeviationX,
                          [Default=Undefined] optional float stdDeviationY);
 };
 
+SVGFEDropShadowElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFEFloodElement.idl b/core/svg/SVGFEFloodElement.idl
index 86c973c..3504083 100644
--- a/core/svg/SVGFEFloodElement.idl
+++ b/core/svg/SVGFEFloodElement.idl
@@ -20,9 +20,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFEFloodElement : SVGStyledElement,
-                              SVGFilterPrimitiveStandardAttributes {
+interface SVGFEFloodElement : SVGStyledElement {
 };
+
+SVGFEFloodElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFEFuncAElement.idl b/core/svg/SVGFEFuncAElement.idl
index faab472..c777ee4 100644
--- a/core/svg/SVGFEFuncAElement.idl
+++ b/core/svg/SVGFEFuncAElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGFEFuncAElement : SVGComponentTransferFunctionElement {
diff --git a/core/svg/SVGFEFuncBElement.idl b/core/svg/SVGFEFuncBElement.idl
index 69945cb..0546256 100644
--- a/core/svg/SVGFEFuncBElement.idl
+++ b/core/svg/SVGFEFuncBElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGFEFuncBElement : SVGComponentTransferFunctionElement {
diff --git a/core/svg/SVGFEFuncGElement.idl b/core/svg/SVGFEFuncGElement.idl
index 022e8d1..d752849 100644
--- a/core/svg/SVGFEFuncGElement.idl
+++ b/core/svg/SVGFEFuncGElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGFEFuncGElement : SVGComponentTransferFunctionElement {
diff --git a/core/svg/SVGFEFuncRElement.idl b/core/svg/SVGFEFuncRElement.idl
index 2391da1..4ac443a 100644
--- a/core/svg/SVGFEFuncRElement.idl
+++ b/core/svg/SVGFEFuncRElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGFEFuncRElement : SVGComponentTransferFunctionElement {
diff --git a/core/svg/SVGFEGaussianBlurElement.idl b/core/svg/SVGFEGaussianBlurElement.idl
index ea8b6a8..c257049 100644
--- a/core/svg/SVGFEGaussianBlurElement.idl
+++ b/core/svg/SVGFEGaussianBlurElement.idl
@@ -20,16 +20,16 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFEGaussianBlurElement : SVGStyledElement,
-                                     SVGFilterPrimitiveStandardAttributes {
+interface SVGFEGaussianBlurElement : SVGStyledElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber stdDeviationX;
     readonly attribute SVGAnimatedNumber stdDeviationY;
 
-    void setStdDeviation([Default=Undefined] optional float stdDeviationX, 
+    void setStdDeviation([Default=Undefined] optional float stdDeviationX,
                          [Default=Undefined] optional float stdDeviationY);
 };
 
+SVGFEGaussianBlurElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFEImageElement.idl b/core/svg/SVGFEImageElement.idl
index b395d32..9cf092e 100644
--- a/core/svg/SVGFEImageElement.idl
+++ b/core/svg/SVGFEImageElement.idl
@@ -20,15 +20,14 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFEImageElement : SVGStyledElement,
-                              SVGLangSpace,
-                              SVGFilterPrimitiveStandardAttributes {
+interface SVGFEImageElement : SVGStyledElement {
     readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
 };
 
 SVGFEImageElement implements SVGExternalResourcesRequired;
+SVGFEImageElement implements SVGFilterPrimitiveStandardAttributes;
 SVGFEImageElement implements SVGURIReference;
 
diff --git a/core/svg/SVGFEMergeElement.idl b/core/svg/SVGFEMergeElement.idl
index cbb7cdf..91d26f6 100644
--- a/core/svg/SVGFEMergeElement.idl
+++ b/core/svg/SVGFEMergeElement.idl
@@ -20,10 +20,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFEMergeElement : SVGStyledElement,
-                              SVGFilterPrimitiveStandardAttributes {
+interface SVGFEMergeElement : SVGStyledElement {
 };
 
+SVGFEMergeElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFEMergeNodeElement.idl b/core/svg/SVGFEMergeNodeElement.idl
index 8595c51..f01f908 100644
--- a/core/svg/SVGFEMergeNodeElement.idl
+++ b/core/svg/SVGFEMergeNodeElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGFEMergeNodeElement : SVGElement {
diff --git a/core/svg/SVGFEMorphologyElement.idl b/core/svg/SVGFEMorphologyElement.idl
index dcb1efe..168b4ef 100644
--- a/core/svg/SVGFEMorphologyElement.idl
+++ b/core/svg/SVGFEMorphologyElement.idl
@@ -20,24 +20,24 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
     DoNotCheckConstants
-] interface SVGFEMorphologyElement : SVGStyledElement,
-                                     SVGFilterPrimitiveStandardAttributes {
+] interface SVGFEMorphologyElement : SVGStyledElement {
     // Morphology Operators
     const unsigned short SVG_MORPHOLOGY_OPERATOR_UNKNOWN  = 0;
     const unsigned short SVG_MORPHOLOGY_OPERATOR_ERODE    = 1;
     const unsigned short SVG_MORPHOLOGY_OPERATOR_DILATE   = 2;
 
     readonly attribute SVGAnimatedString      in1;
-    readonly attribute SVGAnimatedEnumeration operator;
+    [ImplementedAs=svgOperator] readonly attribute SVGAnimatedEnumeration operator;
     readonly attribute SVGAnimatedNumber      radiusX;
     readonly attribute SVGAnimatedNumber      radiusY;
 
-    void setRadius([Default=Undefined] optional float radiusX, 
+    void setRadius([Default=Undefined] optional float radiusX,
                    [Default=Undefined] optional float radiusY);
 };
 
+SVGFEMorphologyElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFEOffsetElement.idl b/core/svg/SVGFEOffsetElement.idl
index 11d4ebe..d0c6829 100644
--- a/core/svg/SVGFEOffsetElement.idl
+++ b/core/svg/SVGFEOffsetElement.idl
@@ -20,13 +20,13 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFEOffsetElement : SVGStyledElement,
-                               SVGFilterPrimitiveStandardAttributes {
+interface SVGFEOffsetElement : SVGStyledElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber dx;
     readonly attribute SVGAnimatedNumber dy;
 };
 
+SVGFEOffsetElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFEPointLightElement.idl b/core/svg/SVGFEPointLightElement.idl
index 2ba36ed..b85cf1d 100644
--- a/core/svg/SVGFEPointLightElement.idl
+++ b/core/svg/SVGFEPointLightElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGFEPointLightElement : SVGElement {
diff --git a/core/svg/SVGFESpecularLightingElement.idl b/core/svg/SVGFESpecularLightingElement.idl
index c9b72bc..015c239 100644
--- a/core/svg/SVGFESpecularLightingElement.idl
+++ b/core/svg/SVGFESpecularLightingElement.idl
@@ -20,14 +20,14 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFESpecularLightingElement : SVGStyledElement,
-                                         SVGFilterPrimitiveStandardAttributes {
+interface SVGFESpecularLightingElement : SVGStyledElement {
     readonly attribute SVGAnimatedString in1;
     readonly attribute SVGAnimatedNumber surfaceScale;
     readonly attribute SVGAnimatedNumber specularConstant;
     readonly attribute SVGAnimatedNumber specularExponent;
 };
 
+SVGFESpecularLightingElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFESpotLightElement.idl b/core/svg/SVGFESpotLightElement.idl
index af52685..0b4156e 100644
--- a/core/svg/SVGFESpotLightElement.idl
+++ b/core/svg/SVGFESpotLightElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGFESpotLightElement : SVGElement {
diff --git a/core/svg/SVGFETileElement.idl b/core/svg/SVGFETileElement.idl
index 352fb75..a9fa454 100644
--- a/core/svg/SVGFETileElement.idl
+++ b/core/svg/SVGFETileElement.idl
@@ -20,11 +20,11 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFETileElement : SVGStyledElement,
-                             SVGFilterPrimitiveStandardAttributes {
+interface SVGFETileElement : SVGStyledElement {
     readonly attribute SVGAnimatedString in1;
 };
 
+SVGFETileElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFETurbulenceElement.idl b/core/svg/SVGFETurbulenceElement.idl
index b4a326f..d786498 100644
--- a/core/svg/SVGFETurbulenceElement.idl
+++ b/core/svg/SVGFETurbulenceElement.idl
@@ -20,13 +20,12 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
     DoNotCheckConstants
-] interface SVGFETurbulenceElement : SVGStyledElement,
-                                     SVGFilterPrimitiveStandardAttributes {
+] interface SVGFETurbulenceElement : SVGStyledElement {
     // Turbulence Types
     const unsigned short SVG_TURBULENCE_TYPE_UNKNOWN      = 0;
     const unsigned short SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
@@ -45,3 +44,4 @@
     readonly attribute SVGAnimatedEnumeration type;
 };
 
+SVGFETurbulenceElement implements SVGFilterPrimitiveStandardAttributes;
diff --git a/core/svg/SVGFilterElement.idl b/core/svg/SVGFilterElement.idl
index a8250a0..d982992 100644
--- a/core/svg/SVGFilterElement.idl
+++ b/core/svg/SVGFilterElement.idl
@@ -21,11 +21,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFilterElement : SVGStyledElement,
-                             SVGLangSpace {
+interface SVGFilterElement : SVGStyledElement {
     readonly attribute SVGAnimatedEnumeration filterUnits;
     readonly attribute SVGAnimatedEnumeration primitiveUnits;
     readonly attribute SVGAnimatedLength      x;
@@ -35,7 +34,7 @@
     readonly attribute SVGAnimatedInteger     filterResX;
     readonly attribute SVGAnimatedInteger     filterResY;
 
-    void setFilterRes([Default=Undefined] optional unsigned long filterResX, 
+    void setFilterRes([Default=Undefined] optional unsigned long filterResX,
                       [Default=Undefined] optional unsigned long filterResY);
 };
 
diff --git a/core/svg/SVGFilterPrimitiveStandardAttributes.idl b/core/svg/SVGFilterPrimitiveStandardAttributes.idl
index 7c524f3..9f368ee 100644
--- a/core/svg/SVGFilterPrimitiveStandardAttributes.idl
+++ b/core/svg/SVGFilterPrimitiveStandardAttributes.idl
@@ -21,10 +21,13 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFilterPrimitiveStandardAttributes {
+[
+    NoInterfaceObject,
+    LegacyImplementedInBaseClass
+] interface SVGFilterPrimitiveStandardAttributes {
     readonly attribute SVGAnimatedLength x;
     readonly attribute SVGAnimatedLength y;
     readonly attribute SVGAnimatedLength width;
diff --git a/core/svg/SVGFitToViewBox.idl b/core/svg/SVGFitToViewBox.idl
index a6388ab..4e115fe 100644
--- a/core/svg/SVGFitToViewBox.idl
+++ b/core/svg/SVGFitToViewBox.idl
@@ -21,11 +21,12 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
-    NoInterfaceObject
+    NoInterfaceObject,
+    LegacyImplementedInBaseClass
 ] interface SVGFitToViewBox {
     readonly attribute SVGAnimatedRect                viewBox;
     readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
diff --git a/core/svg/SVGFontElement.idl b/core/svg/SVGFontElement.idl
index 7c8b9ff..1d7b8aa 100644
--- a/core/svg/SVGFontElement.idl
+++ b/core/svg/SVGFontElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/svg/SVGFontFaceElement.idl b/core/svg/SVGFontFaceElement.idl
index 1286a4e..3cb7b69 100644
--- a/core/svg/SVGFontFaceElement.idl
+++ b/core/svg/SVGFontFaceElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/svg/SVGFontFaceFormatElement.idl b/core/svg/SVGFontFaceFormatElement.idl
index e468579..f2165be 100644
--- a/core/svg/SVGFontFaceFormatElement.idl
+++ b/core/svg/SVGFontFaceFormatElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/svg/SVGFontFaceNameElement.idl b/core/svg/SVGFontFaceNameElement.idl
index 4f41fce..3729f2a 100644
--- a/core/svg/SVGFontFaceNameElement.idl
+++ b/core/svg/SVGFontFaceNameElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/svg/SVGFontFaceSrcElement.idl b/core/svg/SVGFontFaceSrcElement.idl
index e85f13a..154473f 100644
--- a/core/svg/SVGFontFaceSrcElement.idl
+++ b/core/svg/SVGFontFaceSrcElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/svg/SVGFontFaceUriElement.idl b/core/svg/SVGFontFaceUriElement.idl
index 234c2e5..bcbcb43 100644
--- a/core/svg/SVGFontFaceUriElement.idl
+++ b/core/svg/SVGFontFaceUriElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/svg/SVGForeignObjectElement.idl b/core/svg/SVGForeignObjectElement.idl
index d765b5b..778b9f5 100644
--- a/core/svg/SVGForeignObjectElement.idl
+++ b/core/svg/SVGForeignObjectElement.idl
@@ -20,12 +20,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGForeignObjectElement : SVGStyledElement,
-                                    SVGLangSpace,
-                                    SVGTransformable {
+interface SVGForeignObjectElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedLength x;
     readonly attribute SVGAnimatedLength y;
     readonly attribute SVGAnimatedLength width;
@@ -33,5 +31,4 @@
 };
 
 SVGForeignObjectElement implements SVGExternalResourcesRequired;
-SVGForeignObjectElement implements SVGTests;
 
diff --git a/core/svg/SVGGElement.idl b/core/svg/SVGGElement.idl
index 6ab17a8..060969f 100644
--- a/core/svg/SVGGElement.idl
+++ b/core/svg/SVGGElement.idl
@@ -20,14 +20,11 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGGElement : SVGStyledElement,
-                        SVGLangSpace,
-                        SVGTransformable {
+interface SVGGElement : SVGGraphicsElement {
 };
 
 SVGGElement implements SVGExternalResourcesRequired;
-SVGGElement implements SVGTests;
 
diff --git a/core/svg/SVGGlyphElement.idl b/core/svg/SVGGlyphElement.idl
index e75e2cf..1501130 100644
--- a/core/svg/SVGGlyphElement.idl
+++ b/core/svg/SVGGlyphElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/svg/SVGGradientElement.idl b/core/svg/SVGGradientElement.idl
index e378d7f..cba4d69 100644
--- a/core/svg/SVGGradientElement.idl
+++ b/core/svg/SVGGradientElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/workers/DedicatedWorkerContext.idl b/core/svg/SVGGraphicsElement.idl
similarity index 74%
copy from core/workers/DedicatedWorkerContext.idl
copy to core/svg/SVGGraphicsElement.idl
index 3f4f45c..a0585ae 100644
--- a/core/workers/DedicatedWorkerContext.idl
+++ b/core/svg/SVGGraphicsElement.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009, 2011 Google Inc. All rights reserved.
+ * Copyright (C) 2013 Samsung Electronics. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -28,10 +28,16 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    NoInterfaceObject
-] interface DedicatedWorkerContext : WorkerContext {
-    [Custom, RaisesException] void postMessage(any message, optional Array messagePorts);
-    attribute EventListener onmessage;
+interface SVGGraphicsElement : SVGStyledElement {
+    readonly attribute SVGAnimatedTransformList transform;
+
+    readonly attribute SVGElement nearestViewportElement;
+    readonly attribute SVGElement farthestViewportElement;
+
+    SVGRect   getBBox();
+    SVGMatrix getCTM();
+    SVGMatrix getScreenCTM();
+    [RaisesException] SVGMatrix getTransformToElement([Default=Undefined] optional SVGElement element);
 };
 
+SVGGraphicsElement implements SVGTests;
diff --git a/core/svg/SVGImageElement.idl b/core/svg/SVGImageElement.idl
index dd7afb7..a2bc7b0 100644
--- a/core/svg/SVGImageElement.idl
+++ b/core/svg/SVGImageElement.idl
@@ -20,12 +20,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGImageElement : SVGStyledElement,
-                            SVGLangSpace,
-                            SVGTransformable {
+interface SVGImageElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedLength x;
     readonly attribute SVGAnimatedLength y;
     readonly attribute SVGAnimatedLength width;
@@ -34,6 +32,5 @@
 };
 
 SVGImageElement implements SVGExternalResourcesRequired;
-SVGImageElement implements SVGTests;
 SVGImageElement implements SVGURIReference;
 
diff --git a/core/svg/SVGLangSpace.idl b/core/svg/SVGLangSpace.idl
deleted file mode 100644
index 1bc44be..0000000
--- a/core/svg/SVGLangSpace.idl
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2006 Samuel Weinig <sam.weinig@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. 
- */
-
-[
-    DoNotGenerateToV8
-] interface SVGLangSpace {
-             attribute DOMString xmllang;
-             attribute DOMString xmlspace;
-};
-
diff --git a/core/svg/SVGLength.idl b/core/svg/SVGLength.idl
index e9fd4b6..e073b1a 100644
--- a/core/svg/SVGLength.idl
+++ b/core/svg/SVGLength.idl
@@ -40,7 +40,7 @@
     [StrictTypeChecking] attribute float valueInSpecifiedUnits;
     [TreatNullAs=NullString, StrictTypeChecking, SetterRaisesException] attribute DOMString valueAsString;
 
-    [StrictTypeChecking, RaisesException] void newValueSpecifiedUnits(unsigned short unitType, 
+    [StrictTypeChecking, RaisesException] void newValueSpecifiedUnits(unsigned short unitType,
                                                      float valueInSpecifiedUnits);
 
     [Custom, StrictTypeChecking, RaisesException] void convertToSpecifiedUnits(unsigned short unitType);
diff --git a/core/svg/SVGLengthList.idl b/core/svg/SVGLengthList.idl
index af3ca10..4149ab6 100644
--- a/core/svg/SVGLengthList.idl
+++ b/core/svg/SVGLengthList.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGLengthList {
diff --git a/core/svg/SVGLineElement.idl b/core/svg/SVGLineElement.idl
index 8da39e6..9df8fe6 100644
--- a/core/svg/SVGLineElement.idl
+++ b/core/svg/SVGLineElement.idl
@@ -20,12 +20,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGLineElement : SVGStyledElement,
-                           SVGLangSpace,
-                           SVGTransformable {
+interface SVGLineElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedLength x1;
     readonly attribute SVGAnimatedLength y1;
     readonly attribute SVGAnimatedLength x2;
@@ -33,5 +31,4 @@
 };
 
 SVGLineElement implements SVGExternalResourcesRequired;
-SVGLineElement implements SVGTests;
 
diff --git a/core/svg/SVGLinearGradientElement.idl b/core/svg/SVGLinearGradientElement.idl
index 0d8964a..9ce3ee6 100644
--- a/core/svg/SVGLinearGradientElement.idl
+++ b/core/svg/SVGLinearGradientElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGLinearGradientElement : SVGGradientElement {
diff --git a/core/svg/SVGLocatable.idl b/core/svg/SVGLocatable.idl
deleted file mode 100644
index d5a5363..0000000
--- a/core/svg/SVGLocatable.idl
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2006 Samuel Weinig <sam.weinig@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. 
- */
-
-[
-    DoNotGenerateToV8
-] interface SVGLocatable {
-    readonly attribute SVGElement nearestViewportElement;
-    readonly attribute SVGElement farthestViewportElement;
-
-    SVGRect   getBBox();
-    SVGMatrix getCTM();
-    SVGMatrix getScreenCTM();
-    [RaisesException] SVGMatrix getTransformToElement([Default=Undefined] optional SVGElement element);
-};
-
diff --git a/core/svg/SVGMPathElement.idl b/core/svg/SVGMPathElement.idl
index 3fb56ec..3849582 100644
--- a/core/svg/SVGMPathElement.idl
+++ b/core/svg/SVGMPathElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGMPathElement : SVGElement {
diff --git a/core/svg/SVGMarkerElement.idl b/core/svg/SVGMarkerElement.idl
index 48084c9..5ebd240 100644
--- a/core/svg/SVGMarkerElement.idl
+++ b/core/svg/SVGMarkerElement.idl
@@ -20,11 +20,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGMarkerElement : SVGStyledElement,
-                             SVGLangSpace {
+interface SVGMarkerElement : SVGStyledElement {
     // 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 026ae79..f24eb2e 100644
--- a/core/svg/SVGMaskElement.idl
+++ b/core/svg/SVGMaskElement.idl
@@ -20,11 +20,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGMaskElement : SVGStyledElement,
-                           SVGLangSpace {
+interface SVGMaskElement : SVGStyledElement {
     readonly attribute SVGAnimatedEnumeration maskUnits;
     readonly attribute SVGAnimatedEnumeration maskContentUnits;
 
diff --git a/core/svg/SVGMissingGlyphElement.idl b/core/svg/SVGMissingGlyphElement.idl
index f52c16b..c2b68ad 100644
--- a/core/svg/SVGMissingGlyphElement.idl
+++ b/core/svg/SVGMissingGlyphElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/svg/SVGNumberList.idl b/core/svg/SVGNumberList.idl
index 78157f6..4711cc6 100644
--- a/core/svg/SVGNumberList.idl
+++ b/core/svg/SVGNumberList.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGNumberList {
diff --git a/core/svg/SVGPaint.idl b/core/svg/SVGPaint.idl
index 7735f83..8c1badb 100644
--- a/core/svg/SVGPaint.idl
+++ b/core/svg/SVGPaint.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPaint : SVGColor {
diff --git a/core/svg/SVGPathElement.idl b/core/svg/SVGPathElement.idl
index f54c243..083663b 100644
--- a/core/svg/SVGPathElement.idl
+++ b/core/svg/SVGPathElement.idl
@@ -21,12 +21,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathElement : SVGStyledElement,
-                           SVGLangSpace,
-                           SVGTransformable {
+interface SVGPathElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedNumber pathLength;
 
     float getTotalLength();
@@ -35,51 +33,51 @@
 
     SVGPathSegClosePath createSVGPathSegClosePath();
 
-    SVGPathSegMovetoAbs createSVGPathSegMovetoAbs([Default=Undefined] optional float x, 
+    SVGPathSegMovetoAbs createSVGPathSegMovetoAbs([Default=Undefined] optional float x,
                                                   [Default=Undefined] optional float y);
-    SVGPathSegMovetoRel createSVGPathSegMovetoRel([Default=Undefined] optional float x, 
+    SVGPathSegMovetoRel createSVGPathSegMovetoRel([Default=Undefined] optional float x,
                                                   [Default=Undefined] optional float y);
 
-    SVGPathSegLinetoAbs createSVGPathSegLinetoAbs([Default=Undefined] optional float x, 
+    SVGPathSegLinetoAbs createSVGPathSegLinetoAbs([Default=Undefined] optional float x,
                                                   [Default=Undefined] optional float y);
-    SVGPathSegLinetoRel createSVGPathSegLinetoRel([Default=Undefined] optional float x, 
+    SVGPathSegLinetoRel createSVGPathSegLinetoRel([Default=Undefined] optional float x,
                                                   [Default=Undefined] optional float y);
 
-    SVGPathSegCurvetoCubicAbs createSVGPathSegCurvetoCubicAbs([Default=Undefined] optional float x, 
-                                                              [Default=Undefined] optional float y, 
-                                                              [Default=Undefined] optional float x1, 
-                                                              [Default=Undefined] optional float y1, 
-                                                              [Default=Undefined] optional float x2, 
+    SVGPathSegCurvetoCubicAbs createSVGPathSegCurvetoCubicAbs([Default=Undefined] optional float x,
+                                                              [Default=Undefined] optional float y,
+                                                              [Default=Undefined] optional float x1,
+                                                              [Default=Undefined] optional float y1,
+                                                              [Default=Undefined] optional float x2,
                                                               [Default=Undefined] optional float y2);
-    SVGPathSegCurvetoCubicRel createSVGPathSegCurvetoCubicRel([Default=Undefined] optional float x, 
-                                                              [Default=Undefined] optional float y, 
-                                                              [Default=Undefined] optional float x1, 
-                                                              [Default=Undefined] optional float y1, 
-                                                              [Default=Undefined] optional float x2, 
+    SVGPathSegCurvetoCubicRel createSVGPathSegCurvetoCubicRel([Default=Undefined] optional float x,
+                                                              [Default=Undefined] optional float y,
+                                                              [Default=Undefined] optional float x1,
+                                                              [Default=Undefined] optional float y1,
+                                                              [Default=Undefined] optional float x2,
                                                               [Default=Undefined] optional float y2);
 
-    SVGPathSegCurvetoQuadraticAbs createSVGPathSegCurvetoQuadraticAbs([Default=Undefined] optional float x, 
-                                                                      [Default=Undefined] optional float y, 
-                                                                      [Default=Undefined] optional float x1, 
+    SVGPathSegCurvetoQuadraticAbs createSVGPathSegCurvetoQuadraticAbs([Default=Undefined] optional float x,
+                                                                      [Default=Undefined] optional float y,
+                                                                      [Default=Undefined] optional float x1,
                                                                       [Default=Undefined] optional float y1);
-    SVGPathSegCurvetoQuadraticRel createSVGPathSegCurvetoQuadraticRel([Default=Undefined] optional float x, 
-                                                                      [Default=Undefined] optional float y, 
-                                                                      [Default=Undefined] optional float x1, 
+    SVGPathSegCurvetoQuadraticRel createSVGPathSegCurvetoQuadraticRel([Default=Undefined] optional float x,
+                                                                      [Default=Undefined] optional float y,
+                                                                      [Default=Undefined] optional float x1,
                                                                       [Default=Undefined] optional float y1);
 
-    SVGPathSegArcAbs createSVGPathSegArcAbs([Default=Undefined] optional float x, 
-                                            [Default=Undefined] optional float y, 
-                                            [Default=Undefined] optional float r1, 
-                                            [Default=Undefined] optional float r2, 
-                                            [Default=Undefined] optional float angle, 
-                                            [Default=Undefined] optional boolean largeArcFlag, 
+    SVGPathSegArcAbs createSVGPathSegArcAbs([Default=Undefined] optional float x,
+                                            [Default=Undefined] optional float y,
+                                            [Default=Undefined] optional float r1,
+                                            [Default=Undefined] optional float r2,
+                                            [Default=Undefined] optional float angle,
+                                            [Default=Undefined] optional boolean largeArcFlag,
                                             [Default=Undefined] optional boolean sweepFlag);
-    SVGPathSegArcRel createSVGPathSegArcRel([Default=Undefined] optional float x, 
-                                            [Default=Undefined] optional float y, 
-                                            [Default=Undefined] optional float r1, 
-                                            [Default=Undefined] optional float r2, 
-                                            [Default=Undefined] optional float angle, 
-                                            [Default=Undefined] optional boolean largeArcFlag, 
+    SVGPathSegArcRel createSVGPathSegArcRel([Default=Undefined] optional float x,
+                                            [Default=Undefined] optional float y,
+                                            [Default=Undefined] optional float r1,
+                                            [Default=Undefined] optional float r2,
+                                            [Default=Undefined] optional float angle,
+                                            [Default=Undefined] optional boolean largeArcFlag,
                                             [Default=Undefined] optional boolean sweepFlag);
 
     SVGPathSegLinetoHorizontalAbs createSVGPathSegLinetoHorizontalAbs([Default=Undefined] optional float x);
@@ -88,18 +86,18 @@
     SVGPathSegLinetoVerticalAbs createSVGPathSegLinetoVerticalAbs([Default=Undefined] optional float y);
     SVGPathSegLinetoVerticalRel createSVGPathSegLinetoVerticalRel([Default=Undefined] optional float y);
 
-    SVGPathSegCurvetoCubicSmoothAbs createSVGPathSegCurvetoCubicSmoothAbs([Default=Undefined] optional float x, 
-                                                                          [Default=Undefined] optional float y, 
-                                                                          [Default=Undefined] optional float x2, 
+    SVGPathSegCurvetoCubicSmoothAbs createSVGPathSegCurvetoCubicSmoothAbs([Default=Undefined] optional float x,
+                                                                          [Default=Undefined] optional float y,
+                                                                          [Default=Undefined] optional float x2,
                                                                           [Default=Undefined] optional float y2);
-    SVGPathSegCurvetoCubicSmoothRel createSVGPathSegCurvetoCubicSmoothRel([Default=Undefined] optional float x, 
-                                                                          [Default=Undefined] optional float y, 
-                                                                          [Default=Undefined] optional float x2, 
+    SVGPathSegCurvetoCubicSmoothRel createSVGPathSegCurvetoCubicSmoothRel([Default=Undefined] optional float x,
+                                                                          [Default=Undefined] optional float y,
+                                                                          [Default=Undefined] optional float x2,
                                                                           [Default=Undefined] optional float y2);
 
-    SVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs([Default=Undefined] optional float x, 
+    SVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs([Default=Undefined] optional float x,
                                                                                   [Default=Undefined] optional float y);
-    SVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel([Default=Undefined] optional float x, 
+    SVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel([Default=Undefined] optional float x,
                                                                                   [Default=Undefined] optional float y);
 
     readonly attribute SVGPathSegList pathSegList;
@@ -109,5 +107,3 @@
 };
 
 SVGPathElement implements SVGExternalResourcesRequired;
-SVGPathElement implements SVGTests;
-
diff --git a/core/svg/SVGPathSeg.idl b/core/svg/SVGPathSeg.idl
index f5b1ae5..4ca8a2c 100644
--- a/core/svg/SVGPathSeg.idl
+++ b/core/svg/SVGPathSeg.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/svg/SVGPathSegArcAbs.idl b/core/svg/SVGPathSegArcAbs.idl
index 90bda4c..a50286f 100644
--- a/core/svg/SVGPathSegArcAbs.idl
+++ b/core/svg/SVGPathSegArcAbs.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegArcAbs : SVGPathSeg {
diff --git a/core/svg/SVGPathSegArcRel.idl b/core/svg/SVGPathSegArcRel.idl
index de46704..d682c2c 100644
--- a/core/svg/SVGPathSegArcRel.idl
+++ b/core/svg/SVGPathSegArcRel.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegArcRel : SVGPathSeg {
diff --git a/core/svg/SVGPathSegClosePath.idl b/core/svg/SVGPathSegClosePath.idl
index f3eff1e..e05ca79 100644
--- a/core/svg/SVGPathSegClosePath.idl
+++ b/core/svg/SVGPathSegClosePath.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegClosePath : SVGPathSeg {
diff --git a/core/svg/SVGPathSegCurvetoCubicAbs.idl b/core/svg/SVGPathSegCurvetoCubicAbs.idl
index 4d35573..982cb68 100644
--- a/core/svg/SVGPathSegCurvetoCubicAbs.idl
+++ b/core/svg/SVGPathSegCurvetoCubicAbs.idl
@@ -21,8 +21,8 @@
  * 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. 
- */ 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 
 interface SVGPathSegCurvetoCubicAbs : SVGPathSeg {
     [StrictTypeChecking] attribute float x;
diff --git a/core/svg/SVGPathSegCurvetoCubicRel.idl b/core/svg/SVGPathSegCurvetoCubicRel.idl
index 1dcbe2d..352bb42 100644
--- a/core/svg/SVGPathSegCurvetoCubicRel.idl
+++ b/core/svg/SVGPathSegCurvetoCubicRel.idl
@@ -21,8 +21,8 @@
  * 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. 
- */ 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 
 interface SVGPathSegCurvetoCubicRel : SVGPathSeg {
     [StrictTypeChecking] attribute float x;
diff --git a/core/svg/SVGPathSegCurvetoCubicSmoothAbs.idl b/core/svg/SVGPathSegCurvetoCubicSmoothAbs.idl
index 40a5c68..050926a 100644
--- a/core/svg/SVGPathSegCurvetoCubicSmoothAbs.idl
+++ b/core/svg/SVGPathSegCurvetoCubicSmoothAbs.idl
@@ -21,8 +21,8 @@
  * 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. 
- */ 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 
 interface SVGPathSegCurvetoCubicSmoothAbs : SVGPathSeg {
     [StrictTypeChecking] attribute float x;
diff --git a/core/svg/SVGPathSegCurvetoCubicSmoothRel.idl b/core/svg/SVGPathSegCurvetoCubicSmoothRel.idl
index 58056a4..85605de 100644
--- a/core/svg/SVGPathSegCurvetoCubicSmoothRel.idl
+++ b/core/svg/SVGPathSegCurvetoCubicSmoothRel.idl
@@ -21,8 +21,8 @@
  * 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. 
- */ 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 
 interface SVGPathSegCurvetoCubicSmoothRel : SVGPathSeg {
     [StrictTypeChecking] attribute float x;
diff --git a/core/svg/SVGPathSegCurvetoQuadraticAbs.idl b/core/svg/SVGPathSegCurvetoQuadraticAbs.idl
index 086998a..7549e8e 100644
--- a/core/svg/SVGPathSegCurvetoQuadraticAbs.idl
+++ b/core/svg/SVGPathSegCurvetoQuadraticAbs.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegCurvetoQuadraticAbs : SVGPathSeg {
diff --git a/core/svg/SVGPathSegCurvetoQuadraticRel.idl b/core/svg/SVGPathSegCurvetoQuadraticRel.idl
index 49d2d02..cfd7e87 100644
--- a/core/svg/SVGPathSegCurvetoQuadraticRel.idl
+++ b/core/svg/SVGPathSegCurvetoQuadraticRel.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegCurvetoQuadraticRel : SVGPathSeg {
diff --git a/core/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl b/core/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
index 8f1aea0..b5c5d3d 100644
--- a/core/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
+++ b/core/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegCurvetoQuadraticSmoothAbs : SVGPathSeg {
diff --git a/core/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl b/core/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
index 56d1a48..d464af0 100644
--- a/core/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
+++ b/core/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegCurvetoQuadraticSmoothRel : SVGPathSeg {
diff --git a/core/svg/SVGPathSegLinetoAbs.idl b/core/svg/SVGPathSegLinetoAbs.idl
index d32db20..1f9dd98 100644
--- a/core/svg/SVGPathSegLinetoAbs.idl
+++ b/core/svg/SVGPathSegLinetoAbs.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegLinetoAbs : SVGPathSeg {
diff --git a/core/svg/SVGPathSegLinetoHorizontalAbs.idl b/core/svg/SVGPathSegLinetoHorizontalAbs.idl
index f5f3a81..f36159d 100644
--- a/core/svg/SVGPathSegLinetoHorizontalAbs.idl
+++ b/core/svg/SVGPathSegLinetoHorizontalAbs.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegLinetoHorizontalAbs : SVGPathSeg {
diff --git a/core/svg/SVGPathSegLinetoHorizontalRel.idl b/core/svg/SVGPathSegLinetoHorizontalRel.idl
index 853da9e..fdbb1c8 100644
--- a/core/svg/SVGPathSegLinetoHorizontalRel.idl
+++ b/core/svg/SVGPathSegLinetoHorizontalRel.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegLinetoHorizontalRel : SVGPathSeg {
diff --git a/core/svg/SVGPathSegLinetoRel.idl b/core/svg/SVGPathSegLinetoRel.idl
index 9246e95..4d24898 100644
--- a/core/svg/SVGPathSegLinetoRel.idl
+++ b/core/svg/SVGPathSegLinetoRel.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegLinetoRel : SVGPathSeg {
diff --git a/core/svg/SVGPathSegLinetoVerticalAbs.idl b/core/svg/SVGPathSegLinetoVerticalAbs.idl
index a4a924a..db7dc1c 100644
--- a/core/svg/SVGPathSegLinetoVerticalAbs.idl
+++ b/core/svg/SVGPathSegLinetoVerticalAbs.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegLinetoVerticalAbs : SVGPathSeg {
diff --git a/core/svg/SVGPathSegLinetoVerticalRel.idl b/core/svg/SVGPathSegLinetoVerticalRel.idl
index c4da6dc..24cf7ff 100644
--- a/core/svg/SVGPathSegLinetoVerticalRel.idl
+++ b/core/svg/SVGPathSegLinetoVerticalRel.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegLinetoVerticalRel : SVGPathSeg {
diff --git a/core/svg/SVGPathSegList.idl b/core/svg/SVGPathSegList.idl
index 996e518..33f734e 100644
--- a/core/svg/SVGPathSegList.idl
+++ b/core/svg/SVGPathSegList.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegList {
diff --git a/core/svg/SVGPathSegMovetoAbs.idl b/core/svg/SVGPathSegMovetoAbs.idl
index b01e795..220401e 100644
--- a/core/svg/SVGPathSegMovetoAbs.idl
+++ b/core/svg/SVGPathSegMovetoAbs.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegMovetoAbs : SVGPathSeg {
diff --git a/core/svg/SVGPathSegMovetoRel.idl b/core/svg/SVGPathSegMovetoRel.idl
index 850efd4..5868685 100644
--- a/core/svg/SVGPathSegMovetoRel.idl
+++ b/core/svg/SVGPathSegMovetoRel.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPathSegMovetoRel : SVGPathSeg {
diff --git a/core/svg/SVGPatternElement.idl b/core/svg/SVGPatternElement.idl
index 292c49a..390fcb6 100644
--- a/core/svg/SVGPatternElement.idl
+++ b/core/svg/SVGPatternElement.idl
@@ -20,11 +20,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPatternElement : SVGStyledElement,
-                              SVGLangSpace {
+interface SVGPatternElement : SVGStyledElement {
     readonly attribute SVGAnimatedEnumeration   patternUnits;
     readonly attribute SVGAnimatedEnumeration   patternContentUnits;
     readonly attribute SVGAnimatedTransformList patternTransform;
diff --git a/core/svg/SVGPointList.idl b/core/svg/SVGPointList.idl
index 6cc212e..f65d302 100644
--- a/core/svg/SVGPointList.idl
+++ b/core/svg/SVGPointList.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPointList {
diff --git a/core/svg/SVGPolygonElement.idl b/core/svg/SVGPolygonElement.idl
index ab9199d..735067b 100644
--- a/core/svg/SVGPolygonElement.idl
+++ b/core/svg/SVGPolygonElement.idl
@@ -20,16 +20,12 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPolygonElement : SVGStyledElement,
-                              SVGLangSpace,
-                              SVGTransformable {
+interface SVGPolygonElement : SVGGraphicsElement {
     readonly attribute SVGPointList points;
     readonly attribute SVGPointList animatedPoints;
 };
 
 SVGPolygonElement implements SVGExternalResourcesRequired;
-SVGPolygonElement implements SVGTests;
-
diff --git a/core/svg/SVGPolylineElement.idl b/core/svg/SVGPolylineElement.idl
index f2ea579..a7eefed 100644
--- a/core/svg/SVGPolylineElement.idl
+++ b/core/svg/SVGPolylineElement.idl
@@ -20,16 +20,13 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPolylineElement : SVGStyledElement,
-                               SVGLangSpace,
-                               SVGTransformable {
+interface SVGPolylineElement : SVGGraphicsElement {
     readonly attribute SVGPointList points;
     readonly attribute SVGPointList animatedPoints;
 };
 
 SVGPolylineElement implements SVGExternalResourcesRequired;
-SVGPolylineElement implements SVGTests;
 
diff --git a/core/svg/SVGPreserveAspectRatio.idl b/core/svg/SVGPreserveAspectRatio.idl
index ec2c796..178f1a0 100644
--- a/core/svg/SVGPreserveAspectRatio.idl
+++ b/core/svg/SVGPreserveAspectRatio.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGPreserveAspectRatio {
diff --git a/core/svg/SVGRadialGradientElement.idl b/core/svg/SVGRadialGradientElement.idl
index 1342c75..dfae5fd 100644
--- a/core/svg/SVGRadialGradientElement.idl
+++ b/core/svg/SVGRadialGradientElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGRadialGradientElement : SVGGradientElement {
diff --git a/core/svg/SVGRectElement.idl b/core/svg/SVGRectElement.idl
index a1cc3a3..42fe063 100644
--- a/core/svg/SVGRectElement.idl
+++ b/core/svg/SVGRectElement.idl
@@ -21,12 +21,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGRectElement : SVGStyledElement,
-                           SVGLangSpace,
-                           SVGTransformable {
+interface SVGRectElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedLength x;
     readonly attribute SVGAnimatedLength y;
     readonly attribute SVGAnimatedLength width;
@@ -36,5 +34,4 @@
 };
 
 SVGRectElement implements SVGExternalResourcesRequired;
-SVGRectElement implements SVGTests;
 
diff --git a/core/svg/SVGRenderingIntent.idl b/core/svg/SVGRenderingIntent.idl
index d3f254f..5c08153 100644
--- a/core/svg/SVGRenderingIntent.idl
+++ b/core/svg/SVGRenderingIntent.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/svg/SVGSVGElement.idl b/core/svg/SVGSVGElement.idl
index a6e5471..0edfc9a 100644
--- a/core/svg/SVGSVGElement.idl
+++ b/core/svg/SVGSVGElement.idl
@@ -21,11 +21,8 @@
  */
 
 // TODO: no css::ViewCSS available!
-// TODO: Fix SVGSVGElement inheritance (css::DocumentCSS)! 
 // TODO: no events::DocumentEvent available!
-interface SVGSVGElement : SVGStyledElement,
-                          SVGLangSpace,
-                          SVGTransformable {
+interface SVGSVGElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedLength x;
     readonly attribute SVGAnimatedLength y;
     readonly attribute SVGAnimatedLength width;
@@ -51,13 +48,13 @@
     boolean animationsPaused();
     float getCurrentTime();
     void setCurrentTime([Default=Undefined] optional float seconds);
-    NodeList getIntersectionList([Default=Undefined] optional SVGRect rect, 
+    NodeList getIntersectionList([Default=Undefined] optional SVGRect rect,
                                  [Default=Undefined] optional SVGElement referenceElement);
-    NodeList getEnclosureList([Default=Undefined] optional SVGRect rect, 
+    NodeList getEnclosureList([Default=Undefined] optional SVGRect rect,
                               [Default=Undefined] optional SVGElement referenceElement);
-    boolean checkIntersection([Default=Undefined] optional SVGElement element, 
+    boolean checkIntersection([Default=Undefined] optional SVGElement element,
                               [Default=Undefined] optional SVGRect rect);
-    boolean checkEnclosure([Default=Undefined] optional SVGElement element, 
+    boolean checkEnclosure([Default=Undefined] optional SVGElement element,
                            [Default=Undefined] optional SVGRect rect);
     void deselectAll();
 
@@ -73,7 +70,6 @@
 };
 
 SVGSVGElement implements SVGExternalResourcesRequired;
-SVGSVGElement implements SVGTests;
 SVGSVGElement implements SVGFitToViewBox;
 SVGSVGElement implements SVGZoomAndPan;
 
diff --git a/core/svg/SVGScriptElement.idl b/core/svg/SVGScriptElement.idl
index dea339f..abaa80b 100644
--- a/core/svg/SVGScriptElement.idl
+++ b/core/svg/SVGScriptElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGScriptElement : SVGElement {
diff --git a/core/svg/SVGSetElement.idl b/core/svg/SVGSetElement.idl
index 322ed53..5bf7adb 100644
--- a/core/svg/SVGSetElement.idl
+++ b/core/svg/SVGSetElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGSetElement : SVGAnimationElement {
diff --git a/core/svg/SVGStopElement.idl b/core/svg/SVGStopElement.idl
index 1a2bad1..63f6411 100644
--- a/core/svg/SVGStopElement.idl
+++ b/core/svg/SVGStopElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGStopElement : SVGStyledElement {
diff --git a/core/svg/SVGStringList.idl b/core/svg/SVGStringList.idl
index d3c1923..020b754 100644
--- a/core/svg/SVGStringList.idl
+++ b/core/svg/SVGStringList.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGStringList {
diff --git a/core/svg/SVGStyleElement.idl b/core/svg/SVGStyleElement.idl
index 56beb82..a80a727 100644
--- a/core/svg/SVGStyleElement.idl
+++ b/core/svg/SVGStyleElement.idl
@@ -21,10 +21,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGStyleElement : SVGElement, SVGLangSpace {
+interface SVGStyleElement : SVGElement {
     attribute boolean disabled;
     attribute DOMString type;
     attribute DOMString media;
diff --git a/core/svg/SVGStyledElement.idl b/core/svg/SVGStyledElement.idl
index 12d2e2c..3b7ee61 100644
--- a/core/svg/SVGStyledElement.idl
+++ b/core/svg/SVGStyledElement.idl
@@ -22,7 +22,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/svg/SVGSwitchElement.idl b/core/svg/SVGSwitchElement.idl
index 4a1f6ae..619855a 100644
--- a/core/svg/SVGSwitchElement.idl
+++ b/core/svg/SVGSwitchElement.idl
@@ -20,14 +20,11 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGSwitchElement : SVGStyledElement,
-                             SVGLangSpace,
-                             SVGTransformable {
+interface SVGSwitchElement : SVGGraphicsElement {
 };
 
 SVGSwitchElement implements SVGExternalResourcesRequired;
-SVGSwitchElement implements SVGTests;
 
diff --git a/core/svg/SVGSymbolElement.idl b/core/svg/SVGSymbolElement.idl
index b7e44e2..4a69122 100644
--- a/core/svg/SVGSymbolElement.idl
+++ b/core/svg/SVGSymbolElement.idl
@@ -20,11 +20,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGSymbolElement : SVGStyledElement,
-                             SVGLangSpace {
+interface SVGSymbolElement : SVGStyledElement {
 };
 
 SVGSymbolElement implements SVGExternalResourcesRequired;
diff --git a/core/svg/SVGTRefElement.idl b/core/svg/SVGTRefElement.idl
index 27eef02..4fb97b0 100644
--- a/core/svg/SVGTRefElement.idl
+++ b/core/svg/SVGTRefElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGTRefElement : SVGTextPositioningElement {
diff --git a/core/svg/SVGTSpanElement.idl b/core/svg/SVGTSpanElement.idl
index 92d9754..e8d4232 100644
--- a/core/svg/SVGTSpanElement.idl
+++ b/core/svg/SVGTSpanElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGTSpanElement : SVGTextPositioningElement {
diff --git a/core/svg/SVGTests.idl b/core/svg/SVGTests.idl
index e2eaa13..0842cc1 100644
--- a/core/svg/SVGTests.idl
+++ b/core/svg/SVGTests.idl
@@ -21,11 +21,12 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
-    NoInterfaceObject
+    NoInterfaceObject,
+    LegacyImplementedInBaseClass
 ] interface SVGTests {
     readonly attribute SVGStringList requiredFeatures;
     readonly attribute SVGStringList requiredExtensions;
diff --git a/core/svg/SVGTextContentElement.idl b/core/svg/SVGTextContentElement.idl
index 1fcd5db..4d69375 100644
--- a/core/svg/SVGTextContentElement.idl
+++ b/core/svg/SVGTextContentElement.idl
@@ -20,11 +20,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGTextContentElement : SVGStyledElement,
-                                  SVGLangSpace {
+interface SVGTextContentElement : SVGGraphicsElement {
     // lengthAdjust Types
     const unsigned short LENGTHADJUST_UNKNOWN          = 0;
     const unsigned short LENGTHADJUST_SPACING          = 1;
@@ -35,17 +34,17 @@
 
     long getNumberOfChars();
     float getComputedTextLength();
-    [RaisesException] float getSubStringLength([Default=Undefined,IsIndex] optional unsigned long offset, 
+    [RaisesException] float getSubStringLength([Default=Undefined,IsIndex] optional unsigned long offset,
                              [Default=Undefined,IsIndex] optional unsigned long length);
     [RaisesException] SVGPoint getStartPositionOfChar([Default=Undefined,IsIndex] optional unsigned long offset);
     [RaisesException] SVGPoint getEndPositionOfChar([Default=Undefined,IsIndex] optional unsigned long offset);
     [RaisesException] SVGRect getExtentOfChar([Default=Undefined,IsIndex] optional unsigned long offset);
     [RaisesException] float getRotationOfChar([Default=Undefined,IsIndex] optional unsigned long offset);
     long getCharNumAtPosition([Default=Undefined] optional SVGPoint point);
-    [RaisesException] void selectSubString([Default=Undefined,IsIndex] optional unsigned long offset, 
+    [RaisesException] void selectSubString([Default=Undefined,IsIndex] optional unsigned long offset,
                          [Default=Undefined,IsIndex] optional unsigned long length);
 };
 
+// FIXME: SVGTextContentElement is not supposed to implement SVGExternalResourcesRequired.
 SVGTextContentElement implements SVGExternalResourcesRequired;
-SVGTextContentElement implements SVGTests;
 
diff --git a/core/svg/SVGTextElement.idl b/core/svg/SVGTextElement.idl
index fec5719..618aa35 100644
--- a/core/svg/SVGTextElement.idl
+++ b/core/svg/SVGTextElement.idl
@@ -20,10 +20,9 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGTextElement : SVGTextPositioningElement,
-                           SVGTransformable {
+interface SVGTextElement : SVGTextPositioningElement {
 };
 
diff --git a/core/svg/SVGTextPathElement.idl b/core/svg/SVGTextPathElement.idl
index d21292a..028c069 100644
--- a/core/svg/SVGTextPathElement.idl
+++ b/core/svg/SVGTextPathElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGTextPathElement : SVGTextContentElement {
diff --git a/core/svg/SVGTextPositioningElement.idl b/core/svg/SVGTextPositioningElement.idl
index 2a01864..b55a93c 100644
--- a/core/svg/SVGTextPositioningElement.idl
+++ b/core/svg/SVGTextPositioningElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGTextPositioningElement : SVGTextContentElement {
diff --git a/core/svg/SVGTitleElement.idl b/core/svg/SVGTitleElement.idl
index 48096eb..cd3adf9 100644
--- a/core/svg/SVGTitleElement.idl
+++ b/core/svg/SVGTitleElement.idl
@@ -20,10 +20,9 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGTitleElement : SVGStyledElement,
-                            SVGLangSpace {
+interface SVGTitleElement : SVGStyledElement {
 };
 
diff --git a/core/svg/SVGTransform.idl b/core/svg/SVGTransform.idl
index df5d9b3..99d7fc2 100644
--- a/core/svg/SVGTransform.idl
+++ b/core/svg/SVGTransform.idl
@@ -30,7 +30,7 @@
     const unsigned short SVG_TRANSFORM_SKEWY = 6;
 
     readonly attribute unsigned short type;
-    readonly attribute SVGMatrix matrix;
+    [ImplementedAs=svgMatrix] readonly attribute SVGMatrix matrix;
     readonly attribute float angle;
 
     [StrictTypeChecking] void setMatrix(SVGMatrix matrix);
diff --git a/core/svg/SVGTransformList.idl b/core/svg/SVGTransformList.idl
index f17b479..bb6f659 100644
--- a/core/svg/SVGTransformList.idl
+++ b/core/svg/SVGTransformList.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGTransformList {
diff --git a/core/svg/SVGTransformable.idl b/core/svg/SVGTransformable.idl
deleted file mode 100644
index f7e4525..0000000
--- a/core/svg/SVGTransformable.idl
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2006 Samuel Weinig <sam.weinig@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. 
- */
-
-interface SVGTransformable : SVGLocatable {
-    readonly attribute SVGAnimatedTransformList transform;
-};
-
diff --git a/core/svg/SVGURIReference.idl b/core/svg/SVGURIReference.idl
index 06dcca9..bcc0efa 100644
--- a/core/svg/SVGURIReference.idl
+++ b/core/svg/SVGURIReference.idl
@@ -21,11 +21,12 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
-    NoInterfaceObject
+    NoInterfaceObject,
+    LegacyImplementedInBaseClass
 ] interface SVGURIReference {
     readonly attribute SVGAnimatedString href;
 };
diff --git a/core/svg/SVGUnitTypes.idl b/core/svg/SVGUnitTypes.idl
index d53ee8d..22817c2 100644
--- a/core/svg/SVGUnitTypes.idl
+++ b/core/svg/SVGUnitTypes.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/core/svg/SVGUseElement.idl b/core/svg/SVGUseElement.idl
index 96518fe..752daa9 100644
--- a/core/svg/SVGUseElement.idl
+++ b/core/svg/SVGUseElement.idl
@@ -20,12 +20,10 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGUseElement : SVGStyledElement,
-                          SVGLangSpace,
-                          SVGTransformable {
+interface SVGUseElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedLength   x;
     readonly attribute SVGAnimatedLength   y;
     readonly attribute SVGAnimatedLength   width;
diff --git a/core/svg/SVGViewElement.idl b/core/svg/SVGViewElement.idl
index 296c410..4b7a25d 100644
--- a/core/svg/SVGViewElement.idl
+++ b/core/svg/SVGViewElement.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGViewElement : SVGElement {
diff --git a/core/svg/SVGViewSpec.idl b/core/svg/SVGViewSpec.idl
index 40ac152..ab57e7e 100644
--- a/core/svg/SVGViewSpec.idl
+++ b/core/svg/SVGViewSpec.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGViewSpec {
diff --git a/core/svg/SVGZoomAndPan.idl b/core/svg/SVGZoomAndPan.idl
index edc9f8e..42149bd 100644
--- a/core/svg/SVGZoomAndPan.idl
+++ b/core/svg/SVGZoomAndPan.idl
@@ -21,11 +21,12 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
-    NoInterfaceObject
+    NoInterfaceObject,
+    LegacyImplementedInBaseClass
 ] interface SVGZoomAndPan {
     const unsigned short SVG_ZOOMANDPAN_UNKNOWN = 0;
     const unsigned short SVG_ZOOMANDPAN_DISABLE = 1;
diff --git a/core/svg/SVGZoomEvent.idl b/core/svg/SVGZoomEvent.idl
index 424fc6a..48bb357 100644
--- a/core/svg/SVGZoomEvent.idl
+++ b/core/svg/SVGZoomEvent.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 interface SVGZoomEvent : UIEvent {
diff --git a/modules/crypto/WorkerContextCrypto.idl b/core/testing/InternalProfilers.idl
similarity index 87%
copy from modules/crypto/WorkerContextCrypto.idl
copy to core/testing/InternalProfilers.idl
index 83b298c..7030e9e 100644
--- a/modules/crypto/WorkerContextCrypto.idl
+++ b/core/testing/InternalProfilers.idl
@@ -28,6 +28,11 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface WorkerContext {
-    [EnabledAtRuntime=Crypto] readonly attribute WorkerCrypto crypto;
+[
+    NoInterfaceObject
+] interface InternalProfilers {
+    void startHeapProfiling(DOMString prefix);
+    void stopHeapProfiling();
+    void dumpHeapProfiling(DOMString reason);
+    DOMString getHeapProfile();
 };
diff --git a/core/testing/InternalSettings.idl b/core/testing/InternalSettings.idl
index b9ec8e1..9d98511 100644
--- a/core/testing/InternalSettings.idl
+++ b/core/testing/InternalSettings.idl
@@ -45,13 +45,15 @@
     [RaisesException] void setImagesEnabled(boolean enabled);
     [RaisesException] void setDefaultVideoPosterURL(DOMString poster);
 
+    // FIXME: This is a temporary flag and should be removed once accelerated
+    // overflow scroll is ready (crbug.com/254111).
+    [RaisesException] void setCompositorDrivenAcceleratedScrollingEnabled(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 setExperimentalWebSocketEnabled(boolean enabled);
     void setLangAttributeAwareFormControlUIEnabled(boolean enabled);
     void setLazyLayoutEnabled(boolean enabled);
diff --git a/core/testing/Internals.idl b/core/testing/Internals.idl
index e91ad01..cabcf1f 100644
--- a/core/testing/Internals.idl
+++ b/core/testing/Internals.idl
@@ -85,6 +85,8 @@
     [RaisesException] void setEnableMockPagePopup(boolean enabled);
     readonly attribute PagePopupController pagePopupController;
 
+    [RaisesException] ClientRect unscaledViewportRect();
+
     [RaisesException] ClientRect absoluteCaretBounds();
 
     [RaisesException] ClientRect boundingBox(Element element);
@@ -137,7 +139,8 @@
 
     [RaisesException] unsigned long wheelEventHandlerCount(Document document);
     [RaisesException] unsigned long touchEventHandlerCount(Document document);
-    [RaisesException] ClientRectList touchEventTargetClientRects(Document document);
+    [RaisesException] LayerRectList touchEventTargetLayerRects(Document document);
+    [RaisesException] unsigned long touchEventTargetLayerRectsUpdateCount(Document document);
 
     [RaisesException] NodeList nodesFromRect(Document document, long x, long y,
         unsigned long topPadding, unsigned long rightPadding, unsigned long bottomPadding, unsigned long leftPadding,
@@ -158,6 +161,7 @@
     [RaisesException] boolean isPageBoxVisible(Document document, long pageNumber);
 
     readonly attribute InternalSettings settings;
+    readonly attribute InternalProfilers profilers;
     readonly attribute InternalRuntimeFlags runtimeFlags;
     readonly attribute unsigned long workerThreadCount;
 
@@ -165,6 +169,7 @@
     // The values of these constants must be kept in sync with the values of LayerTreeAsTextBehaviorFlags in GraphicsLayerClient.h.
     const unsigned short LAYER_TREE_INCLUDES_REPAINT_RECTS = 2;
     const unsigned short LAYER_TREE_INCLUDES_PAINTING_PHASES = 4;
+    const unsigned short LAYER_TREE_INCLUDES_ROOT_LAYER = 8;
     [RaisesException] DOMString layerTreeAsText(Document document, optional unsigned short flags);
     [RaisesException] DOMString elementLayerTreeAsText(Element element, optional unsigned short flags);
 
@@ -184,6 +189,7 @@
     [RaisesException] DOMString repaintRectsAsText(Document document);
 
     [RaisesException] void garbageCollectDocumentResources(Document document);
+    void evictAllResources();
 
     void allowRoundingHacks();
 
@@ -195,6 +201,7 @@
     sequence<DOMString> consoleMessageArgumentCounts(Document document);
     Window openDummyInspectorFrontend(DOMString url);
     void closeDummyInspectorFrontend();
+    unsigned long[] setMemoryCacheCapacities(unsigned long minDeadBytes, unsigned long maxDeadBytes, unsigned long totalBytes);
     [RaisesException] void setInspectorResourcesDataSizeLimits(long maximumResourcesContentSize, long maximumSingleResourceContentSize);
 
     DOMString counterValue(Element element);
@@ -233,6 +240,8 @@
 
     [RaisesException] DOMString markerTextForListItem(Element element);
 
+    [RaisesException] DOMString baseURL(Document document);
+
     SerializedScriptValue deserializeBuffer(ArrayBuffer buffer);
     ArrayBuffer serializeObject(SerializedScriptValue obj);
 
@@ -247,4 +256,6 @@
     boolean isSelectPopupVisible(Node node);
 
     [RaisesException] ClientRect selectionBounds();
+
+    boolean loseSharedGraphicsContext3D();
 };
diff --git a/modules/crypto/WorkerContextCrypto.idl b/core/testing/LayerRect.idl
similarity index 91%
copy from modules/crypto/WorkerContextCrypto.idl
copy to core/testing/LayerRect.idl
index 83b298c..50994ab 100644
--- a/modules/crypto/WorkerContextCrypto.idl
+++ b/core/testing/LayerRect.idl
@@ -28,6 +28,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface WorkerContext {
-    [EnabledAtRuntime=Crypto] readonly attribute WorkerCrypto crypto;
+[
+] interface LayerRect {
+    readonly attribute Node layerRootNode;
+    readonly attribute ClientRect layerRelativeRect;
 };
diff --git a/modules/crypto/WorkerContextCrypto.idl b/core/testing/LayerRectList.idl
similarity index 89%
copy from modules/crypto/WorkerContextCrypto.idl
copy to core/testing/LayerRectList.idl
index 83b298c..ee608cf 100644
--- a/modules/crypto/WorkerContextCrypto.idl
+++ b/core/testing/LayerRectList.idl
@@ -28,6 +28,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface WorkerContext {
-    [EnabledAtRuntime=Crypto] readonly attribute WorkerCrypto crypto;
+[
+] interface LayerRectList {
+    readonly attribute unsigned long length;
+    getter LayerRect item([IsIndex,Default=Undefined] optional unsigned long index);
 };
+
diff --git a/core/workers/AbstractWorker.idl b/core/workers/AbstractWorker.idl
index 4211e68..2b6e1f9 100644
--- a/core/workers/AbstractWorker.idl
+++ b/core/workers/AbstractWorker.idl
@@ -30,7 +30,8 @@
  */
 
 [
-    NoInterfaceObject
+    NoInterfaceObject,
+    LegacyImplementedInBaseClass
 ] interface AbstractWorker {
     attribute EventListener onerror;
 };
diff --git a/core/workers/DedicatedWorkerContext.idl b/core/workers/DedicatedWorkerGlobalScope.idl
similarity index 93%
rename from core/workers/DedicatedWorkerContext.idl
rename to core/workers/DedicatedWorkerGlobalScope.idl
index 3f4f45c..7cb9399 100644
--- a/core/workers/DedicatedWorkerContext.idl
+++ b/core/workers/DedicatedWorkerGlobalScope.idl
@@ -29,8 +29,8 @@
  */
 
 [
-    NoInterfaceObject
-] interface DedicatedWorkerContext : WorkerContext {
+    GlobalContext=DedicatedWorkerGlobalScope
+] interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
     [Custom, RaisesException] void postMessage(any message, optional Array messagePorts);
     attribute EventListener onmessage;
 };
diff --git a/core/workers/SharedWorkerContext.idl b/core/workers/SharedWorkerGlobalScope.idl
similarity index 93%
rename from core/workers/SharedWorkerContext.idl
rename to core/workers/SharedWorkerGlobalScope.idl
index 52fc0a2..4c930a4 100644
--- a/core/workers/SharedWorkerContext.idl
+++ b/core/workers/SharedWorkerGlobalScope.idl
@@ -29,8 +29,8 @@
  */
 
 [
-    NoInterfaceObject
-] interface SharedWorkerContext : WorkerContext {
+    GlobalContext=SharedWorkerGlobalScope
+] interface SharedWorkerGlobalScope : WorkerGlobalScope {
     readonly attribute DOMString name;
              attribute EventListener onconnect;
 };
diff --git a/core/workers/Worker.idl b/core/workers/Worker.idl
index ab7f280..34aa4be 100644
--- a/core/workers/Worker.idl
+++ b/core/workers/Worker.idl
@@ -21,7 +21,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
 
diff --git a/core/workers/WorkerContext.idl b/core/workers/WorkerGlobalScope.idl
similarity index 67%
rename from core/workers/WorkerContext.idl
rename to core/workers/WorkerGlobalScope.idl
index 9c4ff2b..e395d34 100644
--- a/core/workers/WorkerContext.idl
+++ b/core/workers/WorkerGlobalScope.idl
@@ -20,39 +20,29 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
 
 [
-    NoInterfaceObject,
-    EventTarget,
+    GlobalContext=WorkerGlobalScope,
     CustomToV8,
     DoNotGenerateWrap
-] interface WorkerContext {
+] interface WorkerGlobalScope : EventTarget {
 
     // WorkerGlobalScope
-             [Replaceable] readonly attribute  WorkerContext self;
-             [Replaceable] readonly attribute WorkerLocation location;
+    [Replaceable] readonly attribute WorkerGlobalScope self;
+    [Replaceable] readonly attribute WorkerLocation location;
     void close();
-             attribute EventListener onerror;
+    attribute EventListener onerror;
 
     // WorkerUtils
     [Custom] void importScripts(/*[Variadic] in DOMString urls */);
-             [Replaceable] readonly attribute WorkerNavigator navigator;
-
-    // EventTarget interface
-    void addEventListener(DOMString type, 
-                          EventListener listener, 
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type, 
-                             EventListener listener, 
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
+    [Replaceable] readonly attribute WorkerNavigator navigator;
 
     // Additional constructors
     attribute URLConstructor webkitURL; // FIXME: deprecate this.
 };
 
-WorkerContext implements WindowTimers;
-
+WorkerGlobalScope implements WindowBase64;
+WorkerGlobalScope implements WindowTimers;
diff --git a/core/workers/WorkerLocation.idl b/core/workers/WorkerLocation.idl
index 55eabda..0d8399b 100644
--- a/core/workers/WorkerLocation.idl
+++ b/core/workers/WorkerLocation.idl
@@ -6,13 +6,13 @@
  * are met:
  *
  * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer. 
+ *     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. 
+ *     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. 
+ *     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
@@ -27,7 +27,7 @@
  */
 
 [
-    GlobalContext=WorkerOnly
+    GlobalContext=WorkerGlobalScope
 ] interface WorkerLocation {
     readonly attribute DOMString href;
     readonly attribute DOMString protocol;
diff --git a/core/xml/DOMParser.idl b/core/xml/DOMParser.idl
index ca9ee11..5cbe49e 100644
--- a/core/xml/DOMParser.idl
+++ b/core/xml/DOMParser.idl
@@ -20,6 +20,6 @@
 [
     Constructor
 ] interface DOMParser {
-    Document parseFromString([Default=Undefined] optional DOMString str, 
+    Document parseFromString([Default=Undefined] optional DOMString str,
                              [Default=Undefined] optional DOMString contentType);
 };
diff --git a/core/xml/DocumentXPathEvaluator.idl b/core/xml/DocumentXPathEvaluator.idl
new file mode 100644
index 0000000..ebe0ef4
--- /dev/null
+++ b/core/xml/DocumentXPathEvaluator.idl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2013 Google 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.
+ */
+partial interface Document {
+    // DOM Level 3 XPath (XPathEvaluator interface)
+    [RaisesException] XPathExpression createExpression([Default=Undefined] optional DOMString expression,
+                                                       [Default=Undefined] optional XPathNSResolver resolver);
+    XPathNSResolver    createNSResolver(Node nodeResolver);
+    [Custom, RaisesException] XPathResult evaluate([Default=Undefined] optional DOMString expression,
+                                                   [Default=Undefined] optional Node contextNode,
+                                                   [Default=Undefined] optional XPathNSResolver resolver,
+                                                   [Default=Undefined] optional unsigned short type,
+                                                   [Default=Undefined] optional XPathResult inResult);
+};
diff --git a/core/xml/XMLHttpRequest.idl b/core/xml/XMLHttpRequest.idl
index 8811709..bad83ca 100644
--- a/core/xml/XMLHttpRequest.idl
+++ b/core/xml/XMLHttpRequest.idl
@@ -37,13 +37,12 @@
 };
 
 [
-    GlobalContext=WindowAndWorker,
+    GlobalContext=Window&WorkerGlobalScope,
     ActiveDOMObject,
     Constructor,
     ConstructorCallWith=ScriptExecutionContext,
-    CustomConstructor(optional XMLHttpRequestOptions options),
-    EventTarget
-] interface XMLHttpRequest {
+    CustomConstructor(optional XMLHttpRequestOptions options)
+] interface XMLHttpRequest : EventTarget {
     // From XMLHttpRequestEventTarget
     // event handler attributes
     attribute EventListener onabort;
@@ -93,13 +92,4 @@
 
     // Extension
     void overrideMimeType(DOMString override);
-
-    // EventTarget interface
-    void addEventListener(DOMString type, 
-                          EventListener listener, 
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type, 
-                             EventListener listener, 
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
diff --git a/core/xml/XMLHttpRequestUpload.idl b/core/xml/XMLHttpRequestUpload.idl
index 2262201..d2170ed 100644
--- a/core/xml/XMLHttpRequestUpload.idl
+++ b/core/xml/XMLHttpRequestUpload.idl
@@ -26,9 +26,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    EventTarget
-] interface XMLHttpRequestUpload {
+interface XMLHttpRequestUpload : EventTarget {
     // From XMLHttpRequestEventTarget
     // event handler attributes
     attribute EventListener onabort;
@@ -37,14 +35,5 @@
     attribute EventListener onloadend;
     attribute EventListener onloadstart;
     attribute EventListener onprogress;
-
-    // EventTarget interface
-    void addEventListener(DOMString type, 
-                          EventListener listener, 
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type, 
-                             EventListener listener, 
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
 
diff --git a/core/xml/XPathEvaluator.idl b/core/xml/XPathEvaluator.idl
index 59b45fc..30e899b 100644
--- a/core/xml/XPathEvaluator.idl
+++ b/core/xml/XPathEvaluator.idl
@@ -26,7 +26,7 @@
     XPathNSResolver createNSResolver([Default=Undefined] optional Node nodeResolver);
 
     [RaisesException] XPathResult evaluate([Default=Undefined] optional DOMString expression,
-                         [Default=Undefined] optional Node contextNode, 
+                         [Default=Undefined] optional Node contextNode,
                          [Default=Undefined] optional XPathNSResolver resolver,
                          [Default=Undefined] optional unsigned short type,
                          [Default=Undefined] optional XPathResult inResult);
diff --git a/core/xml/XPathExpression.idl b/core/xml/XPathExpression.idl
index cf7c6cf..7b881ea 100644
--- a/core/xml/XPathExpression.idl
+++ b/core/xml/XPathExpression.idl
@@ -18,8 +18,8 @@
  * Boston, MA 02110-1301, USA.
  */
 interface XPathExpression {
-     [RaisesException] XPathResult evaluate([Default=Undefined] optional Node contextNode, 
-                                        [Default=Undefined] optional unsigned short type, 
+     [RaisesException] XPathResult evaluate([Default=Undefined] optional Node contextNode,
+                                        [Default=Undefined] optional unsigned short type,
                                         [Default=Undefined] optional XPathResult inResult);
 };
 
diff --git a/core/xml/XPathResult.idl b/core/xml/XPathResult.idl
index 99f62af..19cfb4c 100644
--- a/core/xml/XPathResult.idl
+++ b/core/xml/XPathResult.idl
@@ -32,7 +32,7 @@
 
     readonly attribute unsigned short  resultType;
     [GetterRaisesException] readonly attribute double          numberValue;
-        
+
     [GetterRaisesException] readonly attribute DOMString       stringValue;
 
     [GetterRaisesException] readonly attribute boolean         booleanValue;
@@ -41,7 +41,7 @@
 
     readonly attribute boolean         invalidIteratorState;
     [GetterRaisesException] readonly attribute unsigned long   snapshotLength;
-        
+
     [RaisesException] Node iterateNext();
     [RaisesException] Node snapshotItem([Default=Undefined] optional unsigned long index);
 };
diff --git a/modules/README b/modules/README
index b922618..57d4efd 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: 1316
+Current revision: 1329
diff --git a/modules/crypto/WorkerContextCrypto.idl b/modules/crypto/AesCbcParams.idl
similarity index 93%
copy from modules/crypto/WorkerContextCrypto.idl
copy to modules/crypto/AesCbcParams.idl
index 83b298c..b068ec9 100644
--- a/modules/crypto/WorkerContextCrypto.idl
+++ b/modules/crypto/AesCbcParams.idl
@@ -28,6 +28,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface WorkerContext {
-    [EnabledAtRuntime=Crypto] readonly attribute WorkerCrypto crypto;
+[
+    NoInterfaceObject,
+] interface AesCbcParams : Algorithm {
+    readonly attribute Uint8Array iv;
 };
diff --git a/modules/crypto/WorkerContextCrypto.idl b/modules/crypto/AesKeyGenParams.idl
similarity index 92%
copy from modules/crypto/WorkerContextCrypto.idl
copy to modules/crypto/AesKeyGenParams.idl
index 83b298c..2158208 100644
--- a/modules/crypto/WorkerContextCrypto.idl
+++ b/modules/crypto/AesKeyGenParams.idl
@@ -28,6 +28,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface WorkerContext {
-    [EnabledAtRuntime=Crypto] readonly attribute WorkerCrypto crypto;
+[
+    NoInterfaceObject,
+] interface AesKeyGenParams : Algorithm {
+    readonly attribute unsigned short length;
 };
diff --git a/modules/crypto/WorkerContextCrypto.idl b/modules/crypto/Algorithm.idl
similarity index 93%
copy from modules/crypto/WorkerContextCrypto.idl
copy to modules/crypto/Algorithm.idl
index 83b298c..9af27a1 100644
--- a/modules/crypto/WorkerContextCrypto.idl
+++ b/modules/crypto/Algorithm.idl
@@ -28,6 +28,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface WorkerContext {
-    [EnabledAtRuntime=Crypto] readonly attribute WorkerCrypto crypto;
+[
+    NoInterfaceObject,
+    CustomToV8
+] interface Algorithm {
+    readonly attribute DOMString name;
 };
diff --git a/modules/crypto/Crypto.idl b/modules/crypto/Crypto.idl
index 0682853..7a24113 100644
--- a/modules/crypto/Crypto.idl
+++ b/modules/crypto/Crypto.idl
@@ -6,13 +6,13 @@
  * are met:
  *
  * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer. 
+ *     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 Googl, Inc. ("Google") nor the names of
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Google, Inc. ("Google") nor the names of
  *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission. 
+ *     from this software without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY GOOGLE AND ITS CONTRIBUTORS "AS IS" AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
diff --git a/modules/crypto/WorkerContextCrypto.idl b/modules/crypto/CryptoOperation.idl
similarity index 86%
copy from modules/crypto/WorkerContextCrypto.idl
copy to modules/crypto/CryptoOperation.idl
index 83b298c..3bbb4c7 100644
--- a/modules/crypto/WorkerContextCrypto.idl
+++ b/modules/crypto/CryptoOperation.idl
@@ -28,6 +28,14 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface WorkerContext {
-    [EnabledAtRuntime=Crypto] readonly attribute WorkerCrypto crypto;
+[
+    NoInterfaceObject,
+] interface CryptoOperation {
+    readonly attribute Algorithm algorithm;
+
+    CryptoOperation process(ArrayBuffer data);
+    CryptoOperation process(ArrayBufferView data);
+
+    any finish();
+    any abort();
 };
diff --git a/modules/crypto/WorkerContextCrypto.idl b/modules/crypto/HmacParams.idl
similarity index 93%
copy from modules/crypto/WorkerContextCrypto.idl
copy to modules/crypto/HmacParams.idl
index 83b298c..2dae1c8 100644
--- a/modules/crypto/WorkerContextCrypto.idl
+++ b/modules/crypto/HmacParams.idl
@@ -28,6 +28,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface WorkerContext {
-    [EnabledAtRuntime=Crypto] readonly attribute WorkerCrypto crypto;
+[
+    NoInterfaceObject,
+] interface HmacParams : Algorithm {
+    readonly attribute Algorithm hash;
 };
diff --git a/modules/crypto/WorkerContextCrypto.idl b/modules/crypto/Key.idl
similarity index 87%
copy from modules/crypto/WorkerContextCrypto.idl
copy to modules/crypto/Key.idl
index 83b298c..6124a2f 100644
--- a/modules/crypto/WorkerContextCrypto.idl
+++ b/modules/crypto/Key.idl
@@ -28,6 +28,11 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface WorkerContext {
-    [EnabledAtRuntime=Crypto] readonly attribute WorkerCrypto crypto;
+[
+    NoInterfaceObject,
+] interface Key {
+    readonly attribute DOMString type;
+    readonly attribute boolean extractable;
+    readonly attribute Algorithm algorithm;
+    readonly attribute DOMString[] usages;
 };
diff --git a/modules/crypto/SubtleCrypto.idl b/modules/crypto/SubtleCrypto.idl
index 0c2a8e4..d8f93f4 100644
--- a/modules/crypto/SubtleCrypto.idl
+++ b/modules/crypto/SubtleCrypto.idl
@@ -2,33 +2,41 @@
  * 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:
+ * 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 Google, Inc. ("Google") nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission. 
+ *     * 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 GOOGLE 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.
+ * 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 SubtleCrypto {
-    // TODO(eroman): Work in progress: http://crbug.com/245025.
+    [RaisesException] CryptoOperation encrypt(Dictionary algorithm);
+    [RaisesException] CryptoOperation decrypt(Dictionary algorithm);
+    [RaisesException] CryptoOperation sign(Dictionary algorithm);
+    [RaisesException, ImplementedAs=verifySignature] CryptoOperation verify(Dictionary algorithm);
+    [RaisesException] CryptoOperation digest(Dictionary algorithm);
+
+    [RaisesException] any importKey(DOMString format, ArrayBufferView keyData, Dictionary algorithm, boolean extractable, DOMString[] keyUsages);
 };
 
diff --git a/modules/crypto/WindowCrypto.idl b/modules/crypto/WindowCrypto.idl
index 078b6ae..46ef6c4 100644
--- a/modules/crypto/WindowCrypto.idl
+++ b/modules/crypto/WindowCrypto.idl
@@ -2,23 +2,28 @@
  * 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:
- * 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.
+ * modification, are permitted provided that the following conditions are
+ * met:
  *
- * 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
+ *     * 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.
  */
diff --git a/modules/crypto/WorkerContextCrypto.idl b/modules/crypto/WorkerGlobalScopeCrypto.idl
similarity index 97%
rename from modules/crypto/WorkerContextCrypto.idl
rename to modules/crypto/WorkerGlobalScopeCrypto.idl
index 83b298c..12eea8c 100644
--- a/modules/crypto/WorkerContextCrypto.idl
+++ b/modules/crypto/WorkerGlobalScopeCrypto.idl
@@ -28,6 +28,6 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface WorkerContext {
+partial interface WorkerGlobalScope {
     [EnabledAtRuntime=Crypto] readonly attribute WorkerCrypto crypto;
 };
diff --git a/modules/device_orientation/DeviceMotionEvent.idl b/modules/device_orientation/DeviceMotionEvent.idl
index d291769..bfb130d 100644
--- a/modules/device_orientation/DeviceMotionEvent.idl
+++ b/modules/device_orientation/DeviceMotionEvent.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
@@ -30,11 +30,11 @@
     readonly attribute DeviceAcceleration accelerationIncludingGravity;
     readonly attribute DeviceRotationRate rotationRate;
     readonly attribute double? interval;
-    [Custom] void initDeviceMotionEvent([Default=Undefined] optional DOMString type, 
-                                        [Default=Undefined] optional boolean bubbles, 
-                                        [Default=Undefined] optional boolean cancelable, 
-                                        [Default=Undefined] optional Acceleration acceleration, 
-                                        [Default=Undefined] optional Acceleration accelerationIncludingGravity, 
-                                        [Default=Undefined] optional RotationRate rotationRate, 
+    [Custom] void initDeviceMotionEvent([Default=Undefined] optional DOMString type,
+                                        [Default=Undefined] optional boolean bubbles,
+                                        [Default=Undefined] optional boolean cancelable,
+                                        [Default=Undefined] optional Acceleration acceleration,
+                                        [Default=Undefined] optional Acceleration accelerationIncludingGravity,
+                                        [Default=Undefined] optional RotationRate rotationRate,
                                         [Default=Undefined] optional double interval);
 };
diff --git a/core/dom/DeviceOrientationEvent.idl b/modules/device_orientation/DeviceOrientationEvent.idl
similarity index 93%
rename from core/dom/DeviceOrientationEvent.idl
rename to modules/device_orientation/DeviceOrientationEvent.idl
index 286f2bb..00e9d04 100644
--- a/core/dom/DeviceOrientationEvent.idl
+++ b/modules/device_orientation/DeviceOrientationEvent.idl
@@ -28,11 +28,11 @@
     readonly attribute double? beta;
     readonly attribute double? gamma;
     readonly attribute boolean? absolute;
-    [Custom] void initDeviceOrientationEvent([Default=Undefined] optional DOMString type, 
-                                             [Default=Undefined] optional boolean bubbles, 
-                                             [Default=Undefined] optional boolean cancelable, 
-                                             [Default=Undefined] optional double alpha, 
-                                             [Default=Undefined] optional double beta, 
+    [Custom] void initDeviceOrientationEvent([Default=Undefined] optional DOMString type,
+                                             [Default=Undefined] optional boolean bubbles,
+                                             [Default=Undefined] optional boolean cancelable,
+                                             [Default=Undefined] optional double alpha,
+                                             [Default=Undefined] optional double beta,
                                              [Default=Undefined] optional double gamma,
                                              [Default=Undefined] optional boolean absolute);
 };
diff --git a/modules/encryptedmedia/MediaKeyMessageEvent.idl b/modules/encryptedmedia/MediaKeyMessageEvent.idl
index 513b910..4b12d9b 100644
--- a/modules/encryptedmedia/MediaKeyMessageEvent.idl
+++ b/modules/encryptedmedia/MediaKeyMessageEvent.idl
@@ -20,13 +20,13 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
     Conditional=ENCRYPTED_MEDIA_V2,
     EnabledAtRuntime=encryptedMedia,
-    ConstructorTemplate=Event 
+    ConstructorTemplate=Event
 ] interface MediaKeyMessageEvent : Event {
     readonly attribute Uint8Array message;
     [InitializedByEventConstructor] readonly attribute DOMString destinationURL;
diff --git a/modules/encryptedmedia/MediaKeyNeededEvent.idl b/modules/encryptedmedia/MediaKeyNeededEvent.idl
index 0c1b42b..82f72f8 100644
--- a/modules/encryptedmedia/MediaKeyNeededEvent.idl
+++ b/modules/encryptedmedia/MediaKeyNeededEvent.idl
@@ -20,13 +20,13 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
     Conditional=ENCRYPTED_MEDIA_V2,
     EnabledAtRuntime=encryptedMedia,
-    ConstructorTemplate=Event 
+    ConstructorTemplate=Event
 ] interface MediaKeyNeededEvent : Event {
     readonly attribute Uint8Array initData;
 };
diff --git a/modules/encryptedmedia/MediaKeySession.idl b/modules/encryptedmedia/MediaKeySession.idl
index 57b809e..a353455 100644
--- a/modules/encryptedmedia/MediaKeySession.idl
+++ b/modules/encryptedmedia/MediaKeySession.idl
@@ -20,14 +20,13 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      */
 
 [
     Conditional=ENCRYPTED_MEDIA_V2,
-    EnabledAtRuntime=encryptedMedia,
-    EventTarget
-] interface MediaKeySession {
+    EnabledAtRuntime=encryptedMedia
+] interface MediaKeySession : EventTarget {
     // error state
     readonly attribute MediaKeyError error;
 
@@ -38,18 +37,9 @@
     // session operations
     [RaisesException] void update(Uint8Array key);
     void close();
-    
+
     // EventListeners
     [EnabledAtRuntime=encryptedMedia] attribute EventListener onwebkitkeyadded;
     [EnabledAtRuntime=encryptedMedia] attribute EventListener onwebkitkeyerror;
     [EnabledAtRuntime=encryptedMedia] attribute EventListener onwebkitkeymessage;
-
-    // EventTarget interface
-    void addEventListener(DOMString type, 
-                          EventListener listener, 
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type, 
-                             EventListener listener, 
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
diff --git a/modules/encryptedmedia/MediaKeys.idl b/modules/encryptedmedia/MediaKeys.idl
index e3f0d2c..63cfe05 100644
--- a/modules/encryptedmedia/MediaKeys.idl
+++ b/modules/encryptedmedia/MediaKeys.idl
@@ -20,9 +20,9 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
- 
+
 [
     Conditional=ENCRYPTED_MEDIA_V2,
     EnabledAtRuntime=encryptedMedia,
diff --git a/modules/filesystem/FileWriter.idl b/modules/filesystem/FileWriter.idl
index ebf71e8..9216204 100644
--- a/modules/filesystem/FileWriter.idl
+++ b/modules/filesystem/FileWriter.idl
@@ -31,9 +31,8 @@
 
 [
     NoInterfaceObject,
-    ActiveDOMObject,
-    EventTarget
-] interface FileWriter {
+    ActiveDOMObject
+] interface FileWriter : EventTarget {
     // ready states
     const unsigned short INIT = 0;
     const unsigned short WRITING = 1;
@@ -57,13 +56,4 @@
              attribute EventListener onabort;
              attribute EventListener onerror;
              attribute EventListener onwriteend;
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
diff --git a/modules/filesystem/WorkerContextFileSystem.idl b/modules/filesystem/WorkerGlobalScopeFileSystem.idl
similarity index 94%
rename from modules/filesystem/WorkerContextFileSystem.idl
rename to modules/filesystem/WorkerGlobalScopeFileSystem.idl
index 744681c..f4a25bc 100644
--- a/modules/filesystem/WorkerContextFileSystem.idl
+++ b/modules/filesystem/WorkerGlobalScopeFileSystem.idl
@@ -20,11 +20,11 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
 
-partial interface WorkerContext {
+partial interface WorkerGlobalScope {
     const unsigned short TEMPORARY = 0;
     const unsigned short PERSISTENT = 1;
 
@@ -34,6 +34,5 @@
     [EnabledAtRuntime=FileSystem, RaisesException] EntrySync webkitResolveLocalFileSystemSyncURL(DOMString url);
 
     [EnabledAtRuntime=FileSystem] attribute FileErrorConstructor FileError;
-    [EnabledAtRuntime=FileSystem] attribute FileExceptionConstructor FileException;
 };
 
diff --git a/modules/geolocation/Coordinates.idl b/modules/geolocation/Coordinates.idl
index b5a07d7..ed2b8bf 100644
--- a/modules/geolocation/Coordinates.idl
+++ b/modules/geolocation/Coordinates.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/modules/geolocation/Geolocation.idl b/modules/geolocation/Geolocation.idl
index 03f478a..9c2ead1 100644
--- a/modules/geolocation/Geolocation.idl
+++ b/modules/geolocation/Geolocation.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 // http://www.w3.org/TR/geolocation-API/#geolocation_interface
diff --git a/modules/geolocation/Geoposition.idl b/modules/geolocation/Geoposition.idl
index 34ef94e..1b5e347 100644
--- a/modules/geolocation/Geoposition.idl
+++ b/modules/geolocation/Geoposition.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/modules/geolocation/PositionError.idl b/modules/geolocation/PositionError.idl
index 56b4d41..2a673c0 100644
--- a/modules/geolocation/PositionError.idl
+++ b/modules/geolocation/PositionError.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/modules/indexeddb/IDBDatabase.idl b/modules/indexeddb/IDBDatabase.idl
index c6a8e28..49b6acf 100644
--- a/modules/indexeddb/IDBDatabase.idl
+++ b/modules/indexeddb/IDBDatabase.idl
@@ -25,14 +25,14 @@
  */
 
 [
-    ActiveDOMObject,
-    EventTarget
-] interface IDBDatabase {
+    ActiveDOMObject
+] interface IDBDatabase : EventTarget {
     readonly attribute DOMString name;
     readonly attribute IDBAny version;
     readonly attribute DOMStringList objectStoreNames;
 
     attribute EventListener onabort;
+    attribute EventListener onclose;
     attribute EventListener onerror;
     attribute EventListener onversionchange;
 
@@ -43,13 +43,4 @@
     [CallWith=ScriptExecutionContext, RaisesException] IDBTransaction transaction(DOMString storeName, [Default=NullString] optional DOMString mode);
 
     void close();
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
diff --git a/modules/indexeddb/IDBOpenDBRequest.idl b/modules/indexeddb/IDBOpenDBRequest.idl
index 8a8b6ab..7dbe0d1 100644
--- a/modules/indexeddb/IDBOpenDBRequest.idl
+++ b/modules/indexeddb/IDBOpenDBRequest.idl
@@ -23,9 +23,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    EventTarget
-] interface IDBOpenDBRequest : IDBRequest {
+interface IDBOpenDBRequest : IDBRequest {
     attribute EventListener onblocked;
     attribute EventListener onupgradeneeded;
 };
diff --git a/modules/indexeddb/IDBRequest.idl b/modules/indexeddb/IDBRequest.idl
index b0b0bdb..e8f87b8 100644
--- a/modules/indexeddb/IDBRequest.idl
+++ b/modules/indexeddb/IDBRequest.idl
@@ -28,9 +28,8 @@
  */
 
 [
-    ActiveDOMObject,
-    EventTarget
-] interface IDBRequest {
+    ActiveDOMObject
+] interface IDBRequest : EventTarget {
     [GetterRaisesException] readonly attribute IDBAny result;
     [GetterRaisesException] readonly attribute DOMError error;
 
@@ -43,13 +42,4 @@
     // Events
     attribute EventListener onsuccess;
     attribute EventListener onerror;
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
diff --git a/modules/indexeddb/IDBTransaction.idl b/modules/indexeddb/IDBTransaction.idl
index 912736d..9eac27f 100644
--- a/modules/indexeddb/IDBTransaction.idl
+++ b/modules/indexeddb/IDBTransaction.idl
@@ -25,9 +25,8 @@
  */
 
 [
-    ActiveDOMObject,
-    EventTarget
-] interface IDBTransaction {
+    ActiveDOMObject
+] interface IDBTransaction : EventTarget {
 
     // Properties
     readonly attribute DOMString mode;
@@ -42,12 +41,4 @@
     attribute EventListener onabort;
     attribute EventListener oncomplete;
     attribute EventListener onerror;
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
diff --git a/modules/indexeddb/WorkerContextIndexedDatabase.idl b/modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl
similarity index 98%
rename from modules/indexeddb/WorkerContextIndexedDatabase.idl
rename to modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl
index bc1c4f3..4bcc945 100644
--- a/modules/indexeddb/WorkerContextIndexedDatabase.idl
+++ b/modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl
@@ -24,7 +24,7 @@
  *
  */
 
-partial interface WorkerContext {
+partial interface WorkerGlobalScope {
     [ImplementedAs=indexedDB,EnabledAtRuntime=indexedDB] readonly attribute IDBFactory webkitIndexedDB;
 
     attribute IDBCursorConstructor webkitIDBCursor;
diff --git a/modules/mediasource/MediaSource.idl b/modules/mediasource/MediaSource.idl
index d0b407d..8286967 100644
--- a/modules/mediasource/MediaSource.idl
+++ b/modules/mediasource/MediaSource.idl
@@ -27,14 +27,13 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
- 
+
 [
     EnabledAtRuntime=mediaSource,
     ActiveDOMObject,
-    EventTarget,
     Constructor,
     ConstructorCallWith=ScriptExecutionContext
-] interface MediaSource {
+] interface MediaSource : EventTarget {
     // All the source buffers created by this object.
     readonly attribute SourceBufferList sourceBuffers;
 
@@ -47,17 +46,8 @@
     [RaisesException] void removeSourceBuffer(SourceBuffer buffer);
 
     readonly attribute DOMString readyState;
-    
+
     [RaisesException] void endOfStream([Default=NullString] optional DOMString error);
 
     static boolean isTypeSupported (DOMString type);
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
diff --git a/modules/mediasource/SourceBuffer.idl b/modules/mediasource/SourceBuffer.idl
index d04be71..5099e0d 100644
--- a/modules/mediasource/SourceBuffer.idl
+++ b/modules/mediasource/SourceBuffer.idl
@@ -27,16 +27,15 @@
  * (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,
     ActiveDOMObject,
-    EventTarget,
     EnabledAtRuntime=mediaSource
-] interface SourceBuffer {
+] interface SourceBuffer : EventTarget {
 
     readonly attribute boolean updating;
-  
+
     // Returns the time ranges buffered.
     [GetterRaisesException] readonly attribute TimeRanges buffered;
 
@@ -49,14 +48,5 @@
 
     // Abort the current segment append sequence.
     [RaisesException] void abort();
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
 
diff --git a/modules/mediasource/SourceBufferList.idl b/modules/mediasource/SourceBufferList.idl
index 8c22965..1e2f5ed 100644
--- a/modules/mediasource/SourceBufferList.idl
+++ b/modules/mediasource/SourceBufferList.idl
@@ -27,23 +27,13 @@
  * (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=mediaSource,
-    EventTarget,
     CallWith=ScriptExecutionContext
-] interface SourceBufferList {
+] interface SourceBufferList : EventTarget {
     readonly attribute unsigned long length;
     getter SourceBuffer item(unsigned long index);
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
 
diff --git a/modules/crypto/WorkerContextCrypto.idl b/modules/mediasource/URLMediaSource.idl
similarity index 84%
copy from modules/crypto/WorkerContextCrypto.idl
copy to modules/mediasource/URLMediaSource.idl
index 83b298c..6adb9f1 100644
--- a/modules/crypto/WorkerContextCrypto.idl
+++ b/modules/mediasource/URLMediaSource.idl
@@ -27,7 +27,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
-
-partial interface WorkerContext {
-    [EnabledAtRuntime=Crypto] readonly attribute WorkerCrypto crypto;
+partial interface URL {
+    [CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(MediaSource? source);
+    [CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(WebKitMediaSource? source);
 };
diff --git a/modules/mediasource/WebKitMediaSource.idl b/modules/mediasource/WebKitMediaSource.idl
index 1bc542c..388e5d8 100644
--- a/modules/mediasource/WebKitMediaSource.idl
+++ b/modules/mediasource/WebKitMediaSource.idl
@@ -27,15 +27,14 @@
  * (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=webKitMediaSource,
     ActiveDOMObject,
-    EventTarget,
     Constructor,
     ConstructorCallWith=ScriptExecutionContext
-] interface WebKitMediaSource {
+] interface WebKitMediaSource : EventTarget {
     // All the source buffers created by this object.
     readonly attribute WebKitSourceBufferList sourceBuffers;
 
@@ -48,18 +47,9 @@
     [RaisesException] void removeSourceBuffer(WebKitSourceBuffer buffer);
 
     readonly attribute DOMString readyState;
-    
+
     [RaisesException] void endOfStream([Default=NullString] optional DOMString error);
 
     static boolean isTypeSupported (DOMString type);
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
 
diff --git a/modules/mediasource/WebKitSourceBuffer.idl b/modules/mediasource/WebKitSourceBuffer.idl
index 4995de8..c682730 100644
--- a/modules/mediasource/WebKitSourceBuffer.idl
+++ b/modules/mediasource/WebKitSourceBuffer.idl
@@ -27,7 +27,7 @@
  * (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=webKitMediaSource
diff --git a/modules/mediasource/WebKitSourceBufferList.idl b/modules/mediasource/WebKitSourceBufferList.idl
index ba1768e..f33a369 100644
--- a/modules/mediasource/WebKitSourceBufferList.idl
+++ b/modules/mediasource/WebKitSourceBufferList.idl
@@ -27,22 +27,12 @@
  * (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=webKitMediaSource,
-    EventTarget,
-] interface WebKitSourceBufferList {
+    EnabledAtRuntime=webKitMediaSource
+] interface WebKitSourceBufferList : EventTarget {
     readonly attribute unsigned long length;
     getter WebKitSourceBuffer item(unsigned long index);
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
 
diff --git a/modules/mediastream/MediaStream.idl b/modules/mediastream/MediaStream.idl
index bd7e78f..5270472 100644
--- a/modules/mediastream/MediaStream.idl
+++ b/modules/mediastream/MediaStream.idl
@@ -24,12 +24,11 @@
 
 [
     NoInterfaceObject,
-    EventTarget,
     Constructor,
     Constructor(MediaStream stream),
     Constructor(MediaStreamTrack[] tracks),
     ConstructorCallWith=ScriptExecutionContext
-] interface MediaStream {
+] interface MediaStream : EventTarget {
     // DEPRECATED
     readonly attribute DOMString label;
 
@@ -48,14 +47,5 @@
     attribute EventListener onended;
     attribute EventListener onaddtrack;
     attribute EventListener onremovetrack;
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
 
diff --git a/modules/mediastream/MediaStreamTrack.idl b/modules/mediastream/MediaStreamTrack.idl
index d02d8ed..c2df9f9 100644
--- a/modules/mediastream/MediaStreamTrack.idl
+++ b/modules/mediastream/MediaStreamTrack.idl
@@ -23,9 +23,8 @@
  */
 
 [
-    EventTarget,
     ActiveDOMObject
-] interface MediaStreamTrack {
+] interface MediaStreamTrack : EventTarget {
     readonly attribute DOMString kind;
     readonly attribute DOMString id;
     readonly attribute DOMString label;
@@ -38,14 +37,5 @@
     attribute EventListener onended;
 
     [CallWith=ScriptExecutionContext, RaisesException] static void getSources(MediaStreamTrackSourcesCallback callback);
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
 
diff --git a/modules/mediastream/RTCDTMFSender.idl b/modules/mediastream/RTCDTMFSender.idl
index ff3b6da..c06a48c 100644
--- a/modules/mediastream/RTCDTMFSender.idl
+++ b/modules/mediastream/RTCDTMFSender.idl
@@ -25,9 +25,8 @@
 
 [
     NoInterfaceObject,
-    ActiveDOMObject,
-    EventTarget
-] interface RTCDTMFSender {
+    ActiveDOMObject
+] interface RTCDTMFSender : EventTarget {
     readonly attribute boolean canInsertDTMF;
     readonly attribute MediaStreamTrack track;
     readonly attribute DOMString toneBuffer;
@@ -37,13 +36,4 @@
     [RaisesException] void insertDTMF(DOMString tones, optional long duration, optional long interToneGap);
 
     attribute EventListener ontonechange;
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
diff --git a/modules/mediastream/RTCDataChannel.idl b/modules/mediastream/RTCDataChannel.idl
index b4263df..5abf290 100644
--- a/modules/mediastream/RTCDataChannel.idl
+++ b/modules/mediastream/RTCDataChannel.idl
@@ -23,9 +23,8 @@
  */
 
 [
-    NoInterfaceObject,
-    EventTarget
-] interface RTCDataChannel {
+    NoInterfaceObject
+] interface RTCDataChannel : EventTarget {
     readonly attribute DOMString label;
     readonly attribute boolean reliable;
     readonly attribute DOMString readyState;
@@ -44,13 +43,4 @@
     attribute EventListener onerror;
     attribute EventListener onclose;
     attribute EventListener onmessage;
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
diff --git a/modules/mediastream/RTCPeerConnection.idl b/modules/mediastream/RTCPeerConnection.idl
index 33daf3a..a2255c8 100644
--- a/modules/mediastream/RTCPeerConnection.idl
+++ b/modules/mediastream/RTCPeerConnection.idl
@@ -33,9 +33,8 @@
     ActiveDOMObject,
     Constructor(Dictionary rtcIceServers, optional Dictionary mediaConstraints),
     ConstructorRaisesException,
-    ConstructorCallWith=ScriptExecutionContext,
-    EventTarget
-] interface RTCPeerConnection {
+    ConstructorCallWith=ScriptExecutionContext
+] interface RTCPeerConnection : EventTarget {
     [RaisesException] void createOffer(RTCSessionDescriptionCallback successCallback, [Default=Undefined] optional RTCErrorCallback failureCallback, optional Dictionary mediaConstraints);
 
     [RaisesException] void createAnswer(RTCSessionDescriptionCallback successCallback, [Default=Undefined] optional RTCErrorCallback failureCallback, optional Dictionary mediaConstraints);
@@ -77,14 +76,5 @@
     attribute EventListener onremovestream;
     attribute EventListener oniceconnectionstatechange;
     attribute EventListener ondatachannel;
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
 
diff --git a/modules/crypto/WorkerContextCrypto.idl b/modules/mediastream/URLMediaStream.idl
similarity index 90%
copy from modules/crypto/WorkerContextCrypto.idl
copy to modules/mediastream/URLMediaStream.idl
index 83b298c..3b8edb5 100644
--- a/modules/crypto/WorkerContextCrypto.idl
+++ b/modules/mediastream/URLMediaStream.idl
@@ -27,7 +27,6 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
-
-partial interface WorkerContext {
-    [EnabledAtRuntime=Crypto] readonly attribute WorkerCrypto crypto;
+partial interface URL {
+    [CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(MediaStream? stream);
 };
diff --git a/modules/notifications/Notification.idl b/modules/notifications/Notification.idl
index 0d5d7f7..a8dd30a 100644
--- a/modules/notifications/Notification.idl
+++ b/modules/notifications/Notification.idl
@@ -32,10 +32,9 @@
 [
     Conditional=NOTIFICATIONS|LEGACY_NOTIFICATIONS,
     ActiveDOMObject,
-    EventTarget,
     Constructor(DOMString title, [Default=Undefined] optional Dictionary options),
     ConstructorCallWith=ScriptExecutionContext,
-] interface Notification {
+] interface Notification : EventTarget {
     void show();
     [Conditional=LEGACY_NOTIFICATIONS] void cancel();
     [Conditional=NOTIFICATIONS] void close();
@@ -53,14 +52,5 @@
     [Conditional=LEGACY_NOTIFICATIONS] attribute DOMString dir;
     [Conditional=LEGACY_NOTIFICATIONS] attribute DOMString replaceId;
     [Conditional=NOTIFICATIONS] attribute DOMString tag;
-
-    // EventTarget interface
-    void addEventListener(DOMString type, 
-                          EventListener listener, 
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type, 
-                             EventListener listener, 
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
 
diff --git a/modules/notifications/WorkerContextNotifications.idl b/modules/notifications/WorkerGlobalScopeNotifications.idl
similarity index 97%
rename from modules/notifications/WorkerContextNotifications.idl
rename to modules/notifications/WorkerGlobalScopeNotifications.idl
index e8f86b9..c643b0c 100644
--- a/modules/notifications/WorkerContextNotifications.idl
+++ b/modules/notifications/WorkerGlobalScopeNotifications.idl
@@ -26,7 +26,7 @@
 
 [
     Conditional=NOTIFICATIONS|LEGACY_NOTIFICATIONS
-] partial interface WorkerContext {
+] partial interface WorkerGlobalScope {
     [EnabledAtRuntime=notifications, Conditional=LEGACY_NOTIFICATIONS] readonly attribute NotificationCenter webkitNotifications;
 };
 
diff --git a/modules/performance/WorkerContextPerformance.idl b/modules/performance/WorkerGlobalScopePerformance.idl
similarity index 97%
rename from modules/performance/WorkerContextPerformance.idl
rename to modules/performance/WorkerGlobalScopePerformance.idl
index 79ef789..a737930 100644
--- a/modules/performance/WorkerContextPerformance.idl
+++ b/modules/performance/WorkerGlobalScopePerformance.idl
@@ -30,6 +30,6 @@
 
 [
     EnabledAtRuntime=HighResolutionTimeInWorkers
-] partial interface WorkerContext {
+] partial interface WorkerGlobalScope {
     readonly attribute WorkerPerformance performance;
 };
diff --git a/modules/quota/StorageErrorCallback.idl b/modules/quota/StorageErrorCallback.idl
index 79ea608..191fb38 100644
--- a/modules/quota/StorageErrorCallback.idl
+++ b/modules/quota/StorageErrorCallback.idl
@@ -29,5 +29,5 @@
  */
 
 callback interface StorageErrorCallback {
-    boolean handleEvent(DOMException error);
+    boolean handleEvent(DOMError error);
 };
diff --git a/modules/quota/StorageInfo.idl b/modules/quota/StorageInfo.idl
index 87caad2..f21070e 100644
--- a/modules/quota/StorageInfo.idl
+++ b/modules/quota/StorageInfo.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/modules/quota/StorageQuota.idl b/modules/quota/StorageQuota.idl
index bc008dd..1c8243e 100644
--- a/modules/quota/StorageQuota.idl
+++ b/modules/quota/StorageQuota.idl
@@ -20,7 +20,7 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 [
diff --git a/modules/speech/SpeechRecognition.idl b/modules/speech/SpeechRecognition.idl
index 2baaa9d..9f6634e 100644
--- a/modules/speech/SpeechRecognition.idl
+++ b/modules/speech/SpeechRecognition.idl
@@ -27,9 +27,8 @@
     NoInterfaceObject,
     ActiveDOMObject,
     Constructor,
-    ConstructorCallWith=ScriptExecutionContext,
-    EventTarget
-] interface SpeechRecognition {
+    ConstructorCallWith=ScriptExecutionContext
+] interface SpeechRecognition : EventTarget {
     attribute SpeechGrammarList grammars;
     attribute DOMString lang;
     attribute boolean continuous;
@@ -51,13 +50,4 @@
     attribute EventListener onerror;
     attribute EventListener onstart;
     attribute EventListener onend;
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
diff --git a/modules/speech/SpeechSynthesis.idl b/modules/speech/SpeechSynthesis.idl
index 4078c88..8cc867f 100644
--- a/modules/speech/SpeechSynthesis.idl
+++ b/modules/speech/SpeechSynthesis.idl
@@ -20,9 +20,9 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
- 
+
 [
     NoInterfaceObject,
     EnabledAtRuntime=speechSynthesis
diff --git a/modules/speech/SpeechSynthesisEvent.idl b/modules/speech/SpeechSynthesisEvent.idl
index a0f896e..a36ef2b 100644
--- a/modules/speech/SpeechSynthesisEvent.idl
+++ b/modules/speech/SpeechSynthesisEvent.idl
@@ -20,9 +20,9 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
- 
+
 [
     EnabledAtRuntime=speechSynthesis
 ] interface SpeechSynthesisEvent : Event {
diff --git a/modules/speech/SpeechSynthesisUtterance.idl b/modules/speech/SpeechSynthesisUtterance.idl
index 3a9a64b..916d51d 100644
--- a/modules/speech/SpeechSynthesisUtterance.idl
+++ b/modules/speech/SpeechSynthesisUtterance.idl
@@ -20,15 +20,14 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
- 
+
 [
     EnabledAtRuntime=speechSynthesis,
-    EventTarget,
     ConstructorCallWith=ScriptExecutionContext,
     Constructor([Default=NullString] optional DOMString text)
-] interface SpeechSynthesisUtterance {
+] interface SpeechSynthesisUtterance : EventTarget {
     attribute DOMString text;
     attribute DOMString lang;
     attribute SpeechSynthesisVoice voice;
diff --git a/modules/speech/SpeechSynthesisVoice.idl b/modules/speech/SpeechSynthesisVoice.idl
index a377631..0a634e5 100644
--- a/modules/speech/SpeechSynthesisVoice.idl
+++ b/modules/speech/SpeechSynthesisVoice.idl
@@ -20,9 +20,9 @@
  * 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. 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
- 
+
 [
     NoInterfaceObject,
     EnabledAtRuntime=speechSynthesis
diff --git a/modules/webaudio/AudioBufferSourceNode.idl b/modules/webaudio/AudioBufferSourceNode.idl
index 5a817de..ca4982c 100644
--- a/modules/webaudio/AudioBufferSourceNode.idl
+++ b/modules/webaudio/AudioBufferSourceNode.idl
@@ -53,4 +53,6 @@
     [MeasureAs=LegacyWebAudio] void noteOn(double when);
     [MeasureAs=LegacyWebAudio] void noteGrainOn(double when, double grainOffset, double grainDuration);
     void noteOff(double when);
+
+    attribute EventListener onended;
 };
diff --git a/modules/webaudio/AudioContext.idl b/modules/webaudio/AudioContext.idl
index 319a793..c1d63ec 100644
--- a/modules/webaudio/AudioContext.idl
+++ b/modules/webaudio/AudioContext.idl
@@ -27,9 +27,8 @@
     NoInterfaceObject,
     Conditional=WEB_AUDIO,
     ActiveDOMObject,
-    CustomConstructor,
-    EventTarget
-] interface AudioContext {
+    CustomConstructor
+] interface AudioContext : EventTarget {
     // All rendered audio ultimately connects to destination, which represents the audio hardware.
     readonly attribute AudioDestinationNode destination;
 
@@ -44,7 +43,7 @@
 
     // Number of AudioBufferSourceNodes that are currently playing.
     readonly attribute unsigned long activeSourceCount;
-    
+
     [RaisesException] AudioBuffer createBuffer(unsigned long numberOfChannels, unsigned long numberOfFrames, float sampleRate);
     [RaisesException] AudioBuffer createBuffer(ArrayBuffer? buffer, boolean mixToMono);
 
@@ -70,7 +69,7 @@
     AnalyserNode createAnalyser();
     [RaisesException] ScriptProcessorNode createScriptProcessor(unsigned long bufferSize, optional unsigned long numberOfInputChannels, optional unsigned long numberOfOutputChannels);
     OscillatorNode createOscillator();
-    [RaisesException] WaveTable createWaveTable(Float32Array real, Float32Array imag);
+    [RaisesException] PeriodicWave createPeriodicWave(Float32Array real, Float32Array imag);
 
     // Channel splitting and merging
     [RaisesException] ChannelSplitterNode createChannelSplitter(optional unsigned long numberOfOutputs);
diff --git a/modules/webaudio/AudioNode.idl b/modules/webaudio/AudioNode.idl
index f311d27..f130889 100644
--- a/modules/webaudio/AudioNode.idl
+++ b/modules/webaudio/AudioNode.idl
@@ -41,14 +41,4 @@
     [RaisesException] void connect(AudioParam? destination, [Default=Undefined] optional unsigned long output);
 
     [RaisesException] void disconnect([Default=Undefined] optional unsigned long output);
-
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
diff --git a/modules/webaudio/AudioParam.idl b/modules/webaudio/AudioParam.idl
index 8f5773f..bb90387 100644
--- a/modules/webaudio/AudioParam.idl
+++ b/modules/webaudio/AudioParam.idl
@@ -40,20 +40,20 @@
     readonly attribute unsigned short units;
 
     // Parameter automation.
-    void setValueAtTime(float value, float time);
-    void linearRampToValueAtTime(float value, float time);
-    void exponentialRampToValueAtTime(float value, float time);
+    void setValueAtTime(float value, double time);
+    void linearRampToValueAtTime(float value, double time);
+    void exponentialRampToValueAtTime(float value, double time);
 
     // Exponentially approach the target with a rate having the given time constant.
-    void setTargetAtTime(float target, float time, float timeConstant);
+    void setTargetAtTime(float target, double time, double timeConstant);
 
     // Sets an array of arbitrary parameter values starting at time for the given duration.
     // The number of values will be scaled to fit into the desired duration.
-    void setValueCurveAtTime(Float32Array values, float time, float duration);
+    void setValueCurveAtTime(Float32Array values, double time, double duration);
 
     // Cancels all scheduled parameter changes with times greater than or equal to startTime.
-    void cancelScheduledValues(float startTime);
+    void cancelScheduledValues(double startTime);
 
-    [MeasureAs=LegacyWebAudio, ImplementedAs=setTargetAtTime] void setTargetValueAtTime(float targetValue, float time, float timeConstant);
+    [MeasureAs=LegacyWebAudio, ImplementedAs=setTargetAtTime] void setTargetValueAtTime(float targetValue, double time, double timeConstant);
 
 };
diff --git a/modules/webaudio/AudioProcessingEvent.idl b/modules/webaudio/AudioProcessingEvent.idl
index 297ec00..ed8f90a 100644
--- a/modules/webaudio/AudioProcessingEvent.idl
+++ b/modules/webaudio/AudioProcessingEvent.idl
@@ -26,5 +26,5 @@
     Conditional=WEB_AUDIO
 ] interface AudioProcessingEvent : Event {
     readonly attribute AudioBuffer inputBuffer;
-    readonly attribute AudioBuffer outputBuffer; 
+    readonly attribute AudioBuffer outputBuffer;
 };
diff --git a/modules/webaudio/BiquadFilterNode.idl b/modules/webaudio/BiquadFilterNode.idl
index d65a901..3101652 100644
--- a/modules/webaudio/BiquadFilterNode.idl
+++ b/modules/webaudio/BiquadFilterNode.idl
@@ -36,7 +36,7 @@
     const unsigned short ALLPASS = 7;
 
     [CustomSetter] attribute DOMString type;
-    
+
     readonly attribute AudioParam frequency; // in Hertz
     readonly attribute AudioParam detune; // in Cents
     readonly attribute AudioParam Q; // Quality factor
diff --git a/modules/webaudio/MediaStreamAudioDestinationNode.idl b/modules/webaudio/MediaStreamAudioDestinationNode.idl
index 8e2fa8a..6bca078 100644
--- a/modules/webaudio/MediaStreamAudioDestinationNode.idl
+++ b/modules/webaudio/MediaStreamAudioDestinationNode.idl
@@ -24,6 +24,6 @@
 
 [
     Conditional=WEB_AUDIO
-] interface MediaStreamAudioDestinationNode : AudioSourceNode {
+] interface MediaStreamAudioDestinationNode : AudioNode {
     readonly attribute MediaStream stream;
 };
diff --git a/modules/webaudio/OfflineAudioContext.idl b/modules/webaudio/OfflineAudioContext.idl
index 3a3e9ef..81c104e 100644
--- a/modules/webaudio/OfflineAudioContext.idl
+++ b/modules/webaudio/OfflineAudioContext.idl
@@ -25,7 +25,6 @@
 [
     NoInterfaceObject,
     Conditional=WEB_AUDIO,
-    EventTarget,
     Constructor(unsigned long numberOfChannels, unsigned long numberOfFrames, float sampleRate),
     ConstructorRaisesException,
     ConstructorCallWith=ScriptExecutionContext
diff --git a/modules/webaudio/OscillatorNode.idl b/modules/webaudio/OscillatorNode.idl
index 158d0c3..46fd044 100644
--- a/modules/webaudio/OscillatorNode.idl
+++ b/modules/webaudio/OscillatorNode.idl
@@ -53,6 +53,7 @@
     void noteOn(double when);
     void noteOff(double when);
 
-    void setWaveTable(WaveTable waveTable);
+    void setPeriodicWave(PeriodicWave periodicWave);
 
+    attribute EventListener onended;
 };
diff --git a/modules/webaudio/PannerNode.idl b/modules/webaudio/PannerNode.idl
index d20a2e6..899b8a9 100644
--- a/modules/webaudio/PannerNode.idl
+++ b/modules/webaudio/PannerNode.idl
@@ -36,10 +36,10 @@
     const unsigned short INVERSE_DISTANCE = 1;
     const unsigned short EXPONENTIAL_DISTANCE = 2;
 
-    // Default model for stereo is HRTF 
+    // Default model for stereo is HRTF
     [CustomSetter] attribute DOMString panningModel;
 
-    // Uses a 3D cartesian coordinate system 
+    // Uses a 3D cartesian coordinate system
     void setPosition(float x, float y, float z);
     void setOrientation(float x, float y, float z);
     void setVelocity(float x, float y, float z);
diff --git a/modules/webaudio/WaveTable.idl b/modules/webaudio/PeriodicWave.idl
similarity index 92%
rename from modules/webaudio/WaveTable.idl
rename to modules/webaudio/PeriodicWave.idl
index 0174b5e..40a04b1 100644
--- a/modules/webaudio/WaveTable.idl
+++ b/modules/webaudio/PeriodicWave.idl
@@ -22,9 +22,9 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// WaveTable represents a periodic audio waveform given by its Fourier coefficients.
+// PeriodicWave represents a periodic audio waveform given by its Fourier coefficients.
 [
     Conditional=WEB_AUDIO
-] interface WaveTable {
+] interface PeriodicWave {
 
 };
diff --git a/modules/webdatabase/SQLException.idl b/modules/webdatabase/SQLException.idl
deleted file mode 100644
index a71ed0a..0000000
--- a/modules/webdatabase/SQLException.idl
+++ /dev/null
@@ -1,46 +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.
- */
-
-[
-    DoNotCheckConstants
-] exception SQLException {
-    readonly attribute unsigned long code;
-    readonly attribute DOMString message;
-
-    // SQLExceptionCode: used only in the sync DB API
-    const unsigned short UNKNOWN_ERR = 0;
-    const unsigned short DATABASE_ERR = 1;
-    const unsigned short VERSION_ERR = 2;
-    const unsigned short TOO_LARGE_ERR = 3;
-    const unsigned short QUOTA_ERR = 4;
-    const unsigned short SYNTAX_ERR = 5;
-    const unsigned short CONSTRAINT_ERR = 6;
-    const unsigned short TIMEOUT_ERR = 7;
-};
diff --git a/modules/webdatabase/WorkerContextWebDatabase.idl b/modules/webdatabase/WorkerGlobalScopeWebDatabase.idl
similarity index 97%
rename from modules/webdatabase/WorkerContextWebDatabase.idl
rename to modules/webdatabase/WorkerGlobalScopeWebDatabase.idl
index bcefffa..852f1a1 100644
--- a/modules/webdatabase/WorkerContextWebDatabase.idl
+++ b/modules/webdatabase/WorkerGlobalScopeWebDatabase.idl
@@ -24,7 +24,7 @@
  *
  */
 
-partial interface WorkerContext {
+partial interface WorkerGlobalScope {
     [EnabledAtRuntime=database, RaisesException] Database openDatabase(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback);
 
     [EnabledAtRuntime=database, RaisesException] DatabaseSync openDatabaseSync(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback);
diff --git a/modules/webmidi/MIDIAccess.idl b/modules/webmidi/MIDIAccess.idl
index ea5fe0a..c7a51a1 100644
--- a/modules/webmidi/MIDIAccess.idl
+++ b/modules/webmidi/MIDIAccess.idl
@@ -30,21 +30,11 @@
 
 [
     NoInterfaceObject,
-    ActiveDOMObject,
-    EventTarget
-] interface MIDIAccess {
+    ActiveDOMObject
+] interface MIDIAccess : EventTarget {
     sequence<MIDIInput> inputs();
     sequence<MIDIOutput> outputs();
 
     attribute EventListener onconnect;
     attribute EventListener ondisconnect;
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
diff --git a/modules/webmidi/MIDIInput.idl b/modules/webmidi/MIDIInput.idl
index 8c0ae3c..4bf7e8f 100644
--- a/modules/webmidi/MIDIInput.idl
+++ b/modules/webmidi/MIDIInput.idl
@@ -30,8 +30,7 @@
 
 [
     NoInterfaceObject,
-    ActiveDOMObject,
-    EventTarget
+    ActiveDOMObject
 ] interface MIDIInput : MIDIPort {
     attribute EventListener onmidimessage;
 };
diff --git a/modules/webmidi/MIDIOutput.idl b/modules/webmidi/MIDIOutput.idl
index a07ec6f..86a4435 100644
--- a/modules/webmidi/MIDIOutput.idl
+++ b/modules/webmidi/MIDIOutput.idl
@@ -31,6 +31,6 @@
 [
     NoInterfaceObject
 ] interface MIDIOutput : MIDIPort {
-    void send(Uint8Array data, optional double timestamp);
-    void send(sequence<unsigned long> data, optional double timestamp);
+    [RaisesException] void send(Uint8Array data, optional double timestamp);
+    [RaisesException] void send(sequence<unsigned long> data, optional double timestamp);
 };
diff --git a/modules/webmidi/MIDIPort.idl b/modules/webmidi/MIDIPort.idl
index e7e2aa9..261eb7c 100644
--- a/modules/webmidi/MIDIPort.idl
+++ b/modules/webmidi/MIDIPort.idl
@@ -35,9 +35,8 @@
 
 [
     NoInterfaceObject,
-    ActiveDOMObject,
-    EventTarget
-] interface MIDIPort {
+    ActiveDOMObject
+] interface MIDIPort : EventTarget {
     readonly attribute DOMString id;
     readonly attribute DOMString manufacturer;
     readonly attribute DOMString name;
@@ -45,13 +44,4 @@
     readonly attribute DOMString version;
 
     attribute EventListener ondisconnect;
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event event);
 };
diff --git a/modules/webmidi/MIDISuccessCallback.idl b/modules/webmidi/MIDISuccessCallback.idl
index d2976e8..179724b 100644
--- a/modules/webmidi/MIDISuccessCallback.idl
+++ b/modules/webmidi/MIDISuccessCallback.idl
@@ -32,5 +32,5 @@
     // FIXME: The second argument should be Dictionary, but IDL generator
     // can not handle Dictionary as a handleEvent argument correctly now.
     // http://crbug.com/246161
-    boolean handleEvent(MIDIAccess access, boolean sysexEnabled);
+    boolean handleEvent(MIDIAccess access, boolean sysex);
 };
diff --git a/modules/websockets/WebSocket.idl b/modules/websockets/WebSocket.idl
index 425ac96..e332465 100644
--- a/modules/websockets/WebSocket.idl
+++ b/modules/websockets/WebSocket.idl
@@ -30,14 +30,14 @@
  */
 
 [
+    GlobalContext=Window&WorkerGlobalScope,
     ActiveDOMObject,
     Constructor(DOMString url),
     Constructor(DOMString url, sequence<DOMString> protocols),
     Constructor(DOMString url, DOMString protocol),
     ConstructorRaisesException,
-    ConstructorCallWith=ScriptExecutionContext,
-    EventTarget
-] interface WebSocket {
+    ConstructorCallWith=ScriptExecutionContext
+] interface WebSocket : EventTarget {
     readonly attribute DOMString URL; // Lowercased .url is the one in the spec, but leaving .URL for compatibility reasons.
     readonly attribute DOMString url;
 
@@ -67,13 +67,4 @@
     [RaisesException] void send(DOMString data);
 
     [RaisesException] void close([Clamp] optional unsigned short code, optional DOMString reason);
-
-    // EventTarget interface
-    void addEventListener(DOMString type,
-                          EventListener listener,
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type,
-                             EventListener listener,
-                             optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
 };
diff --git a/modules/websockets/WorkerContextWebSocket.idl b/modules/websockets/WorkerContextWebSocket.idl
deleted file mode 100644
index 7a2a19a..0000000
--- a/modules/websockets/WorkerContextWebSocket.idl
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2008 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 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. 
- *
- */
-
-partial interface WorkerContext {
-    attribute WebSocketConstructor WebSocket; // Usable with the new operator
-};
-