Update idl files in third_party/WebCore

R=antonm@google.com,blois@google.com
BUG=

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

git-svn-id: http://dart.googlecode.com/svn/third_party/WebCore@20375 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/Modules/indexeddb/IDBCursor.idl b/Modules/indexeddb/IDBCursor.idl
index 4570c1e..4b6265b 100644
--- a/Modules/indexeddb/IDBCursor.idl
+++ b/Modules/indexeddb/IDBCursor.idl
@@ -35,8 +35,7 @@
 
     [CallWith=ScriptState] IDBRequest update(in any value)
         raises (DOMException);
-    // FIXME: Make this [EnforceRange] unsigned long once webkit.org/b/96798 lands.
-    void advance(in long long count)
+    void advance(in [EnforceRange] unsigned long count)
         raises (DOMException);
     [CallWith=ScriptExecutionContext, ImplementedAs=continueFunction] void continue(in [Optional] any key)
         raises (DOMException);
diff --git a/Modules/indexeddb/IDBFactory.idl b/Modules/indexeddb/IDBFactory.idl
index a51605b..ef51bbf 100644
--- a/Modules/indexeddb/IDBFactory.idl
+++ b/Modules/indexeddb/IDBFactory.idl
@@ -31,8 +31,7 @@
     [CallWith=ScriptExecutionContext, ImplementedAs=getDatabaseNames] IDBRequest webkitGetDatabaseNames()
         raises (DOMException);
 
-    // FIXME: Make this [EnforceRange] unsigned long long once webkit.org/b/96798 lands.
-    [CallWith=ScriptExecutionContext] IDBOpenDBRequest open(in DOMString name, in [Optional] long long version)
+    [CallWith=ScriptExecutionContext] IDBOpenDBRequest open(in DOMString name, in [EnforceRange, Optional] unsigned long long version)
         raises (DOMException);
     [CallWith=ScriptExecutionContext] IDBOpenDBRequest deleteDatabase(in DOMString name)
         raises (DOMException);
diff --git a/Modules/indexeddb/IDBRequest.idl b/Modules/indexeddb/IDBRequest.idl
index cefdd99..b658298 100644
--- a/Modules/indexeddb/IDBRequest.idl
+++ b/Modules/indexeddb/IDBRequest.idl
@@ -33,7 +33,7 @@
     EventTarget,
     JSNoStaticTables
 ] interface IDBRequest {
-    [V8Custom] readonly attribute IDBAny result
+    readonly attribute IDBAny result
         getter raises (DOMException);
     readonly attribute DOMError error
         getter raises (DOMException);
diff --git a/Modules/mediastream/RTCPeerConnection.idl b/Modules/mediastream/RTCPeerConnection.idl
index 0553b89..bc9708c 100644
--- a/Modules/mediastream/RTCPeerConnection.idl
+++ b/Modules/mediastream/RTCPeerConnection.idl
@@ -68,6 +68,7 @@
 
     sequence<MediaStream> getLocalStreams();
     sequence<MediaStream> getRemoteStreams();
+    MediaStream getStreamById(DOMString streamId);
 
     [StrictTypeChecking] void addStream(in MediaStream stream, in [Optional] Dictionary mediaConstraints)
         raises(DOMException);
diff --git a/Modules/mediastream/RTCStatsElement.idl b/Modules/mediastream/RTCStatsElement.idl
deleted file mode 100644
index 3bd4332..0000000
--- a/Modules/mediastream/RTCStatsElement.idl
+++ /dev/null
@@ -1,32 +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.
- */
-
-[
-    Conditional=MEDIA_STREAM,
-    ImplementationLacksVTable
-] interface RTCStatsElement {
-    readonly attribute Date timestamp;
-    DOMString stat(in DOMString name);
-    sequence<DOMString> names();
-};
diff --git a/Modules/mediastream/RTCStatsReport.idl b/Modules/mediastream/RTCStatsReport.idl
index fe6f7f3..1d6d7b2 100644
--- a/Modules/mediastream/RTCStatsReport.idl
+++ b/Modules/mediastream/RTCStatsReport.idl
@@ -26,6 +26,11 @@
     Conditional=MEDIA_STREAM,
     ImplementationLacksVTable
 ] interface RTCStatsReport {
-    readonly attribute RTCStatsElement local;
-    readonly attribute RTCStatsElement remote;
+    readonly attribute Date timestamp;
+    readonly attribute DOMString id;
+    DOMString stat(in DOMString name);
+    sequence<DOMString> names();
+    // DEPRECATED - fake for old RTCStatsElement object.
+    readonly attribute RTCStatsReport local;
+    readonly attribute RTCStatsReport remote;
 };
diff --git a/Modules/mediastream/RTCStatsResponse.idl b/Modules/mediastream/RTCStatsResponse.idl
index abcd198..f6e8bb9 100644
--- a/Modules/mediastream/RTCStatsResponse.idl
+++ b/Modules/mediastream/RTCStatsResponse.idl
@@ -23,7 +23,9 @@
  */
 
 [
-    Conditional=MEDIA_STREAM
+    Conditional=MEDIA_STREAM,
+    NamedGetter
 ] interface RTCStatsResponse {
     sequence<RTCStatsReport> result();
+    RTCStatsReport namedItem(in [Optional=DefaultIsUndefined] DOMString name);
 };
