Update IDL to 1847

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

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

git-svn-id: http://dart.googlecode.com/svn/third_party/WebCore@34173 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/codereview.settings b/codereview.settings
new file mode 100644
index 0000000..7172428
--- /dev/null
+++ b/codereview.settings
@@ -0,0 +1,4 @@
+# This file is used by gcl to get repository specific information.
+CODE_REVIEW_SERVER: http://codereview.chromium.org/
+VIEW_VC: https://code.google.com/p/dart/source/detail?r=
+CC_LIST: reviews+dom@dartlang.org
diff --git a/core/README b/core/README
index 575df1a..87619fd 100644
--- a/core/README
+++ b/core/README
@@ -5,5 +5,5 @@
 using the script: $DART_ROOT/sdk/lib/html/scripts/idlsync.py
 
 The current version corresponds to:
-URL: http://src.chromium.org/blink/branches/dart/1750
-Current revision: 166797
+URL: http://src.chromium.org/blink/branches/dart/1847
+Current revision: 169590
diff --git a/modules/crypto/HmacParams.idl b/core/animation/Animation.idl
similarity index 82%
copy from modules/crypto/HmacParams.idl
copy to core/animation/Animation.idl
index 2dae1c8..ee19ab0 100644
--- a/modules/crypto/HmacParams.idl
+++ b/core/animation/Animation.idl
@@ -29,7 +29,9 @@
  */
 
 [
-    NoInterfaceObject,
-] interface HmacParams : Algorithm {
-    readonly attribute Algorithm hash;
+    RuntimeEnabled=WebAnimationsAPI,
+    Constructor(Element target, sequence<Dictionary> keyframes, Dictionary timingInput),
+    Constructor(Element target, sequence<Dictionary> keyframes, double timingInput),
+    Constructor(Element target, sequence<Dictionary> keyframes),
+] interface Animation : TimedItem {
 };
diff --git a/core/animation/DocumentAnimation.idl b/core/animation/DocumentAnimation.idl
new file mode 100644
index 0000000..2bfb6a7
--- /dev/null
+++ b/core/animation/DocumentAnimation.idl
@@ -0,0 +1,9 @@
+// Copyright 2014 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.
+
+[
+    RuntimeEnabled=WebAnimationsAPI,
+] partial interface Document {
+    readonly attribute Timeline timeline;
+};
diff --git a/core/animation/ElementAnimation.idl b/core/animation/ElementAnimation.idl
index e191d95..e5c5137 100644
--- a/core/animation/ElementAnimation.idl
+++ b/core/animation/ElementAnimation.idl
@@ -28,6 +28,10 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface Element {
-    [RuntimeEnabled=WebAnimationsAPI] void animate(sequence<Dictionary> keyframes, optional double duration);
-};
\ No newline at end of file
+[
+    RuntimeEnabled=WebAnimationsAPI,
+] partial interface Element {
+    Animation animate(sequence<Dictionary> keyframes, Dictionary timingInput);
+    Animation animate(sequence<Dictionary> keyframes, double timingInput);
+    Animation animate(sequence<Dictionary> keyframes);
+};
diff --git a/core/html/ime/Composition.idl b/core/animation/Player.idl
similarity index 76%
copy from core/html/ime/Composition.idl
copy to core/animation/Player.idl
index 494d2a0..1243c39 100644
--- a/core/html/ime/Composition.idl
+++ b/core/animation/Player.idl
@@ -28,12 +28,19 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// http://www.w3.org/TR/ime-api/
 [
-    NoInterfaceObject
-] interface Composition {
-    readonly attribute DOMString text;
-    readonly attribute long selectionStart;
-    readonly attribute long selectionEnd;
-    sequence<unsigned long> getSegments();
+    RuntimeEnabled=WebAnimationsAPI,
+] interface Player {
+             attribute TimedItem? source;
+             attribute double     startTime;
+             attribute double     currentTime;
+    readonly attribute double     timeLag;
+             attribute double     playbackRate;
+    readonly attribute boolean    paused;
+    readonly attribute boolean    finished;
+    void cancel();
+    [RaisesException] void finish();
+    void play();
+    void pause();
+    void reverse();
 };
diff --git a/modules/crypto/HmacParams.idl b/core/animation/TimedItem.idl
similarity index 76%
copy from modules/crypto/HmacParams.idl
copy to core/animation/TimedItem.idl
index 2dae1c8..34fa04d 100644
--- a/modules/crypto/HmacParams.idl
+++ b/core/animation/TimedItem.idl
@@ -29,7 +29,18 @@
  */
 
 [
-    NoInterfaceObject,
-] interface HmacParams : Algorithm {
-    readonly attribute Algorithm hash;
+    RuntimeEnabled=WebAnimationsAPI,
+] interface TimedItem {
+    // Playback state
+    readonly attribute double? localTime;
+    readonly attribute unsigned long? currentIteration;
+
+    // Calculated timing
+    readonly attribute double startTime;
+    readonly attribute double duration;
+    readonly attribute double activeDuration;
+    readonly attribute double endTime;
+
+    readonly attribute Timing specified;
+    readonly attribute Player? player;
 };
diff --git a/core/animation/Timeline.idl b/core/animation/Timeline.idl
new file mode 100644
index 0000000..47138f7
--- /dev/null
+++ b/core/animation/Timeline.idl
@@ -0,0 +1,10 @@
+// Copyright 2014 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.
+
+[
+    RuntimeEnabled=WebAnimationsAPI,
+    ImplementedAs=DocumentTimeline,
+] interface Timeline {
+    Player play(TimedItem source);
+};
diff --git a/core/animation/Timing.idl b/core/animation/Timing.idl
new file mode 100644
index 0000000..9da75c5
--- /dev/null
+++ b/core/animation/Timing.idl
@@ -0,0 +1,28 @@
+// Copyright 2014 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.
+
+[
+    RuntimeEnabled=WebAnimationsAPI,
+    ImplementedAs=TimedItemTiming,
+] interface Timing {
+    attribute double delay;
+    attribute double endDelay;
+    attribute DOMString fill;
+    attribute double iterationStart;
+    attribute double iterations;
+
+    // FIXME: This uses a NamedPropertyGetter to implement the 'duration' attribute
+    // because duration has a union type (which is tricky to do with an attribute).
+    // Fix will be in a follow-up patch if there is a better solution.
+    [NotEnumerable, ImplementedAs=getDuration] getter (double or DOMString) (DOMString name);
+
+    // FIXME: If the user calls animation.specified.duration = "" (empty string) then duration
+    // gets set to 0 (This is correct behavior for IDL). Correct result is for duration to
+    // be set to 'auto'.
+    [StrictTypeChecking, ImplementedAs=setDuration] setter double (DOMString name, double duration);
+
+    attribute double playbackRate;
+    attribute DOMString direction;
+    attribute DOMString easing;
+};
diff --git a/core/dom/Clipboard.idl b/core/clipboard/Clipboard.idl
similarity index 100%
rename from core/dom/Clipboard.idl
rename to core/clipboard/Clipboard.idl
diff --git a/core/dom/DataTransferItem.idl b/core/clipboard/DataTransferItem.idl
similarity index 100%
rename from core/dom/DataTransferItem.idl
rename to core/clipboard/DataTransferItem.idl
diff --git a/core/dom/DataTransferItemList.idl b/core/clipboard/DataTransferItemList.idl
similarity index 100%
rename from core/dom/DataTransferItemList.idl
rename to core/clipboard/DataTransferItemList.idl
diff --git a/core/css/CSSKeyframesRule.idl b/core/css/CSSKeyframesRule.idl
index d97dd4a..ee408d9 100644
--- a/core/css/CSSKeyframesRule.idl
+++ b/core/css/CSSKeyframesRule.idl
@@ -31,8 +31,8 @@
     attribute DOMString name;
     readonly attribute CSSRuleList cssRules;
 
-    [ImplementedAs=item, NotEnumerable] getter CSSKeyframeRule(unsigned long index);
-    void insertRule([Default=Undefined] optional DOMString rule);
+    [ImplementedAs=item, NotEnumerable] getter CSSKeyframeRule (unsigned long index);
+    [RaisesException] void insertRule([Default=Undefined] optional DOMString rule);
     void deleteRule([Default=Undefined] optional DOMString key);
     CSSKeyframeRule findRule([Default=Undefined] optional DOMString key);
 };
diff --git a/core/css/CSSRule.idl b/core/css/CSSRule.idl
index 9dadad9..494e16a 100644
--- a/core/css/CSSRule.idl
+++ b/core/css/CSSRule.idl
@@ -38,7 +38,6 @@
     const unsigned short WEBKIT_KEYFRAME_RULE = 8;
     const unsigned short SUPPORTS_RULE = 12;
     [RuntimeEnabled=CSSViewport] const unsigned short VIEWPORT_RULE = 15;
-    [RuntimeEnabled=CSSRegions] const unsigned short WEBKIT_REGION_RULE = 16;
     const unsigned short WEBKIT_FILTER_RULE = 17;
 
     readonly attribute unsigned short   type;
diff --git a/core/css/CSSStyleDeclaration.idl b/core/css/CSSStyleDeclaration.idl
index f552573..63bd8ff 100644
--- a/core/css/CSSStyleDeclaration.idl
+++ b/core/css/CSSStyleDeclaration.idl
@@ -25,7 +25,6 @@
              [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, RaisesException=Setter] attribute DOMString        cssText;
 
     [TreatReturnedNullStringAs=Null] DOMString          getPropertyValue([Default=Undefined] optional DOMString propertyName);
-    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,
@@ -34,9 +33,13 @@
 
     readonly attribute unsigned long    length;
     getter DOMString          item([Default=Undefined] optional unsigned long index);
-    [Custom, CustomEnumerateProperty] getter (DOMString or float) (DOMString name);
+    [Custom=PropertyGetter|PropertyEnumerator|PropertyQuery] getter (DOMString or float) (DOMString name);
     [Custom] setter void (DOMString propertyName, [TreatNullAs=NullString] DOMString propertyValue);
     readonly attribute CSSRule          parentRule;
-    [RuntimeEnabled=CSSVariables] readonly attribute CSSVariablesMap var;
+
+    // Deprecated as of 2003: http://lists.w3.org/Archives/Public/www-style/2003Oct/0347.html
+    // FIXME: This should be DeprecateAs=, but currently too many LayoutTests use
+    // this function and would need CONSOLE: message rebaselines!
+    [MeasureAs=CSSStyleDeclarationGetPropertyCSSValue] CSSValue           getPropertyCSSValue([Default=Undefined] optional DOMString propertyName);
 };
 
diff --git a/core/css/CSSStyleSheet.idl b/core/css/CSSStyleSheet.idl
index a9b0900..71619f3 100644
--- a/core/css/CSSStyleSheet.idl
+++ b/core/css/CSSStyleSheet.idl
@@ -20,7 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
-    GenerateVisitDOMWrapper=ownerNode,
+    SetWrapperReferenceFrom=ownerNode,
 ] interface CSSStyleSheet : StyleSheet {
     readonly attribute CSSRule          ownerRule;
     readonly attribute CSSRuleList      cssRules;
diff --git a/core/css/CSSVariablesMap.idl b/core/css/CSSVariablesMap.idl
deleted file mode 100644
index 3c88025..0000000
--- a/core/css/CSSVariablesMap.idl
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.
- *
- * 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.
- */
-
-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();
-    void forEach(CSSVariablesMapForEachCallback callback, optional any thisArg);
-};
diff --git a/core/css/CSSVariablesMapForEachCallback.idl b/core/css/CSSVariablesMapForEachCallback.idl
deleted file mode 100644
index 11a6cfc..0000000
--- a/core/css/CSSVariablesMapForEachCallback.idl
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.
- *
- * 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.
- */
-
-callback interface CSSVariablesMapForEachCallback {
-    [CallWith=ThisValue] void handleItem(DOMString value, DOMString name, CSSVariablesMap map);
-    void handleItem(DOMString value, DOMString name, CSSVariablesMap map);
-};
diff --git a/core/css/Counter.idl b/core/css/Counter.idl
index 7006aa5..886436e 100644
--- a/core/css/Counter.idl
+++ b/core/css/Counter.idl
@@ -19,6 +19,7 @@
 
 // Introduced in DOM Level 2:
 [
+    WillBeGarbageCollected
 ] interface Counter {
     readonly attribute DOMString identifier;
     readonly attribute DOMString listStyle;
diff --git a/core/css/DocumentFontFaceSet.idl b/core/css/DocumentFontFaceSet.idl
index 820fdc8..fc2cbc7 100644
--- a/core/css/DocumentFontFaceSet.idl
+++ b/core/css/DocumentFontFaceSet.idl
@@ -28,6 +28,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface Document {
-    [RuntimeEnabled=FontLoadEvents] readonly attribute FontFaceSet fonts;
+[
+    RuntimeEnabled=FontLoadEvents,
+] partial interface Document {
+    readonly attribute FontFaceSet fonts;
 };
diff --git a/core/css/FontFace.idl b/core/css/FontFace.idl
index fcfef2d..922be52 100644
--- a/core/css/FontFace.idl
+++ b/core/css/FontFace.idl
@@ -38,19 +38,20 @@
 [
     RuntimeEnabled=FontLoadEvents,
     Constructor(DOMString family, DOMString source, Dictionary descriptors),
+    ConstructorCallWith=ExecutionContext,
     RaisesException=Constructor
 ] interface FontFace {
 
-    [RaisesException=Setter] attribute DOMString family;
-    [RaisesException=Setter] attribute DOMString style;
-    [RaisesException=Setter] attribute DOMString weight;
-    [RaisesException=Setter] attribute DOMString stretch;
-    [RaisesException=Setter] attribute DOMString unicodeRange;
-    [RaisesException=Setter] attribute DOMString variant;
-    [RaisesException=Setter] attribute DOMString featureSettings;
+    [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute DOMString family;
+    [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute DOMString style;
+    [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute DOMString weight;
+    [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute DOMString stretch;
+    [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute DOMString unicodeRange;
+    [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute DOMString variant;
+    [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute DOMString featureSettings;
 
     readonly attribute FontFaceLoadStatus status;
 
-    void load();
+    [CallWith=ExecutionContext] void load();
     [CallWith=ExecutionContext] Promise ready();
 };
diff --git a/core/css/FontFaceSet.idl b/core/css/FontFaceSet.idl
index 643c335..7f5b6ce 100644
--- a/core/css/FontFaceSet.idl
+++ b/core/css/FontFaceSet.idl
@@ -32,7 +32,7 @@
 
 [
     ActiveDOMObject,
-    GenerateVisitDOMWrapper=document,
+    SetWrapperReferenceFrom=document,
     NoInterfaceObject,
     RuntimeEnabled=FontLoadEvents,
 ] interface FontFaceSet : EventTarget {
@@ -41,10 +41,16 @@
     attribute EventHandler onloadingdone;
     attribute EventHandler onloadingerror;
 
-    [RaisesException] sequence<FontFace> match(DOMString font, [Default=NullString] optional DOMString text);
     [RaisesException] boolean check(DOMString font, [Default=NullString] optional DOMString text);
     [RaisesException] Promise load(DOMString font, [Default=NullString] optional DOMString text);
     Promise ready();
 
+    [RaisesException] void add(FontFace fontFace);
+    void clear();
+    [RaisesException, ImplementedAs=remove] boolean delete(FontFace fontFace);
+    void forEach(FontFaceSetForEachCallback callback, optional any thisArg);
+    [RaisesException] boolean has(FontFace fontFace);
+
+    readonly attribute unsigned long size;
     readonly attribute FontFaceSetLoadStatus status;
 };
diff --git a/modules/crypto/HmacParams.idl b/core/css/FontFaceSetForEachCallback.idl
similarity index 86%
copy from modules/crypto/HmacParams.idl
copy to core/css/FontFaceSetForEachCallback.idl
index 2dae1c8..6b9fdab 100644
--- a/modules/crypto/HmacParams.idl
+++ b/core/css/FontFaceSetForEachCallback.idl
@@ -28,8 +28,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    NoInterfaceObject,
-] interface HmacParams : Algorithm {
-    readonly attribute Algorithm hash;
+callback interface FontFaceSetForEachCallback {
+    [CallWith=ThisValue] boolean handleItem(FontFace fontFace, FontFace fontFaceAgain, FontFaceSet set);
+    boolean handleItem(FontFace fontFace, FontFace fontFaceAgain, FontFaceSet set);
 };
diff --git a/core/css/StyleSheet.idl b/core/css/StyleSheet.idl
index e3e13b3..1071475 100644
--- a/core/css/StyleSheet.idl
+++ b/core/css/StyleSheet.idl
@@ -21,7 +21,7 @@
 // Introduced in DOM Level 2:
 [
     Custom=Wrap,
-    GenerateVisitDOMWrapper=ownerNode,
+    SetWrapperReferenceFrom=ownerNode,
 ] interface StyleSheet {
     [TreatReturnedNullStringAs=Null] readonly attribute DOMString        type;
              attribute boolean          disabled;
diff --git a/core/css/StyleSheetList.idl b/core/css/StyleSheetList.idl
index 7341728..104a387 100644
--- a/core/css/StyleSheetList.idl
+++ b/core/css/StyleSheetList.idl
@@ -20,10 +20,9 @@
 
 // Introduced in DOM Level 2:
 [
-    GenerateVisitDOMWrapper=document,
+    SetWrapperReferenceFrom=document,
 ] interface StyleSheetList {
-    readonly attribute unsigned long    length;
-    getter StyleSheet         item(unsigned long index);
-    [ImplementedAs=anonymousNamedGetter, NotEnumerable] getter CSSStyleSheet (DOMString name);
+    readonly attribute unsigned long length;
+    getter StyleSheet item(unsigned long index);
+    [NotEnumerable] getter CSSStyleSheet (DOMString name);
 };
-
diff --git a/core/css/WebKitCSSFilterValue.idl b/core/css/WebKitCSSFilterValue.idl
index db2fb1d..dd9aff4 100644
--- a/core/css/WebKitCSSFilterValue.idl
+++ b/core/css/WebKitCSSFilterValue.idl
@@ -25,7 +25,7 @@
 
 [
     DoNotCheckConstants,
-    ImplementedAs=CSSFilterValue
+    ImplementedAs=CSSFilterValue,
 ] interface WebKitCSSFilterValue : CSSValueList {
 
     // OperationTypes
@@ -44,5 +44,5 @@
     const unsigned short CSS_FILTER_CUSTOM = 12;
 
     readonly attribute unsigned short operationType;
-    [ImplementedAs=item] getter CSSValue(unsigned long index);
+    [ImplementedAs=item] getter CSSValue (unsigned long index);
 };
diff --git a/core/css/WebKitCSSMixFunctionValue.idl b/core/css/WebKitCSSMixFunctionValue.idl
deleted file mode 100644
index 57f3125..0000000
--- a/core/css/WebKitCSSMixFunctionValue.idl
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2012 Adobe Systems Incorporated. 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 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
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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.
- */
-
-[
-    ImplementedAs=CSSMixFunctionValue
-] interface WebKitCSSMixFunctionValue : CSSValueList {
-};
-
diff --git a/core/css/WebKitCSSRegionRule.idl b/core/css/WebKitCSSRegionRule.idl
deleted file mode 100644
index 6811344..0000000
--- a/core/css/WebKitCSSRegionRule.idl
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2011 Adobe Systems Incorporated. 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 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
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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.
- */
-
-[
-    RuntimeEnabled=CSSRegions,
-    ImplementedAs=CSSRegionRule
-] interface WebKitCSSRegionRule : CSSRule {
-    readonly attribute CSSRuleList cssRules;
-};
-
diff --git a/core/css/WebKitCSSTransformValue.idl b/core/css/WebKitCSSTransformValue.idl
index 836bcc6..a17e482 100644
--- a/core/css/WebKitCSSTransformValue.idl
+++ b/core/css/WebKitCSSTransformValue.idl
@@ -28,7 +28,7 @@
 
 [
     DoNotCheckConstants,
-    ImplementedAs=CSSTransformValue
+    ImplementedAs=CSSTransformValue,
 ] interface WebKitCSSTransformValue : CSSValueList {
 
     // OperationTypes
@@ -56,6 +56,6 @@
     const unsigned short CSS_MATRIX3D    = 21;
 
     readonly attribute unsigned short operationType;
-    [ImplementedAs=item] getter CSSValue(unsigned long index);
+    [ImplementedAs=item] getter CSSValue (unsigned long index);
 };
 
diff --git a/core/dom/Attr.idl b/core/dom/Attr.idl
index 00d9205..2403170 100644
--- a/core/dom/Attr.idl
+++ b/core/dom/Attr.idl
@@ -24,21 +24,13 @@
 
     [TreatReturnedNullStringAs=Null] readonly attribute DOMString name;
 
-    [MeasureAs=AttributeSpecified] readonly attribute boolean specified;
+    [DeprecateAs=AttributeSpecified] readonly attribute boolean specified;
 
     [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, RaisesException=Setter, CustomElementCallbacks] attribute DOMString value;
 
-    // DOM Level 2
-
-    [MeasureAs=AttributeOwnerElement] readonly attribute Element ownerElement;
-
-    // DOM Level 3
-
-    [MeasureAs=AttributeIsId] readonly attribute boolean isId;
-
     // DOM 4
 
-    [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, RaisesException=Setter] attribute DOMString prefix;
+    [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString prefix;
     [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString namespaceURI;
     [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString localName;
 };
diff --git a/core/dom/ChildNode.idl b/core/dom/ChildNode.idl
index 21441f6..f4a8ba8 100644
--- a/core/dom/ChildNode.idl
+++ b/core/dom/ChildNode.idl
@@ -21,8 +21,7 @@
  */
 
 [
-    NoInterfaceObject,
-    LegacyImplementedInBaseClass
+    NoInterfaceObject
 ] interface ChildNode {
     [PerWorldBindings] readonly attribute Element previousElementSibling;
     [PerWorldBindings] readonly attribute Element nextElementSibling;
diff --git a/core/dom/DOMImplementation.idl b/core/dom/DOMImplementation.idl
index 7630c5e..7f31def 100644
--- a/core/dom/DOMImplementation.idl
+++ b/core/dom/DOMImplementation.idl
@@ -19,11 +19,12 @@
  */
 
 [
-    GenerateVisitDOMWrapper=document,
+    SetWrapperReferenceFrom=document,
 ] interface DOMImplementation {
 
     // DOM Level 1
 
+    [ImplementedAs=hasFeatureForBindings, MeasureAs=DOMImplementationHasFeature]
     boolean hasFeature(DOMString feature, [TreatNullAs=NullString] DOMString version);
 
     // DOM Level 2
@@ -31,13 +32,13 @@
     [RaisesException] DocumentType createDocumentType(DOMString qualifiedName,
                                                       DOMString publicId,
                                                       DOMString systemId);
-    [RaisesException] Document createDocument([TreatNullAs=NullString] DOMString namespaceURI,
-                                              [TreatNullAs=NullString] DOMString qualifiedName,
-                                              [Default=Undefined] optional DocumentType doctype);
+    [RaisesException] XMLDocument createDocument([TreatNullAs=NullString] DOMString namespaceURI,
+                                                 [TreatNullAs=NullString] DOMString qualifiedName,
+                                                 [Default=Undefined] optional DocumentType doctype);
 
     // DOMImplementationCSS interface from DOM Level 2 CSS
 
-    [MeasureAs=DOMImplementationCreateCSSStyleSheet]
+    [DeprecateAs=DOMImplementationCreateCSSStyleSheet]
     CSSStyleSheet createCSSStyleSheet([Default=Undefined] optional DOMString title,
                                       [Default=Undefined] optional DOMString media);
 
diff --git a/core/dom/DOMSettableTokenList.idl b/core/dom/DOMSettableTokenList.idl
index 18142d0..e02dd69 100644
--- a/core/dom/DOMSettableTokenList.idl
+++ b/core/dom/DOMSettableTokenList.idl
@@ -23,7 +23,7 @@
  */
 
 interface DOMSettableTokenList : DOMTokenList {
-    [TreatReturnedNullStringAs=Null, ImplementedAs=item] getter DOMString(unsigned long index);
+    [TreatReturnedNullStringAs=Null, ImplementedAs=item] getter DOMString (unsigned long index);
     attribute DOMString value;
 };
 
diff --git a/core/dom/DOMStringMap.idl b/core/dom/DOMStringMap.idl
index fcbbf89..b3590a9 100644
--- a/core/dom/DOMStringMap.idl
+++ b/core/dom/DOMStringMap.idl
@@ -24,13 +24,14 @@
  */
 
 [
-    GenerateVisitDOMWrapper=element,
+    OverrideBuiltins,
+    SetWrapperReferenceFrom=element,
 ] interface DOMStringMap {
-    [ImplementedAs=anonymousIndexedGetter, NotEnumerable] getter DOMString (unsigned long index);
-    [ImplementedAs=anonymousIndexedSetter, RaisesException, NotEnumerable] setter DOMString (unsigned long index, DOMString value);
-    [ImplementedAs=anonymousIndexedDeleter, RaisesException, NotEnumerable] deleter boolean (unsigned long index);
-    [ImplementedAs=item, OverrideBuiltins] getter DOMString (DOMString name);
-    [ImplementedAs=anonymousNamedSetter, RaisesException, OverrideBuiltins] setter DOMString (DOMString name, DOMString value);
-    [ImplementedAs=anonymousNamedDeleter, RaisesException] deleter boolean (DOMString name);
-};
+    [NotEnumerable] getter DOMString (unsigned long index);
+    [RaisesException] setter DOMString (unsigned long index, DOMString value);
+    deleter boolean (unsigned long index);
 
+    [ImplementedAs=item] getter DOMString (DOMString name);
+    [RaisesException] setter DOMString (DOMString name, DOMString value);
+    deleter boolean (DOMString name);
+};
diff --git a/core/dom/DOMTokenList.idl b/core/dom/DOMTokenList.idl
index 9830b7e..6072629 100644
--- a/core/dom/DOMTokenList.idl
+++ b/core/dom/DOMTokenList.idl
@@ -23,7 +23,7 @@
  */
 
 [
-    GenerateVisitDOMWrapper=element,
+    SetWrapperReferenceFrom=element,
 ] interface DOMTokenList {
     readonly attribute unsigned long length;
     [TreatReturnedNullStringAs=Null] getter DOMString item(unsigned long index);
diff --git a/core/dom/Document.idl b/core/dom/Document.idl
index 772a3ad..158f5bb 100644
--- a/core/dom/Document.idl
+++ b/core/dom/Document.idl
@@ -21,7 +21,7 @@
 callback CustomElementConstructor = Element ();
 
 [
-    SpecialWrapFor=HTMLDocument|SVGDocument
+    SpecialWrapFor=HTMLDocument|XMLDocument
 ] interface Document : Node {
 
     // DOM Level 1 Core
@@ -36,15 +36,13 @@
     [RaisesException, MeasureAs=DocumentCreateCDATASection] CDATASection createCDATASection([Default=Undefined] optional DOMString data); // Removed from DOM4.
     [RaisesException] ProcessingInstruction createProcessingInstruction(DOMString target, DOMString data);
     [RaisesException, MeasureAs=DocumentCreateAttribute] Attr createAttribute([Default=Undefined] optional DOMString name); // Removed from DOM4.
-    [PerWorldBindings] NodeList getElementsByTagName(DOMString localName);
+    [PerWorldBindings] HTMLCollection getElementsByTagName(DOMString localName);
 
     // Introduced in DOM Level 2:
 
     [CustomElementCallbacks, PerWorldBindings, ActivityLogging=ForIsolatedWorlds, RaisesException] Node importNode(Node node, optional boolean deep);
     [CustomElementCallbacks, PerWorldBindings, ActivityLogging=ForIsolatedWorlds, RaisesException] Element createElementNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString qualifiedName);
-    [RaisesException, MeasureAs=DocumentCreateAttributeNS] Attr createAttributeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
-                                                                                  [TreatNullAs=NullString,Default=Undefined] optional DOMString qualifiedName); // Removed from DOM4.
-    NodeList getElementsByTagNameNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString localName);
+    HTMLCollection getElementsByTagNameNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString localName);
     [PerWorldBindings] Element getElementById(DOMString elementId);
 
     // DOM Level 3 Core
@@ -57,11 +55,11 @@
 
     [RaisesException, CustomElementCallbacks] Node adoptNode(Node node);
 
-    [TreatReturnedNullStringAs=Null] readonly attribute DOMString documentURI;
+    [TreatReturnedNullStringAs=Null, ImplementedAs=url] readonly attribute DOMString documentURI;
 
     // DOM Level 2 Events (DocumentEvents interface)
 
-    [RaisesException] Event createEvent(DOMString eventType);
+    [RaisesException] Event createEvent(optional DOMString eventType);
 
     // DOM Level 2 Traversal and Range (DocumentRange interface)
 
@@ -78,7 +76,7 @@
 
     // DOM Level 2 Abstract Views (DocumentView interface)
 
-    [ImplementedAs=domWindow] readonly attribute Window defaultView;
+    [ImplementedAs=executingWindow] readonly attribute Window defaultView;
 
     // DOM Level 2 Style (DocumentStyle interface)
 
@@ -110,7 +108,7 @@
 
              [TreatNullAs=NullString, RaisesException] attribute DOMString cookie;
 
-             [RaisesException=Setter, CustomElementCallbacks] attribute HTMLElement body;
+             [RaisesException=Setter, CustomElementCallbacks, PerWorldBindings] attribute HTMLElement body;
 
     readonly attribute HTMLHeadElement head;
     readonly attribute HTMLCollection images;
@@ -146,7 +144,9 @@
     CanvasRenderingContext getCSSCanvasContext(DOMString contextId, DOMString name, long width, long height);
 
     // HTML 5
-    NodeList getElementsByClassName(DOMString classNames);
+    HTMLCollection getElementsByClassName(DOMString classNames);
+    readonly attribute Element activeElement;
+    boolean hasFocus();
 
     readonly attribute DOMString compatMode;
 
@@ -157,8 +157,6 @@
     void webkitExitPointerLock();
     readonly attribute Element webkitPointerLockElement;
 
-    [RuntimeEnabled=CSSRegions] WebKitNamedFlowCollection webkitGetNamedFlows();
-
     // Event handler attributes
     attribute EventHandler onbeforecopy;
     attribute EventHandler onbeforecut;
@@ -194,8 +192,7 @@
                                                [Default=Undefined] optional float webkitForce);
     [RuntimeEnabled=Touch] TouchList createTouchList(Touch... touches);
 
-    [DeprecateAs=PrefixedDocumentRegister, RuntimeEnabled=CustomElements, ImplementedAs=registerElement, CallWith=ScriptState, CustomElementCallbacks, RaisesException] CustomElementConstructor webkitRegister(DOMString name, optional Dictionary options);
-    [RuntimeEnabled=CustomElements, ImplementedAs=registerElement, CallWith=ScriptState, CustomElementCallbacks, RaisesException] CustomElementConstructor register(DOMString name, optional Dictionary options);
+    [CallWith=ScriptState, CustomElementCallbacks, RaisesException] CustomElementConstructor registerElement(DOMString name, optional Dictionary options);
     [CustomElementCallbacks, PerWorldBindings, ActivityLogging=ForIsolatedWorlds, RaisesException] Element createElement(DOMString localName, [TreatNullAs=NullString] DOMString typeExtension);
     [CustomElementCallbacks, PerWorldBindings, ActivityLogging=ForIsolatedWorlds, RaisesException] Element createElementNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString qualifiedName,
                             [TreatNullAs=NullString] DOMString typeExtension);
@@ -210,11 +207,9 @@
     [MeasureAs=PrefixedPageVisibility, ImplementedAs=visibilityState] readonly attribute DOMString webkitVisibilityState;
     [MeasureAs=PrefixedPageVisibility, ImplementedAs=hidden] readonly attribute boolean webkitHidden;
 
-    // Security Policy API: http://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#script-interfaces
-    [RuntimeEnabled=ExperimentalContentSecurityPolicyFeatures] readonly attribute SecurityPolicy securityPolicy;
-
     readonly attribute HTMLScriptElement currentScript;
 };
 
 Document implements GlobalEventHandlers;
 Document implements ParentNode;
+
diff --git a/core/dom/DocumentFullscreen.idl b/core/dom/DocumentFullscreen.idl
index 561ad80..917d481 100644
--- a/core/dom/DocumentFullscreen.idl
+++ b/core/dom/DocumentFullscreen.idl
@@ -18,15 +18,18 @@
  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  * Boston, MA 02110-1301, USA.
  */
-partial interface Document {
+
+[
+    RuntimeEnabled=Fullscreen,
+] partial interface Document {
     // Mozilla version
-    [RuntimeEnabled=Fullscreen] readonly attribute boolean webkitIsFullScreen;
-    [RuntimeEnabled=Fullscreen] readonly attribute boolean webkitFullScreenKeyboardInputAllowed;
-    [RuntimeEnabled=Fullscreen] readonly attribute Element webkitCurrentFullScreenElement;
-    [RuntimeEnabled=Fullscreen] void webkitCancelFullScreen();
+    readonly attribute boolean webkitIsFullScreen;
+    readonly attribute boolean webkitFullScreenKeyboardInputAllowed;
+    readonly attribute Element webkitCurrentFullScreenElement;
+    void webkitCancelFullScreen();
 
     // W3C version
-    [RuntimeEnabled=Fullscreen] readonly attribute boolean webkitFullscreenEnabled;
-    [RuntimeEnabled=Fullscreen] readonly attribute Element webkitFullscreenElement;
-    [RuntimeEnabled=Fullscreen] void webkitExitFullscreen();
+    readonly attribute boolean webkitFullscreenEnabled;
+    readonly attribute Element webkitFullscreenElement;
+    void webkitExitFullscreen();
 };
diff --git a/core/dom/DocumentType.idl b/core/dom/DocumentType.idl
index 510240a..330aa72 100644
--- a/core/dom/DocumentType.idl
+++ b/core/dom/DocumentType.idl
@@ -22,8 +22,6 @@
     // DOM Level 1
 
     readonly attribute DOMString name;
-    [MeasureAs=DocumentTypeEntities] readonly attribute NamedNodeMap entities; // Removed from DOM4.
-    [MeasureAs=DocumentTypeNotations] readonly attribute NamedNodeMap notations; // Removed from DOM4.
 
     // DOM Level 2
 
diff --git a/core/dom/Element.idl b/core/dom/Element.idl
index ac50038..a715874 100644
--- a/core/dom/Element.idl
+++ b/core/dom/Element.idl
@@ -32,7 +32,7 @@
     [MeasureAs=ElementGetAttributeNode] Attr getAttributeNode([Default=Undefined] optional DOMString name); // Removed from DOM4.
     [RaisesException, CustomElementCallbacks, MeasureAs=ElementSetAttributeNode] Attr setAttributeNode([Default=Undefined, StrictTypeChecking] optional Attr newAttr); // Removed from DOM4.
     [RaisesException, CustomElementCallbacks, MeasureAs=ElementRemoveAttributeNode] Attr removeAttributeNode([Default=Undefined, StrictTypeChecking] optional Attr oldAttr); // Removed from DOM4.
-    [PerWorldBindings] NodeList getElementsByTagName(DOMString name);
+    [PerWorldBindings] HTMLCollection getElementsByTagName(DOMString name);
 
     [PerWorldBindings] readonly attribute NamedNodeMap     attributes;
     [MeasureAs=HasAttributes] boolean hasAttributes();
@@ -42,34 +42,40 @@
     DOMString getAttributeNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString localName);
     [RaisesException, CustomElementCallbacks] void setAttributeNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString qualifiedName, DOMString value);
     [CustomElementCallbacks] void removeAttributeNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString localName);
-    NodeList getElementsByTagNameNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString localName);
+    HTMLCollection getElementsByTagNameNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString localName);
     [MeasureAs=ElementGetAttributeNodeNS] Attr getAttributeNodeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                                                   [Default=Undefined] optional DOMString localName); // Removed from DOM4.
-    [RaisesException, CustomElementCallbacks, MeasureAs=ElementSetAttributeNodeNS] Attr setAttributeNodeNS([Default=Undefined, StrictTypeChecking] optional Attr newAttr); // Removed from DOM4.
     boolean hasAttribute(DOMString name);
     boolean hasAttributeNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString localName);
 
     [PerWorldBindings] readonly attribute CSSStyleDeclaration style;
 
     // DOM4
-    [Reflect] attribute DOMString id;
+    [Reflect, PerWorldBindings] attribute DOMString id;
     [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString namespaceURI;
     [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, RaisesException=Setter] attribute DOMString prefix;
     [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString localName;
 
+    [RaisesException] boolean matches(DOMString selectors);
+
     // Common extensions
 
     [PerWorldBindings] readonly attribute long offsetLeft;
     [PerWorldBindings] readonly attribute long offsetTop;
     [PerWorldBindings] readonly attribute long offsetWidth;
     [PerWorldBindings] readonly attribute long offsetHeight;
-    [ImplementedAs=bindingsOffsetParent, PerWorldBindings] readonly attribute Element offsetParent;
+    [ImplementedAs=offsetParentForBindings, PerWorldBindings] readonly attribute Element offsetParent;
     [PerWorldBindings] readonly attribute long clientLeft;
     [PerWorldBindings] readonly attribute long clientTop;
     [PerWorldBindings] readonly attribute long clientWidth;
     [PerWorldBindings] readonly attribute long clientHeight;
-    [PerWorldBindings] attribute long scrollLeft;
-    [PerWorldBindings] attribute long scrollTop;
+
+    // FIXME: should be:
+    // [PerWorldBindings] attribute (Dictionary or long) scrollLeft;
+    // [PerWorldBindings] attribute (Dictionary or long) scrollTop;
+    // http://crbug.com/240176
+    [PerWorldBindings, Custom=Setter] attribute long scrollLeft;
+    [PerWorldBindings, Custom=Setter] attribute long scrollTop;
     [PerWorldBindings] readonly attribute long scrollWidth;
     [PerWorldBindings] readonly attribute long scrollHeight;
 
@@ -84,9 +90,12 @@
     void scrollByPages([Default=Undefined] optional long pages);
 
     // HTML 5
-    NodeList getElementsByClassName(DOMString classNames);
+    HTMLCollection getElementsByClassName(DOMString classNames);
     [TreatNullAs=NullString, CustomElementCallbacks, PerWorldBindings, ActivityLogging=SetterForIsolatedWorlds, RaisesException=Setter] attribute DOMString innerHTML;
     [TreatNullAs=NullString, CustomElementCallbacks, RaisesException=Setter] attribute DOMString outerHTML;
+
+    [RaisesException, CustomElementCallbacks, MeasureAs=InsertAdjacentElement] Element insertAdjacentElement(DOMString where, Element element);
+    [RaisesException, MeasureAs=InsertAdjacentText] void insertAdjacentText(DOMString where, DOMString text);
     [CustomElementCallbacks, RaisesException] void insertAdjacentHTML(DOMString where, DOMString html);
 
     [Reflect=class, PerWorldBindings] attribute DOMString className;
@@ -99,16 +108,14 @@
     [RaisesException] NodeList querySelectorAll(DOMString selectors);
 
     // WebKit extension
-    [RaisesException, MeasureAs=ElementPrefixedMatchesSelector] boolean webkitMatchesSelector([Default=Undefined] optional DOMString selectors);
+    [RaisesException, ImplementedAs=matches, MeasureAs=ElementPrefixedMatchesSelector] boolean webkitMatchesSelector(DOMString selectors);
 
     // Shadow DOM API
-    [RuntimeEnabled=ShadowDOM, Reflect, TreatNullAs=NullString, PerWorldBindings] attribute DOMString pseudo;
     [RuntimeEnabled=ShadowDOM, RaisesException] ShadowRoot createShadowRoot();
     [RuntimeEnabled=ShadowDOM, PerWorldBindings] readonly attribute ShadowRoot shadowRoot;
     [RuntimeEnabled=ShadowDOM, PerWorldBindings] NodeList getDestinationInsertionPoints();
 
     // To-be-deprecated prefixed Shadow DOM API
-    [Reflect=pseudo, TreatNullAs=NullString, ImplementedAs=pseudo, PerWorldBindings, MeasureAs=ShadowDOMPrefixedPseudo] attribute DOMString webkitPseudo;
     [ImplementedAs=createShadowRoot, RaisesException, MeasureAs=ShadowDOMPrefixedCreateShadowRoot] ShadowRoot webkitCreateShadowRoot();
     [ImplementedAs=shadowRoot, PerWorldBindings, MeasureAs=ShadowDOMPrefixedShadowRoot] readonly attribute ShadowRoot webkitShadowRoot;
 
@@ -125,10 +132,6 @@
 
     void webkitRequestPointerLock();
 
-    // CSS Regions API
-    [RuntimeEnabled=CSSRegions, PerWorldBindings] readonly attribute DOMString webkitRegionOverset;
-    [RuntimeEnabled=CSSRegions] sequence<Range> webkitGetRegionFlowRanges();
-
     // Event handler attributes
     attribute EventHandler onbeforecopy;
     attribute EventHandler onbeforecut;
diff --git a/core/dom/Entity.idl b/core/dom/Entity.idl
deleted file mode 100644
index 151572f..0000000
--- a/core/dom/Entity.idl
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2006 Apple Computer, Inc.
- *
- * 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.
- */
-
-// FIXME: Remove Entity interface. We never create Entity objects. We have this
-// interface to provide window.Entity.
-interface Entity : Node {
-    // We don't need to provide any attributes.
-};
-
diff --git a/core/dom/GlobalEventHandlers.idl b/core/dom/GlobalEventHandlers.idl
index 8800382..5a65c5b 100644
--- a/core/dom/GlobalEventHandlers.idl
+++ b/core/dom/GlobalEventHandlers.idl
@@ -77,6 +77,7 @@
     attribute EventHandler onprogress;
     attribute EventHandler onratechange;
     attribute EventHandler onreset;
+    attribute EventHandler onresize;
     attribute EventHandler onscroll;
     attribute EventHandler onseeked;
     attribute EventHandler onseeking;
@@ -87,6 +88,7 @@
     attribute EventHandler onsubmit;
     attribute EventHandler onsuspend;
     attribute EventHandler ontimeupdate;
+    //attribute EventHandler ontoggle;
     attribute EventHandler onvolumechange;
     attribute EventHandler onwaiting;
 };
diff --git a/core/dom/MessagePort.idl b/core/dom/MessagePort.idl
index 17ae449..14845be 100644
--- a/core/dom/MessagePort.idl
+++ b/core/dom/MessagePort.idl
@@ -28,7 +28,7 @@
 [
     ActiveDOMObject
 ] interface MessagePort : EventTarget {
-    [Custom, RaisesException] void postMessage(any message, optional Array messagePorts);
+    [Custom, RaisesException] void postMessage(any message, optional MessagePort[] messagePorts);
 
     void start();
     void close();
diff --git a/core/dom/MutationObserver.idl b/core/dom/MutationObserver.idl
index d16bb4f..05acb2a 100644
--- a/core/dom/MutationObserver.idl
+++ b/core/dom/MutationObserver.idl
@@ -30,6 +30,7 @@
 
 [
     CustomConstructor(MutationCallback callback),
+    Custom=VisitDOMWrapper
 ] interface MutationObserver {
     [RaisesException] void observe(Node target, Dictionary options);
     sequence<MutationRecord> takeRecords();
diff --git a/core/dom/NamedNodeMap.idl b/core/dom/NamedNodeMap.idl
index 0f51574..783611a 100644
--- a/core/dom/NamedNodeMap.idl
+++ b/core/dom/NamedNodeMap.idl
@@ -19,7 +19,7 @@
  */
 
 [
-    GenerateVisitDOMWrapper=element,
+    SetWrapperReferenceFrom=element,
 ] interface NamedNodeMap {
 
     Node getNamedItem([Default=Undefined] optional DOMString name);
diff --git a/core/dom/Node.idl b/core/dom/Node.idl
index c67bbeb..690190d 100644
--- a/core/dom/Node.idl
+++ b/core/dom/Node.idl
@@ -60,11 +60,7 @@
     [CustomElementCallbacks] void normalize();
 
     // Introduced in DOM Level 2:
-    [MeasureAs=NodeIsSupported] boolean isSupported([Default=Undefined] optional DOMString feature,
-                                                    [TreatNullAs=NullString,Default=Undefined] optional DOMString version); // Removed in DOM4.
-
     [TreatReturnedNullStringAs=Null, PerWorldBindings, MeasureAs=NodeNamespaceURI] readonly attribute DOMString namespaceURI; // Moved to Element and Attr in DOM4.
-    [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, RaisesException=Setter, MeasureAs=NodePrefix] attribute DOMString prefix; // Moved to Element and Attr in DOM4.
     [TreatReturnedNullStringAs=Null, PerWorldBindings, MeasureAs=NodeLocalName] readonly attribute DOMString localName; // Moved to Element and Attr in DOM4.
 
     // Introduced in DOM Level 3:
@@ -89,7 +85,7 @@
     unsigned short compareDocumentPosition(Node other);
 
     // Introduced in DOM4
-    [ImplementedAs=bindingsContains] boolean contains(Node other);
+    [ImplementedAs=containsIncludingShadowDOM] boolean contains(Node other);
 
     // IE extensions
     [PerWorldBindings] readonly attribute Element parentElement;
diff --git a/core/dom/NodeIterator.idl b/core/dom/NodeIterator.idl
index 9c636c4..c47c809 100644
--- a/core/dom/NodeIterator.idl
+++ b/core/dom/NodeIterator.idl
@@ -20,7 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
-    SetReference(NodeFilter filter)
+    SetWrapperReferenceTo(NodeFilter filter)
 ] interface NodeIterator {
     readonly attribute Node root;
     readonly attribute unsigned long whatToShow;
diff --git a/core/dom/NodeList.idl b/core/dom/NodeList.idl
index 19ccec6..b6f81a1 100644
--- a/core/dom/NodeList.idl
+++ b/core/dom/NodeList.idl
@@ -19,14 +19,9 @@
  */
 
 [
-    Custom=VisitDOMWrapper,
     DependentLifetime,
+    SetWrapperReferenceFrom=virtualOwnerNode,
 ] interface NodeList {
-
     getter Node item(unsigned long index);
-    [ImplementedAs=anonymousNamedGetter, OverrideBuiltins, NotEnumerable] getter (Node or unsigned long) (DOMString name);
-
     readonly attribute unsigned long length;
-
 };
-
diff --git a/core/dom/TreeWalker.idl b/core/dom/TreeWalker.idl
index 6a92eb0..eecb1ed 100644
--- a/core/dom/TreeWalker.idl
+++ b/core/dom/TreeWalker.idl
@@ -20,7 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
-    SetReference(NodeFilter filter)
+    SetWrapperReferenceTo(NodeFilter filter)
 ] interface TreeWalker {
     readonly attribute Node root;
     readonly attribute unsigned long whatToShow;
diff --git a/core/dom/URL.idl b/core/dom/URL.idl
index 30c96c6..67dbb1e 100644
--- a/core/dom/URL.idl
+++ b/core/dom/URL.idl
@@ -36,5 +36,4 @@
     [CallWith=ExecutionContext] static void revokeObjectURL(DOMString url);
 };
 
-// force rebuild: crbug.com/307023
 URL implements URLUtils;
diff --git a/core/dom/WebKitNamedFlow.idl b/core/dom/WebKitNamedFlow.idl
deleted file mode 100644
index 800e26d..0000000
--- a/core/dom/WebKitNamedFlow.idl
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2011 Adobe Systems Incorporated. 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 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
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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.
- */
-
-[
-    GenerateVisitDOMWrapper=ownerNode,
-    ImplementedAs=NamedFlow,
-    NoInterfaceObject,
-    RuntimeEnabled=CSSRegions,
-] interface WebKitNamedFlow : EventTarget {
-    readonly attribute DOMString name;
-    readonly attribute boolean overset;
-    readonly attribute long firstEmptyRegionIndex;
-    NodeList getRegionsByContent(Node contentNode);
-    NodeList getRegions();
-    NodeList getContent();
-};
diff --git a/core/dom/WebKitNamedFlowCollection.idl b/core/dom/WebKitNamedFlowCollection.idl
deleted file mode 100644
index 4744e06..0000000
--- a/core/dom/WebKitNamedFlowCollection.idl
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2012 Adobe Systems Incorporated. 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 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
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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,
-    RuntimeEnabled=CSSRegions,
-    ImplementedAs=DOMNamedFlowCollection
-] interface WebKitNamedFlowCollection {
-    readonly attribute unsigned long length;
-    getter WebKitNamedFlow item(unsigned long index);
-    WebKitNamedFlow namedItem(DOMString name);
-    [NotEnumerable, ImplementedAs=namedItem] getter WebKitNamedFlow (DOMString name);
-};
diff --git a/core/svg/SVGAnimateColorElement.idl b/core/dom/XMLDocument.idl
similarity index 73%
rename from core/svg/SVGAnimateColorElement.idl
rename to core/dom/XMLDocument.idl
index 69a58eb..a41fb18 100644
--- a/core/svg/SVGAnimateColorElement.idl
+++ b/core/dom/XMLDocument.idl
@@ -1,19 +1,19 @@
 /*
- * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 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 met:
- * 1. Redistributions of source code must retain the above copyright
+ *  * 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
+ *  * 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
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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
+ * 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
@@ -23,6 +23,5 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGAnimateColorElement : SVGAnimationElement {
+interface XMLDocument : Document {
 };
-
diff --git a/core/dom/shadow/ShadowRoot.idl b/core/dom/shadow/ShadowRoot.idl
index c84d177..241c2f6 100644
--- a/core/dom/shadow/ShadowRoot.idl
+++ b/core/dom/shadow/ShadowRoot.idl
@@ -28,19 +28,19 @@
     NoInterfaceObject
 ] interface ShadowRoot : DocumentFragment {
     readonly attribute Element activeElement;
-    attribute boolean applyAuthorStyles;
+    [DeprecateAs=ShadowRootApplyAuthorStyles] attribute boolean applyAuthorStyles;
     attribute boolean resetStyleInheritance;
-    [RuntimeEnabled=ShadowDOM, ImplementedAs=bindingsOlderShadowRoot] readonly attribute ShadowRoot olderShadowRoot;
+    [RuntimeEnabled=ShadowDOM, ImplementedAs=olderShadowRootForBindings] readonly attribute ShadowRoot olderShadowRoot;
 
     [TreatNullAs=NullString, CustomElementCallbacks, PerWorldBindings, ActivityLogging=SetterForIsolatedWorlds, RaisesException=Setter] attribute DOMString innerHTML;
 
     [RaisesException] Node cloneNode([Default=Undefined] optional boolean deep);
     Selection getSelection();
     Element getElementById([Default=Undefined] optional DOMString elementId);
-    NodeList getElementsByClassName([Default=Undefined] optional DOMString className);
-    NodeList getElementsByTagName([Default=Undefined] optional DOMString tagName);
-    NodeList getElementsByTagNameNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
-                                    [Default=Undefined] optional DOMString localName);
+    HTMLCollection getElementsByClassName([Default=Undefined] optional DOMString className);
+    HTMLCollection getElementsByTagName([Default=Undefined] optional DOMString tagName);
+    HTMLCollection getElementsByTagNameNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
+                                          [Default=Undefined] optional DOMString localName);
 
     Element elementFromPoint([Default=Undefined] optional long x,
                              [Default=Undefined] optional long y);
diff --git a/core/events/BeforeLoadEvent.idl b/core/events/BeforeLoadEvent.idl
index 6f8eca6..b8758d7 100644
--- a/core/events/BeforeLoadEvent.idl
+++ b/core/events/BeforeLoadEvent.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    RuntimeEnabled=BeforeLoad,
     EventConstructor,
 ] interface BeforeLoadEvent : Event {
     [InitializedByEventConstructor] readonly attribute DOMString url;
diff --git a/core/events/CompositionEvent.idl b/core/events/CompositionEvent.idl
index 4e14a95..8b1d740 100644
--- a/core/events/CompositionEvent.idl
+++ b/core/events/CompositionEvent.idl
@@ -29,6 +29,10 @@
 
     [InitializedByEventConstructor] readonly attribute DOMString data;
 
+    [RuntimeEnabled=IMEAPI] readonly attribute long activeSegmentStart;
+    [RuntimeEnabled=IMEAPI] readonly attribute long activeSegmentEnd;
+    [RuntimeEnabled=IMEAPI] sequence<unsigned long> getSegments();
+
     void initCompositionEvent([Default=Undefined] optional DOMString typeArg,
                               [Default=Undefined] optional boolean canBubbleArg,
                               [Default=Undefined] optional boolean cancelableArg,
@@ -36,4 +40,3 @@
                               [Default=Undefined] optional DOMString dataArg);
 
 };
-
diff --git a/core/events/MessageEvent.idl b/core/events/MessageEvent.idl
index c482b08..b830e16 100644
--- a/core/events/MessageEvent.idl
+++ b/core/events/MessageEvent.idl
@@ -29,28 +29,28 @@
     EventConstructor,
     GlobalContext=Window&WorkerGlobalScope,
     RaisesException=Constructor,
+    Custom=Wrap,
 ] interface MessageEvent : Event {
     [InitializedByEventConstructor] readonly attribute DOMString origin;
     [InitializedByEventConstructor] readonly attribute DOMString lastEventId;
     [InitializedByEventConstructor] readonly attribute EventTarget? source; // May be a Window or a MessagePort
     [InitializedByEventConstructor, Custom=Getter] readonly attribute any data;
     [InitializedByEventConstructor] readonly attribute MessagePort[] ports;
-    [Custom] void initMessageEvent([Default=Undefined] optional DOMString typeArg,
+    [Custom, MeasureAs=InitMessageEvent] 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);
+                                   [Default=Undefined] optional MessagePort[] messagePorts);
 
-    [Custom] void webkitInitMessageEvent([Default=Undefined] optional DOMString typeArg,
+    [Custom, MeasureAs=PrefixedInitMessageEvent] void webkitInitMessageEvent([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 transferables);
+                                         [Default=Undefined] optional MessagePort[] transferables);
 };
-
diff --git a/core/events/NavigatorEvents.idl b/core/events/NavigatorEvents.idl
index fe899fc..2b83961 100644
--- a/core/events/NavigatorEvents.idl
+++ b/core/events/NavigatorEvents.idl
@@ -29,6 +29,5 @@
  */
 
 partial interface Navigator {
-    [RuntimeEnabled=PointerEventsMaxTouchPoints]
-    readonly    attribute long    maxTouchPoints;
-};
\ No newline at end of file
+    [RuntimeEnabled=PointerEventsMaxTouchPoints] readonly attribute long maxTouchPoints;
+};
diff --git a/core/fileapi/File.idl b/core/fileapi/File.idl
index 2daf799..4640ad3 100644
--- a/core/fileapi/File.idl
+++ b/core/fileapi/File.idl
@@ -30,5 +30,5 @@
     readonly attribute DOMString name;
     [Custom=Getter, MeasureAs=FileGetLastModifiedDate] readonly attribute Date lastModifiedDate;
     [Custom=Getter, RuntimeEnabled=FileConstructor] readonly attribute long long lastModified;
-    [RuntimeEnabled=DirectoryUpload] readonly attribute DOMString webkitRelativePath;
+    readonly attribute DOMString webkitRelativePath;
 };
diff --git a/core/frame/Screen.idl b/core/frame/Screen.idl
index 184a863..8eeca83 100644
--- a/core/frame/Screen.idl
+++ b/core/frame/Screen.idl
@@ -27,7 +27,7 @@
  */
 
 
-interface Screen {
+interface Screen : EventTarget {
     readonly attribute unsigned long height;
     readonly attribute unsigned long width;
     readonly attribute unsigned long colorDepth;
diff --git a/core/frame/SecurityPolicy.idl b/core/frame/SecurityPolicy.idl
deleted file mode 100644
index f5651da..0000000
--- a/core/frame/SecurityPolicy.idl
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE 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
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. 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.
- */
-
-[
-    ImplementedAs=DOMSecurityPolicy
-] interface SecurityPolicy {
-    readonly attribute boolean allowsEval;
-    readonly attribute boolean allowsInlineScript;
-    readonly attribute boolean allowsInlineStyle;
-    readonly attribute boolean isActive;
-
-    readonly attribute DOMStringList reportURIs;
-
-    boolean allowsConnectionTo(DOMString url);
-    boolean allowsFontFrom(DOMString url);
-    boolean allowsFormAction(DOMString url);
-    boolean allowsFrameFrom(DOMString url);
-    boolean allowsImageFrom(DOMString url);
-    boolean allowsMediaFrom(DOMString url);
-    boolean allowsObjectFrom(DOMString url);
-    boolean allowsPluginType(DOMString type);
-    boolean allowsScriptFrom(DOMString url);
-    boolean allowsStyleFrom(DOMString url);
-};
diff --git a/core/frame/Window.idl b/core/frame/Window.idl
index 632e3a2..c418b52 100644
--- a/core/frame/Window.idl
+++ b/core/frame/Window.idl
@@ -65,10 +65,10 @@
                                        optional any dialogArgs,
                                        optional DOMString featureArgs);
 
-    void alert([Default=Undefined] optional DOMString message);
-    boolean confirm([Default=Undefined] optional DOMString message);
-    [TreatReturnedNullStringAs=Null] DOMString prompt([Default=Undefined] optional DOMString message,
-                                                [TreatNullAs=NullString, TreatUndefinedAs=NullString,Default=Undefined] optional DOMString defaultValue);
+    void alert([Default=NullString] optional DOMString message);
+    boolean confirm([Default=NullString] optional DOMString message);
+    [TreatReturnedNullStringAs=Null] DOMString prompt([Default=NullString] optional DOMString message,
+                                                      [Default=NullString] optional DOMString defaultValue);
 
     boolean find([Default=Undefined] optional DOMString string,
                  [Default=Undefined] optional boolean caseSensitive,
@@ -93,9 +93,17 @@
     readonly attribute long pageXOffset;
     readonly attribute long pageYOffset;
 
-    void scrollBy(long x, long y);
-    void scrollTo(long x, long y);
-    void scroll(long x, long y);
+    // FIXME: should be:
+    // void scrollBy(long x, long y);
+    // [RuntimeEnabled=CSSOMSmoothScroll, RaisesException] void scrollBy(long x, long y, optional Dictionary scrollOptions);
+    // void scrollTo(long x, long y);
+    // [RuntimeEnabled=CSSOMSmoothScroll, RaisesException] void scrollTo(long x, long y, optional Dictionary scrollOptions);
+    // void scroll(long x, long y);
+    // [RuntimeEnabled=CSSOMSmoothScroll, RaisesException] void scroll(long x, long y, optional Dictionary scrollOptions);
+    // http://crbug.com/339000
+    [RaisesException] void scrollBy(long x, long y, optional Dictionary scrollOptions);
+    [RaisesException] void scrollTo(long x, long y, optional Dictionary scrollOptions);
+    [RaisesException] void scroll(long x, long y, optional Dictionary scrollOptions);
     void moveBy([Default=Undefined] optional float x, [Default=Undefined] optional float y); // FIXME: this should take longs not floats.
     void moveTo([Default=Undefined] optional float x, [Default=Undefined] optional float y); // FIXME: this should take longs not floats.
     void resizeBy([Default=Undefined] optional float x, [Default=Undefined] optional float y); // FIXME: this should take longs not floats.
@@ -153,12 +161,12 @@
     // This is the interface orientation in degrees. Some examples are:
     //  0 is straight up; -90 is when the device is rotated 90 clockwise;
     //  90 is when rotated counter clockwise.
-    [Conditional=ORIENTATION_EVENTS] readonly attribute long orientation;
+    [RuntimeEnabled=OrientationEvent] readonly attribute long orientation;
 
     [Replaceable] readonly attribute Console console;
 
     // cross-document messaging
-    [DoNotCheckSecurity, Custom, RaisesException] void postMessage(SerializedScriptValue message, DOMString targetOrigin, optional Array messagePorts);
+    [DoNotCheckSecurity, Custom, RaisesException] void postMessage(SerializedScriptValue message, DOMString targetOrigin, optional MessagePort[] messagePorts);
 
     [Replaceable] readonly attribute Performance performance;
 
@@ -176,7 +184,7 @@
     [RuntimeEnabled=CSSAnimationUnprefixed] attribute EventHandler onanimationstart;
     [RuntimeEnabled=DeviceMotion] attribute EventHandler ondevicemotion;
     [RuntimeEnabled=DeviceOrientation] attribute EventHandler ondeviceorientation;
-    [Conditional=ORIENTATION_EVENTS] attribute EventHandler onorientationchange;
+    [RuntimeEnabled=OrientationEvent] attribute EventHandler onorientationchange;
     attribute EventHandler onsearch;
     [RuntimeEnabled=Touch] attribute EventHandler ontouchcancel;
     [RuntimeEnabled=Touch] attribute EventHandler ontouchend;
@@ -195,9 +203,6 @@
     // Additional constructors.
     attribute TransitionEventConstructor WebKitTransitionEvent;
     [RuntimeEnabled=CSSAnimationUnprefixed] attribute WebKitAnimationEventConstructor AnimationEvent;
-    // Mozilla has a separate XMLDocument object for XML documents.
-    // We just use Document for this.
-    attribute DocumentConstructor XMLDocument;
     attribute URLConstructor webkitURL; // FIXME: deprecate this.
     attribute MutationObserverConstructor WebKitMutationObserver; // FIXME: Add metrics to determine when we can remove this.
     attribute IDBCursorConstructor webkitIDBCursor;
@@ -232,7 +237,7 @@
     // window.toString() requires special handling in V8
     [DoNotCheckSignature, DoNotCheckSecurity, Custom, NotEnumerable] DOMString toString();
 
-    [ImplementedAs=anonymousIndexedGetter, NotEnumerable] getter Window(unsigned long index);
+    [NotEnumerable] getter Window (unsigned long index);
     [Custom, NotEnumerable] getter Window (DOMString name);
 };
 
diff --git a/core/frame/WindowEventHandlers.idl b/core/frame/WindowEventHandlers.idl
index b7634ae..c268557 100644
--- a/core/frame/WindowEventHandlers.idl
+++ b/core/frame/WindowEventHandlers.idl
@@ -41,7 +41,6 @@
     attribute EventHandler onpagehide;
     attribute EventHandler onpageshow;
     attribute EventHandler onpopstate;
-    attribute EventHandler onresize;
     attribute EventHandler onstorage;
     attribute EventHandler onunload;
 };
diff --git a/core/html/HTMLAllCollection.idl b/core/html/HTMLAllCollection.idl
index 3508f8b..5ca9c6b 100644
--- a/core/html/HTMLAllCollection.idl
+++ b/core/html/HTMLAllCollection.idl
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 Samsung Electronics. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -23,17 +24,15 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+// FIXME: This interface should inherit HTMLCollection.
 [
     Custom=LegacyCallAsFunction,
     DependentLifetime,
-    GenerateVisitDOMWrapper=ownerNode,
+    SetWrapperReferenceFrom=ownerNode,
 ] interface HTMLAllCollection {
     readonly attribute unsigned long length;
-    [ImplementedAs=item] getter Node (unsigned long index);
-    [Custom] Node item([Default=Undefined] optional unsigned long index);
-    [ImplementedAs=anonymousNamedGetter, NotEnumerable] getter (NodeList or Node)(DOMString name);
-    [Custom] Node namedItem(DOMString name);
-    // FIXME: This should return an HTMLAllCollection.
-    [MeasureAs=DocumentAllTags] NodeList tags(DOMString name);
+    [ImplementedAs=item] getter Element (unsigned long index);
+    [Custom] Element item([Default=Undefined] optional unsigned long index);
+    // FIXME: This should return an (HTMLCollection or Element) union.
+    [ImplementedAs=namedGetter] getter (NodeList or Element) namedItem(DOMString name);
 };
-
diff --git a/core/html/HTMLAnchorElement.idl b/core/html/HTMLAnchorElement.idl
index 525c307..57519bd 100644
--- a/core/html/HTMLAnchorElement.idl
+++ b/core/html/HTMLAnchorElement.idl
@@ -34,5 +34,4 @@
     readonly attribute DOMString text;
 };
 
-// force rebuild: crbug.com/307023
 HTMLAnchorElement implements URLUtils;
diff --git a/core/html/HTMLAreaElement.idl b/core/html/HTMLAreaElement.idl
index 1ad7233..471e583 100644
--- a/core/html/HTMLAreaElement.idl
+++ b/core/html/HTMLAreaElement.idl
@@ -27,5 +27,4 @@
     [Reflect] attribute DOMString target;
 };
 
-// force rebuild: crbug.com/307023
 HTMLAreaElement implements URLUtils;
diff --git a/core/html/HTMLBodyElement.idl b/core/html/HTMLBodyElement.idl
index 139b34a..6f454c6 100644
--- a/core/html/HTMLBodyElement.idl
+++ b/core/html/HTMLBodyElement.idl
@@ -26,13 +26,14 @@
     [Reflect, TreatNullAs=NullString] attribute DOMString text;
     [Reflect, TreatNullAs=NullString] attribute DOMString vLink;
 
-    [Conditional=ORIENTATION_EVENTS] attribute EventHandler onorientationchange;
+    [RuntimeEnabled=OrientationEvent] attribute EventHandler onorientationchange;
 
     // Overrides of GlobalEventHandler attributes
     attribute EventHandler onblur;
     attribute EventHandler onerror;
     attribute EventHandler onfocus;
     attribute EventHandler onload;
+    attribute EventHandler onresize;
     attribute EventHandler onscroll;
 };
 
diff --git a/core/html/HTMLCollection.idl b/core/html/HTMLCollection.idl
index 0198742..337cfea 100644
--- a/core/html/HTMLCollection.idl
+++ b/core/html/HTMLCollection.idl
@@ -1,6 +1,7 @@
 /*
  * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
  * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2014 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
@@ -21,11 +22,10 @@
 [
     Custom=Wrap,
     DependentLifetime,
-    GenerateVisitDOMWrapper=ownerNode,
+    SetWrapperReferenceFrom=ownerNode,
 ] interface HTMLCollection {
     readonly attribute unsigned long length;
-    getter Node item([Default=Undefined] optional unsigned long index);
-    Node namedItem([Default=Undefined] optional DOMString name);
-    [NotEnumerable, ImplementedAs=namedItem] getter Node ([Default=Undefined] optional DOMString name);
+    getter Element item([Default=Undefined] optional unsigned long index);
+    getter Element namedItem(DOMString name);
 };
 
diff --git a/core/html/HTMLDataListElement.idl b/core/html/HTMLDataListElement.idl
index 93c8663..4dd3654 100644
--- a/core/html/HTMLDataListElement.idl
+++ b/core/html/HTMLDataListElement.idl
@@ -28,8 +28,6 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    RuntimeEnabled=DataListElement
-] interface HTMLDataListElement : HTMLElement {
+interface HTMLDataListElement : HTMLElement {
     readonly attribute HTMLCollection options;
 };
diff --git a/core/html/HTMLDocument.idl b/core/html/HTMLDocument.idl
index 84328c8..2b2eb03 100644
--- a/core/html/HTMLDocument.idl
+++ b/core/html/HTMLDocument.idl
@@ -45,9 +45,6 @@
     [TreatNullAs=NullString, CustomElementCallbacks] attribute DOMString designMode;
     readonly attribute DOMString compatMode;
 
-    readonly attribute Element activeElement;
-    boolean hasFocus();
-
     // Deprecated attributes
     [TreatNullAs=NullString, CustomElementCallbacks] attribute DOMString bgColor;
     [TreatNullAs=NullString, CustomElementCallbacks] attribute DOMString fgColor;
diff --git a/core/html/HTMLElement.idl b/core/html/HTMLElement.idl
index 5d06568..cfcab73 100644
--- a/core/html/HTMLElement.idl
+++ b/core/html/HTMLElement.idl
@@ -36,11 +36,6 @@
     [TreatNullAs=NullString, CustomElementCallbacks, RaisesException=Setter, MeasureAs=HTMLElementInnerText] attribute DOMString innerText;
     [TreatNullAs=NullString, CustomElementCallbacks, RaisesException=Setter, MeasureAs=HTMLElementOuterText] attribute DOMString outerText;
 
-    [RaisesException, CustomElementCallbacks, MeasureAs=InsertAdjacentElement] Element insertAdjacentElement([Default=Undefined] optional DOMString where,
-                                  [Default=Undefined] optional Element element);
-    [RaisesException, MeasureAs=InsertAdjacentText] void insertAdjacentText([Default=Undefined] optional DOMString where,
-                            [Default=Undefined] optional DOMString text);
-
     [RuntimeEnabled=IMEAPI] readonly attribute InputMethodContext inputMethodContext;
 
     [CustomElementCallbacks, RaisesException=Setter] attribute DOMString contentEditable;
@@ -52,3 +47,4 @@
 };
 
 HTMLElement implements GlobalEventHandlers;
+
diff --git a/core/html/HTMLEmbedElement.idl b/core/html/HTMLEmbedElement.idl
index 74524f3..ef32573 100644
--- a/core/html/HTMLEmbedElement.idl
+++ b/core/html/HTMLEmbedElement.idl
@@ -32,5 +32,5 @@
     [Custom, NotEnumerable] getter Node (DOMString name);
     [Custom] setter Node (DOMString name, Node value);
 
-    [CheckSecurity=Node, RaisesException] SVGDocument getSVGDocument();
+    [CheckSecurity=Node, RaisesException] Document getSVGDocument();
 };
diff --git a/core/html/HTMLFormControlsCollection.idl b/core/html/HTMLFormControlsCollection.idl
index f483a67..5ed779f 100644
--- a/core/html/HTMLFormControlsCollection.idl
+++ b/core/html/HTMLFormControlsCollection.idl
@@ -1,6 +1,7 @@
 /*
  * Copyright (C) 2006, 2007, 2012 Apple Inc. All rights reserved.
  * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2014 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,9 +21,8 @@
 
 [
     DependentLifetime,
-    GenerateVisitDOMWrapper=ownerNode,
+    SetWrapperReferenceFrom=ownerNode,
 ] interface HTMLFormControlsCollection : HTMLCollection {
-    [ImplementedAs=item] getter Node(unsigned long index);
-    [Custom] Node namedItem([Default=Undefined] optional DOMString name);
-    [ImplementedAs=namedGetter, NotEnumerable] getter (RadioNodeList or Node)(DOMString name);
+    [ImplementedAs=item] getter Node (unsigned long index);
+    [ImplementedAs=namedGetter] getter (RadioNodeList or Element) namedItem(DOMString name); // shadows inherited namedItem()
 };
diff --git a/core/html/HTMLFormElement.idl b/core/html/HTMLFormElement.idl
index 6ba5f41..912f73e 100644
--- a/core/html/HTMLFormElement.idl
+++ b/core/html/HTMLFormElement.idl
@@ -18,10 +18,12 @@
  * Boston, MA 02110-1301, USA.
  */
 