diff --git a/Modules/quota/DOMWindowQuota.idl b/Modules/quota/DOMWindowQuota.idl
index 20c7a14..d3ca1c6 100644
--- a/Modules/quota/DOMWindowQuota.idl
+++ b/Modules/quota/DOMWindowQuota.idl
@@ -27,6 +27,6 @@
     Conditional=QUOTA,
     Supplemental=DOMWindow
 ] interface DOMWindowQuota {
-    readonly attribute StorageInfo webkitStorageInfo;
+    readonly attribute [V8MeasureAs=StorageInfo] StorageInfo webkitStorageInfo;
 };
 
diff --git a/Modules/quota/NavigatorStorageQuota.idl b/Modules/quota/NavigatorStorageQuota.idl
new file mode 100644
index 0000000..9345947
--- /dev/null
+++ b/Modules/quota/NavigatorStorageQuota.idl
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+[
+    Conditional=QUOTA,
+    Supplemental=Navigator
+] interface NavigatorStorageQuota {
+    readonly attribute StorageQuota webkitTemporaryStorage;
+    readonly attribute StorageQuota webkitPersistentStorage;
+};
diff --git a/Modules/quota/StorageInfoErrorCallback.idl b/Modules/quota/StorageErrorCallback.idl
similarity index 94%
rename from Modules/quota/StorageInfoErrorCallback.idl
rename to Modules/quota/StorageErrorCallback.idl
index 02ea7c5..decdd99 100644
--- a/Modules/quota/StorageInfoErrorCallback.idl
+++ b/Modules/quota/StorageErrorCallback.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 Google Inc. All rights reserved.
+ * Copyright (C) 2013 Google Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -31,6 +31,6 @@
 [
     Conditional=QUOTA,
     Callback
-] interface StorageInfoErrorCallback {
+] interface StorageErrorCallback {
     boolean handleEvent(in DOMCoreException error);
 };
diff --git a/Modules/quota/StorageInfo.idl b/Modules/quota/StorageInfo.idl
index 328f29b..38f7b93 100644
--- a/Modules/quota/StorageInfo.idl
+++ b/Modules/quota/StorageInfo.idl
@@ -31,6 +31,6 @@
     const unsigned short TEMPORARY = 0;
     const unsigned short PERSISTENT = 1;
 
-    [CallWith=ScriptExecutionContext] void queryUsageAndQuota(in unsigned short storageType, in [Callback, Optional] StorageInfoUsageCallback usageCallback, in [Callback, Optional] StorageInfoErrorCallback errorCallback);
-    [CallWith=ScriptExecutionContext] void requestQuota(in unsigned short storageType, in unsigned long long newQuotaInBytes, in [Callback, Optional] StorageInfoQuotaCallback quotaCallback, in [Callback, Optional] StorageInfoErrorCallback errorCallback);
+    [CallWith=ScriptExecutionContext] void queryUsageAndQuota(in unsigned short storageType, in [Callback, Optional] StorageUsageCallback usageCallback, in [Callback, Optional] StorageErrorCallback errorCallback);
+    [CallWith=ScriptExecutionContext] void requestQuota(in unsigned short storageType, in unsigned long long newQuotaInBytes, in [Callback, Optional] StorageQuotaCallback quotaCallback, in [Callback, Optional] StorageErrorCallback errorCallback);
 };
diff --git a/Modules/quota/StorageQuota.idl b/Modules/quota/StorageQuota.idl
new file mode 100644
index 0000000..4364f5b
--- /dev/null
+++ b/Modules/quota/StorageQuota.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 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. 
+ */
+
+[
+    Conditional=QUOTA,
+    OmitConstructor,
+    ImplementationLacksVTable
+] interface StorageQuota {
+    [CallWith=ScriptExecutionContext] void queryUsageAndQuota(in [Callback] StorageUsageCallback usageCallback, in [Callback, Optional] StorageErrorCallback errorCallback);
+    [CallWith=ScriptExecutionContext] void requestQuota(in unsigned long long newQuotaInBytes, in [Callback, Optional] StorageQuotaCallback quotaCallback, in [Callback, Optional] StorageErrorCallback errorCallback);
+};
diff --git a/Modules/quota/StorageInfoQuotaCallback.idl b/Modules/quota/StorageQuotaCallback.idl
similarity index 94%
rename from Modules/quota/StorageInfoQuotaCallback.idl
rename to Modules/quota/StorageQuotaCallback.idl
index 3802e67..502c106 100644
--- a/Modules/quota/StorageInfoQuotaCallback.idl
+++ b/Modules/quota/StorageQuotaCallback.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 Google Inc. All rights reserved.
+ * Copyright (C) 2013 Google Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -31,6 +31,6 @@
 [
     Conditional=QUOTA,
     Callback
-] interface StorageInfoQuotaCallback {
+] interface StorageQuotaCallback {
     boolean handleEvent(in unsigned long long grantedQuotaInBytes);
 };