-interface HTMLFormElement : HTMLElement {
+[
+    OverrideBuiltins,
+] interface HTMLFormElement : HTMLElement {
     [Reflect=accept_charset] attribute DOMString acceptCharset;
     [Reflect, URL, PerWorldBindings, ActivityLogging=SetterForIsolatedWorlds] attribute DOMString action;
-    [Reflect] attribute DOMString autocomplete;
+    [Reflect, ReflectOnly="on"|"off", ReflectMissing="on", ReflectInvalid="on"] attribute DOMString autocomplete;
     [CustomElementCallbacks] attribute DOMString enctype;
     [CustomElementCallbacks] attribute DOMString encoding;
     [CustomElementCallbacks] attribute DOMString method;
@@ -31,10 +33,10 @@
 
     readonly attribute HTMLCollection elements;
     readonly attribute long length;
-    [ImplementedAs=item] getter Node(unsigned long index);
-    [ImplementedAs=anonymousNamedGetter, OverrideBuiltins, NotEnumerable] getter (NodeList or Node)(DOMString name);
+    [ImplementedAs=item] getter Element (unsigned long index);
+    [NotEnumerable] getter (RadioNodeList or Element) (DOMString name);
 
-    [ImplementedAs=submitFromJavaScript, PerWorldBindings, ActivityLogging=SetterForIsolatedWorlds] void submit();
+    [ImplementedAs=submitFromJavaScript, PerWorldBindings, ActivityLogging=ForIsolatedWorlds] void submit();
     [CustomElementCallbacks] void reset();
     boolean checkValidity();
 
diff --git a/core/html/HTMLFrameElement.idl b/core/html/HTMLFrameElement.idl
index 1ab494c..82cb3b2 100644
--- a/core/html/HTMLFrameElement.idl
+++ b/core/html/HTMLFrameElement.idl
@@ -35,7 +35,7 @@
     // Extensions
     readonly attribute Window contentWindow;
 
-    [CheckSecurity=Node, RaisesException] SVGDocument getSVGDocument();
+    [CheckSecurity=Node, RaisesException] Document getSVGDocument();
 
     [TreatNullAs=NullString, Custom=Setter, MeasureAs=HTMLFrameElementLocation] attribute DOMString location;
 
diff --git a/core/html/HTMLFrameSetElement.idl b/core/html/HTMLFrameSetElement.idl
index 38a5f21..e7c6a24 100644
--- a/core/html/HTMLFrameSetElement.idl
+++ b/core/html/HTMLFrameSetElement.idl
@@ -18,18 +18,21 @@
  * Boston, MA 02110-1301, USA.
  */
 
-interface HTMLFrameSetElement : HTMLElement {
-    [ImplementedAs=anonymousNamedGetter, OverrideBuiltins, NotEnumerable] getter Window (DOMString name);
+[
+    OverrideBuiltins,
+] interface HTMLFrameSetElement : HTMLElement {
+    [NotEnumerable] getter Window (DOMString name);
     [Reflect] attribute DOMString cols;
     [Reflect] attribute DOMString rows;
 
-    [Conditional=ORIENTATION_EVENTS] attribute EventHandler onorientationchange;
+    [RuntimeEnabled=OrientationEvent] attribute EventHandler onorientationchange;
 
     // Overrides of GlobalEventHandler attributes
     attribute EventHandler onblur;
     attribute EventHandler onerror;
     attribute EventHandler onfocus;
     attribute EventHandler onload;
+    attribute EventHandler onresize;
     attribute EventHandler onscroll;
 };
 
diff --git a/core/html/HTMLIFrameElement.idl b/core/html/HTMLIFrameElement.idl
index d8a8a8e..7b864ca 100644
--- a/core/html/HTMLIFrameElement.idl
+++ b/core/html/HTMLIFrameElement.idl
@@ -27,7 +27,6 @@
     [Reflect, TreatNullAs=NullString] attribute DOMString marginWidth;
     [Reflect] attribute DOMString name;
     [Reflect, TreatNullAs=NullString] attribute DOMString sandbox;
-    [Reflect, RuntimeEnabled=SeamlessIFrames] attribute boolean seamless;
     [Reflect] attribute DOMString scrolling;
     [Reflect, URL, PerWorldBindings, ActivityLogging=SetterForIsolatedWorlds] attribute DOMString src;
     [Reflect] attribute DOMString srcdoc;
@@ -39,5 +38,5 @@
     // Extensions
     readonly attribute Window contentWindow;
 
-    [CheckSecurity=Node, RaisesException] SVGDocument getSVGDocument();
+    [CheckSecurity=Node, RaisesException] Document getSVGDocument();
 };
diff --git a/core/html/HTMLImageElement.idl b/core/html/HTMLImageElement.idl
index 01ff005..809b785 100644
--- a/core/html/HTMLImageElement.idl
+++ b/core/html/HTMLImageElement.idl
@@ -21,14 +21,13 @@
 // FIXME: NamedConstructor does not support optional without Default. Fortunately using Undefined makes
 // us use 0 which happens to be the default width and height anyway.
 [
- // FIXME(MERGE_DARTIUM): Breaks Dart code gen for Chrome 32 / 1700 roll.
- //    NamedConstructor=Image([Default=Undefined] optional long width, [Default=Undefined] optional long height)
+    NamedConstructor=Image([Default=Undefined] optional long width, [Default=Undefined] optional long height)
 ] interface HTMLImageElement : HTMLElement {
     [Reflect] attribute DOMString align;
     [Reflect] attribute DOMString alt;
     [Reflect, TreatNullAs=NullString] attribute DOMString border;
     readonly attribute boolean complete;
-    [Reflect] attribute DOMString crossOrigin;
+    [Reflect, ReflectOnly="anonymous"|"use-credentials", ReflectEmpty="anonymous", ReflectInvalid="anonymous"] attribute DOMString crossOrigin;
     attribute long height;
     [Reflect] attribute long hspace;
     [Reflect] attribute boolean isMap;
diff --git a/core/html/HTMLInputElement.idl b/core/html/HTMLInputElement.idl
index 6c2fa4e..37a919d 100644
--- a/core/html/HTMLInputElement.idl
+++ b/core/html/HTMLInputElement.idl
@@ -41,7 +41,7 @@
     [CustomElementCallbacks] attribute unsigned long height;
     attribute boolean indeterminate;
     [RuntimeEnabled=InputModeAttribute, Reflect] attribute DOMString inputMode;
-    [RuntimeEnabled=DataListElement] readonly attribute HTMLElement list;
+    readonly attribute HTMLElement list;
     [Reflect] attribute DOMString max;
     [RaisesException=Setter, CustomElementCallbacks] attribute long maxLength;
     [Reflect] attribute DOMString min;
@@ -91,7 +91,7 @@
                            optional DOMString direction);
 
     // Non-standard attributes
-    [Reflect, RuntimeEnabled=DirectoryUpload] attribute boolean webkitdirectory;
+    [Reflect] attribute boolean webkitdirectory;
     [Reflect] attribute boolean incremental;
     [Conditional=INPUT_SPEECH, Reflect, RuntimeEnabled=SpeechInput] attribute boolean webkitSpeech;
     [Conditional=INPUT_SPEECH, Reflect, RuntimeEnabled=SpeechInput] attribute boolean webkitGrammar;
diff --git a/core/html/HTMLKeygenElement.idl b/core/html/HTMLKeygenElement.idl
index 59af638..4484e2b 100644
--- a/core/html/HTMLKeygenElement.idl
+++ b/core/html/HTMLKeygenElement.idl
@@ -33,7 +33,7 @@
     [Reflect] attribute DOMString challenge;
     [Reflect] attribute boolean disabled;
     [ImplementedAs=formOwner] readonly attribute HTMLFormElement form;
-    [Reflect] attribute DOMString keytype;
+    [Reflect, ReflectOnly="rsa", ReflectMissing="rsa"] attribute DOMString keytype;
     [Reflect] attribute DOMString name;
 
     readonly attribute DOMString type;
diff --git a/core/html/HTMLLinkElement.idl b/core/html/HTMLLinkElement.idl
index 73c2426..92e5d19 100644
--- a/core/html/HTMLLinkElement.idl
+++ b/core/html/HTMLLinkElement.idl
@@ -23,6 +23,7 @@
     [Reflect] attribute boolean disabled;
     [Reflect] attribute DOMString charset;
     [Reflect, URL, PerWorldBindings, ActivityLogging=SetterForIsolatedWorlds] attribute DOMString href;
+    [Reflect, ReflectOnly="anonymous"|"use-credentials", ReflectEmpty="anonymous", ReflectInvalid="anonymous"] attribute DOMString crossOrigin;
     [Reflect] attribute DOMString hreflang;
     [Reflect] attribute DOMString media;
     [Reflect] attribute DOMString rel;
diff --git a/core/html/HTMLMediaElement.idl b/core/html/HTMLMediaElement.idl
index a4dbf6f..977066a 100644
--- a/core/html/HTMLMediaElement.idl
+++ b/core/html/HTMLMediaElement.idl
@@ -24,8 +24,8 @@
  */
 
 [
+    ActiveDOMObject,
     RuntimeEnabled=Media,
-    ActiveDOMObject
 ] interface HTMLMediaElement : HTMLElement {
 
     // error state
@@ -34,7 +34,7 @@
     // network state
     [Reflect, URL, PerWorldBindings, ActivityLogging=SetterForIsolatedWorlds] attribute DOMString src;
     [URL, PerWorldBindings, ActivityLogging=SetterForIsolatedWorlds] readonly attribute DOMString currentSrc;
-    [Reflect] attribute DOMString crossOrigin;
+    [Reflect, ReflectOnly="anonymous"|"use-credentials", ReflectEmpty="anonymous", ReflectInvalid="anonymous"] attribute DOMString crossOrigin;
 
     const unsigned short NETWORK_EMPTY = 0;
     const unsigned short NETWORK_IDLE = 1;
@@ -45,7 +45,7 @@
 
     readonly attribute TimeRanges buffered;
     void load();
-    DOMString canPlayType([Default=Undefined] optional DOMString type, [Default=Undefined, TreatNullAs=NullString, TreatUndefinedAs=NullString] optional DOMString keySystem);
+    DOMString canPlayType(DOMString type, [Default=Undefined, TreatNullAs=NullString, TreatUndefinedAs=NullString] optional DOMString keySystem);
 
     // ready state
     const unsigned short HAVE_NOTHING = 0;
@@ -90,15 +90,16 @@
     [MeasureAs=PrefixedAudioDecodedByteCount] readonly attribute unsigned long webkitAudioDecodedByteCount;
     [MeasureAs=PrefixedVideoDecodedByteCount] readonly attribute unsigned long webkitVideoDecodedByteCount;
 
-    // FIXME: add DeprecateAs=PrefixedMediaGenerateKeyRequest when MediaKeys is ready.
-    [RuntimeEnabled=PrefixedEncryptedMedia, RaisesException] void webkitGenerateKeyRequest([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, optional Uint8Array initData);
-    [RuntimeEnabled=PrefixedEncryptedMedia, RaisesException] void webkitAddKey([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, Uint8Array key, optional Uint8Array initData, [Default=NullString] optional DOMString sessionId);
-    [RuntimeEnabled=PrefixedEncryptedMedia, RaisesException] void webkitCancelKeyRequest([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, [Default=NullString] optional DOMString sessionId);
+    [RuntimeEnabled=PrefixedEncryptedMedia, RaisesException, MeasureAs=PrefixedMediaGenerateKeyRequest] void webkitGenerateKeyRequest([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, optional Uint8Array initData);
+    [RuntimeEnabled=PrefixedEncryptedMedia, RaisesException, MeasureAs=PrefixedMediaAddKey] void webkitAddKey([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, Uint8Array key, optional Uint8Array initData, [Default=NullString] optional DOMString sessionId);
+    [RuntimeEnabled=PrefixedEncryptedMedia, RaisesException, MeasureAs=PrefixedMediaCancelKeyRequest] void webkitCancelKeyRequest([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, [Default=NullString] optional DOMString sessionId);
 
     [RuntimeEnabled=PrefixedEncryptedMedia] attribute EventHandler onwebkitkeyadded;
     [RuntimeEnabled=PrefixedEncryptedMedia] attribute EventHandler onwebkitkeyerror;
     [RuntimeEnabled=PrefixedEncryptedMedia] attribute EventHandler onwebkitkeymessage;
     [RuntimeEnabled=PrefixedEncryptedMedia] attribute EventHandler onwebkitneedkey;
 
-    [RuntimeEnabled=EncryptedMedia] attribute MediaKeys mediaKeys;
+    [RuntimeEnabled=EncryptedMedia] readonly attribute MediaKeys mediaKeys;
+    [RuntimeEnabled=EncryptedMedia, RaisesException] void setMediaKeys(MediaKeys mediaKeys);
+    [RuntimeEnabled=EncryptedMedia] attribute EventHandler onneedkey;
 };
diff --git a/core/html/HTMLObjectElement.idl b/core/html/HTMLObjectElement.idl
index 2393f05..f01b7e8 100644
--- a/core/html/HTMLObjectElement.idl
+++ b/core/html/HTMLObjectElement.idl
@@ -51,5 +51,5 @@
     [Custom, NotEnumerable] getter Node (DOMString name);
     [Custom] setter Node (DOMString name, Node value);
 
-    [CheckSecurity=Node, RaisesException] SVGDocument getSVGDocument();
+    [CheckSecurity=Node, RaisesException] Document getSVGDocument();
 };
diff --git a/core/html/HTMLOptionsCollection.idl b/core/html/HTMLOptionsCollection.idl
index 32c4147..11d7673 100644
--- a/core/html/HTMLOptionsCollection.idl
+++ b/core/html/HTMLOptionsCollection.idl
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
  * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2013 Samsung Electronics. All rights reserved.
+ * Copyright (C) 2013, 2014 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
@@ -21,19 +21,17 @@
 
 [
     DependentLifetime,
-    GenerateVisitDOMWrapper=ownerNode,
+    SetWrapperReferenceFrom=ownerNode,
 ] interface HTMLOptionsCollection : HTMLCollection {
     attribute long selectedIndex;
     [Custom=Setter, RaisesException=Setter] attribute unsigned long length;
-    [ImplementedAs=item] getter Node(unsigned long index);
-    [ImplementedAs=anonymousIndexedSetter, RaisesException] setter HTMLOptionElement (unsigned long index, [TreatNullAs=anonymousIndexedSetterRemove, TreatUndefinedAs=anonymousIndexedSetterRemove] HTMLOptionElement value);
-    [ImplementedAs=anonymousNamedGetter, NotEnumerable] getter (NodeList or Node)(DOMString name);
+    [ImplementedAs=item] getter Node (unsigned long index);
+    [RaisesException, StrictTypeChecking] setter HTMLOptionElement (unsigned long index, HTMLOptionElement? value);
 
-    [Custom] Node namedItem([Default=Undefined] optional DOMString name);
+    // FIXME: The spec and firefox return an Element (the first matching Element).
+    [ImplementedAs=namedGetter] getter (NodeList or Element) namedItem(DOMString name);
 
-    [Custom, RaisesException] void add([Default=Undefined] optional HTMLOptionElement option,
-                      optional unsigned long index);
+    [Custom, RaisesException] void add([Default=Undefined] optional HTMLOptionElement option, optional unsigned long index);
     void remove(unsigned long index);
-    void remove(HTMLOptionElement option); // Non standard.
+    void remove(HTMLOptionElement option);  // non-standard
 };
-
diff --git a/core/html/HTMLScriptElement.idl b/core/html/HTMLScriptElement.idl
index 1f1e260..b8c367a 100644
--- a/core/html/HTMLScriptElement.idl
+++ b/core/html/HTMLScriptElement.idl
@@ -26,6 +26,6 @@
     [Reflect] attribute boolean defer;
     [Reflect, URL, PerWorldBindings, ActivityLogging=SetterForIsolatedWorlds] attribute DOMString src;
     [Reflect] attribute DOMString type;
-    [Reflect] attribute DOMString crossOrigin;
+    [Reflect, ReflectOnly="anonymous"|"use-credentials", ReflectEmpty="anonymous", ReflectInvalid="anonymous"] attribute DOMString crossOrigin;
     [Reflect, RuntimeEnabled=ExperimentalContentSecurityPolicyFeatures] attribute DOMString nonce;
 };
diff --git a/core/html/HTMLSelectElement.idl b/core/html/HTMLSelectElement.idl
index b61f512..3104a3f 100644
--- a/core/html/HTMLSelectElement.idl
+++ b/core/html/HTMLSelectElement.idl
@@ -33,13 +33,13 @@
     readonly attribute HTMLOptionsCollection options;
     [RaisesException=Setter] attribute unsigned long length;
 
-    getter Node item(unsigned long index);
-    [ImplementedAs=anonymousIndexedSetter, RaisesException] setter HTMLOptionElement (unsigned long index, [TreatNullAs=anonymousIndexedSetterRemove, TreatUndefinedAs=anonymousIndexedSetterRemove] HTMLOptionElement value);
-    Node namedItem([Default=Undefined] optional DOMString name);
-     [RaisesException] void add([Default=Undefined] optional HTMLElement element,
-                            [Default=Undefined] optional HTMLElement before);
+    getter Element item(unsigned long index);
+    [RaisesException, StrictTypeChecking] setter HTMLOptionElement (unsigned long index, HTMLOptionElement? value);
+    Element namedItem([Default=Undefined] optional DOMString name);
+    [RaisesException] void add([Default=Undefined] optional HTMLElement element,
+                               [Default=Undefined] optional HTMLElement before);
     void remove(long index);
-    void remove(HTMLOptionElement option); // Non standard.
+    void remove(HTMLOptionElement option);  // non-standard
     [RaisesException] void remove();
     readonly attribute HTMLCollection selectedOptions;
     attribute long selectedIndex;
diff --git a/core/html/HTMLSourceElement.idl b/core/html/HTMLSourceElement.idl
index 4e10349..9d86da4 100644
--- a/core/html/HTMLSourceElement.idl
+++ b/core/html/HTMLSourceElement.idl
@@ -28,5 +28,5 @@
 ] interface HTMLSourceElement : HTMLElement {
     [Reflect, URL, PerWorldBindings, ActivityLogging=SetterForIsolatedWorlds] attribute DOMString src;
     attribute DOMString type;
-    attribute DOMString media;
+    [DeprecateAs=HTMLSourceElementMedia] attribute DOMString media;
 };
diff --git a/core/html/HTMLVideoElement.idl b/core/html/HTMLVideoElement.idl
index 4448cd2..b68a7db 100644
--- a/core/html/HTMLVideoElement.idl
+++ b/core/html/HTMLVideoElement.idl
@@ -32,15 +32,15 @@
     readonly attribute unsigned long videoHeight;
     [Reflect, URL, PerWorldBindings, ActivityLogging=SetterForIsolatedWorlds] attribute DOMString poster;
 
-    [MeasureAs=PrefixedVideoSupportsFullscreen] readonly attribute boolean webkitSupportsFullscreen;
-    [MeasureAs=PrefixedVideoDisplayingFullscreen] readonly attribute boolean webkitDisplayingFullscreen;
+    [DeprecateAs=PrefixedVideoSupportsFullscreen] readonly attribute boolean webkitSupportsFullscreen;
+    [DeprecateAs=PrefixedVideoDisplayingFullscreen] readonly attribute boolean webkitDisplayingFullscreen;
 
-    [MeasureAs=PrefixedVideoEnterFullscreen, RaisesException, PerWorldBindings, ActivityLogging=ForAllWorlds] void webkitEnterFullscreen();
-    [MeasureAs=PrefixedVideoExitFullscreen] void webkitExitFullscreen();
+    [DeprecateAs=PrefixedVideoEnterFullscreen, RaisesException, PerWorldBindings, ActivityLogging=ForAllWorlds] void webkitEnterFullscreen();
+    [DeprecateAs=PrefixedVideoExitFullscreen] void webkitExitFullscreen();
 
     // Note the different capitalization of the "S" in FullScreen.
-    [MeasureAs=PrefixedVideoEnterFullScreen, ImplementedAs=webkitEnterFullscreen, RaisesException, PerWorldBindings, ActivityLogging=ForAllWorlds] void webkitEnterFullScreen();
-    [MeasureAs=PrefixedVideoExitFullScreen, ImplementedAs=webkitExitFullscreen] void webkitExitFullScreen();
+    [DeprecateAs=PrefixedVideoEnterFullScreen, ImplementedAs=webkitEnterFullscreen, RaisesException, PerWorldBindings, ActivityLogging=ForAllWorlds] void webkitEnterFullScreen();
+    [DeprecateAs=PrefixedVideoExitFullScreen, ImplementedAs=webkitExitFullscreen] void webkitExitFullScreen();
 
     // The number of frames that have been decoded and made available for
     // playback.
diff --git a/core/html/MediaError.idl b/core/html/MediaError.idl
index 4cf13ed..58b94d8 100644
--- a/core/html/MediaError.idl
+++ b/core/html/MediaError.idl
@@ -30,6 +30,6 @@
     const unsigned short MEDIA_ERR_NETWORK = 2;
     const unsigned short MEDIA_ERR_DECODE = 3;
     const unsigned short MEDIA_ERR_SRC_NOT_SUPPORTED = 4;
-    [RuntimeEnabled=EncryptedMediaAnyVersion] const unsigned short MEDIA_ERR_ENCRYPTED = 5;
+    [RuntimeEnabled=EncryptedMediaAnyVersion, DeprecateAs=MediaErrorEncrypted] const unsigned short MEDIA_ERR_ENCRYPTED = 5;
     readonly attribute unsigned short code;
 };
diff --git a/core/html/RadioNodeList.idl b/core/html/RadioNodeList.idl
index 47beea0..057ad06 100644
--- a/core/html/RadioNodeList.idl
+++ b/core/html/RadioNodeList.idl
@@ -24,8 +24,8 @@
  */
 
 [
-    NoInterfaceObject
+    NoInterfaceObject,
 ] interface RadioNodeList : NodeList {
     attribute DOMString value;
-    [ImplementedAs=item] getter Node(unsigned long index);
+    [ImplementedAs=item] getter Node (unsigned long index);
 };
diff --git a/core/html/canvas/ANGLEInstancedArrays.idl b/core/html/canvas/ANGLEInstancedArrays.idl
index 2d257cc..3a7593e 100644
--- a/core/html/canvas/ANGLEInstancedArrays.idl
+++ b/core/html/canvas/ANGLEInstancedArrays.idl
@@ -29,12 +29,13 @@
  */
 
 [
+    DoNotCheckConstants,
     NoInterfaceObject,
-    DoNotCheckConstants
+    StrictTypeChecking,
 ] interface ANGLEInstancedArrays {
     const unsigned long VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE;
 
-    [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);
+    void drawArraysInstancedANGLE(unsigned long mode, long first, long count, long primcount);
+    void drawElementsInstancedANGLE(unsigned long mode, long count, unsigned long type, long long offset, long primcount);
+    void vertexAttribDivisorANGLE(unsigned long index, long divisor);
 };
diff --git a/core/html/canvas/CanvasRenderingContext2D.idl b/core/html/canvas/CanvasRenderingContext2D.idl
index 1c243a6..d99a6a0 100644
--- a/core/html/canvas/CanvasRenderingContext2D.idl
+++ b/core/html/canvas/CanvasRenderingContext2D.idl
@@ -58,10 +58,6 @@
     sequence<float> getLineDash();
     attribute float lineDashOffset;
 
-    // FIXME: These attributes should be implemented.
-    // [Custom] attribute Array webkitLineDash;
-    // attribute float webkitLineDashOffset;
-
     void clearRect(float x, float y, float width, float height);
     void fillRect(float x, float y, float width, float height);
 
@@ -78,7 +74,7 @@
     [RaisesException] void arcTo(float x1, float y1, float x2, float y2, float radius);
     void rect(float x, float y, float width, float height);
     [RaisesException] void arc(float x, float y, float radius, float startAngle, float endAngle, [Default=Undefined] optional boolean anticlockwise);
-    [RaisesException] void ellipse(float x, float y, float radiusX, float radiusY, float rotation, float startAngle, float endAngle, boolean anticlockwise);
+    [RaisesException] void ellipse(float x, float y, float radiusX, float radiusY, float rotation, float startAngle, float endAngle, [Default=Undefined] optional boolean anticlockwise);
 
     void fill(optional CanvasWindingRule winding);
     void stroke();
@@ -146,8 +142,8 @@
     [RaisesException] void putImageData(ImageData? imagedata, float dx, float dy);
     [RaisesException] void putImageData(ImageData? imagedata, float dx, float dy, float dirtyX, float dirtyY, float dirtyWidth, float dirtyHeight);
 
-    [RaisesException] void webkitPutImageDataHD(ImageData? imagedata, float dx, float dy);
-    [RaisesException] void webkitPutImageDataHD(ImageData? imagedata, float dx, float dy, float dirtyX, float dirtyY, float dirtyWidth, float dirtyHeight);
+    [RaisesException, DeprecateAs=PrefixedPutImageDataHD] void webkitPutImageDataHD(ImageData? imagedata, float dx, float dy);
+    [RaisesException, DeprecateAs=PrefixedPutImageDataHD] void webkitPutImageDataHD(ImageData? imagedata, float dx, float dy, float dirtyX, float dirtyY, float dirtyWidth, float dirtyHeight);
 
     [RaisesException] CanvasPattern createPattern(HTMLCanvasElement? canvas, [TreatNullAs=NullString] DOMString repetitionType);
     [RaisesException] CanvasPattern createPattern(HTMLImageElement? image, [TreatNullAs=NullString] DOMString repetitionType);
@@ -160,7 +156,7 @@
     // pixel manipulation
     [RaisesException] ImageData getImageData(float sx, float sy, float sw, float sh);
 
-    [RaisesException] ImageData webkitGetImageDataHD(float sx, float sy, float sw, float sh);
+    [RaisesException, DeprecateAs=PrefixedGetImageDataHD] ImageData webkitGetImageDataHD(float sx, float sy, float sw, float sh);
 
     // Focus rings
     [RuntimeEnabled=ExperimentalCanvasFeatures] void drawSystemFocusRing(Element element);
@@ -168,8 +164,8 @@
 
     readonly attribute float webkitBackingStorePixelRatio;
 
-    [ImplementedAs=imageSmoothingEnabled] attribute boolean webkitImageSmoothingEnabled;
-    attribute boolean imageSmoothingEnabled;
+    [ImplementedAs=imageSmoothingEnabled, MeasureAs=PrefixedImageSmoothingEnabled] attribute boolean webkitImageSmoothingEnabled;
+    [MeasureAs=UnprefixedImageSmoothingEnabled] attribute boolean imageSmoothingEnabled;
 
     Canvas2DContextAttributes getContextAttributes();
 };
diff --git a/core/html/canvas/DataView.idl b/core/html/canvas/DataView.idl
index a9b9fac..972a6ff 100644
--- a/core/html/canvas/DataView.idl
+++ b/core/html/canvas/DataView.idl
@@ -27,29 +27,29 @@
     Custom=Wrap,
     CustomConstructor(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long byteLength),
     GlobalContext=Window&WorkerGlobalScope,
+    StrictTypeChecking,
 ] interface DataView : ArrayBufferView {
     // All these methods raise an exception if they would read or write beyond the end of the view.
 
     [RaisesException] byte getInt8(unsigned long byteOffset);
     [RaisesException] octet getUint8(unsigned long byteOffset);
 
-    [StrictTypeChecking, RaisesException] short getInt16(unsigned long byteOffset, optional boolean littleEndian);
-    [StrictTypeChecking, RaisesException] unsigned short getUint16(unsigned long byteOffset, optional boolean littleEndian);
-    [StrictTypeChecking, RaisesException] long getInt32(unsigned long byteOffset, optional boolean littleEndian);
-    [StrictTypeChecking, RaisesException] unsigned long getUint32(unsigned long byteOffset, optional boolean littleEndian);
+    [RaisesException] short getInt16(unsigned long byteOffset, optional boolean littleEndian);
+    [RaisesException] unsigned short getUint16(unsigned long byteOffset, optional boolean littleEndian);
+    [RaisesException] long getInt32(unsigned long byteOffset, optional boolean littleEndian);
+    [RaisesException] unsigned long getUint32(unsigned long byteOffset, optional boolean littleEndian);
 
     // Use custom code to handle NaN case for JSC.
-    [StrictTypeChecking, RaisesException] float getFloat32(unsigned long byteOffset, optional boolean littleEndian);
-    [StrictTypeChecking, RaisesException] double getFloat64(unsigned long byteOffset, optional boolean littleEndian);
+    [RaisesException] float getFloat32(unsigned long byteOffset, optional boolean littleEndian);
+    [RaisesException] double getFloat64(unsigned long byteOffset, optional boolean littleEndian);
 
     [RaisesException] void setInt8(unsigned long byteOffset, byte value);
     [RaisesException] void setUint8(unsigned long byteOffset, octet value);
 
-    [StrictTypeChecking, RaisesException] void setInt16(unsigned long byteOffset, short value, optional boolean littleEndian);
-    [StrictTypeChecking, RaisesException] void setUint16(unsigned long byteOffset, unsigned short value, optional boolean littleEndian);
-    [StrictTypeChecking, RaisesException] void setInt32(unsigned long byteOffset, long value, optional boolean littleEndian);
-    [StrictTypeChecking, RaisesException] void setUint32(unsigned long byteOffset, unsigned long value, optional boolean littleEndian);
-    [StrictTypeChecking, RaisesException] void setFloat32(unsigned long byteOffset, float value, optional boolean littleEndian);
-    [StrictTypeChecking, RaisesException] void setFloat64(unsigned long byteOffset, double value, optional boolean littleEndian);
+    [RaisesException] void setInt16(unsigned long byteOffset, short value, optional boolean littleEndian);
+    [RaisesException] void setUint16(unsigned long byteOffset, unsigned short value, optional boolean littleEndian);
+    [RaisesException] void setInt32(unsigned long byteOffset, long value, optional boolean littleEndian);
+    [RaisesException] void setUint32(unsigned long byteOffset, unsigned long value, optional boolean littleEndian);
+    [RaisesException] void setFloat32(unsigned long byteOffset, float value, optional boolean littleEndian);
+    [RaisesException] void setFloat64(unsigned long byteOffset, double value, optional boolean littleEndian);
 };
-
diff --git a/core/html/canvas/OESVertexArrayObject.idl b/core/html/canvas/OESVertexArrayObject.idl
index aa9a16d..e7cc9f7 100644
--- a/core/html/canvas/OESVertexArrayObject.idl
+++ b/core/html/canvas/OESVertexArrayObject.idl
@@ -24,13 +24,14 @@
  */
 
 [
+    DoNotCheckConstants,
     NoInterfaceObject,
-    DoNotCheckConstants
+    StrictTypeChecking,
 ] 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);
-    [StrictTypeChecking] void         bindVertexArrayOES([Default=Undefined] optional WebGLVertexArrayObjectOES arrayObject);
+    WebGLVertexArrayObjectOES createVertexArrayOES();
+    void deleteVertexArrayOES([Default=Undefined] optional WebGLVertexArrayObjectOES? arrayObject);
+    boolean isVertexArrayOES([Default=Undefined] optional WebGLVertexArrayObjectOES? arrayObject);
+    void bindVertexArrayOES([Default=Undefined] optional WebGLVertexArrayObjectOES? arrayObject);
 };
diff --git a/core/html/canvas/WebGLDebugShaders.idl b/core/html/canvas/WebGLDebugShaders.idl
index 55a6f3c..4948d0e 100644
--- a/core/html/canvas/WebGLDebugShaders.idl
+++ b/core/html/canvas/WebGLDebugShaders.idl
@@ -24,7 +24,8 @@
  */
 
 [
-    NoInterfaceObject
+    NoInterfaceObject,
+    StrictTypeChecking,
 ] interface WebGLDebugShaders {
-    [StrictTypeChecking, TreatReturnedNullStringAs=Null] DOMString getTranslatedShaderSource(WebGLShader shader);
+    [TreatReturnedNullStringAs=Null] DOMString getTranslatedShaderSource(WebGLShader? shader);
 };
diff --git a/core/html/canvas/WebGLLoseContext.idl b/core/html/canvas/WebGLLoseContext.idl
index 1ac288f..2b45e1a 100644
--- a/core/html/canvas/WebGLLoseContext.idl
+++ b/core/html/canvas/WebGLLoseContext.idl
@@ -24,8 +24,9 @@
  */
 
 [
-    NoInterfaceObject
+    NoInterfaceObject,
+    StrictTypeChecking,
 ] interface WebGLLoseContext {
-    [StrictTypeChecking] void loseContext();
-    [StrictTypeChecking] void restoreContext();
+    void loseContext();
+    void restoreContext();
 };
diff --git a/core/html/canvas/WebGLRenderingContext.idl b/core/html/canvas/WebGLRenderingContext.idl
index a006bae..ef8746e 100644
--- a/core/html/canvas/WebGLRenderingContext.idl
+++ b/core/html/canvas/WebGLRenderingContext.idl
@@ -39,7 +39,8 @@
 typedef /*unrestricted*/ float GLclampf;
 
 [
-    DoNotCheckConstants
+    DoNotCheckConstants,
+    StrictTypeChecking,
 ] interface WebGLRenderingContext : CanvasRenderingContext {
 
     /* ClearBufferMask */
@@ -460,203 +461,214 @@
     readonly attribute GLsizei drawingBufferWidth;
     readonly attribute GLsizei drawingBufferHeight;
 
-    [StrictTypeChecking] void         activeTexture(GLenum texture);
-    [StrictTypeChecking] void         attachShader(WebGLProgram program, WebGLShader shader);
-    [StrictTypeChecking] void         bindAttribLocation(WebGLProgram program, GLuint index, DOMString name);
-    [StrictTypeChecking] void         bindBuffer(GLenum target, WebGLBuffer buffer);
-    [StrictTypeChecking] void         bindFramebuffer(GLenum target, WebGLFramebuffer framebuffer);
-    [StrictTypeChecking] void         bindRenderbuffer(GLenum target, WebGLRenderbuffer renderbuffer);
-    [StrictTypeChecking] void         bindTexture(GLenum target, WebGLTexture texture);
-    [StrictTypeChecking] void         blendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-    [StrictTypeChecking] void         blendEquation(GLenum mode);
-    [StrictTypeChecking] void         blendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
-    [StrictTypeChecking] void         blendFunc(GLenum sfactor, GLenum dfactor);
-    [StrictTypeChecking] void         blendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-    [StrictTypeChecking] void         bufferData(GLenum target, ArrayBuffer? data, GLenum usage);
-    [StrictTypeChecking] void         bufferData(GLenum target, ArrayBufferView? data, GLenum usage);
-    [StrictTypeChecking] void         bufferData(GLenum target, GLsizeiptr size, GLenum usage);
-    [StrictTypeChecking] void         bufferSubData(GLenum target, GLintptr offset, ArrayBuffer? data);
-    [StrictTypeChecking] void         bufferSubData(GLenum target, GLintptr offset, ArrayBufferView? data);
+    void activeTexture(GLenum texture);
+    void attachShader(WebGLProgram? program, WebGLShader? shader);
+    void bindAttribLocation(WebGLProgram? program, GLuint index, DOMString name);
+    void bindBuffer(GLenum target, WebGLBuffer? buffer);
+    void bindFramebuffer(GLenum target, WebGLFramebuffer? framebuffer);
+    void bindRenderbuffer(GLenum target, WebGLRenderbuffer? renderbuffer);
+    void bindTexture(GLenum target, WebGLTexture? texture);
+    void blendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+    void blendEquation(GLenum mode);
+    void blendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
+    void blendFunc(GLenum sfactor, GLenum dfactor);
+    void blendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+    void bufferData(GLenum target, ArrayBuffer? data, GLenum usage);
+    void bufferData(GLenum target, ArrayBufferView? data, GLenum usage);
+    void bufferData(GLenum target, GLsizeiptr size, GLenum usage);
+    void bufferSubData(GLenum target, GLintptr offset, ArrayBuffer? data);
+    void bufferSubData(GLenum target, GLintptr offset, ArrayBufferView? data);
 
-    [StrictTypeChecking] GLenum       checkFramebufferStatus(GLenum target);
-    [StrictTypeChecking] void         clear(GLbitfield mask);
-    [StrictTypeChecking] void         clearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-    [StrictTypeChecking] void         clearDepth(GLclampf depth);
-    [StrictTypeChecking] void         clearStencil(GLint s);
-    [StrictTypeChecking] void         colorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-    [StrictTypeChecking] void         compileShader(WebGLShader shader);
+    GLenum checkFramebufferStatus(GLenum target);
+    void clear(GLbitfield mask);
+    void clearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+    void clearDepth(GLclampf depth);
+    void clearStencil(GLint s);
+    void colorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+    void compileShader(WebGLShader? shader);
 
-    [StrictTypeChecking] void         compressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
-                                                           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);
+    void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
+                              GLsizei width, GLsizei height, GLint border, ArrayBufferView? data);
+    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);
+    void copyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+    void copyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 
-    [StrictTypeChecking] WebGLBuffer createBuffer();
-    [StrictTypeChecking] WebGLFramebuffer createFramebuffer();
-    [StrictTypeChecking] WebGLProgram createProgram();
-    [StrictTypeChecking] WebGLRenderbuffer createRenderbuffer();
-    [StrictTypeChecking] WebGLShader createShader(GLenum type);
-    [StrictTypeChecking] WebGLTexture createTexture();
+    WebGLBuffer createBuffer();
+    WebGLFramebuffer createFramebuffer();
+    WebGLProgram createProgram();
+    WebGLRenderbuffer createRenderbuffer();
+    WebGLShader createShader(GLenum type);
+    WebGLTexture createTexture();
 
-    [StrictTypeChecking] void         cullFace(GLenum mode);
+    void cullFace(GLenum mode);
 
-    [StrictTypeChecking] void         deleteBuffer(WebGLBuffer buffer);
-    [StrictTypeChecking] void         deleteFramebuffer(WebGLFramebuffer framebuffer);
-    [StrictTypeChecking] void         deleteProgram(WebGLProgram program);
-    [StrictTypeChecking] void         deleteRenderbuffer(WebGLRenderbuffer renderbuffer);
-    [StrictTypeChecking] void         deleteShader(WebGLShader shader);
-    [StrictTypeChecking] void         deleteTexture(WebGLTexture texture);
+    void deleteBuffer(WebGLBuffer? buffer);
+    void deleteFramebuffer(WebGLFramebuffer? framebuffer);
+    void deleteProgram(WebGLProgram? program);
+    void deleteRenderbuffer(WebGLRenderbuffer? renderbuffer);
+    void deleteShader(WebGLShader? shader);
+    void deleteTexture(WebGLTexture? texture);
 
-    [StrictTypeChecking] void         depthFunc(GLenum func);
-    [StrictTypeChecking] void         depthMask(GLboolean flag);
-    [StrictTypeChecking] void         depthRange(GLclampf zNear, GLclampf zFar);
-    [StrictTypeChecking] void         detachShader(WebGLProgram program, WebGLShader shader);
-    [StrictTypeChecking] void         disable(GLenum cap);
-    [StrictTypeChecking] void         disableVertexAttribArray(GLuint index);
-    [StrictTypeChecking] void         drawArrays(GLenum mode, GLint first, GLsizei count);
-    [StrictTypeChecking] void         drawElements(GLenum mode, GLsizei count, GLenum type, GLintptr offset);
+    void depthFunc(GLenum func);
+    void depthMask(GLboolean flag);
+    void depthRange(GLclampf zNear, GLclampf zFar);
+    void detachShader(WebGLProgram? program, WebGLShader? shader);
+    void disable(GLenum cap);
+    void disableVertexAttribArray(GLuint index);
+    void drawArrays(GLenum mode, GLint first, GLsizei count);
+    void drawElements(GLenum mode, GLsizei count, GLenum type, GLintptr offset);
 
-    [StrictTypeChecking] void         enable(GLenum cap);
-    [StrictTypeChecking] void         enableVertexAttribArray(GLuint index);
-    [StrictTypeChecking] void         finish();
-    [StrictTypeChecking] void         flush();
-    [StrictTypeChecking] void         framebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, WebGLRenderbuffer renderbuffer);
-    [StrictTypeChecking] void         framebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, WebGLTexture texture, GLint level);
-    [StrictTypeChecking] void         frontFace(GLenum mode);
-    [StrictTypeChecking] void         generateMipmap(GLenum target);
+    void enable(GLenum cap);
+    void enableVertexAttribArray(GLuint index);
+    void finish();
+    void flush();
+    void framebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, WebGLRenderbuffer? renderbuffer);
+    void framebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, WebGLTexture? texture, GLint level);
+    void frontFace(GLenum mode);
+    void generateMipmap(GLenum target);
 