diff --git a/Modules/quota/StorageInfoUsageCallback.idl b/Modules/quota/StorageUsageCallback.idl
similarity index 97%
rename from Modules/quota/StorageInfoUsageCallback.idl
rename to Modules/quota/StorageUsageCallback.idl
index fe190cd..f419264 100644
--- a/Modules/quota/StorageInfoUsageCallback.idl
+++ b/Modules/quota/StorageUsageCallback.idl
@@ -31,6 +31,6 @@
 [
     Conditional=QUOTA,
     Callback
-] interface StorageInfoUsageCallback {
+] interface StorageUsageCallback {
     boolean handleEvent(in unsigned long long currentUsageInBytes, in unsigned long long currentQuotaInBytes);
 };
diff --git a/Modules/speech/SpeechSynthesisUtterance.idl b/Modules/speech/SpeechSynthesisUtterance.idl
index 1eb472d..4eb7d56 100644
--- a/Modules/speech/SpeechSynthesisUtterance.idl
+++ b/Modules/speech/SpeechSynthesisUtterance.idl
@@ -31,7 +31,7 @@
 ] interface SpeechSynthesisUtterance {
     attribute DOMString text;
     attribute DOMString lang;
-    attribute DOMString voiceURI;
+    attribute SpeechSynthesisVoice voice;
     attribute float volume;
     attribute float rate;
     attribute float pitch;
diff --git a/Modules/webaudio/AudioContext.idl b/Modules/webaudio/AudioContext.idl
index f2d8f4c..0d5047d 100644
--- a/Modules/webaudio/AudioContext.idl
+++ b/Modules/webaudio/AudioContext.idl
@@ -28,7 +28,6 @@
     ActiveDOMObject,
     CustomConstructor,
     ConstructorParameters=0,
-    JSCustomMarkFunction,
     EventTarget
 ] interface AudioContext {
     // All rendered audio ultimately connects to destination, which represents the audio hardware.
diff --git a/Modules/webaudio/AudioDestinationNode.idl b/Modules/webaudio/AudioDestinationNode.idl
index c107e3d..5481fe7 100644
--- a/Modules/webaudio/AudioDestinationNode.idl
+++ b/Modules/webaudio/AudioDestinationNode.idl
@@ -27,5 +27,5 @@
     JSGenerateToJSObject,
     V8SkipVTableValidation
 ] interface AudioDestinationNode : AudioNode {
-    readonly attribute long numberOfChannels;
+    readonly attribute unsigned long maxChannelCount;
 };
diff --git a/Modules/webaudio/ScriptProcessorNode.idl b/Modules/webaudio/ScriptProcessorNode.idl
index 19d4bb2..78cf6da 100644
--- a/Modules/webaudio/ScriptProcessorNode.idl
+++ b/Modules/webaudio/ScriptProcessorNode.idl
@@ -26,7 +26,7 @@
 [
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject,
-    JSCustomMarkFunction,
+    JSGenerateToNativeObject,
     EventTarget
 ] interface ScriptProcessorNode : AudioNode {
     // Rendering callback
diff --git a/README b/README
index 8389106..ff169b4 100644
--- a/README
+++ b/README
@@ -6,4 +6,4 @@
 
 The current version corresponds to:
 URL: http://src.chromium.org/multivm/trunk/webkit
-Current revision: 1122
+Current revision: 1143
diff --git a/bindings/dart/gyp/scripts/massage_factories.py b/bindings/dart/gyp/scripts/massage_factories.py
index 9902e78..615371b 100644
--- a/bindings/dart/gyp/scripts/massage_factories.py
+++ b/bindings/dart/gyp/scripts/massage_factories.py
@@ -79,9 +79,6 @@
             r'return V8%sElement::createWrapper\(element, creationContext, isolate\);' % tag),
             r'return DartDOMWrapper::toDart<Dart%sElement>(element);' % tag),
         (re.compile(
-            r'return V8HTMLCustomElement::wrap\(element, creationContext, isolate\);'),
-            r'return DartHTMLCustomElement::toDart(element);'),
-        (re.compile(
             r'return createV8HTMLFallbackWrapper\(toHTMLUnknownElement\(element\), creationContext, isolate\);'),
             r'return DartHTMLUnknownElement::toDart(toHTMLUnknownElement(element));'),
         (re.compile(
@@ -91,6 +88,17 @@
         (re.compile(r', v8::Isolate\*( isolate)?'), ''),
         (re.compile(r', v8::Handle<v8::Object> creationContext'), ''),
         (re.compile(r'v8::Handle<v8::Object>'), 'Dart_Handle'),
+        (re.compile(r'findSVGTagNameOfV8Type'), 'findSVGTagNameOfDartType'),
+        (re.compile(r'findHTMLTagNameOfV8Type'), 'findHTMLTagNameOfDartType'),
+        (re.compile(r'V8CustomElement'), 'DartCustomElement'),
+        (re.compile(r'WrapperTypeInfo'), 'DartWrapperTypeInfo'),
+        (re.compile(r'WrapperTypeTraits'), 'DartWrapperTypeTraits'),
+        (re.compile(
+            r'return DartCustomElement::wrap\(element, creationContext, constructor, isolate\);'),
+            r'return DartCustomElement::toDart(element, constructor);'),
+        (re.compile(
+            r'return wrap\(toHTMLUnknownElement\(element\), creationContext, isolate\);'),
+            r'return DartHTMLUnknownElement::toDart(toHTMLUnknownElement(element));'),
     ])
 
     return 0