-    [StrictTypeChecking] WebGLActiveInfo getActiveAttrib(WebGLProgram program, GLuint index);
-    [StrictTypeChecking] WebGLActiveInfo getActiveUniform(WebGLProgram program, GLuint index);
+    WebGLActiveInfo getActiveAttrib(WebGLProgram? program, GLuint index);
+    WebGLActiveInfo getActiveUniform(WebGLProgram? program, GLuint index);
 
-    [StrictTypeChecking, Custom] void getAttachedShaders(WebGLProgram program);
+    [Custom] void getAttachedShaders(WebGLProgram? program);
 
-    [StrictTypeChecking] GLint        getAttribLocation(WebGLProgram program, DOMString name);
+    GLint getAttribLocation(WebGLProgram? program, DOMString name);
 
-    [StrictTypeChecking, Custom] any getBufferParameter(GLenum target, GLenum pname);
+    [Custom] any getBufferParameter(GLenum target, GLenum pname);
 
-    [StrictTypeChecking] WebGLContextAttributes getContextAttributes();
+    WebGLContextAttributes getContextAttributes();
 
-    [StrictTypeChecking] GLenum getError();
+    GLenum getError();
 
     // object getExtension(DOMString name);
-    [StrictTypeChecking, Custom] any getExtension(DOMString name);
+    [Custom] any getExtension(DOMString name);
 
-    [StrictTypeChecking, Custom] any getFramebufferAttachmentParameter(GLenum target, GLenum attachment, GLenum pname);
-    [StrictTypeChecking, Custom] any getParameter(GLenum pname);
-    [StrictTypeChecking, Custom] any getProgramParameter(WebGLProgram program, GLenum pname);
-    [StrictTypeChecking, TreatReturnedNullStringAs=Null] DOMString getProgramInfoLog(WebGLProgram program);
-    [StrictTypeChecking, Custom] any getRenderbufferParameter(GLenum target, GLenum pname);
-    [StrictTypeChecking, Custom] any getShaderParameter(WebGLShader shader, GLenum pname);
+    [Custom] any getFramebufferAttachmentParameter(GLenum target, GLenum attachment, GLenum pname);
+    [Custom] any getParameter(GLenum pname);
+    [Custom] any getProgramParameter(WebGLProgram? program, GLenum pname);
+    [TreatReturnedNullStringAs=Null] DOMString getProgramInfoLog(WebGLProgram? program);
+    [Custom] any getRenderbufferParameter(GLenum target, GLenum pname);
+    [Custom] any getShaderParameter(WebGLShader? shader, GLenum pname);
 
-    [StrictTypeChecking, TreatReturnedNullStringAs=Null] DOMString    getShaderInfoLog(WebGLShader shader);
+    [TreatReturnedNullStringAs=Null] DOMString    getShaderInfoLog(WebGLShader? shader);
 
-    [StrictTypeChecking] WebGLShaderPrecisionFormat getShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype);
+    WebGLShaderPrecisionFormat getShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype);
 
-    [StrictTypeChecking, TreatReturnedNullStringAs=Null] DOMString    getShaderSource(WebGLShader shader);
+    [TreatReturnedNullStringAs=Null] DOMString    getShaderSource(WebGLShader? shader);
 
-    [StrictTypeChecking, Custom] sequence<DOMString> getSupportedExtensions();
+    [Custom] sequence<DOMString> getSupportedExtensions();
 
-    [StrictTypeChecking, Custom] any getTexParameter(GLenum target, GLenum pname);
+    [Custom] any getTexParameter(GLenum target, GLenum pname);
 
-    [StrictTypeChecking, Custom] any getUniform(WebGLProgram program, WebGLUniformLocation location);
+    [Custom] any getUniform(WebGLProgram? program, WebGLUniformLocation location);
 
-    [StrictTypeChecking] WebGLUniformLocation getUniformLocation(WebGLProgram program, DOMString name);
+    WebGLUniformLocation getUniformLocation(WebGLProgram? program, DOMString name);
 
-    [StrictTypeChecking, Custom] any getVertexAttrib(GLuint index, GLenum pname);
+    [Custom] any getVertexAttrib(GLuint index, GLenum pname);
 
-    [StrictTypeChecking] GLsizeiptr getVertexAttribOffset(GLuint index, GLenum pname);
+    GLsizeiptr getVertexAttribOffset(GLuint index, GLenum pname);
 
-    [StrictTypeChecking] void         hint(GLenum target, GLenum mode);
-    [StrictTypeChecking] GLboolean    isBuffer(WebGLBuffer buffer);
-    [StrictTypeChecking] GLboolean    isContextLost();
-    [StrictTypeChecking] GLboolean    isEnabled(GLenum cap);
-    [StrictTypeChecking] GLboolean    isFramebuffer(WebGLFramebuffer framebuffer);
-    [StrictTypeChecking] GLboolean    isProgram(WebGLProgram program);
-    [StrictTypeChecking] GLboolean    isRenderbuffer(WebGLRenderbuffer renderbuffer);
-    [StrictTypeChecking] GLboolean    isShader(WebGLShader shader);
-    [StrictTypeChecking] GLboolean    isTexture(WebGLTexture texture);
-    [StrictTypeChecking] void         lineWidth(GLfloat width);
-    [StrictTypeChecking] void         linkProgram(WebGLProgram program);
-    [StrictTypeChecking] void         pixelStorei(GLenum pname, GLint param);
-    [StrictTypeChecking] void         polygonOffset(GLfloat factor, GLfloat units);
+    void hint(GLenum target, GLenum mode);
+    GLboolean isBuffer(WebGLBuffer? buffer);
+    GLboolean isContextLost();
+    GLboolean isEnabled(GLenum cap);
+    GLboolean isFramebuffer(WebGLFramebuffer? framebuffer);
+    GLboolean isProgram(WebGLProgram? program);
+    GLboolean isRenderbuffer(WebGLRenderbuffer? renderbuffer);
+    GLboolean isShader(WebGLShader? shader);
+    GLboolean isTexture(WebGLTexture? texture);
+    void lineWidth(GLfloat width);
+    void linkProgram(WebGLProgram? program);
+    void pixelStorei(GLenum pname, GLint param);
+    void polygonOffset(GLfloat factor, GLfloat units);
 
-    [StrictTypeChecking] void         readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, ArrayBufferView pixels);
+    void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, ArrayBufferView? pixels);
 
-    [StrictTypeChecking] void         renderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-    [StrictTypeChecking] void         sampleCoverage(GLclampf value, GLboolean invert);
-    [StrictTypeChecking] void         scissor(GLint x, GLint y, GLsizei width, GLsizei height);
-    [StrictTypeChecking] void         shaderSource(WebGLShader shader, DOMString string);
-    [StrictTypeChecking] void         stencilFunc(GLenum func, GLint ref, GLuint mask);
-    [StrictTypeChecking] void         stencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
-    [StrictTypeChecking] void         stencilMask(GLuint mask);
-    [StrictTypeChecking] void         stencilMaskSeparate(GLenum face, GLuint mask);
-    [StrictTypeChecking] void         stencilOp(GLenum fail, GLenum zfail, GLenum zpass);
-    [StrictTypeChecking] void         stencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
+    void renderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+    void sampleCoverage(GLclampf value, GLboolean invert);
+    void scissor(GLint x, GLint y, GLsizei width, GLsizei height);
+    void shaderSource(WebGLShader? shader, DOMString string);
+    void stencilFunc(GLenum func, GLint ref, GLuint mask);
+    void stencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
+    void stencilMask(GLuint mask);
+    void stencilMaskSeparate(GLenum face, GLuint mask);
+    void stencilOp(GLenum fail, GLenum zfail, GLenum zpass);
+    void stencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
 
-    [StrictTypeChecking] void         texParameterf(GLenum target, GLenum pname, GLfloat param);
-    [StrictTypeChecking] void         texParameteri(GLenum target, GLenum pname, GLint param);
+    void texParameterf(GLenum target, GLenum pname, GLfloat param);
+    void texParameteri(GLenum target, GLenum pname, GLint param);
 
     // Supported forms:
-    [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);
-    [StrictTypeChecking, RaisesException] void         texImage2D(GLenum target, GLint level, GLenum internalformat,
-                                                 GLenum format, GLenum type, HTMLImageElement? image);
-    [StrictTypeChecking, RaisesException] void         texImage2D(GLenum target, GLint level, GLenum internalformat,
-                                                 GLenum format, GLenum type, HTMLCanvasElement? canvas);
-    [StrictTypeChecking, RaisesException] void         texImage2D(GLenum target, GLint level, GLenum internalformat,
-                                                 GLenum format, GLenum type, HTMLVideoElement? video);
+    [RaisesException] void texImage2D(
+        GLenum target, GLint level, GLenum internalformat,
+        GLsizei width, GLsizei height, GLint border,
+        GLenum format, GLenum type, ArrayBufferView? pixels);
+    [RaisesException] void texImage2D(
+        GLenum target, GLint level, GLenum internalformat,
+        GLenum format, GLenum type, ImageData? pixels);
+    [RaisesException] void texImage2D(
+        GLenum target, GLint level, GLenum internalformat,
+        GLenum format, GLenum type, HTMLImageElement? image);
+    [RaisesException] void texImage2D(
+        GLenum target, GLint level, GLenum internalformat,
+        GLenum format, GLenum type, HTMLCanvasElement? canvas);
+    [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,
-                                                    GLenum format, GLenum type, ArrayBufferView? pixels);
-    [StrictTypeChecking, RaisesException] void         texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
-                                                    GLenum format, GLenum type, ImageData? pixels);
-    [StrictTypeChecking, RaisesException] void         texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
-                                                    GLenum format, GLenum type, HTMLImageElement? image);
-    [StrictTypeChecking, RaisesException] void         texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
-                                                    GLenum format, GLenum type, HTMLCanvasElement? canvas);
-    [StrictTypeChecking, RaisesException] void         texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
-                                                    GLenum format, GLenum type, HTMLVideoElement? video);
+    [RaisesException] void texSubImage2D(
+        GLenum target, GLint level, GLint xoffset, GLint yoffset,
+        GLsizei width, GLsizei height,
+        GLenum format, GLenum type, ArrayBufferView? pixels);
+    [RaisesException] void texSubImage2D(
+        GLenum target, GLint level, GLint xoffset, GLint yoffset,
+        GLenum format, GLenum type, ImageData? pixels);
+    [RaisesException] void texSubImage2D(
+        GLenum target, GLint level, GLint xoffset, GLint yoffset,
+        GLenum format, GLenum type, HTMLImageElement? image);
+    [RaisesException] void texSubImage2D(
+        GLenum target, GLint level, GLint xoffset, GLint yoffset,
+        GLenum format, GLenum type, HTMLCanvasElement? canvas);
+    [RaisesException] void texSubImage2D(
+        GLenum target, GLint level, GLint xoffset, GLint yoffset,
+        GLenum format, GLenum type, HTMLVideoElement? video);
 
-    [StrictTypeChecking] void uniform1f(WebGLUniformLocation location, GLfloat x);
-    [StrictTypeChecking, Custom] void uniform1fv(WebGLUniformLocation location, Float32Array v);
-    [StrictTypeChecking] void uniform1i(WebGLUniformLocation location, GLint x);
-    [StrictTypeChecking, Custom] void uniform1iv(WebGLUniformLocation location, Int32Array v);
-    [StrictTypeChecking] void uniform2f(WebGLUniformLocation location, GLfloat x, GLfloat y);
-    [StrictTypeChecking, Custom] void uniform2fv(WebGLUniformLocation location, Float32Array v);
-    [StrictTypeChecking] void uniform2i(WebGLUniformLocation location, GLint x, GLint y);
-    [StrictTypeChecking, Custom] void uniform2iv(WebGLUniformLocation location, Int32Array v);
-    [StrictTypeChecking] void uniform3f(WebGLUniformLocation location, GLfloat x, GLfloat y, GLfloat z);
-    [StrictTypeChecking, Custom] void uniform3fv(WebGLUniformLocation location, Float32Array v);
-    [StrictTypeChecking] void uniform3i(WebGLUniformLocation location, GLint x, GLint y, GLint z);
-    [StrictTypeChecking, Custom] void uniform3iv(WebGLUniformLocation location, Int32Array v);
-    [StrictTypeChecking] void uniform4f(WebGLUniformLocation location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-    [StrictTypeChecking, Custom] void uniform4fv(WebGLUniformLocation location, Float32Array v);
-    [StrictTypeChecking] void uniform4i(WebGLUniformLocation location, GLint x, GLint y, GLint z, GLint w);
-    [StrictTypeChecking, Custom] void uniform4iv(WebGLUniformLocation location, Int32Array v);
+    void uniform1f(WebGLUniformLocation? location, GLfloat x);
+    [Custom] void uniform1fv(WebGLUniformLocation? location, Float32Array v);
+    void uniform1i(WebGLUniformLocation? location, GLint x);
+    [Custom] void uniform1iv(WebGLUniformLocation? location, Int32Array v);
+    void uniform2f(WebGLUniformLocation? location, GLfloat x, GLfloat y);
+    [Custom] void uniform2fv(WebGLUniformLocation? location, Float32Array v);
+    void uniform2i(WebGLUniformLocation? location, GLint x, GLint y);
+    [Custom] void uniform2iv(WebGLUniformLocation? location, Int32Array v);
+    void uniform3f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z);
+    [Custom] void uniform3fv(WebGLUniformLocation? location, Float32Array v);
+    void uniform3i(WebGLUniformLocation? location, GLint x, GLint y, GLint z);
+    [Custom] void uniform3iv(WebGLUniformLocation? location, Int32Array v);
+    void uniform4f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+    [Custom] void uniform4fv(WebGLUniformLocation? location, Float32Array v);
+    void uniform4i(WebGLUniformLocation? location, GLint x, GLint y, GLint z, GLint w);
+    [Custom] void uniform4iv(WebGLUniformLocation? location, Int32Array v);
 
-    [StrictTypeChecking, Custom] void uniformMatrix2fv(WebGLUniformLocation location, GLboolean transpose, Float32Array array);
-    [StrictTypeChecking, Custom] void uniformMatrix3fv(WebGLUniformLocation location, GLboolean transpose, Float32Array array);
-    [StrictTypeChecking, Custom] void uniformMatrix4fv(WebGLUniformLocation location, GLboolean transpose, Float32Array array);
+    [Custom] void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array array);
+    [Custom] void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array array);
+    [Custom] void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array array);
 
-    [StrictTypeChecking] void         useProgram(WebGLProgram program);
-    [StrictTypeChecking] void         validateProgram(WebGLProgram program);
+    void useProgram(WebGLProgram? program);
+    void validateProgram(WebGLProgram? program);
 
-    [StrictTypeChecking] void         vertexAttrib1f(GLuint indx, GLfloat x);
-    [StrictTypeChecking, Custom] void vertexAttrib1fv(GLuint indx, Float32Array values);
-    [StrictTypeChecking] void         vertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
-    [StrictTypeChecking, Custom] void vertexAttrib2fv(GLuint indx, Float32Array values);
-    [StrictTypeChecking] void         vertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
-    [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] void         vertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized,
-                                                          GLsizei stride, GLintptr offset);
+    void vertexAttrib1f(GLuint indx, GLfloat x);
+    [Custom] void vertexAttrib1fv(GLuint indx, Float32Array values);
+    void vertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
+    [Custom] void vertexAttrib2fv(GLuint indx, Float32Array values);
+    void vertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
+    [Custom] void vertexAttrib3fv(GLuint indx, Float32Array values);
+    void vertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+    [Custom] void vertexAttrib4fv(GLuint indx, Float32Array values);
+    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);
+    void viewport(GLint x, GLint y, GLsizei width, GLsizei height);
 };
diff --git a/core/html/ime/InputMethodContext.idl b/core/html/ime/InputMethodContext.idl
index 8ce8c4a..043feed 100644
--- a/core/html/ime/InputMethodContext.idl
+++ b/core/html/ime/InputMethodContext.idl
@@ -30,7 +30,6 @@
 
 // http://www.w3.org/TR/ime-api/
 interface InputMethodContext : EventTarget {
-    readonly attribute Composition composition;
     readonly attribute DOMString locale;
     readonly attribute HTMLElement target;
     readonly attribute unsigned long compositionStartOffset;
diff --git a/core/html/shadow/HTMLShadowElement.idl b/core/html/shadow/HTMLShadowElement.idl
index faceace..44bc357 100644
--- a/core/html/shadow/HTMLShadowElement.idl
+++ b/core/html/shadow/HTMLShadowElement.idl
@@ -30,6 +30,5 @@
 
 interface HTMLShadowElement : HTMLElement {
     attribute boolean resetStyleInheritance;
-    [DeprecateAs=HTMLShadowElementOlderShadowRoot] readonly attribute ShadowRoot olderShadowRoot;
     [RuntimeEnabled=ShadowDOM] NodeList getDistributedNodes();
 };
diff --git a/core/html/track/TextTrackList.idl b/core/html/track/TextTrackList.idl
index bbcd2d9..f9d982d 100644
--- a/core/html/track/TextTrackList.idl
+++ b/core/html/track/TextTrackList.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    GenerateVisitDOMWrapper=owner,
+    SetWrapperReferenceFrom=owner,
     RuntimeEnabled=VideoTrack,
 ] interface TextTrackList : EventTarget {
     readonly attribute unsigned long length;
diff --git a/core/inspector/CodeGeneratorInspector.py b/core/inspector/CodeGeneratorInspector.py
index 163ce99..342b5a2 100755
--- a/core/inspector/CodeGeneratorInspector.py
+++ b/core/inspector/CodeGeneratorInspector.py
@@ -49,11 +49,9 @@
 
 TYPES_WITH_RUNTIME_CAST_SET = frozenset(["Runtime.RemoteObject", "Runtime.PropertyDescriptor", "Runtime.InternalPropertyDescriptor",
                                          "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"])
+                                         "Canvas.TraceLog", "Canvas.ResourceState"])
 
-TYPES_WITH_OPEN_FIELD_LIST_SET = frozenset(["Timeline.TimelineEvent",
+TYPES_WITH_OPEN_FIELD_LIST_SET = frozenset([
                                             # InspectorStyleSheet not only creates this property but wants to read it and modify it.
                                             "CSS.CSSProperty",
                                             # InspectorResourceAgent needs to update mime-type.
@@ -1889,11 +1887,13 @@
         Generator.method_handler_list.append("            &InspectorBackendDispatcherImpl::%s_%s," % (domain_name, json_command_name))
         Generator.backend_method_declaration_list.append("    void %s_%s(long callId, JSONObject* requestMessageObject);" % (domain_name, json_command_name))
 
+        backend_agent_interface_list = [] if "redirect" in json_command else Generator.backend_agent_interface_list
+
         ad_hoc_type_output = []
-        Generator.backend_agent_interface_list.append(ad_hoc_type_output)
+        backend_agent_interface_list.append(ad_hoc_type_output)
         ad_hoc_type_writer = Writer(ad_hoc_type_output, "        ")
 
-        Generator.backend_agent_interface_list.append("        virtual void %s(ErrorString*" % json_command_name)
+        backend_agent_interface_list.append("        virtual void %s(ErrorString*" % json_command_name)
 
         method_in_code = ""
         method_out_code = ""
@@ -1908,7 +1908,7 @@
             error_type_model = error_type_binding.get_type_model().get_optional()
             error_annotated_type = error_type_model.get_command_return_pass_model().get_output_parameter_type()
             agent_call_param_list.append(", %serrorData" % error_type_model.get_command_return_pass_model().get_output_argument_prefix())
-            Generator.backend_agent_interface_list.append(", %s errorData" % error_annotated_type)
+            backend_agent_interface_list.append(", %s errorData" % error_annotated_type)
             method_in_code += "    %s errorData;\n" % error_type_model.get_command_return_pass_model().get_return_var_type()
 
             setter_argument = error_type_model.get_command_return_pass_model().get_output_to_raw_expression() % "errorData"
@@ -1962,7 +1962,7 @@
 
                 method_in_code += code
                 agent_call_param_list.append(param)
-                Generator.backend_agent_interface_list.append(", %s in_%s" % (formal_param_type_pattern % non_optional_type_model.get_command_return_pass_model().get_return_var_type(), json_param_name))
+                backend_agent_interface_list.append(", %s in_%s" % (formal_param_type_pattern % non_optional_type_model.get_command_return_pass_model().get_return_var_type(), json_param_name))
 
         if json_command.get("async") == True:
             callback_name = Capitalizer.lower_camel_case_to_upper(json_command_name) + "Callback"
@@ -2007,7 +2007,7 @@
             normal_response_cook_text += "        if (!error.length()) \n"
             normal_response_cook_text += "            return;\n"
             normal_response_cook_text += "        callback->disable();\n"
-            Generator.backend_agent_interface_list.append(", PassRefPtr<%s> callback" % callback_name)
+            backend_agent_interface_list.append(", PassRefPtr<%s> callback" % callback_name)
         else:
             if "returns" in json_command:
                 method_out_code += "\n"
@@ -2047,7 +2047,7 @@
                     if optional:
                         param_name = "opt_" + param_name
 
-                    Generator.backend_agent_interface_list.append(", %s %s" % (annotated_type, param_name))
+                    backend_agent_interface_list.append(", %s %s" % (annotated_type, param_name))
                     response_cook_list.append(cook)
 
                     method_out_code += code
@@ -2058,9 +2058,15 @@
                 if len(normal_response_cook_text) != 0:
                     normal_response_cook_text = "        if (!error.length()) {\n" + normal_response_cook_text + "        }"
 
+        # Redirect to another agent's implementation.
+        agent_field = "m_" + agent_field_name
+        if "redirect" in json_command:
+            domain_fixes = DomainNameFixes.get_fixed_data(json_command.get("redirect"))
+            agent_field = "m_" + domain_fixes.agent_field_name
+
         Generator.backend_method_implementation_list.append(Templates.backend_method.substitute(None,
             domainName=domain_name, methodName=json_command_name,
-            agentField="m_" + agent_field_name,
+            agentField=agent_field,
             methodInCode=method_in_code,
             methodOutCode=method_out_code,
             agentCallParams="".join(agent_call_param_list),
@@ -2073,7 +2079,7 @@
         Generator.backend_method_name_declaration_index_list.append("    %d," % Generator.backend_method_name_declaration_current_index)
         Generator.backend_method_name_declaration_current_index += len(declaration_command_name) - 1
 
-        Generator.backend_agent_interface_list.append(") = 0;\n")
+        backend_agent_interface_list.append(") = 0;\n")
 
     class CallbackMethodStructTemplate:
         @staticmethod
diff --git a/core/inspector/CodeGeneratorInspectorStrings.py b/core/inspector/CodeGeneratorInspectorStrings.py
index bc3bb73..94416e7 100644
--- a/core/inspector/CodeGeneratorInspectorStrings.py
+++ b/core/inspector/CodeGeneratorInspectorStrings.py
@@ -136,7 +136,6 @@
 
 namespace WebCore {
 
-class InspectorAgent;
 class JSONObject;
 class JSONArray;
 class InspectorFrontendChannel;
@@ -215,7 +214,6 @@
 #include "config.h"
 #include "InspectorBackendDispatcher.h"
 
-#include "core/inspector/InspectorAgent.h"
 #include "core/inspector/InspectorFrontendChannel.h"
 #include "core/inspector/JSONParser.h"
 #include "platform/JSONValues.h"
@@ -290,7 +288,7 @@
     long callId = 0;
 
     if (dispatchMap.isEmpty()) {
-        static CallHandler handlers[] = {
+        static const CallHandler handlers[] = {
 $messageHandlers
         };
         for (size_t i = 0; i < kMethodNamesEnumSize; ++i)
diff --git a/core/inspector/CodeGeneratorInstrumentation.py b/core/inspector/CodeGeneratorInstrumentation.py
index ce639eb..aa84d84 100644
--- a/core/inspector/CodeGeneratorInstrumentation.py
+++ b/core/inspector/CodeGeneratorInstrumentation.py
@@ -405,7 +405,7 @@
 
 
 def agent_class_name(agent):
-    custom_agent_names = ["Inspector", "PageDebugger", "PageRuntime", "WorkerRuntime"]
+    custom_agent_names = ["PageDebugger", "PageRuntime", "WorkerRuntime"]
     if agent in custom_agent_names:
         return "%sAgent" % agent
     return "Inspector%sAgent" % agent
diff --git a/core/inspector/InjectedScriptHost.idl b/core/inspector/InjectedScriptHost.idl
index 77e4cbe..da13730 100644
--- a/core/inspector/InjectedScriptHost.idl
+++ b/core/inspector/InjectedScriptHost.idl
@@ -41,16 +41,14 @@
     [Custom] boolean isHTMLAllCollection(any obj);
     [Custom] DOMString type(any obj);
     [Custom] any functionDetails(any obj);
-    [Custom] Array getInternalProperties(any obj);
-    [Custom] Array getEventListeners(Node node);
+    [Custom] any[] getInternalProperties(any obj);
+    [Custom] EventListener[] getEventListeners(EventTarget target);
     [Custom] any evaluate(DOMString text);
-    [Custom] DOMString databaseId(any database);
-    [Custom] DOMString storageId(any storage);
     [Custom] void debugFunction(any fn);
     [Custom] void undebugFunction(any fn);
     [Custom] void monitorFunction(any fn);
     [Custom] void unmonitorFunction(any fn);
 
     // Only declarative scope (local, with and catch) is accepted. Returns undefined.
-    [Custom] any setFunctionVariableValue(any functionObject, int scopeIndex, DOMString variableName, any newValue);
+    [Custom] any setFunctionVariableValue(any functionObject, long scopeIndex, DOMString variableName, any newValue);
 };
diff --git a/core/inspector/InspectorFrontendHost.idl b/core/inspector/InspectorFrontendHost.idl
index 467e7aa..a9102bc 100644
--- a/core/inspector/InspectorFrontendHost.idl
+++ b/core/inspector/InspectorFrontendHost.idl
@@ -33,7 +33,9 @@
 [
     NoInterfaceObject
 ] interface InspectorFrontendHost {
+    // FIXME: setZoomFactor is here only for old frontends. Remove in M38.
     void setZoomFactor(float zoom);
+    float zoomFactor();
     void inspectedURLChanged(DOMString newURL);
 
     void setInjectedScriptForOrigin(DOMString origin, DOMString script);
@@ -53,8 +55,5 @@
     DOMString getSelectionBackgroundColor();
     DOMString getSelectionForegroundColor();
 
-    DOMFileSystem isolatedFileSystem(DOMString fileSystemId, DOMString registeredName);
-    void upgradeDraggedFileSystemPermissions(DOMFileSystem domFileSystem);
-
     boolean isUnderTest();
 };
diff --git a/core/inspector/InspectorInstrumentation.idl b/core/inspector/InspectorInstrumentation.idl
index 02e8591..adda1e4 100644
--- a/core/inspector/InspectorInstrumentation.idl
+++ b/core/inspector/InspectorInstrumentation.idl
@@ -65,7 +65,7 @@
 #include "core/dom/PseudoElement.h"
 
     [Page, Inspector, PageDebugger, PageRuntime]
-    void didClearWindowObjectInWorld([Keep] Frame*, DOMWrapperWorld*);
+    void didClearWindowObjectInMainWorld([Keep] Frame*);
 
     [DOMDebugger, Inline=FastReturn]
     void willInsertDOMNode([Keep] Node* parent);
@@ -91,9 +91,6 @@
     [DOM, DOMDebugger, Inline=FastReturn]
     void didInvalidateStyleAttr([Keep] Node*);
 
-    [DOM, Inline=FastReturn]
-    void pseudoStateChanged([Keep] Node*);
-
     [CSS, Inline=FastReturn]
     void willMutateRules(CSSStyleSheet*);
 
@@ -107,7 +104,7 @@
     void didMutateStyle([Keep] CSSStyleDeclaration*, bool);
 
     [CSS, Inline=FastReturn]
-    void activeStyleSheetsUpdated([Keep] Document*, const Vector<RefPtr<StyleSheet> >& newSheets);
+    void activeStyleSheetsUpdated([Keep] Document*);
 
     [Console]
     void frameWindowDiscarded(Frame*, DOMWindow* domWindow);
@@ -121,18 +118,6 @@
     [DOM, Inline=FastReturn]
     void willPopShadowRoot([Keep] Element* host, ShadowRoot*);
 
-    [CSS, Inline=FastReturn]
-    void didCreateNamedFlow([Keep] Document*, NamedFlow*);
-
-    [CSS, Inline=FastReturn]
-    void willRemoveNamedFlow([Keep] Document*, NamedFlow*);
-
-    [CSS, Inline=FastReturn]
-    void didUpdateRegionLayout([Keep] Document*, NamedFlow*);
-
-    [CSS, Inline=FastReturn]
-    void didChangeRegionOverset([Keep] Document*, NamedFlow*);
-
     [DOMDebugger, Inline=FastReturn]
     void willSendXMLHttpRequest(ExecutionContext*, const String& url);
 
@@ -172,8 +157,17 @@
     [Timeline, Inline=FastReturn]
     void didDispatchEvent(const InspectorInstrumentationCookie&);
 
-    [DOMDebugger, Inline=FastReturn]
-    InspectorInstrumentationCookie willHandleEvent(ExecutionContext*, Event*);
+    [Debugger, Inline=FastReturn]
+    void didAddEventListener([Keep] EventTarget*, const AtomicString& eventType, EventListener* listener, bool useCapture);
+
+    [Debugger, Inline=FastReturn]
+    void didRemoveEventListener([Keep] EventTarget*, const AtomicString& eventType, EventListener* listener, bool useCapture);
+
+    [Debugger, Inline=FastReturn]
+    void didRemoveAllEventListeners([Keep] EventTarget*);
+
+    [Debugger, DOMDebugger, Inline=FastReturn]
+    InspectorInstrumentationCookie willHandleEvent([Keep] EventTarget*, const AtomicString& eventType, EventListener* listener, bool useCapture);
 
     [Debugger, Inline=FastReturn]
     void didHandleEvent(const InspectorInstrumentationCookie&);
@@ -184,15 +178,33 @@
     [Timeline, Inline=FastReturn]
     void didDispatchEventOnWindow(const InspectorInstrumentationCookie&);
 
+    [Debugger, Inline=FastReturn]
+    void didEnqueueMutationRecord([Keep] ExecutionContext*, MutationObserver*);
+
+    [Debugger, Inline=FastReturn]
+    void didClearAllMutationRecords([Keep] ExecutionContext*, MutationObserver*);
+
+    [Debugger, Inline=FastReturn]
+    void willDeliverMutationRecords([Keep] ExecutionContext*, MutationObserver*);
+
+    [Debugger, Inline=FastReturn]
+    void didDeliverMutationRecords(ExecutionContext*);
+
+    [Debugger, Inline=FastReturn]
+    void didPostPromiseTask([Keep] ExecutionContext*, ExecutionContextTask*, bool isResolved);
+
+    [Debugger, Inline=FastReturn]
+    InspectorInstrumentationCookie willPerformPromiseTask([Keep] ExecutionContext*, ExecutionContextTask*);
+
+    [Debugger, Inline=FastReturn]
+    void didPerformPromiseTask(const InspectorInstrumentationCookie&);
+
     [Timeline, Inline=FastReturn]
     InspectorInstrumentationCookie willEvaluateScript([Keep] Frame*, const String& url, int lineNumber);
 
     [Timeline, Inline=FastReturn]
     void didEvaluateScript(const InspectorInstrumentationCookie&);
 
-    [Page, Inline=FastReturn]
-    void scriptsEnabled(Page*, bool isEnabled);
-
     [PageRuntime, Inline=FastReturn]
     void didCreateIsolatedContext([Keep] Frame*, ScriptState*, SecurityOrigin*);
 
@@ -271,8 +283,6 @@
     [Timeline, Resource]
     void willSendRequest(Frame*, unsigned long identifier, DocumentLoader*, ResourceRequest&, const ResourceResponse& redirectResponse, const FetchInitiatorInfo&);
 
-    void continueAfterPingLoader(Frame*, unsigned long identifier, DocumentLoader*, ResourceRequest&, const ResourceResponse&);
-
     [Resource]
     void markResourceAsCached(Page*, unsigned long identifier);
 
@@ -298,25 +308,25 @@
     void didReceiveData(Frame*, unsigned long identifier, const char* data, int dataLength, int encodedDataLength);
 
     [Timeline, Resource]
-    void didFinishLoading(Frame* frame, unsigned long identifier, DocumentLoader*, double finishTime);
+    void didFinishLoading(Frame* frame, unsigned long identifier, DocumentLoader*, double finishTime, int64_t encodedDataLength);
 
     [Resource]
     void didReceiveCORSRedirectResponse([Keep] Frame*, unsigned long identifier, DocumentLoader*, const ResourceResponse&, ResourceLoader*);
 
     [Timeline, Resource, Console] // Console should come AFTER Resource notification, front-end relies on this.
-    void didFailLoading(Frame* frame, unsigned long identifier, DocumentLoader*, const ResourceError&);
+    void didFailLoading(Frame* frame, unsigned long identifier, const ResourceError&);
 
     [Resource]
     void documentThreadableLoaderStartedLoadingForClient(ExecutionContext*, unsigned long identifier, ThreadableLoaderClient* client);
 
-    [Resource]
+    [Debugger, Resource]
     void willLoadXHR(ExecutionContext*, XMLHttpRequest* xhr, ThreadableLoaderClient* client, const AtomicString& method, const KURL& url, bool async, PassRefPtr<FormData>, const HTTPHeaderMap& headers, bool includeCredentials);
 
     [Resource]
     void didFailXHRLoading(ExecutionContext*, XMLHttpRequest* xhr, ThreadableLoaderClient* client);
 
     [Console, Resource]
-    void didFinishXHRLoading(ExecutionContext*, XMLHttpRequest* xhr, ThreadableLoaderClient* client, unsigned long identifier, ScriptString sourceString, const String& url, const String& sendURL, unsigned sendLineNumber);
+    void didFinishXHRLoading(ExecutionContext*, XMLHttpRequest* xhr, ThreadableLoaderClient* client, unsigned long identifier, ScriptString sourceString, const AtomicString& method, const String& url, const String& sendURL, unsigned sendLineNumber);
 
     [Resource]
     void scriptImported(ExecutionContext*, unsigned long identifier, const String& sourceString);
@@ -339,7 +349,7 @@
     [Canvas, Page, CSS]
     void frameDetachedFromParent([Keep] Frame*);
 
-    [Console, Resource, CSS, Database, DOM, Inspector, Canvas, Page, PageDebugger]
+    [Console, Resource, CSS, DOM, Inspector, Canvas, Page, PageDebugger]
     void didCommitLoad([Keep] Frame*, DocumentLoader*);
 
     [DOM, Inline=FastReturn]
@@ -424,10 +434,10 @@
     void didCloseWebSocket([Keep] Document*, unsigned long identifier);
 
     [Resource]
-    void didReceiveWebSocketFrame(Document*, unsigned long identifier, const WebSocketFrame& frame);
+    void didReceiveWebSocketFrame(Document*, unsigned long identifier, int opCode, bool masked, const char* payload, size_t payloadLength);
 
     [Resource]
-    void didSendWebSocketFrame(Document*, unsigned long identifier, const WebSocketFrame& frame);
+    void didSendWebSocketFrame(Document*, unsigned long identifier, int opCode, bool masked, const char* payload, size_t payloadLength);
 
     [Resource]
     void didReceiveWebSocketFrameError(Document*, unsigned long identifier, const String& errorMessage);
@@ -446,6 +456,9 @@
 
     [DOM, Inline=FastReturn]
     void pseudoElementDestroyed([Keep] PseudoElement*);
+
+    [DOMDebugger, Inline=FastReturn]
+    void willExecuteCustomElementCallback([Keep] Element*);
 }
 
 interface InspectorConsoleInstrumentation {
@@ -490,29 +503,12 @@
     void consoleProfileEnd(ExecutionContext* context, const String& title);
 }
 
-interface InspectorDatabaseInstrumentation {
-
-#include "modules/webdatabase/Database.h"
-
-    [Database]
-    void didOpenDatabase(ExecutionContext* context, PassRefPtr<Database> database, const String& domain, const String& name, const String& version);
-}
-
 interface InspectorOverrides {
     [CSS, Inline=FastReturn]
     bool forcePseudoState([Keep] Element* element, CSSSelector::PseudoType pseudoState);
 
     [Worker, Inline=FastReturn]
     bool shouldPauseDedicatedWorkerOnStart(ExecutionContext* context);
-
-    [Page, Inline=FastReturn]
-    GeolocationPosition* overrideGeolocationPosition(Page* page, [DefaultReturn] GeolocationPosition* position);
-
-    [Page, Inline=FastReturn]
-    float overrideFontScaleFactor(Page* page, [DefaultReturn] float fontScaleFactor);
-
-    [Page, Inline=FastReturn]
-    bool overrideTextAutosizing(Page* page, [DefaultReturn] bool textAutosizing);
 }
 
 
diff --git a/core/page/EventSource.idl b/core/page/EventSource.idl
index 3562791..5e3efa8 100644
--- a/core/page/EventSource.idl
+++ b/core/page/EventSource.idl
@@ -37,7 +37,7 @@
     RaisesException=Constructor,
 ] interface EventSource : EventTarget {
 
-    readonly attribute DOMString URL; // Lowercased .url is the one in the spec, but leaving .URL for compatibility reasons.
+    [MeasureAs=EventSourceURL] readonly attribute DOMString URL; // Lowercased .url is the one in the spec, but leaving .URL for compatibility reasons.
     readonly attribute DOMString url;
     readonly attribute boolean withCredentials;
 
diff --git a/core/page/Selection.idl b/core/page/Selection.idl
index 8f03f8e..9c5b2d7 100644
--- a/core/page/Selection.idl
+++ b/core/page/Selection.idl
@@ -76,7 +76,7 @@
                           [Default=Undefined] optional long baseOffset,
                           [Default=Undefined] optional Node extentNode,
                           [Default=Undefined] optional long extentOffset);
-    [RaisesException] void setPosition([Default=Undefined] optional Node node,
+    [RaisesException, ImplementedAs=collapse] void setPosition([Default=Undefined] optional Node node,
                      [Default=Undefined] optional long offset);
 
     // IE extentions
diff --git a/core/page/WindowPagePopup.idl b/core/page/WindowPagePopup.idl
index e4b5839..0b81785 100644
--- a/core/page/WindowPagePopup.idl
+++ b/core/page/WindowPagePopup.idl
@@ -29,8 +29,9 @@
  */
 
 [
+    ImplementedAs=DOMWindowPagePopup,
+    PerContextEnabled=PagePopup,
     RuntimeEnabled=PagePopup,
-    ImplementedAs=DOMWindowPagePopup
 ] partial interface Window {
-    [PerContextEnabled=PagePopup] readonly attribute PagePopupController pagePopupController;
+    readonly attribute PagePopupController pagePopupController;
 };
diff --git a/core/plugins/MimeType.idl b/core/plugins/MimeType.idl
index 7af6fc1..26c6cc4 100644
--- a/core/plugins/MimeType.idl
+++ b/core/plugins/MimeType.idl
@@ -19,6 +19,7 @@
 */
 
 [
+    WillBeGarbageCollected,
     ImplementedAs=DOMMimeType
 ] interface MimeType {
     readonly attribute DOMString type;
diff --git a/core/plugins/MimeTypeArray.idl b/core/plugins/MimeTypeArray.idl
index ea11b6b..0a33ada 100644
--- a/core/plugins/MimeTypeArray.idl
+++ b/core/plugins/MimeTypeArray.idl
@@ -19,11 +19,12 @@
 */
 
 [
+    WillBeGarbageCollected,
     ImplementedAs=DOMMimeTypeArray
 ] interface MimeTypeArray {
     readonly attribute unsigned long length;
     getter MimeType item([Default=Undefined] optional unsigned long index);
     MimeType namedItem([Default=Undefined] optional DOMString name);
-    [NotEnumerable, ImplementedAs=namedItem] getter MimeType([Default=Undefined] optional DOMString name);
+    [NotEnumerable, ImplementedAs=namedItem] getter MimeType ([Default=Undefined] optional DOMString name);
 };
 
diff --git a/core/plugins/Plugin.idl b/core/plugins/Plugin.idl
index c1259e1..689df50 100644
--- a/core/plugins/Plugin.idl
+++ b/core/plugins/Plugin.idl
@@ -19,6 +19,7 @@
 */
 
 [
+    WillBeGarbageCollected,
     ImplementedAs=DOMPlugin
 ] interface Plugin {
     readonly attribute DOMString name;
diff --git a/core/plugins/PluginArray.idl b/core/plugins/PluginArray.idl
index 47d9cc2..dc2ab1d 100644
--- a/core/plugins/PluginArray.idl
+++ b/core/plugins/PluginArray.idl
@@ -19,6 +19,7 @@
 */
 
 [
+    WillBeGarbageCollected,
     ImplementedAs=DOMPluginArray
 ] interface PluginArray {
     readonly attribute unsigned long length;
diff --git a/core/storage/Storage.idl b/core/storage/Storage.idl
index 90309fe..6eea590 100644
--- a/core/storage/Storage.idl
+++ b/core/storage/Storage.idl
@@ -23,18 +23,21 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface Storage {
-    [RaisesException, ImplementedAs=anonymousIndexedGetter, NotEnumerable] getter DOMString(unsigned long index);
-    [RaisesException, ImplementedAs=anonymousIndexedSetter] setter DOMString (unsigned long index, DOMString value);
-    [ImplementedAs=anonymousIndexedDeleter, RaisesException] deleter boolean (unsigned long index);
-    [RaisesException, ImplementedAs=anonymousNamedGetter] getter DOMString(DOMString name);
-    [RaisesException, ImplementedAs=anonymousNamedSetter] setter DOMString(DOMString name, DOMString value);
-    [ImplementedAs=anonymousNamedDeleter, RaisesException] deleter boolean (DOMString name);
-    [NotEnumerable, RaisesException=Getter] readonly attribute unsigned long length;
-    [NotEnumerable, TreatReturnedNullStringAs=Null, RaisesException] DOMString key(unsigned long index);
-    [NotEnumerable, TreatReturnedNullStringAs=Null, PerWorldBindings, ActivityLogging=ForIsolatedWorlds, RaisesException] DOMString getItem(DOMString key);
-    [NotEnumerable, RaisesException, PerWorldBindings, ActivityLogging=ForIsolatedWorlds] void setItem(DOMString key, DOMString data);
-    [NotEnumerable, RaisesException, PerWorldBindings, ActivityLogging=ForIsolatedWorlds] void removeItem(DOMString key);
-    [NotEnumerable, RaisesException, PerWorldBindings, ActivityLogging=ForIsolatedWorlds] void clear();
-};
+[
+    WillBeGarbageCollected
+] interface Storage {
+    [NotEnumerable, RaisesException] getter DOMString (unsigned long index);
+    [RaisesException] setter DOMString (unsigned long index, DOMString value);
+    [RaisesException] deleter boolean (unsigned long index);
 
+    [RaisesException] getter DOMString (DOMString name);
+    [RaisesException] setter DOMString (DOMString name, DOMString value);
+    [RaisesException] deleter boolean (DOMString name);
+
+    [NotEnumerable, RaisesException=Getter] readonly attribute unsigned long length;
+    [NotEnumerable, RaisesException, TreatReturnedNullStringAs=Null] DOMString key(unsigned long index);
+    [ActivityLogging=ForIsolatedWorlds, NotEnumerable, PerWorldBindings, RaisesException, TreatReturnedNullStringAs=Null] DOMString getItem(DOMString key);
+    [ActivityLogging=ForIsolatedWorlds, NotEnumerable, RaisesException, PerWorldBindings] void setItem(DOMString key, DOMString data);
+    [ActivityLogging=ForIsolatedWorlds, NotEnumerable, PerWorldBindings, RaisesException] void removeItem(DOMString key);
+    [ActivityLogging=ForIsolatedWorlds, NotEnumerable, PerWorldBindings, RaisesException] void clear();
+};
diff --git a/core/svg/SVGAElement.idl b/core/svg/SVGAElement.idl
index bcbb517..8f0288e 100644
--- a/core/svg/SVGAElement.idl
+++ b/core/svg/SVGAElement.idl
@@ -27,6 +27,5 @@
     [ImplementedAs=svgTarget] readonly attribute SVGAnimatedString target;
 };
 
-SVGAElement implements SVGExternalResourcesRequired;
 SVGAElement implements SVGURIReference;
 
diff --git a/core/svg/SVGAngle.idl b/core/svg/SVGAngle.idl
index 665f6ea..423a6db 100644
--- a/core/svg/SVGAngle.idl
+++ b/core/svg/SVGAngle.idl
@@ -20,7 +20,9 @@
  * Boston, MA 02110-1301, USA.
  */
 
-interface SVGAngle {
+[
+    StrictTypeChecking,
+] interface SVGAngle {
     // Angle Unit Types
     const unsigned short SVG_ANGLETYPE_UNKNOWN = 0;
     const unsigned short SVG_ANGLETYPE_UNSPECIFIED = 1;
@@ -29,13 +31,13 @@
     const unsigned short SVG_ANGLETYPE_GRAD = 4;
 
     readonly attribute unsigned short unitType;
-    [StrictTypeChecking] attribute float value;
-    [StrictTypeChecking] attribute float valueInSpecifiedUnits;
+    attribute float value;
+    attribute float valueInSpecifiedUnits;
 
     [TreatNullAs=NullString, RaisesException=Setter] attribute DOMString valueAsString;
 
-    [StrictTypeChecking, RaisesException] void newValueSpecifiedUnits(unsigned short unitType, float valueInSpecifiedUnits);
+    [RaisesException] void newValueSpecifiedUnits(unsigned short unitType, float valueInSpecifiedUnits);
 
-    [StrictTypeChecking, RaisesException] void convertToSpecifiedUnits(unsigned short unitType);
+    [RaisesException] void convertToSpecifiedUnits(unsigned short unitType);
 };
 
diff --git a/core/svg/SVGAnimatedBoolean.idl b/core/svg/SVGAnimatedBoolean.idl
index 7fc919c..b78954a 100644
--- a/core/svg/SVGAnimatedBoolean.idl
+++ b/core/svg/SVGAnimatedBoolean.idl
@@ -23,8 +23,10 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGAnimatedBoolean {
-    [StrictTypeChecking, RaisesException=Setter] attribute boolean baseVal;
+[
+    StrictTypeChecking,
+] interface SVGAnimatedBoolean {
+    [RaisesException=Setter] attribute boolean baseVal;
     readonly attribute boolean animVal;
 };
 
diff --git a/core/svg/SVGAnimatedEnumeration.idl b/core/svg/SVGAnimatedEnumeration.idl
index e51c9c1..7ed1d19 100644
--- a/core/svg/SVGAnimatedEnumeration.idl
+++ b/core/svg/SVGAnimatedEnumeration.idl
@@ -23,8 +23,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGAnimatedEnumeration {
-    [StrictTypeChecking, RaisesException=Setter] attribute unsigned short baseVal;
+[
+    StrictTypeChecking,
+] interface SVGAnimatedEnumeration {
+    [RaisesException=Setter] attribute unsigned short baseVal;
     readonly attribute unsigned short animVal;
 };
-
diff --git a/core/svg/SVGAnimatedInteger.idl b/core/svg/SVGAnimatedInteger.idl
index 3c31681..14287a3 100644
--- a/core/svg/SVGAnimatedInteger.idl
+++ b/core/svg/SVGAnimatedInteger.idl
@@ -23,8 +23,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGAnimatedInteger {
-    [StrictTypeChecking, RaisesException=Setter] attribute long baseVal;
+[
+    StrictTypeChecking,
+] interface SVGAnimatedInteger {
+    [RaisesException=Setter] attribute long baseVal;
     readonly attribute long animVal;
 };
-
diff --git a/core/svg/SVGAnimatedNumber.idl b/core/svg/SVGAnimatedNumber.idl
index e8cc9ba..7890bef 100644
--- a/core/svg/SVGAnimatedNumber.idl
+++ b/core/svg/SVGAnimatedNumber.idl
@@ -24,8 +24,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGAnimatedNumber {
-    [StrictTypeChecking, RaisesException=Setter] attribute float baseVal;
+[
+    StrictTypeChecking,
+] interface SVGAnimatedNumber {
+    [RaisesException=Setter] attribute float baseVal;
     readonly attribute float animVal;
 };
-
diff --git a/core/svg/SVGAnimationElement.idl b/core/svg/SVGAnimationElement.idl
index 9e11278..945a2a3 100644
--- a/core/svg/SVGAnimationElement.idl
+++ b/core/svg/SVGAnimationElement.idl
@@ -37,5 +37,4 @@
     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 67f3d44..19630dd 100644
--- a/core/svg/SVGCircleElement.idl
+++ b/core/svg/SVGCircleElement.idl
@@ -30,5 +30,3 @@
     readonly attribute SVGAnimatedLength r;
 };
 
-SVGCircleElement implements SVGExternalResourcesRequired;
-
diff --git a/core/svg/SVGClipPathElement.idl b/core/svg/SVGClipPathElement.idl
index 0d729d2..4bb7cf1 100644
--- a/core/svg/SVGClipPathElement.idl
+++ b/core/svg/SVGClipPathElement.idl
@@ -27,5 +27,3 @@
 interface SVGClipPathElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedEnumeration clipPathUnits;
 };
-
-SVGClipPathElement implements SVGExternalResourcesRequired;
diff --git a/core/svg/SVGColor.idl b/core/svg/SVGColor.idl
deleted file mode 100644
index 6cce81e..0000000
--- a/core/svg/SVGColor.idl
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
- * Copyright (C) 2006 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-interface SVGColor : CSSValue {
-    const unsigned short SVG_COLORTYPE_UNKNOWN = 0;
-    const unsigned short SVG_COLORTYPE_RGBCOLOR = 1;
-    const unsigned short SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2;
-    const unsigned short SVG_COLORTYPE_CURRENTCOLOR = 3;
-
-    readonly attribute unsigned short colorType;
-    readonly attribute RGBColor rgbColor;
-    // FIXME: readonly attribute SVGICCColor iccColor;
-
-    [StrictTypeChecking, RaisesException] void setRGBColor(DOMString rgbColor);
-
-    [StrictTypeChecking, RaisesException] void setRGBColorICCColor(DOMString rgbColor, DOMString iccColor);
-
-    [StrictTypeChecking, RaisesException] void setColor(unsigned short colorType, DOMString rgbColor, DOMString iccColor);
-};
-
diff --git a/core/svg/SVGCursorElement.idl b/core/svg/SVGCursorElement.idl
index d386935..7e35ec1 100644
--- a/core/svg/SVGCursorElement.idl
+++ b/core/svg/SVGCursorElement.idl
@@ -28,7 +28,6 @@
     readonly attribute SVGAnimatedLength y;
 };
 
-SVGCursorElement implements SVGExternalResourcesRequired;
 SVGCursorElement implements SVGURIReference;
 SVGCursorElement implements SVGTests;
 
diff --git a/core/svg/SVGDefsElement.idl b/core/svg/SVGDefsElement.idl
index f4e727a..807db63 100644
--- a/core/svg/SVGDefsElement.idl
+++ b/core/svg/SVGDefsElement.idl
@@ -26,5 +26,3 @@
 interface SVGDefsElement : SVGGraphicsElement {
 };
 
-SVGDefsElement implements SVGExternalResourcesRequired;
-
diff --git a/modules/crypto/HmacParams.idl b/core/svg/SVGDiscardElement.idl
similarity index 89%
rename from modules/crypto/HmacParams.idl
rename to core/svg/SVGDiscardElement.idl
index 2dae1c8..54ee14a 100644
--- a/modules/crypto/HmacParams.idl
+++ b/core/svg/SVGDiscardElement.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2014 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,8 +28,5 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    NoInterfaceObject,
-] interface HmacParams : Algorithm {
-    readonly attribute Algorithm hash;
+interface SVGDiscardElement : SVGElement {
 };
diff --git a/core/svg/SVGDocument.idl b/core/svg/SVGDocument.idl
index dced411..0f1dafc 100644
--- a/core/svg/SVGDocument.idl
+++ b/core/svg/SVGDocument.idl
@@ -19,10 +19,7 @@
  * Boston, MA 02110-1301, USA.
  */
 
-interface SVGDocument : Document {
-    readonly attribute SVGSVGElement        rootElement;
-
-    // Overwrite the one in events::DocumentEvent
-    [RaisesException] Event createEvent([Default=Undefined] optional DOMString eventType);
+partial interface Document {
+    [MeasureAs=SVGDocumentRootElement] readonly attribute SVGSVGElement        rootElement;
 };
 
diff --git a/core/svg/SVGElement.idl b/core/svg/SVGElement.idl
index d27e2ab..feffa7c 100644
--- a/core/svg/SVGElement.idl
+++ b/core/svg/SVGElement.idl
@@ -23,7 +23,7 @@
 [
     Custom=Wrap,
 ] interface SVGElement : Element {
-    [TreatNullAs=NullString] attribute DOMString xmlbase;
+    attribute DOMString xmlbase;
     readonly attribute SVGSVGElement ownerSVGElement;
     readonly attribute SVGElement viewportElement;
 
@@ -33,7 +33,10 @@
     readonly attribute SVGAnimatedString className;
     readonly attribute CSSStyleDeclaration style;
 
-    CSSValue getPresentationAttribute([Default=Undefined] optional DOMString name);
+    // CSSValue was deprecated in 2003:
+    // http://lists.w3.org/Archives/Public/www-style/2003Oct/0347.html
+    [DeprecateAs=SVGElementGetPresentationAttribute] CSSValue getPresentationAttribute([Default=Undefined] optional DOMString name);
 };
 
 SVGElement implements GlobalEventHandlers;
+
diff --git a/core/svg/SVGEllipseElement.idl b/core/svg/SVGEllipseElement.idl
index fcd09c7..141ac2e 100644
--- a/core/svg/SVGEllipseElement.idl
+++ b/core/svg/SVGEllipseElement.idl
@@ -30,5 +30,3 @@
     readonly attribute SVGAnimatedLength ry;
 };
 
-SVGEllipseElement implements SVGExternalResourcesRequired;
-
diff --git a/core/svg/SVGFEImageElement.idl b/core/svg/SVGFEImageElement.idl
index 40e4191..7bbad83 100644
--- a/core/svg/SVGFEImageElement.idl
+++ b/core/svg/SVGFEImageElement.idl
@@ -27,7 +27,6 @@
     readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
 };
 
-SVGFEImageElement implements SVGExternalResourcesRequired;
 SVGFEImageElement implements SVGFilterPrimitiveStandardAttributes;
 SVGFEImageElement implements SVGURIReference;
 
diff --git a/core/svg/SVGFilterElement.idl b/core/svg/SVGFilterElement.idl
index 7934751..6a6997c 100644
--- a/core/svg/SVGFilterElement.idl
+++ b/core/svg/SVGFilterElement.idl
@@ -24,7 +24,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGFilterElement : SVGElement {
+[
+    StrictTypeChecking,
+] interface SVGFilterElement : SVGElement {
     readonly attribute SVGAnimatedEnumeration filterUnits;
     readonly attribute SVGAnimatedEnumeration primitiveUnits;
     readonly attribute SVGAnimatedLength      x;
@@ -34,10 +36,9 @@
     readonly attribute SVGAnimatedInteger     filterResX;
     readonly attribute SVGAnimatedInteger     filterResY;
 
-    void setFilterRes([Default=Undefined] optional unsigned long filterResX,
-                      [Default=Undefined] optional unsigned long filterResY);
+    void setFilterRes(unsigned long filterResX,
+                      unsigned long filterResY);
 };
 
-SVGFilterElement implements SVGExternalResourcesRequired;
 SVGFilterElement implements SVGURIReference;
 
diff --git a/core/svg/SVGFilterPrimitiveStandardAttributes.idl b/core/svg/SVGFilterPrimitiveStandardAttributes.idl
index 9f368ee..6ddcff6 100644
--- a/core/svg/SVGFilterPrimitiveStandardAttributes.idl
+++ b/core/svg/SVGFilterPrimitiveStandardAttributes.idl
@@ -25,8 +25,7 @@
  */
 
 [
-    NoInterfaceObject,
-    LegacyImplementedInBaseClass
+    NoInterfaceObject
 ] interface SVGFilterPrimitiveStandardAttributes {
     readonly attribute SVGAnimatedLength x;
     readonly attribute SVGAnimatedLength y;
diff --git a/core/svg/SVGFitToViewBox.idl b/core/svg/SVGFitToViewBox.idl
index 4e115fe..56bad0f 100644
--- a/core/svg/SVGFitToViewBox.idl
+++ b/core/svg/SVGFitToViewBox.idl
@@ -25,10 +25,8 @@
  */
 
 [
-    NoInterfaceObject,
-    LegacyImplementedInBaseClass
+    NoInterfaceObject
 ] interface SVGFitToViewBox {
     readonly attribute SVGAnimatedRect                viewBox;
     readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
 };
-
diff --git a/core/svg/SVGForeignObjectElement.idl b/core/svg/SVGForeignObjectElement.idl
index 778b9f5..3d348ff 100644
--- a/core/svg/SVGForeignObjectElement.idl
+++ b/core/svg/SVGForeignObjectElement.idl
@@ -30,5 +30,3 @@
     readonly attribute SVGAnimatedLength height;
 };
 
-SVGForeignObjectElement implements SVGExternalResourcesRequired;
-
diff --git a/core/svg/SVGGElement.idl b/core/svg/SVGGElement.idl
index 060969f..38a1146 100644
--- a/core/svg/SVGGElement.idl
+++ b/core/svg/SVGGElement.idl
@@ -26,5 +26,3 @@
 interface SVGGElement : SVGGraphicsElement {
 };
 
-SVGGElement implements SVGExternalResourcesRequired;
-
diff --git a/core/svg/SVGGeometryElement.idl b/core/svg/SVGGeometryElement.idl
index d783758..8cb7022 100644
--- a/core/svg/SVGGeometryElement.idl
+++ b/core/svg/SVGGeometryElement.idl
@@ -28,7 +28,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGGeometryElement : SVGGraphicsElement {
+[
+    StrictTypeChecking,
+] interface SVGGeometryElement : SVGGraphicsElement {
     boolean isPointInFill(SVGPoint point);
     boolean isPointInStroke(SVGPoint point);
 };
diff --git a/core/svg/SVGGradientElement.idl b/core/svg/SVGGradientElement.idl
index cc2f00b..ff2e048 100644
--- a/core/svg/SVGGradientElement.idl
+++ b/core/svg/SVGGradientElement.idl
@@ -37,6 +37,5 @@
     readonly attribute SVGAnimatedEnumeration   spreadMethod;
 };
 
-SVGGradientElement implements SVGExternalResourcesRequired;
 SVGGradientElement implements SVGURIReference;
 
diff --git a/core/svg/SVGGraphicsElement.idl b/core/svg/SVGGraphicsElement.idl
index eed23aa..7666cdc 100644
--- a/core/svg/SVGGraphicsElement.idl
+++ b/core/svg/SVGGraphicsElement.idl
@@ -34,8 +34,7 @@
     [MeasureAs=SVGLocatableNearestViewportElement] readonly attribute SVGElement nearestViewportElement;
     [MeasureAs=SVGLocatableFarthestViewportElement] readonly attribute SVGElement farthestViewportElement;
 
-    SVGRect   getBBox();
-    SVGRect   getStrokeBBox();
+    [ImplementedAs=getBBoxFromJavascript] SVGRect getBBox();
     SVGMatrix getCTM();
     SVGMatrix getScreenCTM();
     [RaisesException] SVGMatrix getTransformToElement([Default=Undefined] optional SVGElement element);
diff --git a/core/svg/SVGImageElement.idl b/core/svg/SVGImageElement.idl
index a2bc7b0..a659e29 100644
--- a/core/svg/SVGImageElement.idl
+++ b/core/svg/SVGImageElement.idl
@@ -31,6 +31,5 @@
     readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
 };
 
-SVGImageElement implements SVGExternalResourcesRequired;
 SVGImageElement implements SVGURIReference;
 
diff --git a/core/svg/SVGLength.idl b/core/svg/SVGLength.idl
index 4d29af7..97d9fea 100644
--- a/core/svg/SVGLength.idl
+++ b/core/svg/SVGLength.idl
@@ -20,7 +20,11 @@
  * Boston, MA 02110-1301, USA.
  */
 
-interface SVGLength {
+[
+    ImplementedAs=SVGLengthTearOff,
+    SetWrapperReferenceTo(SVGElement contextElement),
+    StrictTypeChecking,
+] interface SVGLength {
     // Length Unit Types
     const unsigned short SVG_LENGTHTYPE_UNKNOWN    = 0;
     const unsigned short SVG_LENGTHTYPE_NUMBER     = 1;
@@ -35,14 +39,13 @@
     const unsigned short SVG_LENGTHTYPE_PC         = 10;
 
     readonly attribute unsigned short unitType;
-    [Custom, StrictTypeChecking, RaisesException] attribute float value;
+    [RaisesException] attribute float value;
 
-    [StrictTypeChecking] attribute float valueInSpecifiedUnits;
-    [TreatNullAs=NullString, StrictTypeChecking, RaisesException=Setter] attribute DOMString valueAsString;
+    [RaisesException=Setter] attribute float valueInSpecifiedUnits;
+    [TreatNullAs=NullString, RaisesException=Setter] attribute DOMString valueAsString;
 
-    [StrictTypeChecking, RaisesException] void newValueSpecifiedUnits(unsigned short unitType,
-                                                     float valueInSpecifiedUnits);
+    [RaisesException] void newValueSpecifiedUnits(unsigned short unitType, float valueInSpecifiedUnits);
 
-    [Custom, StrictTypeChecking, RaisesException] void convertToSpecifiedUnits(unsigned short unitType);
+    [RaisesException] void convertToSpecifiedUnits(unsigned short unitType);
 };
 
diff --git a/core/svg/SVGLengthList.idl b/core/svg/SVGLengthList.idl
index 4149ab6..eb9e607 100644
--- a/core/svg/SVGLengthList.idl
+++ b/core/svg/SVGLengthList.idl
@@ -24,15 +24,19 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGLengthList {
+[
+    ImplementedAs=SVGLengthListTearOff,
+    SetWrapperReferenceTo(SVGElement contextElement),
+    StrictTypeChecking,
+] interface SVGLengthList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
-    [StrictTypeChecking, RaisesException] SVGLength initialize(SVGLength item);
-    [StrictTypeChecking, RaisesException] SVGLength getItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGLength insertItemBefore(SVGLength item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGLength replaceItem(SVGLength item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGLength removeItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGLength appendItem(SVGLength item);
+    [RaisesException] SVGLength initialize(SVGLength item);
+    [RaisesException] SVGLength getItem(unsigned long index);
+    [RaisesException] SVGLength insertItemBefore(SVGLength item, unsigned long index);
+    [RaisesException] SVGLength replaceItem(SVGLength item, unsigned long index);
+    [RaisesException] SVGLength removeItem(unsigned long index);
+    [RaisesException] SVGLength appendItem(SVGLength item);
 };
 
diff --git a/core/svg/SVGLineElement.idl b/core/svg/SVGLineElement.idl
index a12e80b..5adea6f 100644
--- a/core/svg/SVGLineElement.idl
+++ b/core/svg/SVGLineElement.idl
@@ -30,5 +30,3 @@
     readonly attribute SVGAnimatedLength y2;
 };
 
-SVGLineElement implements SVGExternalResourcesRequired;
-
diff --git a/core/svg/SVGMPathElement.idl b/core/svg/SVGMPathElement.idl
index 3849582..bb8aaf6 100644
--- a/core/svg/SVGMPathElement.idl
+++ b/core/svg/SVGMPathElement.idl
@@ -26,6 +26,5 @@
 interface SVGMPathElement : SVGElement {
 };
 
-SVGMPathElement implements SVGExternalResourcesRequired;
 SVGMPathElement implements SVGURIReference;
 
diff --git a/core/svg/SVGMarkerElement.idl b/core/svg/SVGMarkerElement.idl
index 0918d76..0e22319 100644
--- a/core/svg/SVGMarkerElement.idl
+++ b/core/svg/SVGMarkerElement.idl
@@ -46,6 +46,5 @@
     void setOrientToAngle([Default=Undefined] optional SVGAngle angle);
 };
 
-SVGMarkerElement implements SVGExternalResourcesRequired;
 SVGMarkerElement implements SVGFitToViewBox;
 
diff --git a/core/svg/SVGMaskElement.idl b/core/svg/SVGMaskElement.idl
index 22658d5..0678551 100644
--- a/core/svg/SVGMaskElement.idl
+++ b/core/svg/SVGMaskElement.idl
@@ -33,6 +33,5 @@
     readonly attribute SVGAnimatedLength height;
 };
 
-SVGMaskElement implements SVGExternalResourcesRequired;
 SVGMaskElement implements SVGTests;
 
diff --git a/core/svg/SVGMatrix.idl b/core/svg/SVGMatrix.idl
index af56029..eb28daa 100644
--- a/core/svg/SVGMatrix.idl
+++ b/core/svg/SVGMatrix.idl
@@ -21,27 +21,28 @@
  */
 
 [
-    SetReference(SVGTransform parent)
+    SetWrapperReferenceTo(SVGTransform parent),
+    StrictTypeChecking,
 ] interface SVGMatrix {
     // FIXME: these attributes should all be floats but since we implement
     // AffineTransform with doubles setting these as doubles makes more sense.
-    [StrictTypeChecking] attribute double a;
-    [StrictTypeChecking] attribute double b;
-    [StrictTypeChecking] attribute double c;
-    [StrictTypeChecking] attribute double d;
-    [StrictTypeChecking] attribute double e;
-    [StrictTypeChecking] attribute double f;
+    attribute double a;
+    attribute double b;
+    attribute double c;
+    attribute double d;
+    attribute double e;
+    attribute double f;
 
-    [StrictTypeChecking] SVGMatrix multiply(SVGMatrix secondMatrix);
+    SVGMatrix multiply(SVGMatrix secondMatrix);
     [RaisesException] SVGMatrix inverse();
-    [Immutable, StrictTypeChecking] SVGMatrix translate(float x, float y);
-    [Immutable, StrictTypeChecking] SVGMatrix scale(float scaleFactor);
-    [Immutable, StrictTypeChecking] SVGMatrix scaleNonUniform(float scaleFactorX, float scaleFactorY);
-    [Immutable, StrictTypeChecking] SVGMatrix rotate(float angle);
-    [StrictTypeChecking, RaisesException] SVGMatrix rotateFromVector(float x, float y);
+    [Immutable] SVGMatrix translate(float x, float y);
+    [Immutable] SVGMatrix scale(float scaleFactor);
+    [Immutable] SVGMatrix scaleNonUniform(float scaleFactorX, float scaleFactorY);
+    [Immutable] SVGMatrix rotate(float angle);
+    [RaisesException] SVGMatrix rotateFromVector(float x, float y);
     [Immutable] SVGMatrix flipX();
     [Immutable] SVGMatrix flipY();
-    [Immutable, StrictTypeChecking] SVGMatrix skewX(float angle);
-    [Immutable, StrictTypeChecking] SVGMatrix skewY(float angle);
+    [Immutable] SVGMatrix skewX(float angle);
+    [Immutable] SVGMatrix skewY(float angle);
 };
 
diff --git a/core/svg/SVGNumber.idl b/core/svg/SVGNumber.idl
index c77bbc9..e873793 100644
--- a/core/svg/SVGNumber.idl
+++ b/core/svg/SVGNumber.idl
@@ -20,7 +20,11 @@
  * Boston, MA 02110-1301, USA.
  */
 
-interface SVGNumber {
-    [StrictTypeChecking] attribute float value;
+[
+    ImplementedAs=SVGNumberTearOff,
+    SetWrapperReferenceTo(SVGElement contextElement),
+    StrictTypeChecking,
+] interface SVGNumber {
+    [RaisesException=Setter] attribute float value;
 };
 
diff --git a/core/svg/SVGNumberList.idl b/core/svg/SVGNumberList.idl
index 4711cc6..1bc3a5b 100644
--- a/core/svg/SVGNumberList.idl
+++ b/core/svg/SVGNumberList.idl
@@ -24,15 +24,19 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGNumberList {
+[
+    ImplementedAs=SVGNumberListTearOff,
+    SetWrapperReferenceTo(SVGElement contextElement),
+    StrictTypeChecking,
+] interface SVGNumberList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
-    [StrictTypeChecking, RaisesException] SVGNumber initialize(SVGNumber item);
-    [StrictTypeChecking, RaisesException] SVGNumber getItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGNumber insertItemBefore(SVGNumber item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGNumber replaceItem(SVGNumber item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGNumber removeItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGNumber appendItem(SVGNumber item);
+    [RaisesException] SVGNumber initialize(SVGNumber item);
+    [RaisesException] SVGNumber getItem(unsigned long index);
+    [RaisesException] SVGNumber insertItemBefore(SVGNumber item, unsigned long index);
+    [RaisesException] SVGNumber replaceItem(SVGNumber item, unsigned long index);
+    [RaisesException] SVGNumber removeItem(unsigned long index);
+    [RaisesException] SVGNumber appendItem(SVGNumber item);
 };
 
diff --git a/core/svg/SVGPaint.idl b/core/svg/SVGPaint.idl
deleted file mode 100644
index 8c1badb..0000000
--- a/core/svg/SVGPaint.idl
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2006 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-interface SVGPaint : SVGColor {
-    const unsigned short SVG_PAINTTYPE_UNKNOWN = 0;
-    const unsigned short SVG_PAINTTYPE_RGBCOLOR = 1;
-    const unsigned short SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR = 2;
-    const unsigned short SVG_PAINTTYPE_NONE = 101;
-    const unsigned short SVG_PAINTTYPE_CURRENTCOLOR = 102;
-    const unsigned short SVG_PAINTTYPE_URI_NONE = 103;
-    const unsigned short SVG_PAINTTYPE_URI_CURRENTCOLOR = 104;
-    const unsigned short SVG_PAINTTYPE_URI_RGBCOLOR = 105;
-    const unsigned short SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106;
-    const unsigned short SVG_PAINTTYPE_URI = 107;
-
-    readonly attribute unsigned short paintType;
-    readonly attribute DOMString uri;
-
-    [StrictTypeChecking] void setUri(DOMString uri);
-    [StrictTypeChecking, RaisesException] void setPaint(unsigned short paintType, DOMString uri, DOMString rgbColor, DOMString iccColor);
-};
-
diff --git a/core/svg/SVGPathElement.idl b/core/svg/SVGPathElement.idl
index 297b5b1..5acffd0 100644
--- a/core/svg/SVGPathElement.idl
+++ b/core/svg/SVGPathElement.idl
@@ -24,52 +24,56 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathElement : SVGGeometryElement {
+[
+    StrictTypeChecking,
+] interface SVGPathElement : SVGGeometryElement {
     readonly attribute SVGAnimatedNumber pathLength;
 
     float getTotalLength();
-    [StrictTypeChecking] SVGPoint getPointAtLength(float distance);
-    [StrictTypeChecking] unsigned long getPathSegAtLength(float distance);
+    SVGPoint getPointAtLength(float distance);
+    unsigned long getPathSegAtLength(float distance);
 
     SVGPathSegClosePath createSVGPathSegClosePath();
 
-    [StrictTypeChecking] SVGPathSegMovetoAbs createSVGPathSegMovetoAbs(float x, float y);
-    [StrictTypeChecking] SVGPathSegMovetoRel createSVGPathSegMovetoRel(float x, float y);
+    SVGPathSegMovetoAbs createSVGPathSegMovetoAbs(float x, float y);
+    SVGPathSegMovetoRel createSVGPathSegMovetoRel(float x, float y);
 
-    [StrictTypeChecking] SVGPathSegLinetoAbs createSVGPathSegLinetoAbs(float x, float y);
-    [StrictTypeChecking] SVGPathSegLinetoRel createSVGPathSegLinetoRel(float x, float y);
+    SVGPathSegLinetoAbs createSVGPathSegLinetoAbs(float x, float y);
+    SVGPathSegLinetoRel createSVGPathSegLinetoRel(float x, float y);
 
-    [StrictTypeChecking] SVGPathSegCurvetoCubicAbs
-        createSVGPathSegCurvetoCubicAbs(float x, float y, float x1, float y1, float x2, float y2);
-    [StrictTypeChecking] SVGPathSegCurvetoCubicRel
-        createSVGPathSegCurvetoCubicRel(float x, float y, float x1, float y1, float x2, float y2);
+    SVGPathSegCurvetoCubicAbs createSVGPathSegCurvetoCubicAbs(
+        float x, float y, float x1, float y1, float x2, float y2);
+    SVGPathSegCurvetoCubicRel createSVGPathSegCurvetoCubicRel(
+        float x, float y, float x1, float y1, float x2, float y2);
 
-    [StrictTypeChecking] SVGPathSegCurvetoQuadraticAbs
-        createSVGPathSegCurvetoQuadraticAbs(float x, float y, float x1, float y1);
-    [StrictTypeChecking] SVGPathSegCurvetoQuadraticRel
-        createSVGPathSegCurvetoQuadraticRel(float x, float y, float x1, float y1);
+    SVGPathSegCurvetoQuadraticAbs createSVGPathSegCurvetoQuadraticAbs(
+        float x, float y, float x1, float y1);
+    SVGPathSegCurvetoQuadraticRel createSVGPathSegCurvetoQuadraticRel(
+        float x, float y, float x1, float y1);
 
-    [StrictTypeChecking] SVGPathSegArcAbs
-        createSVGPathSegArcAbs(float x, float y, float r1, float r2, float angle, boolean largeArcFlag, boolean sweepFlag);
-    [StrictTypeChecking] SVGPathSegArcRel
-        createSVGPathSegArcRel(float x, float y, float r1, float r2, float angle, boolean largeArcFlag, boolean sweepFlag);
+    SVGPathSegArcAbs createSVGPathSegArcAbs(
+        float x, float y, float r1, float r2,
+        float angle, boolean largeArcFlag, boolean sweepFlag);
+    SVGPathSegArcRel createSVGPathSegArcRel(
+        float x, float y, float r1, float r2,
+        float angle, boolean largeArcFlag, boolean sweepFlag);
 
-    [StrictTypeChecking] SVGPathSegLinetoHorizontalAbs createSVGPathSegLinetoHorizontalAbs(float x);
-    [StrictTypeChecking] SVGPathSegLinetoHorizontalRel createSVGPathSegLinetoHorizontalRel(float x);
+    SVGPathSegLinetoHorizontalAbs createSVGPathSegLinetoHorizontalAbs(float x);
+    SVGPathSegLinetoHorizontalRel createSVGPathSegLinetoHorizontalRel(float x);
 
-    [StrictTypeChecking] SVGPathSegLinetoVerticalAbs createSVGPathSegLinetoVerticalAbs(float y);
-    [StrictTypeChecking] SVGPathSegLinetoVerticalRel createSVGPathSegLinetoVerticalRel(float y);
+    SVGPathSegLinetoVerticalAbs createSVGPathSegLinetoVerticalAbs(float y);
+    SVGPathSegLinetoVerticalRel createSVGPathSegLinetoVerticalRel(float y);
 
-    [StrictTypeChecking] SVGPathSegCurvetoCubicSmoothAbs createSVGPathSegCurvetoCubicSmoothAbs(float x, float y, float x2, float y2);
-    [StrictTypeChecking] SVGPathSegCurvetoCubicSmoothRel createSVGPathSegCurvetoCubicSmoothRel(float x, float y, float x2, float y2);
+    SVGPathSegCurvetoCubicSmoothAbs createSVGPathSegCurvetoCubicSmoothAbs(
+        float x, float y, float x2, float y2);
+    SVGPathSegCurvetoCubicSmoothRel createSVGPathSegCurvetoCubicSmoothRel(
+        float x, float y, float x2, float y2);
 
-    [StrictTypeChecking] SVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs(float x, float y);
-    [StrictTypeChecking] SVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel(float x, float y);
+    SVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs(float x, float y);
+    SVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel(float x, float y);
 
     readonly attribute SVGPathSegList pathSegList;
     readonly attribute SVGPathSegList normalizedPathSegList;
     readonly attribute SVGPathSegList animatedPathSegList;
     readonly attribute SVGPathSegList animatedNormalizedPathSegList;
 };
-
-SVGPathElement implements SVGExternalResourcesRequired;
diff --git a/core/svg/SVGPathSegArcAbs.idl b/core/svg/SVGPathSegArcAbs.idl
index a50286f..2f8e401 100644
--- a/core/svg/SVGPathSegArcAbs.idl
+++ b/core/svg/SVGPathSegArcAbs.idl
@@ -24,13 +24,14 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegArcAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
-    [StrictTypeChecking] attribute float r1;
-    [StrictTypeChecking] attribute float r2;
-    [StrictTypeChecking] attribute float angle;
-    [StrictTypeChecking] attribute boolean largeArcFlag;
-    [StrictTypeChecking] attribute boolean sweepFlag;
+[
+    StrictTypeChecking,
+] interface SVGPathSegArcAbs : SVGPathSeg {
+    attribute float x;
+    attribute float y;
+    attribute float r1;
+    attribute float r2;
+    attribute float angle;
+    attribute boolean largeArcFlag;
+    attribute boolean sweepFlag;
 };
-
diff --git a/core/svg/SVGPathSegArcRel.idl b/core/svg/SVGPathSegArcRel.idl
index d682c2c..2c81a87 100644
--- a/core/svg/SVGPathSegArcRel.idl
+++ b/core/svg/SVGPathSegArcRel.idl
@@ -24,13 +24,14 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegArcRel : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
-    [StrictTypeChecking] attribute float r1;
-    [StrictTypeChecking] attribute float r2;
-    [StrictTypeChecking] attribute float angle;
-    [StrictTypeChecking] attribute boolean largeArcFlag;
-    [StrictTypeChecking] attribute boolean sweepFlag;
+[
+    StrictTypeChecking,
+] interface SVGPathSegArcRel : SVGPathSeg {
+    attribute float x;
+    attribute float y;
+    attribute float r1;
+    attribute float r2;
+    attribute float angle;
+    attribute boolean largeArcFlag;
+    attribute boolean sweepFlag;
 };
-
diff --git a/core/svg/SVGPathSegCurvetoCubicAbs.idl b/core/svg/SVGPathSegCurvetoCubicAbs.idl
index 982cb68..c8703d6 100644
--- a/core/svg/SVGPathSegCurvetoCubicAbs.idl
+++ b/core/svg/SVGPathSegCurvetoCubicAbs.idl
@@ -24,12 +24,14 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegCurvetoCubicAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
-    [StrictTypeChecking] attribute float x1;
-    [StrictTypeChecking] attribute float y1;
-    [StrictTypeChecking] attribute float x2;
-    [StrictTypeChecking] attribute float y2;
+[
+    StrictTypeChecking,
+] interface SVGPathSegCurvetoCubicAbs : SVGPathSeg {
+    attribute float x;
+    attribute float y;
+    attribute float x1;
+    attribute float y1;
+    attribute float x2;
+    attribute float y2;
 };
 
diff --git a/core/svg/SVGPathSegCurvetoCubicRel.idl b/core/svg/SVGPathSegCurvetoCubicRel.idl
index 352bb42..645276d 100644
--- a/core/svg/SVGPathSegCurvetoCubicRel.idl
+++ b/core/svg/SVGPathSegCurvetoCubicRel.idl
@@ -24,12 +24,14 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegCurvetoCubicRel : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
-    [StrictTypeChecking] attribute float x1;
-    [StrictTypeChecking] attribute float y1;
-    [StrictTypeChecking] attribute float x2;
-    [StrictTypeChecking] attribute float y2;
+[
+    StrictTypeChecking,
+] interface SVGPathSegCurvetoCubicRel : SVGPathSeg {
+    attribute float x;
+    attribute float y;
+    attribute float x1;
+    attribute float y1;
+    attribute float x2;
+    attribute float y2;
 };
 
diff --git a/core/svg/SVGPathSegCurvetoCubicSmoothAbs.idl b/core/svg/SVGPathSegCurvetoCubicSmoothAbs.idl
index 050926a..aba3847 100644
--- a/core/svg/SVGPathSegCurvetoCubicSmoothAbs.idl
+++ b/core/svg/SVGPathSegCurvetoCubicSmoothAbs.idl
@@ -24,10 +24,11 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegCurvetoCubicSmoothAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
-    [StrictTypeChecking] attribute float x2;
-    [StrictTypeChecking] attribute float y2;
+[
+    StrictTypeChecking,
+] interface SVGPathSegCurvetoCubicSmoothAbs : SVGPathSeg {
+    attribute float x;
+    attribute float y;
+    attribute float x2;
+    attribute float y2;
 };
-
diff --git a/core/svg/SVGPathSegCurvetoCubicSmoothRel.idl b/core/svg/SVGPathSegCurvetoCubicSmoothRel.idl
index 85605de..34294a0 100644
--- a/core/svg/SVGPathSegCurvetoCubicSmoothRel.idl
+++ b/core/svg/SVGPathSegCurvetoCubicSmoothRel.idl
@@ -24,10 +24,12 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegCurvetoCubicSmoothRel : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
-    [StrictTypeChecking] attribute float x2;
-    [StrictTypeChecking] attribute float y2;
+[
+    StrictTypeChecking,
+] interface SVGPathSegCurvetoCubicSmoothRel : SVGPathSeg {
+    attribute float x;
+    attribute float y;
+    attribute float x2;
+    attribute float y2;
 };
 
diff --git a/core/svg/SVGPathSegCurvetoQuadraticAbs.idl b/core/svg/SVGPathSegCurvetoQuadraticAbs.idl
index 7549e8e..7500b40 100644
--- a/core/svg/SVGPathSegCurvetoQuadraticAbs.idl
+++ b/core/svg/SVGPathSegCurvetoQuadraticAbs.idl
@@ -24,10 +24,12 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegCurvetoQuadraticAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
-    [StrictTypeChecking] attribute float x1;
-    [StrictTypeChecking] attribute float y1;
+[
+    StrictTypeChecking,
+] interface SVGPathSegCurvetoQuadraticAbs : SVGPathSeg {
+    attribute float x;
+    attribute float y;
+    attribute float x1;
+    attribute float y1;
 };
 
diff --git a/core/svg/SVGPathSegCurvetoQuadraticRel.idl b/core/svg/SVGPathSegCurvetoQuadraticRel.idl
index cfd7e87..7554dfe 100644
--- a/core/svg/SVGPathSegCurvetoQuadraticRel.idl
+++ b/core/svg/SVGPathSegCurvetoQuadraticRel.idl
@@ -24,10 +24,12 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegCurvetoQuadraticRel : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
-    [StrictTypeChecking] attribute float x1;
-    [StrictTypeChecking] attribute float y1;
+[
+    StrictTypeChecking,
+] interface SVGPathSegCurvetoQuadraticRel : SVGPathSeg {
+    attribute float x;
+    attribute float y;
+    attribute float x1;
+    attribute float y1;
 };
 
diff --git a/core/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl b/core/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
index b5c5d3d..e84fa8c 100644
--- a/core/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
+++ b/core/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
@@ -24,8 +24,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegCurvetoQuadraticSmoothAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
+[
+    StrictTypeChecking,
+] interface SVGPathSegCurvetoQuadraticSmoothAbs : SVGPathSeg {
+    attribute float x;
+    attribute float y;
 };
-
diff --git a/core/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl b/core/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
index d464af0..b50e2ae 100644
--- a/core/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
+++ b/core/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
@@ -24,8 +24,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegCurvetoQuadraticSmoothRel : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
+[
+    StrictTypeChecking,
+] interface SVGPathSegCurvetoQuadraticSmoothRel : SVGPathSeg {
+    attribute float x;
+    attribute float y;
 };
-
diff --git a/core/svg/SVGPathSegLinetoAbs.idl b/core/svg/SVGPathSegLinetoAbs.idl
index 1f9dd98..c6fb097 100644
--- a/core/svg/SVGPathSegLinetoAbs.idl
+++ b/core/svg/SVGPathSegLinetoAbs.idl
@@ -24,8 +24,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegLinetoAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
+[
+    StrictTypeChecking,
+] interface SVGPathSegLinetoAbs : SVGPathSeg {
+    attribute float x;
+    attribute float y;
 };
-
diff --git a/core/svg/SVGPathSegLinetoHorizontalAbs.idl b/core/svg/SVGPathSegLinetoHorizontalAbs.idl
index f36159d..16d58db 100644
--- a/core/svg/SVGPathSegLinetoHorizontalAbs.idl
+++ b/core/svg/SVGPathSegLinetoHorizontalAbs.idl
@@ -24,7 +24,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegLinetoHorizontalAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
+[
+    StrictTypeChecking,
+] interface SVGPathSegLinetoHorizontalAbs : SVGPathSeg {
+    attribute float x;
 };
-
diff --git a/core/svg/SVGPathSegLinetoHorizontalRel.idl b/core/svg/SVGPathSegLinetoHorizontalRel.idl
index fdbb1c8..d48b6f6 100644
--- a/core/svg/SVGPathSegLinetoHorizontalRel.idl
+++ b/core/svg/SVGPathSegLinetoHorizontalRel.idl
@@ -24,7 +24,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegLinetoHorizontalRel : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
+[
+    StrictTypeChecking,
+] interface SVGPathSegLinetoHorizontalRel : SVGPathSeg {
+    attribute float x;
 };
-
diff --git a/core/svg/SVGPathSegLinetoRel.idl b/core/svg/SVGPathSegLinetoRel.idl
index 4d24898..fc3b88f 100644
--- a/core/svg/SVGPathSegLinetoRel.idl
+++ b/core/svg/SVGPathSegLinetoRel.idl
@@ -24,8 +24,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegLinetoRel : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
+[
+    StrictTypeChecking,
+] interface SVGPathSegLinetoRel : SVGPathSeg {
+    attribute float x;
+    attribute float y;
 };
-
diff --git a/core/svg/SVGPathSegLinetoVerticalAbs.idl b/core/svg/SVGPathSegLinetoVerticalAbs.idl
index db7dc1c..22a09e3 100644
--- a/core/svg/SVGPathSegLinetoVerticalAbs.idl
+++ b/core/svg/SVGPathSegLinetoVerticalAbs.idl
@@ -24,7 +24,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegLinetoVerticalAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute float y;
+[
+    StrictTypeChecking,
+] interface SVGPathSegLinetoVerticalAbs : SVGPathSeg {
+    attribute float y;
 };
-
diff --git a/core/svg/SVGPathSegLinetoVerticalRel.idl b/core/svg/SVGPathSegLinetoVerticalRel.idl
index 24cf7ff..0ceaf8e 100644
--- a/core/svg/SVGPathSegLinetoVerticalRel.idl
+++ b/core/svg/SVGPathSegLinetoVerticalRel.idl
@@ -24,7 +24,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegLinetoVerticalRel : SVGPathSeg {
-    [StrictTypeChecking] attribute float y;
+[
+    StrictTypeChecking,
+] interface SVGPathSegLinetoVerticalRel : SVGPathSeg {
+    attribute float y;
 };
-
diff --git a/core/svg/SVGPathSegList.idl b/core/svg/SVGPathSegList.idl
index 33f734e..5214f9d 100644
--- a/core/svg/SVGPathSegList.idl
+++ b/core/svg/SVGPathSegList.idl
@@ -24,15 +24,16 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegList {
+[
+    StrictTypeChecking,
+] interface SVGPathSegList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
-    [StrictTypeChecking, RaisesException] SVGPathSeg initialize(SVGPathSeg newItem);
-    [StrictTypeChecking, RaisesException] SVGPathSeg getItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPathSeg insertItemBefore(SVGPathSeg newItem, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPathSeg replaceItem(SVGPathSeg newItem, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPathSeg removeItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPathSeg appendItem(SVGPathSeg newItem);
+    [RaisesException] SVGPathSeg initialize(SVGPathSeg newItem);
+    [RaisesException] SVGPathSeg getItem(unsigned long index);
+    [RaisesException] SVGPathSeg insertItemBefore(SVGPathSeg newItem, unsigned long index);
+    [RaisesException] SVGPathSeg replaceItem(SVGPathSeg newItem, unsigned long index);
+    [RaisesException] SVGPathSeg removeItem(unsigned long index);
+    [RaisesException] SVGPathSeg appendItem(SVGPathSeg newItem);
 };
-
diff --git a/core/svg/SVGPathSegMovetoAbs.idl b/core/svg/SVGPathSegMovetoAbs.idl
index 220401e..d92e467 100644
--- a/core/svg/SVGPathSegMovetoAbs.idl
+++ b/core/svg/SVGPathSegMovetoAbs.idl
@@ -24,8 +24,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegMovetoAbs : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
+[
+    StrictTypeChecking,
+] interface SVGPathSegMovetoAbs : SVGPathSeg {
+    attribute float x;
+    attribute float y;
 };
-
diff --git a/core/svg/SVGPathSegMovetoRel.idl b/core/svg/SVGPathSegMovetoRel.idl
index 5868685..30909c2 100644
--- a/core/svg/SVGPathSegMovetoRel.idl
+++ b/core/svg/SVGPathSegMovetoRel.idl
@@ -24,8 +24,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPathSegMovetoRel : SVGPathSeg {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
+[
+    StrictTypeChecking,
+] interface SVGPathSegMovetoRel : SVGPathSeg {
+    attribute float x;
+    attribute float y;
 };
-
diff --git a/core/svg/SVGPatternElement.idl b/core/svg/SVGPatternElement.idl
index 55aa2e9..d91bb95 100644
--- a/core/svg/SVGPatternElement.idl
+++ b/core/svg/SVGPatternElement.idl
@@ -33,7 +33,6 @@
     readonly attribute SVGAnimatedLength        height;
 };
 
-SVGPatternElement implements SVGExternalResourcesRequired;
 SVGPatternElement implements SVGFitToViewBox;
 SVGPatternElement implements SVGTests;
 SVGPatternElement implements SVGURIReference;
diff --git a/core/svg/SVGPoint.idl b/core/svg/SVGPoint.idl
index d8945c9..a222243 100644
--- a/core/svg/SVGPoint.idl
+++ b/core/svg/SVGPoint.idl
@@ -20,10 +20,13 @@
  * Boston, MA 02110-1301, USA.
  */
 
-interface SVGPoint {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
+[
+    ImplementedAs=SVGPointTearOff,
+    SetWrapperReferenceTo(SVGElement contextElement),
+    StrictTypeChecking,
+] interface SVGPoint {
+    [RaisesException=Setter] attribute float x;
+    [RaisesException=Setter] attribute float y;
 
-    [MeasureAs=SVGPointMatrixTransform, StrictTypeChecking] SVGPoint matrixTransform(SVGMatrix matrix);
+    [MeasureAs=SVGPointMatrixTransform] SVGPoint matrixTransform(SVGMatrix matrix);
 };
-
diff --git a/core/svg/SVGPointList.idl b/core/svg/SVGPointList.idl
index f65d302..51aba12 100644
--- a/core/svg/SVGPointList.idl
+++ b/core/svg/SVGPointList.idl
@@ -23,15 +23,18 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPointList {
+[
+    ImplementedAs=SVGPointListTearOff,
+    SetWrapperReferenceTo(SVGElement contextElement),
+    StrictTypeChecking,
+] interface SVGPointList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
-    [StrictTypeChecking, RaisesException] SVGPoint initialize(SVGPoint item);
-    [StrictTypeChecking, RaisesException] SVGPoint getItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPoint insertItemBefore(SVGPoint item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPoint replaceItem(SVGPoint item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPoint removeItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPoint appendItem(SVGPoint item);
+    [RaisesException] SVGPoint initialize(SVGPoint item);
+    [RaisesException] SVGPoint getItem(unsigned long index);
+    [RaisesException] SVGPoint insertItemBefore(SVGPoint item, unsigned long index);
+    [RaisesException] SVGPoint replaceItem(SVGPoint item, unsigned long index);
+    [RaisesException] SVGPoint removeItem(unsigned long index);
+    [RaisesException] SVGPoint appendItem(SVGPoint item);
 };
-
diff --git a/core/svg/SVGPolygonElement.idl b/core/svg/SVGPolygonElement.idl
index be639f1..defe168 100644
--- a/core/svg/SVGPolygonElement.idl
+++ b/core/svg/SVGPolygonElement.idl
@@ -24,8 +24,6 @@
  */
 
 interface SVGPolygonElement : SVGGeometryElement {
-    readonly attribute SVGPointList points;
+    [ImplementedAs=pointsFromJavascript] readonly attribute SVGPointList points;
     readonly attribute SVGPointList animatedPoints;
 };
-
-SVGPolygonElement implements SVGExternalResourcesRequired;
diff --git a/core/svg/SVGPolylineElement.idl b/core/svg/SVGPolylineElement.idl
index 1fd499b..4d148d1 100644
--- a/core/svg/SVGPolylineElement.idl
+++ b/core/svg/SVGPolylineElement.idl
@@ -24,9 +24,7 @@
  */
 
 interface SVGPolylineElement : SVGGeometryElement {
-    readonly attribute SVGPointList points;
+    [ImplementedAs=pointsFromJavascript] readonly attribute SVGPointList points;
     readonly attribute SVGPointList animatedPoints;
 };
 
-SVGPolylineElement implements SVGExternalResourcesRequired;
-
diff --git a/core/svg/SVGPreserveAspectRatio.idl b/core/svg/SVGPreserveAspectRatio.idl
index 477369e..1591630 100644
--- a/core/svg/SVGPreserveAspectRatio.idl
+++ b/core/svg/SVGPreserveAspectRatio.idl
@@ -23,8 +23,12 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGPreserveAspectRatio {
-    // Alignment Types
+[
+    StrictTypeChecking,
+    ImplementedAs=SVGPreserveAspectRatioTearOff,
+    SetWrapperReferenceTo(SVGElement contextElement)
+] interface SVGPreserveAspectRatio {
+    // Alignment types
     const unsigned short SVG_PRESERVEASPECTRATIO_UNKNOWN = 0;
     const unsigned short SVG_PRESERVEASPECTRATIO_NONE = 1;
     const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMIN = 2;
@@ -37,13 +41,12 @@
     const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9;
     const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10;
 
-    // Meet-or-slice Types
+    // Meet-or-slice types
     const unsigned short SVG_MEETORSLICE_UNKNOWN = 0;
     const unsigned short SVG_MEETORSLICE_MEET = 1;
     const unsigned short SVG_MEETORSLICE_SLICE = 2;
 
-    [StrictTypeChecking, RaisesException=Setter] attribute unsigned short align;
+    [RaisesException=Setter] attribute unsigned short align;
 
-    [StrictTypeChecking, RaisesException=Setter] attribute unsigned short meetOrSlice;
+    [RaisesException=Setter] attribute unsigned short meetOrSlice;
 };
-
diff --git a/core/svg/SVGRect.idl b/core/svg/SVGRect.idl
index e148788..3f1be98 100644
--- a/core/svg/SVGRect.idl
+++ b/core/svg/SVGRect.idl
@@ -20,10 +20,13 @@
  * Boston, MA 02110-1301, USA.
  */
 
-interface SVGRect {
-    [StrictTypeChecking] attribute float x;
-    [StrictTypeChecking] attribute float y;
-    [StrictTypeChecking] attribute float width;
-    [StrictTypeChecking] attribute float height;
+[
+    ImplementedAs=SVGRectTearOff,
+    SetWrapperReferenceTo(SVGElement contextElement),
+    StrictTypeChecking,
+] interface SVGRect {
+    [RaisesException=Setter] attribute float x;
+    [RaisesException=Setter] attribute float y;
+    [RaisesException=Setter] attribute float width;
+    [RaisesException=Setter] attribute float height;
 };
-
diff --git a/core/svg/SVGRectElement.idl b/core/svg/SVGRectElement.idl
index a3cf85e..3bbe39a 100644
--- a/core/svg/SVGRectElement.idl
+++ b/core/svg/SVGRectElement.idl
@@ -33,5 +33,3 @@
     readonly attribute SVGAnimatedLength ry;
 };
 
-SVGRectElement implements SVGExternalResourcesRequired;
-
diff --git a/core/svg/SVGSVGElement.idl b/core/svg/SVGSVGElement.idl
index 0edfc9a..d05aec3 100644
--- a/core/svg/SVGSVGElement.idl
+++ b/core/svg/SVGSVGElement.idl
@@ -22,7 +22,9 @@
 
 // TODO: no css::ViewCSS available!
 // TODO: no events::DocumentEvent available!
-interface SVGSVGElement : SVGGraphicsElement {
+[
+    StrictTypeChecking,
+] interface SVGSVGElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedLength x;
     readonly attribute SVGAnimatedLength y;
     readonly attribute SVGAnimatedLength width;
@@ -37,25 +39,21 @@
     readonly attribute boolean useCurrentView;
     readonly attribute SVGViewSpec currentView;
              attribute float currentScale;
-    readonly attribute SVGPoint currentTranslate;
+    [ImplementedAs=currentTranslateFromJavascript] readonly attribute SVGPoint currentTranslate;
 
-    unsigned long suspendRedraw([Default=Undefined] optional unsigned long maxWaitMilliseconds);
-    void unsuspendRedraw([Default=Undefined] optional unsigned long suspendHandleId);
+    unsigned long suspendRedraw(unsigned long maxWaitMilliseconds);
+    void unsuspendRedraw(unsigned long suspendHandleId);
     void unsuspendRedrawAll();
     void forceRedraw();
     void pauseAnimations();
     void unpauseAnimations();
     boolean animationsPaused();
     float getCurrentTime();
-    void setCurrentTime([Default=Undefined] optional float seconds);
-    NodeList getIntersectionList([Default=Undefined] optional SVGRect rect,
-                                 [Default=Undefined] optional SVGElement referenceElement);
-    NodeList getEnclosureList([Default=Undefined] optional SVGRect rect,
-                              [Default=Undefined] optional SVGElement referenceElement);
-    boolean checkIntersection([Default=Undefined] optional SVGElement element,
-                              [Default=Undefined] optional SVGRect rect);
-    boolean checkEnclosure([Default=Undefined] optional SVGElement element,
-                           [Default=Undefined] optional SVGRect rect);
+    void setCurrentTime(float seconds);
+    NodeList getIntersectionList(SVGRect rect, SVGElement? referenceElement);
+    NodeList getEnclosureList(SVGRect rect, SVGElement? referenceElement);
+    boolean checkIntersection(SVGElement element, SVGRect rect);
+    boolean checkEnclosure(SVGElement element, SVGRect rect);
     void deselectAll();
 
     SVGNumber createSVGNumber();
@@ -65,11 +63,9 @@
     SVGMatrix createSVGMatrix();
     SVGRect createSVGRect();
     SVGTransform createSVGTransform();
-    SVGTransform createSVGTransformFromMatrix([Default=Undefined] optional SVGMatrix matrix);
-    Element getElementById([Default=Undefined] optional DOMString elementId);
+    SVGTransform createSVGTransformFromMatrix(SVGMatrix matrix);
+    Element getElementById(DOMString elementId);
 };
 
-SVGSVGElement implements SVGExternalResourcesRequired;
 SVGSVGElement implements SVGFitToViewBox;
 SVGSVGElement implements SVGZoomAndPan;
-
diff --git a/core/svg/SVGScriptElement.idl b/core/svg/SVGScriptElement.idl
index abaa80b..08c871f 100644
--- a/core/svg/SVGScriptElement.idl
+++ b/core/svg/SVGScriptElement.idl
@@ -24,9 +24,7 @@
  */
 
 interface SVGScriptElement : SVGElement {
-             [TreatNullAs=NullString] attribute DOMString type;
+    [Reflect] attribute DOMString type;
 };
 
-SVGScriptElement implements SVGExternalResourcesRequired;
 SVGScriptElement implements SVGURIReference;
-
diff --git a/core/svg/SVGStringList.idl b/core/svg/SVGStringList.idl
index 020b754..0b5dc41 100644
--- a/core/svg/SVGStringList.idl
+++ b/core/svg/SVGStringList.idl
@@ -23,15 +23,19 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGStringList {
+[
+    StrictTypeChecking,
+    SetWrapperReferenceTo(SVGElement contextElement),
+    ImplementedAs=SVGStringListTearOff
+] interface SVGStringList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
-    [StrictTypeChecking, RaisesException] DOMString initialize(DOMString item);
-    [StrictTypeChecking, RaisesException] DOMString getItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] DOMString insertItemBefore(DOMString item, unsigned long index);
-    [StrictTypeChecking, RaisesException] DOMString replaceItem(DOMString item, unsigned long index);
-    [StrictTypeChecking, RaisesException] DOMString removeItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] DOMString appendItem(DOMString item);
+    [RaisesException] DOMString initialize(DOMString item);
+    [RaisesException] DOMString getItem(unsigned long index);
+    [RaisesException] DOMString insertItemBefore(DOMString item, unsigned long index);
+    [RaisesException] DOMString replaceItem(DOMString item, unsigned long index);
+    [RaisesException] DOMString removeItem(unsigned long index);
+    [RaisesException] DOMString appendItem(DOMString item);
 };
 
diff --git a/core/svg/SVGSwitchElement.idl b/core/svg/SVGSwitchElement.idl
index 619855a..28d43b6 100644
--- a/core/svg/SVGSwitchElement.idl
+++ b/core/svg/SVGSwitchElement.idl
@@ -25,6 +25,3 @@
 
 interface SVGSwitchElement : SVGGraphicsElement {
 };
-
-SVGSwitchElement implements SVGExternalResourcesRequired;
-
diff --git a/core/svg/SVGSymbolElement.idl b/core/svg/SVGSymbolElement.idl
index aeb7d80..0d2ecae 100644
--- a/core/svg/SVGSymbolElement.idl
+++ b/core/svg/SVGSymbolElement.idl
@@ -26,5 +26,4 @@
 interface SVGSymbolElement : SVGElement {
 };
 
-SVGSymbolElement implements SVGExternalResourcesRequired;
 SVGSymbolElement implements SVGFitToViewBox;
diff --git a/core/svg/SVGTests.idl b/core/svg/SVGTests.idl
index 0842cc1..591a86b 100644
--- a/core/svg/SVGTests.idl
+++ b/core/svg/SVGTests.idl
@@ -25,8 +25,7 @@
  */
 
 [
-    NoInterfaceObject,
-    LegacyImplementedInBaseClass
+    NoInterfaceObject
 ] interface SVGTests {
     readonly attribute SVGStringList requiredFeatures;
     readonly attribute SVGStringList requiredExtensions;
diff --git a/core/svg/SVGTextContentElement.idl b/core/svg/SVGTextContentElement.idl
index f4ce37d..f16b1f9 100644
--- a/core/svg/SVGTextContentElement.idl
+++ b/core/svg/SVGTextContentElement.idl
@@ -23,7 +23,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGTextContentElement : SVGGraphicsElement {
+[
+    StrictTypeChecking,
+] interface SVGTextContentElement : SVGGraphicsElement {
     // lengthAdjust Types
     const unsigned short LENGTHADJUST_UNKNOWN          = 0;
     const unsigned short LENGTHADJUST_SPACING          = 1;
@@ -39,10 +41,7 @@
     [RaisesException] SVGPoint getEndPositionOfChar(unsigned long offset);
     [RaisesException] SVGRect getExtentOfChar(unsigned long offset);
     [RaisesException] float getRotationOfChar(unsigned long offset);
-    long getCharNumAtPosition(SVGPoint point);
+    [RaisesException] long getCharNumAtPosition(SVGPoint point);
     [RaisesException] void selectSubString(unsigned long offset, unsigned long length);
 };
 
-// FIXME: SVGTextContentElement is not supposed to implement SVGExternalResourcesRequired.
-SVGTextContentElement implements SVGExternalResourcesRequired;
-
diff --git a/core/svg/SVGTransform.idl b/core/svg/SVGTransform.idl
index 99d7fc2..96c0058 100644
--- a/core/svg/SVGTransform.idl
+++ b/core/svg/SVGTransform.idl
@@ -19,7 +19,9 @@
  * Boston, MA 02110-1301, USA.
  */
 
-interface SVGTransform {
+[
+    StrictTypeChecking,
+] interface SVGTransform {
     // Transform Types
     const unsigned short SVG_TRANSFORM_UNKNOWN = 0;
     const unsigned short SVG_TRANSFORM_MATRIX = 1;
@@ -33,11 +35,11 @@
     [ImplementedAs=svgMatrix] readonly attribute SVGMatrix matrix;
     readonly attribute float angle;
 
-    [StrictTypeChecking] void setMatrix(SVGMatrix matrix);
-    [StrictTypeChecking] void setTranslate(float tx, float ty);
-    [StrictTypeChecking] void setScale(float sx, float sy);
-    [StrictTypeChecking] void setRotate(float angle, float cx, float cy);
-    [StrictTypeChecking] void setSkewX(float angle);
-    [StrictTypeChecking] void setSkewY(float angle);
+    void setMatrix(SVGMatrix matrix);
+    void setTranslate(float tx, float ty);
+    void setScale(float sx, float sy);
+    void setRotate(float angle, float cx, float cy);
+    void setSkewX(float angle);
+    void setSkewY(float angle);
 };
 
diff --git a/core/svg/SVGTransformList.idl b/core/svg/SVGTransformList.idl
index bb6f659..fe57a7a 100644
--- a/core/svg/SVGTransformList.idl
+++ b/core/svg/SVGTransformList.idl
@@ -24,18 +24,20 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface SVGTransformList {
+[
+    StrictTypeChecking,
+] interface SVGTransformList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
-    [StrictTypeChecking, RaisesException] SVGTransform initialize(SVGTransform item);
-    [StrictTypeChecking, RaisesException] SVGTransform getItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGTransform insertItemBefore(SVGTransform item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGTransform replaceItem(SVGTransform item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGTransform removeItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGTransform appendItem(SVGTransform item);
+    [RaisesException] SVGTransform initialize(SVGTransform item);
+    [RaisesException] SVGTransform getItem(unsigned long index);
+    [RaisesException] SVGTransform insertItemBefore(SVGTransform item, unsigned long index);
+    [RaisesException] SVGTransform replaceItem(SVGTransform item, unsigned long index);
+    [RaisesException] SVGTransform removeItem(unsigned long index);
+    [RaisesException] SVGTransform appendItem(SVGTransform item);
 
-    [StrictTypeChecking, RaisesException] SVGTransform createSVGTransformFromMatrix(SVGMatrix matrix);
+    SVGTransform createSVGTransformFromMatrix(SVGMatrix matrix);
 
     [RaisesException] SVGTransform consolidate();
 };
diff --git a/core/svg/SVGURIReference.idl b/core/svg/SVGURIReference.idl
index bcc0efa..2e2d49f 100644
--- a/core/svg/SVGURIReference.idl
+++ b/core/svg/SVGURIReference.idl
@@ -25,8 +25,7 @@
  */
 
 [
-    NoInterfaceObject,
-    LegacyImplementedInBaseClass
+    NoInterfaceObject
 ] interface SVGURIReference {
     readonly attribute SVGAnimatedString href;
 };
diff --git a/core/svg/SVGUseElement.idl b/core/svg/SVGUseElement.idl
index eb5d82c..9aee55c 100644
--- a/core/svg/SVGUseElement.idl
+++ b/core/svg/SVGUseElement.idl
@@ -33,7 +33,6 @@
     readonly attribute SVGElementInstance animatedInstanceRoot;
 };
 
-SVGUseElement implements SVGExternalResourcesRequired;
 SVGUseElement implements SVGTests;
 SVGUseElement implements SVGURIReference;
 
diff --git a/core/svg/SVGViewElement.idl b/core/svg/SVGViewElement.idl
index 4b7a25d..7f95023 100644
--- a/core/svg/SVGViewElement.idl
+++ b/core/svg/SVGViewElement.idl
@@ -27,7 +27,6 @@
     readonly attribute SVGStringList viewTarget;
 };
 
-SVGViewElement implements SVGExternalResourcesRequired;
 SVGViewElement implements SVGFitToViewBox;
 SVGViewElement implements SVGZoomAndPan;
 
diff --git a/core/svg/SVGViewSpec.idl b/core/svg/SVGViewSpec.idl
index 80b1d80..f5bb3a4 100644
--- a/core/svg/SVGViewSpec.idl
+++ b/core/svg/SVGViewSpec.idl
@@ -30,10 +30,7 @@
       readonly attribute DOMString preserveAspectRatioString;
       readonly attribute DOMString transformString;
       readonly attribute DOMString viewTargetString;
-
-      // SVGZoomAndPan
-      [RaisesException=Setter] attribute unsigned short zoomAndPan;
 };
 
 SVGViewSpec implements SVGFitToViewBox;
-
+SVGViewSpec implements SVGZoomAndPan;
diff --git a/core/svg/SVGZoomAndPan.idl b/core/svg/SVGZoomAndPan.idl
index 42149bd..ae3ab58 100644
--- a/core/svg/SVGZoomAndPan.idl
+++ b/core/svg/SVGZoomAndPan.idl
@@ -25,13 +25,11 @@
  */
 
 [
-    NoInterfaceObject,
-    LegacyImplementedInBaseClass
+    NoInterfaceObject
 ] interface SVGZoomAndPan {
     const unsigned short SVG_ZOOMANDPAN_UNKNOWN = 0;
     const unsigned short SVG_ZOOMANDPAN_DISABLE = 1;
     const unsigned short SVG_ZOOMANDPAN_MAGNIFY = 2;
 
-    attribute unsigned short zoomAndPan;
+    [RaisesException=Setter] attribute unsigned short zoomAndPan;
 };
-
diff --git a/core/svg/SVGZoomEvent.idl b/core/svg/SVGZoomEvent.idl
index 48bb357..bb7e2ac 100644
--- a/core/svg/SVGZoomEvent.idl
+++ b/core/svg/SVGZoomEvent.idl
@@ -26,8 +26,8 @@
 interface SVGZoomEvent : UIEvent {
     readonly attribute SVGRect zoomRectScreen;
     readonly attribute float previousScale;
-    [Immutable] readonly attribute SVGPoint previousTranslate;
+    readonly attribute SVGPoint previousTranslate;
     readonly attribute float newScale;
-    [Immutable] readonly attribute SVGPoint newTranslate;
+    readonly attribute SVGPoint newTranslate;
 };
 
diff --git a/core/testing/GCObservation.idl b/core/testing/GCObservation.idl
index 6c2d8e8..aaed5c2 100644
--- a/core/testing/GCObservation.idl
+++ b/core/testing/GCObservation.idl
@@ -28,7 +28,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface GCObservation {
+[
+    NoInterfaceObject,  // testing interfaces do not appear on global objects
+] interface GCObservation {
     // Technically, this is true if the object was "near death"; the
     // object may have been kept alive through a weak handle. Having
     // been collected is the common case, though.
diff --git a/core/testing/InternalProfilers.idl b/core/testing/InternalProfilers.idl
index 7030e9e..5ad4863 100644
--- a/core/testing/InternalProfilers.idl
+++ b/core/testing/InternalProfilers.idl
@@ -29,7 +29,7 @@
  */
 
 [
-    NoInterfaceObject
+    NoInterfaceObject,  // testing interfaces do not appear on global objects
 ] interface InternalProfilers {
     void startHeapProfiling(DOMString prefix);
     void stopHeapProfiling();
diff --git a/core/testing/InternalSettings.idl b/core/testing/InternalSettings.idl
index d4f5984..69686ce 100644
--- a/core/testing/InternalSettings.idl
+++ b/core/testing/InternalSettings.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,  // testing interfaces do not appear on global objects
 ] interface InternalSettings : InternalSettingsGenerated {
     // All methods which access Page::settings() can raise an exception
     // when the page cannot be accessed. (Such as during page tear-down.)
@@ -63,4 +64,5 @@
     void setLangAttributeAwareFormControlUIEnabled(boolean enabled);
     void setOverlayScrollbarsEnabled(boolean enabled);
     void setStyleScopedEnabled(boolean enabled);
+    void setExperimentalContentSecurityPolicyFeaturesEnabled(boolean enabled);
 };
diff --git a/core/testing/Internals.idl b/core/testing/Internals.idl
index 27232a2..082be3d 100644
--- a/core/testing/Internals.idl
+++ b/core/testing/Internals.idl
@@ -25,7 +25,8 @@
  */
 
 [
-    DoNotCheckConstants
+    DoNotCheckConstants,
+    NoInterfaceObject,  // testing interfaces do not appear on global objects
 ] interface Internals {
     DOMString address(Node node);
 
@@ -41,15 +42,15 @@
     [RaisesException] DOMString styleResolverStatsReport();
     [RaisesException] DOMString styleResolverStatsTotalsReport();
 
+    [RaisesException] boolean isSharingStyle(Element element1, Element element2);
+
     [RaisesException] unsigned long numberOfScopedHTMLStyleChildren(Node scope);
     [RaisesException] CSSStyleDeclaration computedStyleIncludingVisitedInfo(Node node);
 
-    [RaisesException] ShadowRoot ensureShadowRoot(Element host);
     [RaisesException] ShadowRoot shadowRoot(Element host);
     [RaisesException] ShadowRoot youngestShadowRoot(Element host);
     [RaisesException] ShadowRoot oldestShadowRoot(Element host);
     [RaisesException] ShadowRoot youngerShadowRoot(Node root);
-    [RaisesException] ShadowRoot olderShadowRoot(Node root);
 
     [RaisesException] DOMString shadowRootType(Node root);
     [RaisesException] boolean hasShadowInsertionPoint(Node root);
@@ -57,7 +58,6 @@
     [RaisesException] unsigned long countElementShadow(Node Root);
     [RaisesException] DOMString shadowPseudoId(Element element);
     [RaisesException] void setShadowPseudoId(Element element, DOMString id);
-    [RaisesException] Element createContentElement();
     [RaisesException] boolean isValidContentSelect(Element contentElement);
     [RaisesException] Node treeScopeRootNode(Node node);
     [RaisesException] Node parentTreeScope(Node node);
@@ -67,6 +67,7 @@
     [RaisesException] boolean hasSelectorForPseudoClassInShadow(Element host, DOMString pseudoClass);
     [RaisesException] unsigned short compareTreeScopePosition(Node treeScope1, Node treeScope2);
     [RaisesException] unsigned long updateStyleAndReturnAffectedElementCount();
+    [RaisesException] unsigned long needsLayoutCount();
 
     // CSS Animation and Transition testing.
     unsigned long numberOfActiveAnimations();
@@ -82,6 +83,8 @@
 
     void selectColorInColorChooser(Element element, DOMString colorValue);
 
+    // If the argument is omitted, the top-level document is used.
+    boolean hasAutofocusRequest(optional Document document);
     [RaisesException] DOMString[] formControlStateOfHistoryItem();
     [RaisesException] void setFormControlStateOfHistoryItem(sequence<DOMString> values);
     [RaisesException] void setEnableMockPagePopup(boolean enabled);
@@ -101,11 +104,10 @@
     [RaisesException] DOMString markerDescriptionForNode(Node node, DOMString markerType, unsigned long index);
     void addTextMatchMarker(Range range, boolean isActive);
     [RaisesException] void setMarkersActive(Node node, unsigned long startOffset, unsigned long endOffset, boolean active);
+    [RaisesException] void setMarkedTextMatchesAreHighlighted(Document document, boolean highlight);
 
     [RaisesException] void setScrollViewPosition(Document document, long x, long y);
 
-    [RaisesException] void setPagination(Document document, DOMString mode, long gap, optional long pageLength);
-
     [RaisesException] DOMString viewportAsText(Document document,
                                                float devicePixelRatio,
                                                long availableWidth,
@@ -118,8 +120,6 @@
     [RaisesException] void setEditingValue(Element inputElement, DOMString value);
     [RaisesException] void setAutofilled(Element inputElement, boolean enabled);
 
-    [RaisesException] void paintControlTints(Document document);
-
     [RaisesException] void scrollElementToRect(Element element, long x, long y, long w, long h);
 
     [RaisesException] Range rangeFromLocationAndLength(Element scope, long rangeLocation, long rangeLength);
@@ -270,6 +270,11 @@
     boolean loseSharedGraphicsContext3D();
 
     [RaisesException] void forceCompositingUpdate(Document document);
+    [RaisesException] boolean isCompositorFramePending(Document document);
 
     void setZoomFactor(float factor);
+
+    [RaisesException] void setShouldRevealPassword(Element element, boolean reveal);
+
+    [CallWith=ExecutionContext] Promise addOneToPromise(Promise promise);
 };
diff --git a/core/testing/LayerRect.idl b/core/testing/LayerRect.idl
index 8a4d8e1..7cc2f5b 100644
--- a/core/testing/LayerRect.idl
+++ b/core/testing/LayerRect.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,  // testing interfaces do not appear on global objects
 ] interface LayerRect {
     readonly attribute Node layerRootNode;
     readonly attribute DOMString layerType;
diff --git a/core/testing/LayerRectList.idl b/core/testing/LayerRectList.idl
index 9dd2ca7..03e63c5 100644
--- a/core/testing/LayerRectList.idl
+++ b/core/testing/LayerRectList.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,  // testing interfaces do not appear on global objects
 ] interface LayerRectList {
     readonly attribute unsigned long length;
     getter LayerRect item(unsigned long index);
diff --git a/core/testing/MallocStatistics.idl b/core/testing/MallocStatistics.idl
index dd3459b..663fabb 100644
--- a/core/testing/MallocStatistics.idl
+++ b/core/testing/MallocStatistics.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,  // testing interfaces do not appear on global objects
 ] interface MallocStatistics {
     readonly attribute unsigned long reservedVMBytes;
     readonly attribute unsigned long committedVMBytes;
diff --git a/core/testing/TypeConversions.idl b/core/testing/TypeConversions.idl
index 7a70cc5..b87b984 100644
--- a/core/testing/TypeConversions.idl
+++ b/core/testing/TypeConversions.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,  // testing interfaces do not appear on global objects
 ] interface TypeConversions {
     attribute long testLong;
     [EnforceRange, ImplementedAs=testLong] attribute long testEnforceRangeLong;
diff --git a/core/timing/Performance.idl b/core/timing/Performance.idl
index b29b83e..762f6b0 100644
--- a/core/timing/Performance.idl
+++ b/core/timing/Performance.idl
@@ -54,12 +54,6 @@
     [RaisesException,MeasureAs=UnprefixedUserTiming] void measure(DOMString measureName, [Default=NullString] optional DOMString startMark, [Default=NullString] optional DOMString endMark);
     [MeasureAs=UnprefixedUserTiming] void clearMeasures([Default=NullString] optional DOMString measureName);
 
-    [RaisesException,DeprecateAs=PrefixedUserTiming,ImplementedAs=mark] void webkitMark(DOMString markName);
-    [DeprecateAs=PrefixedUserTiming,ImplementedAs=clearMarks] void webkitClearMarks([Default=NullString] optional  DOMString markName);
-
-    [RaisesException,DeprecateAs=PrefixedUserTiming,ImplementedAs=measure] void webkitMeasure(DOMString measureName, [Default=NullString] optional DOMString startMark, [Default=NullString] optional DOMString endMark);
-    [DeprecateAs=PrefixedUserTiming,ImplementedAs=clearMeasures] void webkitClearMeasures([Default=NullString] optional DOMString measureName);
-
     // See http://www.w3.org/TR/hr-time/ for details.
     double now();
 };
diff --git a/core/workers/AbstractWorker.idl b/core/workers/AbstractWorker.idl
index 9c13c6f..1b643f7 100644
--- a/core/workers/AbstractWorker.idl
+++ b/core/workers/AbstractWorker.idl
@@ -30,8 +30,7 @@
  */
 
 [
-    NoInterfaceObject,
-    LegacyImplementedInBaseClass
+    NoInterfaceObject
 ] interface AbstractWorker {
     attribute EventHandler onerror;
 };
diff --git a/core/workers/DedicatedWorkerGlobalScope.idl b/core/workers/DedicatedWorkerGlobalScope.idl
index 659a5f5..1ef0663 100644
--- a/core/workers/DedicatedWorkerGlobalScope.idl
+++ b/core/workers/DedicatedWorkerGlobalScope.idl
@@ -29,9 +29,8 @@
  */
 
 [
-    GlobalContext=DedicatedWorkerGlobalScope
+    GlobalContext=DedicatedWorkerGlobalScope,
 ] interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
-    [Custom, RaisesException] void postMessage(any message, optional Array messagePorts);
+    [Custom, RaisesException] void postMessage(any message, optional MessagePort[] messagePorts);
     attribute EventHandler onmessage;
 };
-
diff --git a/core/workers/Worker.idl b/core/workers/Worker.idl
index 6017569..5d9f11a 100644
--- a/core/workers/Worker.idl
+++ b/core/workers/Worker.idl
@@ -34,7 +34,7 @@
 
     attribute EventHandler onmessage;
 
-    [Custom, RaisesException] void postMessage(SerializedScriptValue message, optional Array messagePorts);
+    [Custom, RaisesException] void postMessage(SerializedScriptValue message, optional MessagePort[] messagePorts);
     void terminate();
 };
 
diff --git a/core/workers/WorkerLocation.idl b/core/workers/WorkerLocation.idl
index c3dd851..64ed9e0 100644
--- a/core/workers/WorkerLocation.idl
+++ b/core/workers/WorkerLocation.idl
@@ -31,5 +31,4 @@
 ] interface WorkerLocation {
 };
 
-// force rebuild: crbug.com/307023
 WorkerLocation implements URLUtilsReadOnly;
diff --git a/core/xml/DocumentXPathEvaluator.idl b/core/xml/DocumentXPathEvaluator.idl
index ebe0ef4..3ef7c2d 100644
--- a/core/xml/DocumentXPathEvaluator.idl
+++ b/core/xml/DocumentXPathEvaluator.idl
@@ -16,6 +16,7 @@
  * 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,
diff --git a/modules/README b/modules/README
index 575df1a..87619fd 100644
--- a/modules/README
+++ b/modules/README
@@ -5,5 +5,5 @@
 using the script: $DART_ROOT/sdk/lib/html/scripts/idlsync.py
 
 The current version corresponds to:
-URL: http://src.chromium.org/blink/branches/dart/1750
-Current revision: 166797
+URL: http://src.chromium.org/blink/branches/dart/1847
+Current revision: 169590
diff --git a/modules/crypto/AesCbcParams.idl b/modules/crypto/AesCbcParams.idl
deleted file mode 100644
index b068ec9..0000000
--- a/modules/crypto/AesCbcParams.idl
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    NoInterfaceObject,
-] interface AesCbcParams : Algorithm {
-    readonly attribute Uint8Array iv;
-};
diff --git a/modules/crypto/AesCtrParams.idl b/modules/crypto/AesCtrParams.idl
deleted file mode 100644
index 58f3fda..0000000
--- a/modules/crypto/AesCtrParams.idl
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    NoInterfaceObject,
-] interface AesCtrParams : Algorithm {
-    readonly attribute Uint8Array counter;
-    readonly attribute octet length;
-};
diff --git a/modules/crypto/AesKeyGenParams.idl b/modules/crypto/AesKeyGenParams.idl
deleted file mode 100644
index 2158208..0000000
--- a/modules/crypto/AesKeyGenParams.idl
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    NoInterfaceObject,
-] interface AesKeyGenParams : Algorithm {
-    readonly attribute unsigned short length;
-};
diff --git a/modules/crypto/Algorithm.idl b/modules/crypto/Algorithm.idl
index 6f1d20c..a1373bd 100644
--- a/modules/crypto/Algorithm.idl
+++ b/modules/crypto/Algorithm.idl
@@ -29,8 +29,8 @@
  */
 
 [
-    Custom=Wrap,
-    NoInterfaceObject,
+    WillBeGarbageCollected,
+    NoInterfaceObject
 ] interface Algorithm {
     readonly attribute DOMString name;
 };
diff --git a/modules/crypto/Crypto.idl b/modules/crypto/Crypto.idl
index 52044ab..dca27c6 100644
--- a/modules/crypto/Crypto.idl
+++ b/modules/crypto/Crypto.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject
 ] interface Crypto {
     // Note that getRandomValues() is available even when the "Crypto"
diff --git a/modules/crypto/HmacKeyParams.idl b/modules/crypto/HmacKeyParams.idl
deleted file mode 100644
index bb7ac7e..0000000
--- a/modules/crypto/HmacKeyParams.idl
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    NoInterfaceObject,
-] interface HmacKeyParams : Algorithm {
-    readonly attribute Algorithm hash;
-    readonly attribute unsigned long? length;
-};
diff --git a/modules/crypto/Key.idl b/modules/crypto/Key.idl
index 6124a2f..b3901bc 100644
--- a/modules/crypto/Key.idl
+++ b/modules/crypto/Key.idl
@@ -29,7 +29,8 @@
  */
 
 [
-    NoInterfaceObject,
+    WillBeGarbageCollected,
+    NoInterfaceObject
 ] interface Key {
     readonly attribute DOMString type;
     readonly attribute boolean extractable;
diff --git a/modules/crypto/KeyPair.idl b/modules/crypto/KeyPair.idl
index 538f85a..a27de45 100644
--- a/modules/crypto/KeyPair.idl
+++ b/modules/crypto/KeyPair.idl
@@ -29,7 +29,8 @@
  */
 
 [
-    NoInterfaceObject,
+    WillBeGarbageCollected,
+    NoInterfaceObject
 ] interface KeyPair {
     readonly attribute Key publicKey;
     readonly attribute Key privateKey;
diff --git a/modules/crypto/RsaKeyGenParams.idl b/modules/crypto/RsaKeyGenParams.idl
deleted file mode 100644
index 0ec9d21..0000000
--- a/modules/crypto/RsaKeyGenParams.idl
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    NoInterfaceObject,
-] interface RsaKeyGenParams : Algorithm {
-    readonly attribute unsigned long modulusLength;
-    readonly attribute Uint8Array publicExponent;
-};
diff --git a/modules/crypto/RsaSsaParams.idl b/modules/crypto/RsaSsaParams.idl
deleted file mode 100644
index f289529..0000000
--- a/modules/crypto/RsaSsaParams.idl
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    NoInterfaceObject,
-] interface RsaSsaParams : Algorithm {
-    readonly attribute Algorithm hash;
-};
diff --git a/modules/crypto/SubtleCrypto.idl b/modules/crypto/SubtleCrypto.idl
index f11dc76..ff0718b 100644
--- a/modules/crypto/SubtleCrypto.idl
+++ b/modules/crypto/SubtleCrypto.idl
@@ -29,7 +29,8 @@
  */
 
 [
-    NoInterfaceObject,
+    WillBeGarbageCollected,
+    NoInterfaceObject
 ] interface SubtleCrypto {
     [RaisesException] Promise encrypt(Dictionary algorithm, Key key, ArrayBufferView data);
     [RaisesException] Promise decrypt(Dictionary algorithm, Key key, ArrayBufferView data);
diff --git a/modules/crypto/WindowCrypto.idl b/modules/crypto/WindowCrypto.idl
index 46ef6c4..b80f161 100644
--- a/modules/crypto/WindowCrypto.idl
+++ b/modules/crypto/WindowCrypto.idl
@@ -29,8 +29,7 @@
  */
 
 [
-    ImplementedAs=DOMWindowCrypto
+    ImplementedAs=DOMWindowCrypto,
 ] partial interface Window {
     readonly attribute Crypto crypto;
 };
-
diff --git a/modules/crypto/WorkerCrypto.idl b/modules/crypto/WorkerCrypto.idl
index 4dd16cd..65da143 100644
--- a/modules/crypto/WorkerCrypto.idl
+++ b/modules/crypto/WorkerCrypto.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject
 ] interface WorkerCrypto {
     [Custom, RaisesException] ArrayBufferView getRandomValues(ArrayBufferView array);
diff --git a/modules/crypto/WorkerGlobalScopeCrypto.idl b/modules/crypto/WorkerGlobalScopeCrypto.idl
index 3044d42..e85ba50 100644
--- a/modules/crypto/WorkerGlobalScopeCrypto.idl
+++ b/modules/crypto/WorkerGlobalScopeCrypto.idl
@@ -28,6 +28,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface WorkerGlobalScope {
-    [RuntimeEnabled=Crypto] readonly attribute WorkerCrypto crypto;
+[
+    RuntimeEnabled=Crypto,
+] partial interface WorkerGlobalScope {
+    readonly attribute WorkerCrypto crypto;
 };
diff --git a/modules/device_orientation/DeviceAcceleration.idl b/modules/device_orientation/DeviceAcceleration.idl
index c4ff4a6..6ad701c 100644
--- a/modules/device_orientation/DeviceAcceleration.idl
+++ b/modules/device_orientation/DeviceAcceleration.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject
 ] interface DeviceAcceleration {
     readonly attribute double? x;
diff --git a/modules/device_orientation/DeviceMotionEvent.idl b/modules/device_orientation/DeviceMotionEvent.idl
index 8643b55..b7df842 100644
--- a/modules/device_orientation/DeviceMotionEvent.idl
+++ b/modules/device_orientation/DeviceMotionEvent.idl
@@ -33,8 +33,8 @@
     [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 DeviceAcceleration acceleration,
+                                        [Default=Undefined] optional DeviceAcceleration accelerationIncludingGravity,
+                                        [Default=Undefined] optional DeviceRotationRate rotationRate,
                                         [Default=Undefined] optional double interval);
 };
diff --git a/modules/device_orientation/DeviceRotationRate.idl b/modules/device_orientation/DeviceRotationRate.idl
index 2d7600a..71d299f 100644
--- a/modules/device_orientation/DeviceRotationRate.idl
+++ b/modules/device_orientation/DeviceRotationRate.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject
 ] interface DeviceRotationRate {
     readonly attribute double? alpha;
diff --git a/modules/donottrack/NavigatorDoNotTrack.idl b/modules/donottrack/NavigatorDoNotTrack.idl
index f1626bf..1ecea7f 100644
--- a/modules/donottrack/NavigatorDoNotTrack.idl
+++ b/modules/donottrack/NavigatorDoNotTrack.idl
@@ -31,4 +31,3 @@
 partial interface Navigator {
     [TreatReturnedNullStringAs=Null] readonly attribute DOMString doNotTrack;
 };
-
diff --git a/modules/encoding/TextDecoder.idl b/modules/encoding/TextDecoder.idl
index 136b0ef..2a1f987 100644
--- a/modules/encoding/TextDecoder.idl
+++ b/modules/encoding/TextDecoder.idl
@@ -32,7 +32,8 @@
     RuntimeEnabled=EncodingAPI,
     GlobalContext=Window&WorkerGlobalScope,
     Constructor([Default=NullString] optional DOMString label, optional Dictionary options),
-    RaisesException=Constructor
+    RaisesException=Constructor,
+    WillBeGarbageCollected
 ] interface TextDecoder {
     readonly attribute DOMString encoding;
     [RaisesException] DOMString decode(optional ArrayBufferView input, optional Dictionary options);
diff --git a/modules/encoding/TextEncoder.idl b/modules/encoding/TextEncoder.idl
index 9258c0c..0428015 100644
--- a/modules/encoding/TextEncoder.idl
+++ b/modules/encoding/TextEncoder.idl
@@ -32,7 +32,8 @@
     RuntimeEnabled=EncodingAPI,
     GlobalContext=Window&WorkerGlobalScope,
     Constructor([Default=NullString] optional DOMString utfLabel),
-    RaisesException=Constructor
+    RaisesException=Constructor,
+    WillBeGarbageCollected
 ] interface TextEncoder {
     readonly attribute DOMString encoding;
     Uint8Array encode([Default=NullString] optional DOMString input, optional Dictionary options);
diff --git a/modules/encryptedmedia/MediaKeyMessageEvent.idl b/modules/encryptedmedia/MediaKeyMessageEvent.idl
index a7eaf90..67bc8f4 100644
--- a/modules/encryptedmedia/MediaKeyMessageEvent.idl
+++ b/modules/encryptedmedia/MediaKeyMessageEvent.idl
@@ -25,7 +25,7 @@
 
 [
     EventConstructor,
-    RuntimeEnabled=EncryptedMedia,
+    RuntimeEnabled=EncryptedMedia
 ] 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 878813f..c99a180 100644
--- a/modules/encryptedmedia/MediaKeyNeededEvent.idl
+++ b/modules/encryptedmedia/MediaKeyNeededEvent.idl
@@ -25,8 +25,9 @@
 
 [
     EventConstructor,
-    RuntimeEnabled=EncryptedMedia,
+    RuntimeEnabled=EncryptedMedia
 ] interface MediaKeyNeededEvent : Event {
+    readonly attribute DOMString contentType;
     readonly attribute Uint8Array initData;
 };
 
diff --git a/modules/encryptedmedia/MediaKeySession.idl b/modules/encryptedmedia/MediaKeySession.idl
index c0b7f8c..5a2ba37 100644
--- a/modules/encryptedmedia/MediaKeySession.idl
+++ b/modules/encryptedmedia/MediaKeySession.idl
@@ -21,10 +21,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.
-     */
+ */
 
 [
-    RuntimeEnabled=EncryptedMedia
+    ActiveDOMObject,
+    RuntimeEnabled=EncryptedMedia,
+    WillBeGarbageCollected
 ] interface MediaKeySession : EventTarget {
     // error state
     readonly attribute MediaKeyError error;
@@ -34,11 +36,6 @@
     readonly attribute DOMString sessionId;
 
     // session operations
-    [RaisesException] void update(Uint8Array key);
-    void close();
-
-    // EventHandlers
-    [RuntimeEnabled=EncryptedMedia] attribute EventHandler onwebkitkeyadded;
-    [RuntimeEnabled=EncryptedMedia] attribute EventHandler onwebkitkeyerror;
-    [RuntimeEnabled=EncryptedMedia] attribute EventHandler onwebkitkeymessage;
+    [RaisesException] void update(Uint8Array response);
+    [RaisesException] void release();
 };
diff --git a/modules/encryptedmedia/MediaKeys.idl b/modules/encryptedmedia/MediaKeys.idl
index 9d99d43..b1f76e6 100644
--- a/modules/encryptedmedia/MediaKeys.idl
+++ b/modules/encryptedmedia/MediaKeys.idl
@@ -26,9 +26,10 @@
 [
     RuntimeEnabled=EncryptedMedia,
     Constructor(DOMString keySystem),
-    RaisesException=Constructor
+    RaisesException=Constructor,
+    WillBeGarbageCollected
 ] interface MediaKeys {
-    [CallWith=ExecutionContext, RaisesException] MediaKeySession createSession([Default=Undefined] optional DOMString type, [Default=Undefined] optional Uint8Array initData);
+    [CallWith=ExecutionContext, RaisesException] MediaKeySession createSession(DOMString type, Uint8Array initData);
 
     readonly attribute DOMString keySystem;
 };
diff --git a/modules/filesystem/DataTransferItemFileSystem.idl b/modules/filesystem/DataTransferItemFileSystem.idl
index 19dd9f9..28f3151 100644
--- a/modules/filesystem/DataTransferItemFileSystem.idl
+++ b/modules/filesystem/DataTransferItemFileSystem.idl
@@ -31,4 +31,3 @@
 partial interface DataTransferItem {
     [CallWith=ExecutionContext] Entry webkitGetAsEntry();
 };
-
diff --git a/modules/filesystem/HTMLInputElementFileSystem.idl b/modules/filesystem/HTMLInputElementFileSystem.idl
index 836e25d..c55dcd9 100644
--- a/modules/filesystem/HTMLInputElementFileSystem.idl
+++ b/modules/filesystem/HTMLInputElementFileSystem.idl
@@ -28,7 +28,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface HTMLInputElement {
-[RuntimeEnabled=FileSystem,CallWith=ExecutionContext] readonly attribute Entry[] webkitEntries;
+[
+    RuntimeEnabled=FileSystem,
+] partial interface HTMLInputElement {
+    [CallWith=ExecutionContext] readonly attribute Entry[] webkitEntries;
 };
-
diff --git a/modules/filesystem/InspectorFrontendHostFileSystem.idl b/modules/filesystem/InspectorFrontendHostFileSystem.idl
new file mode 100644
index 0000000..d871fab
--- /dev/null
+++ b/modules/filesystem/InspectorFrontendHostFileSystem.idl
@@ -0,0 +1,10 @@
+// Copyright 2014 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.
+
+[
+    RuntimeEnabled=FileSystem,
+] partial interface InspectorFrontendHost {
+    DOMFileSystem isolatedFileSystem(DOMString fileSystemId, DOMString registeredName);
+    void upgradeDraggedFileSystemPermissions(DOMFileSystem domFileSystem);
+};
diff --git a/modules/filesystem/WindowFileSystem.idl b/modules/filesystem/WindowFileSystem.idl
index dcbe807..b35cc8a 100644
--- a/modules/filesystem/WindowFileSystem.idl
+++ b/modules/filesystem/WindowFileSystem.idl
@@ -25,7 +25,7 @@
  */
 
 [
-    ImplementedAs=DOMWindowFileSystem
+    ImplementedAs=DOMWindowFileSystem,
 ] partial interface Window {
     const unsigned short TEMPORARY = 0;
     const unsigned short PERSISTENT = 1;
@@ -35,4 +35,3 @@
     [RuntimeEnabled=FileSystem] void webkitResolveLocalFileSystemURL(DOMString url,
             EntryCallback successCallback, optional ErrorCallback errorCallback);
 };
-
diff --git a/modules/filesystem/WorkerGlobalScopeFileSystem.idl b/modules/filesystem/WorkerGlobalScopeFileSystem.idl
index 3762bc5..1e13f7f 100644
--- a/modules/filesystem/WorkerGlobalScopeFileSystem.idl
+++ b/modules/filesystem/WorkerGlobalScopeFileSystem.idl
@@ -35,4 +35,3 @@
 
     [RuntimeEnabled=FileSystem] attribute FileErrorConstructor FileError;
 };
-
diff --git a/modules/gamepad/Gamepad.idl b/modules/gamepad/Gamepad.idl
index b263929..937cf2d 100644
--- a/modules/gamepad/Gamepad.idl
+++ b/modules/gamepad/Gamepad.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject
 ] interface Gamepad {
     readonly attribute DOMString id;
diff --git a/modules/gamepad/GamepadList.idl b/modules/gamepad/GamepadList.idl
index 396c013..70ebf4e 100644
--- a/modules/gamepad/GamepadList.idl
+++ b/modules/gamepad/GamepadList.idl
@@ -24,9 +24,9 @@
  */
 
 [
-    NoInterfaceObject
+    WillBeGarbageCollected,
+    NoInterfaceObject,
 ] interface GamepadList {
     readonly attribute unsigned long length;
     getter Gamepad item([Default=Undefined] optional unsigned long index);
 };
-
diff --git a/modules/gamepad/NavigatorGamepad.idl b/modules/gamepad/NavigatorGamepad.idl
index 0fbceee..a9948c8 100644
--- a/modules/gamepad/NavigatorGamepad.idl
+++ b/modules/gamepad/NavigatorGamepad.idl
@@ -17,7 +17,8 @@
  * Boston, MA 02110-1301, USA.
  */
 
-partial interface Navigator {
-    [RuntimeEnabled=Gamepad] GamepadList webkitGetGamepads();
+[
+    RuntimeEnabled=Gamepad,
+] partial interface Navigator {
+    GamepadList webkitGetGamepads();
 };
-
diff --git a/modules/geolocation/Coordinates.idl b/modules/geolocation/Coordinates.idl
index ed2b8bf..f4bb161 100644
--- a/modules/geolocation/Coordinates.idl
+++ b/modules/geolocation/Coordinates.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject
 ] interface Coordinates {
     readonly attribute double latitude;
diff --git a/modules/geolocation/Geolocation.idl b/modules/geolocation/Geolocation.idl
index b8fde66..1d98cfb 100644
--- a/modules/geolocation/Geolocation.idl
+++ b/modules/geolocation/Geolocation.idl
@@ -25,15 +25,18 @@
 
 // http://www.w3.org/TR/geolocation-API/#geolocation_interface
 [
-    NoInterfaceObject
+    WillBeGarbageCollected,
+    NoInterfaceObject,
 ] interface Geolocation {
+    // FIXME: should be: PositionOptions options (need PositionOptions.idl)
     [Custom, PerWorldBindings, ActivityLogging=ForIsolatedWorlds] void getCurrentPosition(PositionCallback successCallback,
                                      optional PositionErrorCallback errorCallback,
-                                     optional PositionOptions options);
+                                     optional object options);
 
+    // FIXME: should be: PositionOptions options (need PositionOptions.idl)
     [Custom, PerWorldBindings, ActivityLogging=ForIsolatedWorlds] long watchPosition(PositionCallback successCallback,
                                 optional PositionErrorCallback errorCallback,
-                                optional PositionOptions options);
+                                optional object options);
 
     void clearWatch(long watchID);
 };
diff --git a/modules/geolocation/Geoposition.idl b/modules/geolocation/Geoposition.idl
index 1b5e347..6e72f36 100644
--- a/modules/geolocation/Geoposition.idl
+++ b/modules/geolocation/Geoposition.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject
 ] interface Geoposition {
     readonly attribute Coordinates coords;
diff --git a/modules/geolocation/NavigatorGeolocation.idl b/modules/geolocation/NavigatorGeolocation.idl
index 4de885c..318db59 100644
--- a/modules/geolocation/NavigatorGeolocation.idl
+++ b/modules/geolocation/NavigatorGeolocation.idl
@@ -17,7 +17,8 @@
  * Boston, MA 02110-1301, USA.
  */
 
-partial interface Navigator {
-    [RuntimeEnabled=Geolocation] readonly attribute Geolocation geolocation;
+[
+    RuntimeEnabled=Geolocation,
+] partial interface Navigator {
+    readonly attribute Geolocation geolocation;
 };
-
diff --git a/modules/geolocation/PositionError.idl b/modules/geolocation/PositionError.idl
index 2a673c0..0495032 100644
--- a/modules/geolocation/PositionError.idl
+++ b/modules/geolocation/PositionError.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject
 ] interface PositionError {
     readonly attribute unsigned short code;
diff --git a/modules/crypto/HmacParams.idl b/modules/geolocation/testing/InternalsGeolocation.idl
similarity index 75%
copy from modules/crypto/HmacParams.idl
copy to modules/geolocation/testing/InternalsGeolocation.idl
index 2dae1c8..ac6b2d3 100644
--- a/modules/crypto/HmacParams.idl
+++ b/modules/geolocation/testing/InternalsGeolocation.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2014 Google Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -28,8 +28,10 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    NoInterfaceObject,
-] interface HmacParams : Algorithm {
-    readonly attribute Algorithm hash;
+partial interface Internals {
+    void setGeolocationClientMock(Document document);
+    void setGeolocationPosition(Document document, double latitude, double longitude, double accuracy);
+    void setGeolocationPositionUnavailableError(Document document, DOMString message);
+    void setGeolocationPermission(Document document, boolean allowed);
+    long numberOfPendingGeolocationPermissionRequests(Document document);
 };
diff --git a/modules/imagebitmap/WindowImageBitmapFactories.idl b/modules/imagebitmap/WindowImageBitmapFactories.idl
index ced1ff8..419649f 100644
--- a/modules/imagebitmap/WindowImageBitmapFactories.idl
+++ b/modules/imagebitmap/WindowImageBitmapFactories.idl
@@ -30,7 +30,7 @@
 
 [
     ImplementedAs=ImageBitmapFactories,
-    RuntimeEnabled=ExperimentalCanvasFeatures
+    RuntimeEnabled=ExperimentalCanvasFeatures,
 ] partial interface Window {
     [RaisesException] Promise createImageBitmap(HTMLImageElement image);
     [RaisesException] Promise createImageBitmap(HTMLImageElement image, long sx, long sy, long sw, long sh);
diff --git a/modules/indexeddb/WindowIndexedDatabase.idl b/modules/indexeddb/WindowIndexedDatabase.idl
index 3823e4f..d27f09b 100644
--- a/modules/indexeddb/WindowIndexedDatabase.idl
+++ b/modules/indexeddb/WindowIndexedDatabase.idl
@@ -25,9 +25,9 @@
  */
 
 [
-    ImplementedAs=DOMWindowIndexedDatabase
+    ImplementedAs=DOMWindowIndexedDatabase,
 ] partial interface Window {
-    [ImplementedAs=indexedDB,MeasureAs=PrefixedIndexedDB] readonly attribute IDBFactory webkitIndexedDB;
+    [ImplementedAs=indexedDB, MeasureAs=PrefixedIndexedDB] readonly attribute IDBFactory webkitIndexedDB;
 
     [MeasureAs=UnprefixedIndexedDB] readonly attribute IDBFactory indexedDB;
 };
diff --git a/modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl b/modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl
index 9b2c208..8ca9e62 100644
--- a/modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl
+++ b/modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl
@@ -25,7 +25,7 @@
  */
 
 partial interface WorkerGlobalScope {
-    [ImplementedAs=indexedDB, RuntimeEnabled=IndexedDB] readonly attribute IDBFactory webkitIndexedDB;
+    [ImplementedAs=indexedDB] readonly attribute IDBFactory webkitIndexedDB;
 
     attribute IDBCursorConstructor webkitIDBCursor;
     attribute IDBDatabaseConstructor webkitIDBDatabase;
@@ -36,7 +36,7 @@
     attribute IDBRequestConstructor webkitIDBRequest;
     attribute IDBTransactionConstructor webkitIDBTransaction;
 
-    [RuntimeEnabled=IndexedDB] readonly attribute IDBFactory indexedDB;
+    readonly attribute IDBFactory indexedDB;
 
     attribute IDBCursorConstructor IDBCursor;
     attribute IDBCursorWithValueConstructor IDBCursorWithValue;
diff --git a/modules/mediasource/HTMLVideoElementMediaSource.idl b/modules/mediasource/HTMLVideoElementMediaSource.idl
index 79a51ab..57de64f 100644
--- a/modules/mediasource/HTMLVideoElementMediaSource.idl
+++ b/modules/mediasource/HTMLVideoElementMediaSource.idl
@@ -27,6 +27,9 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
-partial interface HTMLVideoElement {
-    [RuntimeEnabled=MediaSourceExperimental] VideoPlaybackQuality getVideoPlaybackQuality();
+
+[
+    RuntimeEnabled=MediaSourceExperimental,
+] partial interface HTMLVideoElement {
+    VideoPlaybackQuality getVideoPlaybackQuality();
 };
diff --git a/modules/mediasource/MediaSource.idl b/modules/mediasource/MediaSource.idl
index a5bf84f..28ea22e 100644
--- a/modules/mediasource/MediaSource.idl
+++ b/modules/mediasource/MediaSource.idl
@@ -28,6 +28,11 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+enum EndOfStreamError {
+    "network",
+    "decode"
+};
+
 [
     ActiveDOMObject,
     Constructor,
@@ -47,7 +52,7 @@
 
     readonly attribute DOMString readyState;
 
-    [RaisesException] void endOfStream([Default=NullString] optional DOMString error);
+    [RaisesException] void endOfStream(optional EndOfStreamError error);
 
     static boolean isTypeSupported (DOMString type);
 };
diff --git a/modules/mediasource/SourceBuffer.idl b/modules/mediasource/SourceBuffer.idl
index e2712bd..1272771 100644
--- a/modules/mediasource/SourceBuffer.idl
+++ b/modules/mediasource/SourceBuffer.idl
@@ -28,12 +28,21 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+enum AppendMode {
+    "segments",
+    "sequence"
+};
+
 [
     NoInterfaceObject,
     ActiveDOMObject,
     RuntimeEnabled=MediaSource
 ] interface SourceBuffer : EventTarget {
 
+    // Gets or sets the AppendMode.
+    // FIXME: Remove MediaSourceExperimental once mode attribute is implemented and stabilized. See http://crbug.com/249422.
+    [RaisesException=Setter, RuntimeEnabled=MediaSourceExperimental] attribute AppendMode mode;
+
     readonly attribute boolean updating;
 
     // Returns the time ranges buffered.
diff --git a/modules/mediasource/SourceBufferList.idl b/modules/mediasource/SourceBufferList.idl
index 4b5f180..bbac1f0 100644
--- a/modules/mediasource/SourceBufferList.idl
+++ b/modules/mediasource/SourceBufferList.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject,
     RuntimeEnabled=MediaSource,
 ] interface SourceBufferList : EventTarget {
diff --git a/modules/mediasource/URLMediaSource.idl b/modules/mediasource/URLMediaSource.idl
index e259be0..7312dce 100644
--- a/modules/mediasource/URLMediaSource.idl
+++ b/modules/mediasource/URLMediaSource.idl
@@ -27,7 +27,8 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 partial interface URL {
-    [CallWith=ExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(MediaSource? source);
-    [CallWith=ExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(WebKitMediaSource? source);
+    [CallWith=ExecutionContext, TreatReturnedNullStringAs=Null] static DOMString createObjectURL(MediaSource? source);
+    [CallWith=ExecutionContext, TreatReturnedNullStringAs=Null] static DOMString createObjectURL(WebKitMediaSource? source);
 };
diff --git a/modules/mediasource/VideoPlaybackQuality.idl b/modules/mediasource/VideoPlaybackQuality.idl
index 746f53c..104bcab 100644
--- a/modules/mediasource/VideoPlaybackQuality.idl
+++ b/modules/mediasource/VideoPlaybackQuality.idl
@@ -28,6 +28,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 [
+    WillBeGarbageCollected,
     RuntimeEnabled=MediaSourceExperimental,
 ] interface VideoPlaybackQuality {
     readonly attribute double creationTime;
diff --git a/modules/mediasource/WebKitMediaSource.idl b/modules/mediasource/WebKitMediaSource.idl
index 4ceea5b..aa5385a 100644
--- a/modules/mediasource/WebKitMediaSource.idl
+++ b/modules/mediasource/WebKitMediaSource.idl
@@ -28,6 +28,11 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+enum WebKitEndOfStreamError {
+    "network",
+    "decode"
+};
+
 [
     ActiveDOMObject,
     Constructor,
@@ -48,7 +53,7 @@
 
     readonly attribute DOMString readyState;
 
-    [RaisesException] void endOfStream([Default=NullString] optional DOMString error);
+    [RaisesException] void endOfStream(optional WebKitEndOfStreamError error);
 
     static boolean isTypeSupported (DOMString type);
 };
diff --git a/modules/mediasource/WebKitSourceBuffer.idl b/modules/mediasource/WebKitSourceBuffer.idl
index c896a67..a22916a 100644
--- a/modules/mediasource/WebKitSourceBuffer.idl
+++ b/modules/mediasource/WebKitSourceBuffer.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject,
     RuntimeEnabled=WebKitMediaSource
 ] interface WebKitSourceBuffer {
diff --git a/modules/mediasource/WebKitSourceBufferList.idl b/modules/mediasource/WebKitSourceBufferList.idl
index b3d2ec4..840ba87 100644
--- a/modules/mediasource/WebKitSourceBufferList.idl
+++ b/modules/mediasource/WebKitSourceBufferList.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject,
     RuntimeEnabled=WebKitMediaSource
 ] interface WebKitSourceBufferList : EventTarget {
diff --git a/modules/mediasource/WindowMediaSource.idl b/modules/mediasource/WindowMediaSource.idl
index 6221f9e..ab65c2f 100644
--- a/modules/mediasource/WindowMediaSource.idl
+++ b/modules/mediasource/WindowMediaSource.idl
@@ -27,8 +27,11 @@
  * (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 Window {
-    [RuntimeEnabled=WebKitMediaSource] attribute WebKitMediaSourceConstructor WebKitMediaSource;
-    [RuntimeEnabled=WebKitMediaSource] attribute WebKitSourceBufferConstructor WebKitSourceBuffer;
-    [RuntimeEnabled=WebKitMediaSource] attribute WebKitSourceBufferListConstructor WebKitSourceBufferList;
+
+[
+    RuntimeEnabled=WebKitMediaSource
+] partial interface Window {
+    attribute WebKitMediaSourceConstructor WebKitMediaSource;
+    attribute WebKitSourceBufferConstructor WebKitSourceBuffer;
+    attribute WebKitSourceBufferListConstructor WebKitSourceBufferList;
 };
diff --git a/modules/mediastream/NavigatorMediaStream.idl b/modules/mediastream/NavigatorMediaStream.idl
index 2f72684..d6db353 100644
--- a/modules/mediastream/NavigatorMediaStream.idl
+++ b/modules/mediastream/NavigatorMediaStream.idl
@@ -17,9 +17,10 @@
  * Boston, MA 02110-1301, USA.
  */
 
-partial interface Navigator {
-    [RuntimeEnabled=MediaStream, RaisesException] void webkitGetUserMedia(Dictionary options,
-                                                 NavigatorUserMediaSuccessCallback successCallback,
-                                                 optional NavigatorUserMediaErrorCallback errorCallback);
+[
+    RuntimeEnabled=MediaStream,
+] partial interface Navigator {
+    [RaisesException] void webkitGetUserMedia(Dictionary options,
+                                              NavigatorUserMediaSuccessCallback successCallback,
+                                              optional NavigatorUserMediaErrorCallback errorCallback);
 };
-
diff --git a/modules/mediastream/RTCPeerConnection.idl b/modules/mediastream/RTCPeerConnection.idl
index 1be4b24..0cd9608 100644
--- a/modules/mediastream/RTCPeerConnection.idl
+++ b/modules/mediastream/RTCPeerConnection.idl
@@ -61,8 +61,8 @@
     sequence<MediaStream> getRemoteStreams();
     MediaStream getStreamById(DOMString streamId);
 
-    [StrictTypeChecking, RaisesException] void addStream(MediaStream stream, optional Dictionary mediaConstraints);
-    [StrictTypeChecking, RaisesException] void removeStream(MediaStream stream);
+    [StrictTypeChecking, RaisesException] void addStream(MediaStream? stream, optional Dictionary mediaConstraints);
+    [StrictTypeChecking, RaisesException] void removeStream(MediaStream? stream);
 
     void getStats(RTCStatsCallback successCallback, [Default=Undefined] optional MediaStreamTrack selector);
 
@@ -80,4 +80,3 @@
     attribute EventHandler oniceconnectionstatechange;
     attribute EventHandler ondatachannel;
 };
-
diff --git a/modules/mediastream/URLMediaStream.idl b/modules/mediastream/URLMediaStream.idl
index d6d36cf..dda838d 100644
--- a/modules/mediastream/URLMediaStream.idl
+++ b/modules/mediastream/URLMediaStream.idl
@@ -27,6 +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 URL {
-    [CallWith=ExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(MediaStream? stream);
+    [CallWith=ExecutionContext, TreatReturnedNullStringAs=Null] static DOMString createObjectURL(MediaStream? stream);
 };
diff --git a/modules/navigatorcontentutils/NavigatorContentUtils.idl b/modules/navigatorcontentutils/NavigatorContentUtils.idl
index a9f4b31..66c24de 100644
--- a/modules/navigatorcontentutils/NavigatorContentUtils.idl
+++ b/modules/navigatorcontentutils/NavigatorContentUtils.idl
@@ -20,8 +20,7 @@
 
 // http://www.w3.org/TR/html5/system-state-and-capabilities.html#custom-handlers
 partial interface Navigator {
-    [Conditional=NAVIGATOR_CONTENT_UTILS, RaisesException] void registerProtocolHandler(DOMString scheme, DOMString url, DOMString title);
-    [Conditional=NAVIGATOR_CONTENT_UTILS&CUSTOM_SCHEME_HANDLER, RaisesException] DOMString isProtocolHandlerRegistered(DOMString scheme, DOMString url);
-    [Conditional=NAVIGATOR_CONTENT_UTILS&CUSTOM_SCHEME_HANDLER, RaisesException] void unregisterProtocolHandler(DOMString scheme, DOMString url);
+    [RuntimeEnabled=NavigatorContentUtils, RaisesException] void registerProtocolHandler(DOMString scheme, DOMString url, DOMString title);
+    [RuntimeEnabled=CustomSchemeHandler, RaisesException] DOMString isProtocolHandlerRegistered(DOMString scheme, DOMString url);
+    [RuntimeEnabled=CustomSchemeHandler, RaisesException] void unregisterProtocolHandler(DOMString scheme, DOMString url);
 };
-
diff --git a/modules/notifications/Notification.idl b/modules/notifications/Notification.idl
index 1ef74c4..b51ee3a 100644
--- a/modules/notifications/Notification.idl
+++ b/modules/notifications/Notification.idl
@@ -30,6 +30,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     ActiveDOMObject,
     Constructor(DOMString title, [Default=Undefined] optional Dictionary options),
     ConstructorCallWith=ExecutionContext,
diff --git a/modules/notifications/NotificationCenter.idl b/modules/notifications/NotificationCenter.idl
index bdacd39..6fd3270 100644
--- a/modules/notifications/NotificationCenter.idl
+++ b/modules/notifications/NotificationCenter.idl
@@ -30,6 +30,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject,
     Conditional=LEGACY_NOTIFICATIONS,
     ActiveDOMObject
diff --git a/modules/notifications/WebKitNotification.idl b/modules/notifications/WebKitNotification.idl
index 52899ff..ae2acef 100644
--- a/modules/notifications/WebKitNotification.idl
+++ b/modules/notifications/WebKitNotification.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     ActiveDOMObject,
     Conditional=LEGACY_NOTIFICATIONS,
     NoInterfaceObject,
diff --git a/modules/notifications/WindowNotifications.idl b/modules/notifications/WindowNotifications.idl
index 9f74cf0..0017310 100644
--- a/modules/notifications/WindowNotifications.idl
+++ b/modules/notifications/WindowNotifications.idl
@@ -26,7 +26,8 @@
 
 [
     Conditional=LEGACY_NOTIFICATIONS,
-    ImplementedAs=DOMWindowNotifications
+    ImplementedAs=DOMWindowNotifications,
+    RuntimeEnabled=Notifications,
 ] partial interface Window {
-    [RuntimeEnabled=Notifications, MeasureAs=LegacyNotifications, PerWorldBindings, ActivityLogging=GetterForIsolatedWorlds] readonly attribute NotificationCenter webkitNotifications;
+    [MeasureAs=LegacyNotifications, PerWorldBindings, ActivityLogging=GetterForIsolatedWorlds] readonly attribute NotificationCenter webkitNotifications;
 };
diff --git a/modules/notifications/WorkerGlobalScopeNotifications.idl b/modules/notifications/WorkerGlobalScopeNotifications.idl
index f6468a7..932dcfb 100644
--- a/modules/notifications/WorkerGlobalScopeNotifications.idl
+++ b/modules/notifications/WorkerGlobalScopeNotifications.idl
@@ -25,7 +25,8 @@
  */
 
 [
-    Conditional=LEGACY_NOTIFICATIONS
+    Conditional=LEGACY_NOTIFICATIONS,
+    RuntimeEnabled=Notifications,
 ] partial interface WorkerGlobalScope {
-    [RuntimeEnabled=Notifications] readonly attribute NotificationCenter webkitNotifications;
+    readonly attribute NotificationCenter webkitNotifications;
 };
diff --git a/modules/performance/SharedWorkerPerformance.idl b/modules/performance/SharedWorkerPerformance.idl
new file mode 100644
index 0000000..ef8b36b
--- /dev/null
+++ b/modules/performance/SharedWorkerPerformance.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2014, Opera Software ASA. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Opera Software ASA 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 HOLDER 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.
+ */
+
+[
+    RuntimeEnabled=HighResolutionTimeInWorkers,
+] partial interface SharedWorker {
+    // See https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HighResolutionTime2/Overview.html for details.
+    [CallWith=ExecutionContext] readonly attribute double workerStart;
+};
diff --git a/modules/performance/WorkerGlobalScopePerformance.idl b/modules/performance/WorkerGlobalScopePerformance.idl
index 1522a1d..0bbe715 100644
--- a/modules/performance/WorkerGlobalScopePerformance.idl
+++ b/modules/performance/WorkerGlobalScopePerformance.idl
@@ -29,7 +29,7 @@
  */
 
 [
-    RuntimeEnabled=HighResolutionTimeInWorkers
+    RuntimeEnabled=HighResolutionTimeInWorkers,
 ] partial interface WorkerGlobalScope {
     readonly attribute WorkerPerformance performance;
 };
diff --git a/modules/performance/WorkerPerformance.idl b/modules/performance/WorkerPerformance.idl
index c4ab7fd..8c234d8 100644
--- a/modules/performance/WorkerPerformance.idl
+++ b/modules/performance/WorkerPerformance.idl
@@ -29,9 +29,10 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject
 ] interface WorkerPerformance {
     // See https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HighResolutionTime2/Overview.html for details.
-    double now();
+    [CallWith=ExecutionContext] double now();
 };
 
diff --git a/core/svg/SVGExternalResourcesRequired.idl b/modules/quota/DeprecatedStorageInfo.idl
similarity index 67%
copy from core/svg/SVGExternalResourcesRequired.idl
copy to modules/quota/DeprecatedStorageInfo.idl
index efc8366..389db91 100644
--- a/core/svg/SVGExternalResourcesRequired.idl
+++ b/modules/quota/DeprecatedStorageInfo.idl
@@ -1,6 +1,5 @@
 /*
- * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2011 Google Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -25,9 +24,12 @@
  */
 
 [
-    NoInterfaceObject,
-    LegacyImplementedInBaseClass
-] interface SVGExternalResourcesRequired {
-    readonly attribute SVGAnimatedBoolean externalResourcesRequired;
-};
+    WillBeGarbageCollected,
+    NoInterfaceObject
+] interface DeprecatedStorageInfo {
+    const unsigned short TEMPORARY = 0;
+    const unsigned short PERSISTENT = 1;
 
+    [CallWith=ExecutionContext] void queryUsageAndQuota(unsigned short storageType, optional StorageUsageCallback usageCallback, optional StorageErrorCallback errorCallback);
+    [CallWith=ExecutionContext] void requestQuota(unsigned short storageType, unsigned long long newQuotaInBytes, optional StorageQuotaCallback quotaCallback, optional StorageErrorCallback errorCallback);
+};
diff --git a/core/svg/SVGExternalResourcesRequired.idl b/modules/quota/DeprecatedStorageQuota.idl
similarity index 73%
rename from core/svg/SVGExternalResourcesRequired.idl
rename to modules/quota/DeprecatedStorageQuota.idl
index efc8366..905f189 100644
--- a/core/svg/SVGExternalResourcesRequired.idl
+++ b/modules/quota/DeprecatedStorageQuota.idl
@@ -1,6 +1,5 @@
 /*
- * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2013 Google Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -25,9 +24,9 @@
  */
 
 [
-    NoInterfaceObject,
-    LegacyImplementedInBaseClass
-] interface SVGExternalResourcesRequired {
-    readonly attribute SVGAnimatedBoolean externalResourcesRequired;
+    WillBeGarbageCollected,
+    NoInterfaceObject
+] interface DeprecatedStorageQuota {
+    [CallWith=ExecutionContext] void queryUsageAndQuota(StorageUsageCallback usageCallback, optional StorageErrorCallback errorCallback);
+    [CallWith=ExecutionContext] void requestQuota(unsigned long long newQuotaInBytes, optional StorageQuotaCallback quotaCallback, optional StorageErrorCallback errorCallback);
 };
-
diff --git a/modules/quota/NavigatorStorageQuota.idl b/modules/quota/NavigatorStorageQuota.idl
index 43869b0..21c6e6f 100644
--- a/modules/quota/NavigatorStorageQuota.idl
+++ b/modules/quota/NavigatorStorageQuota.idl
@@ -18,6 +18,8 @@
  */
 
 partial interface Navigator {
-    readonly attribute StorageQuota webkitTemporaryStorage;
-    readonly attribute StorageQuota webkitPersistentStorage;
+    [MeasureAs=PrefixedStorageQuota] readonly attribute DeprecatedStorageQuota webkitTemporaryStorage;
+    [MeasureAs=PrefixedStorageQuota] readonly attribute DeprecatedStorageQuota webkitPersistentStorage;
+
+    [RuntimeEnabled=QuotaPromise] readonly attribute StorageQuota storageQuota;
 };
diff --git a/modules/quota/StorageInfo.idl b/modules/quota/StorageInfo.idl
index 7988ac3..feec250 100644
--- a/modules/quota/StorageInfo.idl
+++ b/modules/quota/StorageInfo.idl
@@ -1,34 +1,38 @@
 /*
- * Copyright (C) 2011 Google Inc. All rights reserved.
+ * Copyright (C) 2014 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 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
+ *     * 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
+    WillBeGarbageCollected,
+    NoInterfaceObject,
+    RuntimeEnabled=QuotaPromise
 ] interface StorageInfo {
-    const unsigned short TEMPORARY = 0;
-    const unsigned short PERSISTENT = 1;
-
-    [CallWith=ExecutionContext] void queryUsageAndQuota(unsigned short storageType, optional StorageUsageCallback usageCallback, optional StorageErrorCallback errorCallback);
-    [CallWith=ExecutionContext] void requestQuota(unsigned short storageType, unsigned long long newQuotaInBytes, optional StorageQuotaCallback quotaCallback, optional StorageErrorCallback errorCallback);
+    readonly attribute unsigned long long usage;
+    readonly attribute unsigned long long quota;
 };
diff --git a/modules/quota/StorageQuota.idl b/modules/quota/StorageQuota.idl
index a8f2c9c..20c0cbc 100644
--- a/modules/quota/StorageQuota.idl
+++ b/modules/quota/StorageQuota.idl
@@ -1,31 +1,44 @@
 /*
- * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2014 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 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
+ *     * 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.
  */
 
+enum StorageType {
+    "temporary",
+    "persistent"
+};
+
 [
-    NoInterfaceObject
+    WillBeGarbageCollected,
+    NoInterfaceObject,
+    RuntimeEnabled=QuotaPromise
 ] interface StorageQuota {
-    [CallWith=ExecutionContext] void queryUsageAndQuota(StorageUsageCallback usageCallback, optional StorageErrorCallback errorCallback);
-    [CallWith=ExecutionContext] void requestQuota(unsigned long long newQuotaInBytes, optional StorageQuotaCallback quotaCallback, optional StorageErrorCallback errorCallback);
+    readonly attribute StorageType[] supportedTypes;
+    [CallWith=ExecutionContext] Promise queryInfo(StorageType type);
+    [CallWith=ExecutionContext] Promise requestPersistentQuota([Clamp] unsigned long long newQuota);
 };
diff --git a/modules/quota/WindowQuota.idl b/modules/quota/WindowQuota.idl
index 1f8ce5e..5d14c0b 100644
--- a/modules/quota/WindowQuota.idl
+++ b/modules/quota/WindowQuota.idl
@@ -24,8 +24,7 @@
  */
 
 [
-    ImplementedAs=DOMWindowQuota
+    ImplementedAs=DOMWindowQuota,
 ] partial interface Window {
-    [DeprecateAs=StorageInfo] readonly attribute StorageInfo webkitStorageInfo;
+    [DeprecateAs=PrefixedStorageInfo] readonly attribute DeprecatedStorageInfo webkitStorageInfo;
 };
-
diff --git a/modules/quota/WorkerNavigatorStorageQuota.idl b/modules/quota/WorkerNavigatorStorageQuota.idl
index be61756..c47cb53 100644
--- a/modules/quota/WorkerNavigatorStorageQuota.idl
+++ b/modules/quota/WorkerNavigatorStorageQuota.idl
@@ -18,6 +18,6 @@
  */
 
 partial interface WorkerNavigator {
-    readonly attribute StorageQuota webkitTemporaryStorage;
-    readonly attribute StorageQuota webkitPersistentStorage;
+    [MeasureAs=PrefixedStorageQuota] readonly attribute DeprecatedStorageQuota webkitTemporaryStorage;
+    [MeasureAs=PrefixedStorageQuota] readonly attribute DeprecatedStorageQuota webkitPersistentStorage;
 };
diff --git a/modules/screen_orientation/ScreenOrientation.idl b/modules/screen_orientation/ScreenOrientation.idl
new file mode 100644
index 0000000..6fc0d5d
--- /dev/null
+++ b/modules/screen_orientation/ScreenOrientation.idl
@@ -0,0 +1,15 @@
+// Copyright 2014 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.
+
+[
+    RuntimeEnabled=ScreenOrientation
+] partial interface Screen {
+    readonly attribute DOMString orientation;
+
+    boolean lockOrientation(sequence<DOMString> orientations);
+    boolean lockOrientation(DOMString orientation);
+
+    void unlockOrientation();
+    attribute EventHandler onorientationchange;
+};
diff --git a/modules/crypto/HmacParams.idl b/modules/serviceworkers/InstallEvent.idl
similarity index 85%
copy from modules/crypto/HmacParams.idl
copy to modules/serviceworkers/InstallEvent.idl
index 2dae1c8..9384e90 100644
--- a/modules/crypto/HmacParams.idl
+++ b/modules/serviceworkers/InstallEvent.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2014 Google Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -29,7 +29,9 @@
  */
 
 [
-    NoInterfaceObject,
-] interface HmacParams : Algorithm {
-    readonly attribute Algorithm hash;
+    RuntimeEnabled=ServiceWorker,
+    GlobalContext=ServiceWorkerGlobalScope,
+] interface InstallEvent : InstallPhaseEvent {
+    void replace();
+    [CallWith=ExecutionContext] Promise reloadAll();
 };
diff --git a/modules/crypto/HmacParams.idl b/modules/serviceworkers/InstallPhaseEvent.idl
similarity index 87%
copy from modules/crypto/HmacParams.idl
copy to modules/serviceworkers/InstallPhaseEvent.idl
index 2dae1c8..21afbcc 100644
--- a/modules/crypto/HmacParams.idl
+++ b/modules/serviceworkers/InstallPhaseEvent.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2014 Google Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -29,7 +29,8 @@
  */
 
 [
-    NoInterfaceObject,
-] interface HmacParams : Algorithm {
-    readonly attribute Algorithm hash;
+    RuntimeEnabled=ServiceWorker,
+    GlobalContext=ServiceWorkerGlobalScope,
+] interface InstallPhaseEvent : Event {
+    void waitUntil(any value);
 };
diff --git a/modules/serviceworkers/NavigatorServiceWorker.idl b/modules/serviceworkers/NavigatorServiceWorker.idl
index a2dcebf..1f53354 100644
--- a/modules/serviceworkers/NavigatorServiceWorker.idl
+++ b/modules/serviceworkers/NavigatorServiceWorker.idl
@@ -1,35 +1,9 @@
-/*
- * 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.
- */
+// Copyright 2014 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.
+
 [
-    RuntimeEnabled=ServiceWorker
+    RuntimeEnabled=ServiceWorker,
 ] partial interface Navigator {
-  [CallWith=ExecutionContext, RaisesException] Promise registerServiceWorker(DOMString pattern, DOMString src);
-  [CallWith=ExecutionContext, RaisesException] Promise unregisterServiceWorker(DOMString pattern);
+  readonly attribute ServiceWorkerContainer serviceWorker;
 };
diff --git a/core/html/ime/Composition.idl b/modules/serviceworkers/ServiceWorkerContainer.idl
similarity index 82%
rename from core/html/ime/Composition.idl
rename to modules/serviceworkers/ServiceWorkerContainer.idl
index 494d2a0..c6ab688 100644
--- a/core/html/ime/Composition.idl
+++ b/modules/serviceworkers/ServiceWorkerContainer.idl
@@ -28,12 +28,11 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// http://www.w3.org/TR/ime-api/
 [
+    RuntimeEnabled=ServiceWorker,
     NoInterfaceObject
-] interface Composition {
-    readonly attribute DOMString text;
-    readonly attribute long selectionStart;
-    readonly attribute long selectionEnd;
-    sequence<unsigned long> getSegments();
+] interface ServiceWorkerContainer {
+  [CallWith=ExecutionContext, ImplementedAs=registerServiceWorker] Promise
+  register(DOMString url, optional Dictionary options);
+  [CallWith=ExecutionContext, ImplementedAs=unregisterServiceWorker] Promise unregister(optional DOMString scope);
 };
diff --git a/modules/speech/SpeechGrammar.idl b/modules/speech/SpeechGrammar.idl
index 1b629a4..141f444 100644
--- a/modules/speech/SpeechGrammar.idl
+++ b/modules/speech/SpeechGrammar.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject,
     Constructor
 ] interface SpeechGrammar {
diff --git a/modules/speech/SpeechGrammarList.idl b/modules/speech/SpeechGrammarList.idl
index 9239d9e..4974916 100644
--- a/modules/speech/SpeechGrammarList.idl
+++ b/modules/speech/SpeechGrammarList.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject,
     Constructor
 ] interface SpeechGrammarList {
diff --git a/modules/speech/SpeechRecognition.idl b/modules/speech/SpeechRecognition.idl
index dded48e..c1b5783 100644
--- a/modules/speech/SpeechRecognition.idl
+++ b/modules/speech/SpeechRecognition.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject,
     ActiveDOMObject,
     Constructor,
diff --git a/modules/speech/SpeechRecognitionAlternative.idl b/modules/speech/SpeechRecognitionAlternative.idl
index 3e120ca..d00acd7 100644
--- a/modules/speech/SpeechRecognitionAlternative.idl
+++ b/modules/speech/SpeechRecognitionAlternative.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject
 ] interface SpeechRecognitionAlternative {
     readonly attribute DOMString transcript;
diff --git a/modules/speech/SpeechRecognitionResult.idl b/modules/speech/SpeechRecognitionResult.idl
index 91d3e90..719fe8d 100644
--- a/modules/speech/SpeechRecognitionResult.idl
+++ b/modules/speech/SpeechRecognitionResult.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject
 ] interface SpeechRecognitionResult {
     readonly attribute unsigned long length;
diff --git a/modules/speech/SpeechRecognitionResultList.idl b/modules/speech/SpeechRecognitionResultList.idl
index c1eadd5..a4065eb 100644
--- a/modules/speech/SpeechRecognitionResultList.idl
+++ b/modules/speech/SpeechRecognitionResultList.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject
 ] interface SpeechRecognitionResultList {
     readonly attribute unsigned long length;
diff --git a/modules/speech/SpeechSynthesis.idl b/modules/speech/SpeechSynthesis.idl
index a88e496..922415e 100644
--- a/modules/speech/SpeechSynthesis.idl
+++ b/modules/speech/SpeechSynthesis.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject,
     RuntimeEnabled=SpeechSynthesis
 ] interface SpeechSynthesis : EventTarget {
diff --git a/modules/speech/SpeechSynthesisUtterance.idl b/modules/speech/SpeechSynthesisUtterance.idl
index 50a0173..b143ea2 100644
--- a/modules/speech/SpeechSynthesisUtterance.idl
+++ b/modules/speech/SpeechSynthesisUtterance.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     Constructor([Default=NullString] optional DOMString text),
     ConstructorCallWith=ExecutionContext,
     RuntimeEnabled=SpeechSynthesis,
diff --git a/modules/speech/SpeechSynthesisVoice.idl b/modules/speech/SpeechSynthesisVoice.idl
index a326a8c..8173be1 100644
--- a/modules/speech/SpeechSynthesisVoice.idl
+++ b/modules/speech/SpeechSynthesisVoice.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    WillBeGarbageCollected,
     NoInterfaceObject,
     RuntimeEnabled=SpeechSynthesis
 ] interface SpeechSynthesisVoice {
diff --git a/modules/speech/WindowSpeechSynthesis.idl b/modules/speech/WindowSpeechSynthesis.idl
index 833797b..1200a2e 100644
--- a/modules/speech/WindowSpeechSynthesis.idl
+++ b/modules/speech/WindowSpeechSynthesis.idl
@@ -24,8 +24,8 @@
  */
 
 [
+    ImplementedAs=DOMWindowSpeechSynthesis,
     RuntimeEnabled=SpeechSynthesis,
-    ImplementedAs=DOMWindowSpeechSynthesis
 ] partial interface Window {
     readonly attribute SpeechSynthesis speechSynthesis;
 };
diff --git a/modules/vibration/NavigatorVibration.idl b/modules/vibration/NavigatorVibration.idl
index 3307c6a..2c2c140 100644
--- a/modules/vibration/NavigatorVibration.idl
+++ b/modules/vibration/NavigatorVibration.idl
@@ -17,12 +17,9 @@
  *  Boston, MA 02110-1301, USA.
  */
 
-[
-    RuntimeEnabled=Vibration
-] partial interface Navigator {
+partial interface Navigator {
     // FIXME: The contents of the pattern argument should be clamped.
     // See https://code.google.com/p/chromium/issues/detail?id=310138
     boolean vibrate(sequence<unsigned long> pattern);
     boolean vibrate([Clamp] unsigned long time);
 };
-
diff --git a/modules/webaudio/AudioBufferSourceNode.idl b/modules/webaudio/AudioBufferSourceNode.idl
index ab58774..5ac1c01 100644
--- a/modules/webaudio/AudioBufferSourceNode.idl
+++ b/modules/webaudio/AudioBufferSourceNode.idl
@@ -24,9 +24,10 @@
 
 // A cached (non-streamed), memory-resident audio source
 [
-    Conditional=WEB_AUDIO
+    Conditional=WEB_AUDIO,
+    StrictTypeChecking,
 ] interface AudioBufferSourceNode : AudioSourceNode {
-    [StrictTypeChecking, RaisesException=Setter] attribute AudioBuffer buffer;
+    [RaisesException=Setter] attribute AudioBuffer buffer;
 
     const unsigned short UNSCHEDULED_STATE = 0;
     const unsigned short SCHEDULED_STATE = 1;
@@ -38,16 +39,13 @@
     readonly attribute AudioParam gain;
     readonly attribute AudioParam playbackRate;
 
-    attribute boolean loop; // This is the proper attribute name from the specification.
-
+    attribute boolean loop;
     attribute double loopStart;
     attribute double loopEnd;
 
     [RaisesException, MeasureAs=WebAudioStart] void start(optional double when, optional double grainOffset, optional double grainDuration);
     [RaisesException] void stop(optional double when);
 
-    [DeprecateAs=WebAudioLooping, ImplementedAs=loop] attribute boolean looping; // This is an alias for the .loop attribute for backwards compatibility.
-
     [RaisesException, ImplementedAs=start, MeasureAs=LegacyWebAudio] void noteOn(double when);
     [RaisesException, MeasureAs=LegacyWebAudio] void noteGrainOn(double when, double grainOffset, double grainDuration);
     [RaisesException, ImplementedAs=stop] void noteOff(double when);
diff --git a/modules/webaudio/AudioParam.idl b/modules/webaudio/AudioParam.idl
index bb90387..fa15d58 100644
--- a/modules/webaudio/AudioParam.idl
+++ b/modules/webaudio/AudioParam.idl
@@ -42,7 +42,7 @@
     // Parameter automation.
     void setValueAtTime(float value, double time);
     void linearRampToValueAtTime(float value, double time);
-    void exponentialRampToValueAtTime(float value, double time);
+    [RaisesException] void exponentialRampToValueAtTime(float value, double time);
 
     // Exponentially approach the target with a rate having the given time constant.
     void setTargetAtTime(float target, double time, double timeConstant);
diff --git a/modules/webdatabase/SQLResultSetRowList.idl b/modules/webdatabase/SQLResultSetRowList.idl
index 05dd04b..a5fcad4 100644
--- a/modules/webdatabase/SQLResultSetRowList.idl
+++ b/modules/webdatabase/SQLResultSetRowList.idl
@@ -27,8 +27,8 @@
  */
 
 [
-    NoInterfaceObject
+    NoInterfaceObject,
 ] interface SQLResultSetRowList {
     readonly attribute unsigned long length;
-    [Custom] any item(unsigned long index);
+    [Custom] object item(unsigned long index);
 };
diff --git a/modules/webdatabase/SQLTransaction.idl b/modules/webdatabase/SQLTransaction.idl
index d506b75..f7508bc 100644
--- a/modules/webdatabase/SQLTransaction.idl
+++ b/modules/webdatabase/SQLTransaction.idl
@@ -27,10 +27,10 @@
  */
 
 [
-    NoInterfaceObject
+    NoInterfaceObject,
 ] interface SQLTransaction {
     [Custom] void executeSql(DOMString sqlStatement,
-                             ObjectArray arguments,
+                             object[] arguments,
                              optional SQLStatementCallback callback,
                              optional SQLStatementErrorCallback errorCallback);
 
diff --git a/modules/webdatabase/SQLTransactionSync.idl b/modules/webdatabase/SQLTransactionSync.idl
index 732dba3..283e38d 100644
--- a/modules/webdatabase/SQLTransactionSync.idl
+++ b/modules/webdatabase/SQLTransactionSync.idl
@@ -29,7 +29,7 @@
  */
 
 [
-    NoInterfaceObject
+    NoInterfaceObject,
 ] interface SQLTransactionSync {
-    [Custom] SQLResultSet executeSql(DOMString sqlStatement, ObjectArray arguments);
+    [Custom] SQLResultSet executeSql(DOMString sqlStatement, object[] arguments);
 };
diff --git a/modules/webdatabase/WindowWebDatabase.idl b/modules/webdatabase/WindowWebDatabase.idl
index 5441c1f..1fd19f6 100644
--- a/modules/webdatabase/WindowWebDatabase.idl
+++ b/modules/webdatabase/WindowWebDatabase.idl
@@ -25,8 +25,8 @@
  */
 
 [
-    ImplementedAs=DOMWindowWebDatabase
+    ImplementedAs=DOMWindowWebDatabase,
+    RuntimeEnabled=Database,
 ] partial interface Window {
-    [RuntimeEnabled=Database, MeasureAs=OpenWebDatabase, PerWorldBindings, ActivityLogging=ForIsolatedWorlds, RaisesException] Database openDatabase(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback);
+    [MeasureAs=OpenWebDatabase, PerWorldBindings, ActivityLogging=ForIsolatedWorlds, RaisesException] Database openDatabase(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback);
 };
-
diff --git a/modules/webdatabase/WorkerGlobalScopeWebDatabase.idl b/modules/webdatabase/WorkerGlobalScopeWebDatabase.idl
index 095c320..f3a707d 100644
--- a/modules/webdatabase/WorkerGlobalScopeWebDatabase.idl
+++ b/modules/webdatabase/WorkerGlobalScopeWebDatabase.idl
@@ -24,9 +24,10 @@
  *
  */
 
-partial interface WorkerGlobalScope {
-    [RuntimeEnabled=Database, RaisesException] Database openDatabase(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback);
+[
+    RuntimeEnabled=Database,
+] partial interface WorkerGlobalScope {
+    [RaisesException] Database openDatabase(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback);
 
-    [RuntimeEnabled=Database, RaisesException] DatabaseSync openDatabaseSync(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback);
+    [RaisesException] DatabaseSync openDatabaseSync(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback);
 };
-
diff --git a/modules/webmidi/MIDIInput.idl b/modules/webmidi/MIDIInput.idl
index 7f3db64..4986c54 100644
--- a/modules/webmidi/MIDIInput.idl
+++ b/modules/webmidi/MIDIInput.idl
@@ -29,9 +29,8 @@
  */
 
 [
-    ActiveDOMObject,
-    Custom=Wrap,
     NoInterfaceObject,
+    SetWrapperReferenceTo(MIDIAccess midiAccess),
 ] interface MIDIInput : MIDIPort {
     attribute EventHandler onmidimessage;
 };
diff --git a/modules/webmidi/MIDIOutput.idl b/modules/webmidi/MIDIOutput.idl
index 726ed64..afb686f 100644
--- a/modules/webmidi/MIDIOutput.idl
+++ b/modules/webmidi/MIDIOutput.idl
@@ -29,9 +29,8 @@
  */
 
 [
-    ActiveDOMObject,
-    Custom=Wrap,
     NoInterfaceObject,
+    SetWrapperReferenceTo(MIDIAccess midiAccess),
 ] interface MIDIOutput : MIDIPort {
     [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 944cacb..3ca858a 100644
--- a/modules/webmidi/MIDIPort.idl
+++ b/modules/webmidi/MIDIPort.idl
@@ -35,7 +35,6 @@
 
 [
     NoInterfaceObject,
-    ActiveDOMObject
 ] interface MIDIPort : EventTarget {
     readonly attribute DOMString id;
     readonly attribute DOMString manufacturer;
diff --git a/modules/webmidi/NavigatorWebMIDI.idl b/modules/webmidi/NavigatorWebMIDI.idl
index e8ad27d..9e11a66 100644
--- a/modules/webmidi/NavigatorWebMIDI.idl
+++ b/modules/webmidi/NavigatorWebMIDI.idl
@@ -28,6 +28,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-partial interface Navigator {
-    [RuntimeEnabled=WebMIDI] MIDIAccessPromise requestMIDIAccess(optional Dictionary options);
+[
+    RuntimeEnabled=WebMIDI,
+] partial interface Navigator {
+    MIDIAccessPromise requestMIDIAccess(optional Dictionary options);
 };
diff --git a/modules/websockets/WebSocket.idl b/modules/websockets/WebSocket.idl
index b5a4ca9..a7a245c 100644
--- a/modules/websockets/WebSocket.idl
+++ b/modules/websockets/WebSocket.idl
@@ -38,7 +38,7 @@
     GlobalContext=Window&WorkerGlobalScope,
     RaisesException=Constructor,
 ] interface WebSocket : EventTarget {
-    readonly attribute DOMString URL; // Lowercased .url is the one in the spec, but leaving .URL for compatibility reasons.
+    [MeasureAs=WebSocketURL] readonly attribute DOMString URL; // Lowercased .url is the one in the spec, but leaving .URL for compatibility reasons.
     readonly attribute DOMString url;
 
     // ready state