diff --git a/bindings/scripts/test/TestObj.idl b/bindings/scripts/test/TestObj.idl
index 24a0e6c..d3f6f2b 100644
--- a/bindings/scripts/test/TestObj.idl
+++ b/bindings/scripts/test/TestObj.idl
@@ -150,6 +150,19 @@
     static void    staticMethodWithCallbackArg(in [Callback] TestCallback callback);
 #endif
 
+#if defined(TESTING_V8)
+    // 'EnforceRange' extended attribute
+    void    methodWithEnforceRangeInt32(in [EnforceRange] long value);
+    void    methodWithEnforceRangeUInt32(in [EnforceRange] unsigned long value);
+    void    methodWithEnforceRangeInt64(in [EnforceRange] long long value);
+    void    methodWithEnforceRangeUInt64(in [EnforceRange] unsigned long long value);
+
+    attribute [EnforceRange] long enforcedRangeLongAttr;
+    attribute [EnforceRange] unsigned long enforcedRangeUnsignedLongAttr;
+    attribute [EnforceRange] long long enforcedRangeLongLongAttr;
+    attribute [EnforceRange] unsigned long long enforcedRangeUnsignedLongLongAttr;
+#endif
+
     // 'Conditional' extended attribute
     [Conditional=Condition1] attribute long conditionalAttr1;
     [Conditional=Condition1&Condition2] attribute long conditionalAttr2;
@@ -271,4 +284,15 @@
     void variadicStringMethod(in DOMString head, in DOMString... tail);
     void variadicDoubleMethod(in double head, in double... tail);
     void variadicNodeMethod(in Node head, in Node... tail);
+
+    // Nullable attributes.
+    readonly attribute double? nullableDoubleAttribute;
+    readonly attribute long? nullableLongAttribute;
+    readonly attribute boolean? nullableBooleanAttribute;
+    readonly attribute DOMString? nullableStringAttribute;
+
+    attribute long? nullableLongSettableAttribute;
+
+    attribute long? nullableStringValue
+        getter raises(DOMException);
 };
diff --git a/Modules/quota/StorageInfoErrorCallback.idl b/css/CSSFontFaceLoadEvent.idl
similarity index 79%
copy from Modules/quota/StorageInfoErrorCallback.idl
copy to css/CSSFontFaceLoadEvent.idl
index 02ea7c5..02dcee0 100644
--- a/Modules/quota/StorageInfoErrorCallback.idl
+++ b/css/CSSFontFaceLoadEvent.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 Google Inc. All rights reserved.
+ * Copyright (C) 2013 Google Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -29,8 +29,11 @@
  */
 
 [
-    Conditional=QUOTA,
-    Callback
-] interface StorageInfoErrorCallback {
-    boolean handleEvent(in DOMCoreException error);
+    Conditional=FONT_LOAD_EVENTS,
+    V8EnabledAtRuntime=fontLoadEvents,
+    JSNoStaticTables,
+    ConstructorTemplate=Event
+] interface CSSFontFaceLoadEvent : Event {
+    readonly attribute [InitializedByEventConstructor] CSSFontFaceRule fontface;
+    readonly attribute [InitializedByEventConstructor] DOMError error;
 };
diff --git a/css/CSSFontFaceRule.idl b/css/CSSFontFaceRule.idl
index f13497c..ba97a7b 100644
--- a/css/CSSFontFaceRule.idl
+++ b/css/CSSFontFaceRule.idl
@@ -19,7 +19,10 @@
  */
 
 // Introduced in DOM Level 2:
-interface CSSFontFaceRule : CSSRule {
+interface [
+    JSGenerateToJSObject,
+    JSGenerateToNativeObject,
+] CSSFontFaceRule : CSSRule {
     readonly attribute CSSStyleDeclaration style;
 };
 
diff --git a/css/FontLoader.idl b/css/FontLoader.idl
new file mode 100644
index 0000000..3b1f8a2
--- /dev/null
+++ b/css/FontLoader.idl
@@ -0,0 +1,58 @@
+/*
+ * 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.
+ */
+
+[
+    Conditional=FONT_LOAD_EVENTS,
+    V8EnabledAtRuntime=fontLoadEvents,
+    ActiveDOMObject,
+    EventTarget,
+    GenerateIsReachable=ImplDocument,
+] interface FontLoader {
+
+    attribute EventListener onloading;
+    attribute EventListener onloadingdone;
+    attribute EventListener onloadstart;
+    attribute EventListener onload;
+    attribute EventListener onerror;
+
+    boolean checkFont(in DOMString font, in [Optional=DefaultIsNullString] DOMString text);
+    void loadFont(in Dictionary params);
+    void notifyWhenFontsReady(in [Callback] VoidCallback callback);
+    readonly attribute boolean loading;
+
+    void addEventListener(in DOMString type,
+                          in EventListener listener,
+                          in [Optional] boolean useCapture);
+    void removeEventListener(in DOMString type,
+                             in EventListener listener,
+                             in [Optional] boolean useCapture);
+    boolean dispatchEvent(in Event evt)
+        raises(EventException);
+};
diff --git a/dom/Document.idl b/dom/Document.idl
index 4d4e9fb..a4f053c 100644
--- a/dom/Document.idl
+++ b/dom/Document.idl
@@ -262,6 +262,10 @@
 
     [Conditional=CSS_REGIONS, V8EnabledAtRuntime=cssRegions] DOMNamedFlowCollection webkitGetNamedFlows();
 
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+    [Conditional=FONT_LOAD_EVENTS, V8EnabledAtRuntime=fontLoadEvents] readonly attribute FontLoader fontloader;
+#endif
+
 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
     // Event handler DOM attributes
     [NotEnumerable] attribute EventListener onabort;
@@ -356,6 +360,14 @@
         raises (DOMException);
 #endif
 
+#if defined(ENABLE_CUSTOM_ELEMENTS) && ENABLE_CUSTOM_ELEMENTS
+    [V8EnabledAtRuntime=customDOMElements, Conditional=CUSTOM_ELEMENTS, ImplementedAs=registerElement, CallWith=ScriptState]
+    CustomElementConstructor webkitRegister(in DOMString name, in [Optional] Dictionary options) raises(DOMException);
+    [ReturnNewObject] Element createElement(in DOMString localName, in [TreatNullAs=NullString] DOMString typeExtension) raises (DOMException);
+    [ReturnNewObject] Element createElementNS(in [TreatNullAs=NullString] DOMString namespaceURI, in DOMString qualifiedName,
+                                              in [TreatNullAs=NullString] DOMString typeExtension) raises (DOMException);
+#endif
+
 #if defined(LANGUAGE_CPP) && LANGUAGE_CPP
     // Extra WebCore methods exposed to allow compile-time casting in C++
     boolean isHTMLDocument();
diff --git a/html/HTMLAudioElement.idl b/html/HTMLAudioElement.idl
index 9b3f8c6..d0feced 100644
--- a/html/HTMLAudioElement.idl
+++ b/html/HTMLAudioElement.idl
@@ -24,7 +24,6 @@
  */
 
 [
-    ActiveDOMObject,
     Conditional=VIDEO,
     NamedConstructor=Audio(in [Optional=DefaultIsNullString] DOMString src)
 ] interface HTMLAudioElement : HTMLMediaElement {
diff --git a/html/HTMLDocument.idl b/html/HTMLDocument.idl
index e1f57d2..07427cf 100644
--- a/html/HTMLDocument.idl
+++ b/html/HTMLDocument.idl
@@ -53,11 +53,6 @@
     readonly attribute Element activeElement;
     boolean hasFocus();
 
-#if defined(ENABLE_CUSTOM_ELEMENTS) && ENABLE_CUSTOM_ELEMENTS
-    [V8EnabledAtRuntime=customDOMElements, Conditional=CUSTOM_ELEMENTS, ImplementedAs=registerElement, CallWith=ScriptState]
-    CustomElementConstructor webkitRegister(in DOMString name, in [Optional] Dictionary options) raises(DOMException);
-#endif
-
     // Deprecated attributes
              [TreatNullAs=NullString] attribute DOMString bgColor;
              [TreatNullAs=NullString] attribute DOMString fgColor;
diff --git a/html/HTMLMediaElement.idl b/html/HTMLMediaElement.idl
index 5ebf447..939452d 100644
--- a/html/HTMLMediaElement.idl
+++ b/html/HTMLMediaElement.idl
@@ -25,7 +25,8 @@
 
 [
     Conditional=VIDEO,
-    JSGenerateToNativeObject
+    JSGenerateToNativeObject,
+    ActiveDOMObject
 ] interface HTMLMediaElement : HTMLElement {
 
 // error state
diff --git a/html/canvas/WebGLCompressedTextureATC.idl b/html/canvas/WebGLCompressedTextureATC.idl
new file mode 100644
index 0000000..a11b32b
--- /dev/null
+++ b/html/canvas/WebGLCompressedTextureATC.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 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 AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+    Conditional=WEBGL,
+    JSGenerateIsReachable=ImplContext,
+    OmitConstructor,
+    DoNotCheckConstants
+] interface WebGLCompressedTextureATC {
+    /* Compressed Texture Formats */
+    const unsigned int COMPRESSED_RGB_ATC_WEBGL                     = 0x8C92;
+    const unsigned int COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL     = 0x8C93;
+    const unsigned int COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 0x87EE;
+};
diff --git a/html/track/TextTrackRegion.idl b/html/track/TextTrackRegion.idl
new file mode 100644
index 0000000..328166b
--- /dev/null
+++ b/html/track/TextTrackRegion.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2013 Google Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+[
+    Conditional=VIDEO_TRACK & WEBVTT_REGIONS,
+    V8EnabledAtRuntime=webkitVideoTrack,
+    JSGenerateToNativeObject,
+    Constructor()
+] interface TextTrackRegion {
+    readonly attribute TextTrack track;
+
+    attribute DOMString id;
+    attribute double width
+        setter raises (DOMException);
+    attribute long height
+        setter raises (DOMException);
+    attribute double regionAnchorX
+        setter raises (DOMException);
+    attribute double regionAnchorY
+        setter raises (DOMException);
+    attribute double viewportAnchorX
+        setter raises (DOMException);
+    attribute double viewportAnchorY
+        setter raises (DOMException);
+    attribute DOMString scroll
+        setter raises (DOMException);
+};
+
diff --git a/inspector/Inspector.json b/inspector/Inspector.json
index ab21977..9cfe6a6 100644
--- a/inspector/Inspector.json
+++ b/inspector/Inspector.json
@@ -768,8 +768,8 @@
                 "type": "object",
                 "description": "Console message.",
                 "properties": [
-                    { "name": "source", "type": "string", "enum": ["html", "wml", "xml", "javascript", "network", "console-api", "other"], "description": "Message source." },
-                    { "name": "level", "type": "string", "enum": ["tip", "log", "warning", "error", "debug"], "description": "Message severity." },
+                    { "name": "source", "type": "string", "enum": ["xml", "javascript", "network", "console-api", "storage", "appcache", "rendering", "css", "security", "other"], "description": "Message source." },
+                    { "name": "level", "type": "string", "enum": ["log", "warning", "error", "debug"], "description": "Message severity." },
                     { "name": "text", "type": "string", "description": "Message text." },
                     { "name": "type", "type": "string", "optional": true, "enum": ["log", "dir", "dirxml", "table", "trace", "clear", "startGroup", "startGroupCollapsed", "endGroup", "assert", "timing", "profile", "profileEnd"], "description": "Console message type." },
                     { "name": "url", "type": "string", "optional": true, "description": "URL of the message origin." },
@@ -3111,7 +3111,6 @@
                 "description": "Profile.",
                 "properties": [
                     { "name": "head", "$ref": "CPUProfileNode", "optional": true },
-                    { "name": "bottomUpHead", "$ref": "CPUProfileNode", "optional": true },
                     { "name": "idleTime", "type": "number", "optional": true }
                 ]
             },
@@ -3378,6 +3377,13 @@
                 ]
             },
             {
+                "name": "canInspectWorkers",
+                "description": "Tells whether browser supports workers inspection.",
+                "returns": [
+                    { "name": "result", "type": "boolean", "description": "True if browser has workers support." }
+                ]
+            },
+            {
                 "name": "connectToWorker",
                 "parameters": [
                     { "name": "workerId", "type": "integer" }
@@ -3646,6 +3652,11 @@
                 "description": "Unique RenderLayer identifier."
             },
             {
+                "id": "PseudoElementId",
+                "type": "string",
+                "description": "Unique PseudoElement identifier."
+            },
+            {
                 "id": "IntRect",
                 "type": "object",
                 "description": "A rectangle.",
@@ -3662,11 +3673,47 @@
                 "description": "Information about a compositing layer.",
                 "properties": [
                     { "name": "layerId", "$ref": "LayerId", "description": "The unique id for this layer." },
-                    { "name": "bounds", "$ref": "IntRect", "description": "Bounds of the layer." },
-                    { "name": "isComposited", "type": "boolean", "optional": true, "description": "Indicates whether this layer is composited." },
-                    { "name": "paintCount", "type": "integer", "optional": true, "description": "Indicates how many time this layer has painted." },
-                    { "name": "memory", "type": "integer", "optional": true, "description": "Estimated memory used by this layer." },
-                    { "name": "compositedBounds", "$ref": "IntRect", "optional": true, "description": "The bounds of the composited layer." }
+                    { "name": "nodeId", "$ref": "DOM.NodeId", "description": "The id for the node associated with this layer." },
+                    { "name": "bounds", "$ref": "IntRect", "description": "Bounds of the layer in absolute page coordinates." },
+                    { "name": "paintCount", "type": "integer", "description": "Indicates how many time this layer has painted." },
+                    { "name": "memory", "type": "integer", "description": "Estimated memory used by this layer." },
+                    { "name": "compositedBounds", "$ref": "IntRect", "description": "The bounds of the composited layer." },
+                    { "name": "isInShadowTree", "type": "boolean", "optional": true, "description": "Indicates whether this layer is associated with an element hosted in a shadow tree." },
+                    { "name": "isReflection", "type": "boolean", "optional": true, "description": "Indicates whether this layer was used to provide a reflection for the element." },
+                    { "name": "isGeneratedContent", "type": "boolean", "optional": true, "description": "Indicates whether the layer is attached to a pseudo element that is CSS generated content." },
+                    { "name": "pseudoElementId", "$ref": "PseudoElementId", "optional": true, "description": "The id for the pseudo element associated with this layer." },
+                    { "name": "pseudoClass", "type": "string", "optional": true, "description": "The name of the CSS pseudo-class that prompted the layer's content to be generated." }
+                ]
+            },
+            {
+                "id": "CompositingReasons",
+                "type": "object",
+                "description": "An object containing the reasons why the layer was composited as properties.",
+                "properties": [
+                    { "name": "transform3D", "type": "boolean", "optional": true, "description": "Composition due to association with an element with a CSS 3D transform." },
+                    { "name": "video", "type": "boolean", "optional": true, "description": "Composition due to association with a <video> element." },
+                    { "name": "canvas", "type": "boolean", "optional": true, "description": "Composition due to the element being a <canvas> element." },
+                    { "name": "plugin", "type": "boolean", "optional": true, "description": "Composition due to association with a plugin." },
+                    { "name": "iFrame", "type": "boolean", "optional": true, "description": "Composition due to association with an <iframe> element." },
+                    { "name": "backfaceVisibilityHidden", "type": "boolean", "optional": true, "description": "Composition due to association with an element with a \"backface-visibility: hidden\" style." },
+                    { "name": "clipsCompositingDescendants", "type": "boolean", "optional": true, "description": "Composition due to association with an element clipping compositing descendants." },
+                    { "name": "animation", "type": "boolean", "optional": true, "description": "Composition due to association with an animated element." },
+                    { "name": "filters", "type": "boolean", "optional": true, "description": "Composition due to association with an element with CSS filters applied." },
+                    { "name": "positionFixed", "type": "boolean", "optional": true, "description": "Composition due to association with an element with a \"position: fixed\" style." },
+                    { "name": "positionSticky", "type": "boolean", "optional": true, "description": "Composition due to association with an element with a \"position: sticky\" style." },
+                    { "name": "overflowScrollingTouch", "type": "boolean", "optional": true, "description": "Composition due to association with an element with a \"overflow-scrolling: touch\" style." },
+                    { "name": "stacking", "type": "boolean", "optional": true, "description": "Composition due to association with an element establishing a stacking context." },
+                    { "name": "overlap", "type": "boolean", "optional": true, "description": "Composition due to association with an element overlapping other composited elements." },
+                    { "name": "negativeZIndexChildren", "type": "boolean", "optional": true, "description": "Composition due to association with an element with descendants that have a negative z-index." },
+                    { "name": "transformWithCompositedDescendants", "type": "boolean", "optional": true, "description": "Composition due to association with an element with composited descendants." },
+                    { "name": "opacityWithCompositedDescendants", "type": "boolean", "optional": true, "description": "Composition due to association with an element with opacity applied and composited descendants." },
+                    { "name": "maskWithCompositedDescendants", "type": "boolean", "optional": true, "description": "Composition due to association with a masked element and composited descendants." },
+                    { "name": "reflectionWithCompositedDescendants", "type": "boolean", "optional": true, "description": "Composition due to association with an element with a reflection and composited descendants." },
+                    { "name": "filterWithCompositedDescendants", "type": "boolean", "optional": true, "description": "Composition due to association with an element with CSS filters applied and composited descendants." },
+                    { "name": "blendingWithCompositedDescendants", "type": "boolean", "optional": true, "description": "Composition due to association with an element with CSS blending applied and composited descendants." },
+                    { "name": "perspective", "type": "boolean", "optional": true, "description": "Composition due to association with an element with perspective applied." },
+                    { "name": "preserve3D", "type": "boolean", "optional": true, "description": "Composition due to association with an element with a \"transform-style: preserve-3d\" style." },
+                    { "name": "root", "type": "boolean", "optional": true, "description": "Composition due to association with the root element." }
                 ]
             }
         ],
@@ -3678,6 +3725,25 @@
             {
                 "name": "disable",
                 "description": "Disables compositing tree inspection."
+            },
+            {
+                "name": "layersForNode",
+                "parameters": [
+                    { "name": "nodeId", "$ref": "DOM.NodeId", "description": "Root of the subtree for which we want to gather layers." }                ],
+                "description": "Returns the layer tree structure of the current page.",
+                "returns": [
+                    { "name": "layers", "type": "array", "items": { "$ref": "Layer" }, "description": "Child layers." }
+                ]
+            },
+            {
+                "name": "reasonsForCompositingLayer",
+                "parameters": [
+                    { "name": "layerId", "$ref": "LayerId", "description": "The id of the layer for which we want to get the reasons it was composited." }
+                ],
+                "description": "Provides the reasons why the given layer was composited.",
+                "returns": [
+                    { "name": "compositingReasons", "$ref": "CompositingReasons", "description": "An object containing the reasons why the layer was composited as properties." }
+                ]
             }
         ],
         "events": [
diff --git a/inspector/InspectorFrontendHost.idl b/inspector/InspectorFrontendHost.idl
index a3ba8df..71857d1 100644
--- a/inspector/InspectorFrontendHost.idl
+++ b/inspector/InspectorFrontendHost.idl
@@ -46,7 +46,6 @@
     void setInjectedScriptForOrigin(in DOMString origin, in DOMString script);
 
     DOMString localizedStringsURL();
-    DOMString hiddenPanels();
 
     void copyText(in DOMString text);
     void openInNewTab(in DOMString url);
@@ -55,8 +54,6 @@
     void append(in DOMString url, in DOMString content);
     void close(in DOMString url);
 
-    boolean canInspectWorkers();
-
     [Custom] DOMString platform();
     [Custom] DOMString port();
     [Custom] void showContextMenu(in MouseEvent event, in any items);
@@ -65,7 +62,7 @@
     [Custom] void recordActionTaken(in unsigned long actionCode);
     [Custom] void recordPanelShown(in unsigned long panelCode);
     [Custom] void recordSettingChanged(in unsigned long settingChanged);
-    
+
     DOMString loadResourceSynchronously(in DOMString url);
 
     boolean supportsFileSystems();
@@ -75,4 +72,9 @@
     [Conditional=FILE_SYSTEM] DOMFileSystem isolatedFileSystem(in DOMString fileSystemId, in DOMString registeredName);
 
     boolean isUnderTest();
+
+    // Deprecated
+    boolean canInspectWorkers();
+    boolean canSaveAs();
+    DOMString hiddenPanels();
 };
diff --git a/page/DOMWindow.idl b/page/DOMWindow.idl
index 134e48d..98374cc 100644
--- a/page/DOMWindow.idl
+++ b/page/DOMWindow.idl
@@ -492,6 +492,7 @@
     [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] attribute TextTrackCueConstructor TextTrackCue; // Usable with the new operator
     [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] attribute TextTrackCueListConstructor TextTrackCueList;
     [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] attribute TextTrackListConstructor TextTrackList;
+    [Conditional=VIDEO_TRACK & WEBVTT_REGIONS, V8EnabledAtRuntime=webkitVideoTrack] attribute TextTrackRegionConstructor TextTrackRegion; // Usable with the new operator
     [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] attribute TrackEventConstructor TrackEvent;
 
     [JSCustomGetter, Conditional=VIDEO, V8EnabledAtRuntime] attribute HTMLAudioElementConstructorConstructor Audio; // Usable with the new operator
diff --git a/testing/InternalSettings.idl b/testing/InternalSettings.idl
index 5ddb0ae..cde8df6 100644
--- a/testing/InternalSettings.idl
+++ b/testing/InternalSettings.idl
@@ -59,4 +59,6 @@
     void setStorageBlockingPolicy(in DOMString policy) raises(DOMException);
     void setImagesEnabled(in boolean enabled) raises(DOMException);
     void setMinimumTimerInterval(in double intervalInSeconds) raises(DOMException);
+    void setDefaultVideoPosterURL(in DOMString poster) raises(DOMException);
+    void setTimeWithoutMouseMovementBeforeHidingControls(in double time) raises(DOMException);
 };
diff --git a/testing/Internals.idl b/testing/Internals.idl
index 58bd3c1..461afe5 100644
--- a/testing/Internals.idl
+++ b/testing/Internals.idl
@@ -104,8 +104,6 @@
 
     ClientRectList inspectorHighlightRects(in Document document) raises (DOMException);
 
-    void setBackgroundBlurOnNode(in Node node, in long blurLength) raises(DOMException);
-
     unsigned long markerCountForNode(in Node node, in DOMString markerType) raises(DOMException);
     Range markerRangeForNode(in Node node, in DOMString markerType, in unsigned long index) raises(DOMException);
     DOMString markerDescriptionForNode(in Node node, in DOMString markerType, in unsigned long index) raises(DOMException);
@@ -123,6 +121,7 @@
                                        in long availableHeight) raises(DOMException);
 
     boolean wasLastChangeUserEdit(in Element textField) raises (DOMException);
+    boolean elementShouldAutoComplete(in Element inputElement) raises (DOMException);
     DOMString suggestedValue(in Element inputElement) raises (DOMException);
     void setSuggestedValue(in Element inputElement, in DOMString value) raises (DOMException);
     void setEditingValue(in Element inputElement, in DOMString value) raises (DOMException);
@@ -180,6 +179,7 @@
     const unsigned short LAYER_TREE_INCLUDES_VISIBLE_RECTS = 1;
     const unsigned short LAYER_TREE_INCLUDES_TILE_CACHES = 2;
     const unsigned short LAYER_TREE_INCLUDES_REPAINT_RECTS = 4;
+    const unsigned short LAYER_TREE_INCLUDES_PAINTING_PHASES = 8;
     DOMString layerTreeAsText(in Document document, in [Optional] unsigned short flags) raises (DOMException);
 
     DOMString scrollingStateTreeAsText(in Document document) raises (DOMException);
@@ -217,7 +217,8 @@
 
     DOMString counterValue(in Element element);
     long pageNumber(in Element element, in [Optional] float pageWidth, in [Optional] float pageHeight);
-    DOMString[] iconURLs(in Document document);
+    DOMString[] shortcutIconURLs(in Document document);
+    DOMString[] allIconURLs(in Document document);
     long numberOfPages(in [Optional] double pageWidthInPixels, in [Optional] double pageHeightInPixels);
     DOMString pageProperty(in DOMString propertyName, in long pageNumber) raises (DOMException);
     DOMString pageSizeAndMarginsInPixels(in long pageIndex, in long width, in long height, in long marginTop, in long marginRight, in long marginBottom, in long marginLeft) raises (DOMException);
@@ -254,7 +255,13 @@
 
     void setUsesOverlayScrollbars(in boolean enabled);
 
+    void forceReload(in boolean endToEnd);
+
+    [Conditional=VIDEO] void simulateAudioInterruption(in Node node);
+
     [Conditional=ENCRYPTED_MEDIA_V2] void initializeMockCDM();
 
     [Conditional=SPEECH_SYNTHESIS] void enableMockSpeechSynthesizer();
+
+    DOMString getImageSourceURL(in Element element) raises(DOMException);
 };
diff --git a/testing/TypeConversions.idl b/testing/TypeConversions.idl
index 367d1f7..b27b158 100644
--- a/testing/TypeConversions.idl
+++ b/testing/TypeConversions.idl
@@ -28,8 +28,12 @@
     ImplementationLacksVTable
 ] interface TypeConversions {
     attribute long testLong;
+    attribute [EnforceRange] long testEnforceRangeLong;
     attribute unsigned long testUnsignedLong;
+    attribute [EnforceRange] unsigned long testEnforceRangeUnsignedLong;
 
     attribute long long testLongLong;
+    attribute [EnforceRange] long long testEnforceRangeLongLong;
     attribute unsigned long long testUnsignedLongLong;
+    attribute [EnforceRange] unsigned long long testEnforceRangeUnsignedLongLong;
 };