Roll IDL files forward

BUG=

Review URL: https://chromiumcodereview.appspot.com/23534036

git-svn-id: http://dart.googlecode.com/svn/third_party/WebCore@26952 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/core/README b/core/README
index e8fce55..fc245d1 100644
--- a/core/README
+++ b/core/README
@@ -6,4 +6,4 @@
 
 The current version corresponds to:
 URL: http://src.chromium.org/multivm/trunk/webkit
-Current revision: 1350
+Current revision: 1365
diff --git a/core/css/WebKitCSSKeyframeRule.idl b/core/css/CSSKeyframeRule.idl
similarity index 95%
rename from core/css/WebKitCSSKeyframeRule.idl
rename to core/css/CSSKeyframeRule.idl
index c82351f..671d243 100644
--- a/core/css/WebKitCSSKeyframeRule.idl
+++ b/core/css/CSSKeyframeRule.idl
@@ -27,9 +27,7 @@
  */
 
 // Introduced in DOM Level ?:
-[
-    ImplementedAs=CSSKeyframeRule
-] interface WebKitCSSKeyframeRule : CSSRule {
+interface CSSKeyframeRule : CSSRule {
 
     attribute DOMString keyText;
     readonly attribute CSSStyleDeclaration style;
diff --git a/core/css/WebKitCSSKeyframesRule.idl b/core/css/CSSKeyframesRule.idl
similarity index 87%
rename from core/css/WebKitCSSKeyframesRule.idl
rename to core/css/CSSKeyframesRule.idl
index 94a3609..c94dbc4 100644
--- a/core/css/WebKitCSSKeyframesRule.idl
+++ b/core/css/CSSKeyframesRule.idl
@@ -27,16 +27,14 @@
  */
 
 // Introduced in DOM Level ?:
-[
-    ImplementedAs=CSSKeyframesRule
-] interface WebKitCSSKeyframesRule : CSSRule {
+interface CSSKeyframesRule : CSSRule {
 
     [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] attribute DOMString name;
     readonly attribute CSSRuleList cssRules;
 
-    [ImplementedAs=item, NotEnumerable] getter WebKitCSSKeyframeRule(unsigned long index);
+    [ImplementedAs=item, NotEnumerable] getter CSSKeyframeRule(unsigned long index);
     void insertRule([Default=Undefined] optional DOMString rule);
     void deleteRule([Default=Undefined] optional DOMString key);
-    WebKitCSSKeyframeRule findRule([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 a1a19de..e9b0dde 100644
--- a/core/css/CSSRule.idl
+++ b/core/css/CSSRule.idl
@@ -33,7 +33,9 @@
     const unsigned short MEDIA_RULE = 4;
     const unsigned short FONT_FACE_RULE = 5;
     const unsigned short PAGE_RULE = 6;
+    const unsigned short KEYFRAMES_RULE = 7;
     const unsigned short WEBKIT_KEYFRAMES_RULE = 7;
+    const unsigned short KEYFRAME_RULE = 8;
     const unsigned short WEBKIT_KEYFRAME_RULE = 8;
     const unsigned short SUPPORTS_RULE = 12;
     [EnabledAtRuntime=cssViewport] const unsigned short VIEWPORT_RULE = 15;
diff --git a/core/dom/Attr.idl b/core/dom/Attr.idl
index 97c7c46..0dcdb02 100644
--- a/core/dom/Attr.idl
+++ b/core/dom/Attr.idl
@@ -35,5 +35,11 @@
     // DOM Level 3
 
     readonly attribute boolean isId;
+
+    // DOM 4
+
+    [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, SetterRaisesException] attribute DOMString prefix;
+    [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString namespaceURI;
+    [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString localName;
 };
 
diff --git a/core/dom/DOMImplementation.idl b/core/dom/DOMImplementation.idl
index 0d627f5..c110cb4 100644
--- a/core/dom/DOMImplementation.idl
+++ b/core/dom/DOMImplementation.idl
@@ -29,12 +29,12 @@
 
     // DOM Level 2
 
-     [RaisesException] DocumentType createDocumentType([TreatNullAs=NullString, TreatUndefinedAs=NullString,Default=Undefined] optional DOMString qualifiedName,
-                                                   [TreatNullAs=NullString, TreatUndefinedAs=NullString,Default=Undefined] optional DOMString publicId,
-                                                   [TreatNullAs=NullString, TreatUndefinedAs=NullString,Default=Undefined] optional DOMString systemId);
-     [RaisesException] Document createDocument([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
-                                           [TreatNullAs=NullString,Default=Undefined] optional DOMString qualifiedName,
-                                           [TreatNullAs=NullString,Default=Undefined] optional DocumentType doctype);
+     [RaisesException] DocumentType createDocumentType([TreatNullAs=NullString] DOMString qualifiedName,
+                                                       [TreatNullAs=NullString] DOMString publicId,
+                                                       [TreatNullAs=NullString] DOMString systemId);
+     [RaisesException] Document createDocument([TreatNullAs=NullString] DOMString namespaceURI,
+                                               [TreatNullAs=NullString] DOMString qualifiedName,
+                                               [Default=Undefined] optional DocumentType doctype);
 
     // DOMImplementationCSS interface from DOM Level 2 CSS
 
diff --git a/core/dom/DataTransferItemList.idl b/core/dom/DataTransferItemList.idl
index eec5c0c..0babe03 100644
--- a/core/dom/DataTransferItemList.idl
+++ b/core/dom/DataTransferItemList.idl
@@ -28,15 +28,13 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[
-    NoInterfaceObject
-] interface DataTransferItemList {
+interface DataTransferItemList {
     readonly attribute long length;
-    getter DataTransferItem item([Default=Undefined] optional unsigned long index);
+    [ImplementedAs=item] getter DataTransferItem (unsigned long index);
 
+    [RaisesException, ImplementedAs=deleteItem] void remove(unsigned long index);
     void clear();
-    void add(File? file);
-    [RaisesException] void add([Default=Undefined] optional DOMString data,
-             [Default=Undefined] optional DOMString type);
+    DataTransferItem add(File? file);
+    [RaisesException] DataTransferItem add(DOMString data, DOMString type);
 };
 
diff --git a/core/dom/Document.idl b/core/dom/Document.idl
index 0fc91ba..bea2b66 100644
--- a/core/dom/Document.idl
+++ b/core/dom/Document.idl
@@ -33,10 +33,10 @@
     DocumentFragment   createDocumentFragment();
     [PerWorldBindings] Text createTextNode([Default=Undefined] optional DOMString data);
     Comment createComment([Default=Undefined] optional DOMString data);
-    [RaisesException] CDATASection createCDATASection([Default=Undefined] optional DOMString data);
+    [RaisesException, MeasureAs=DocumentCreateCDATASection] CDATASection createCDATASection([Default=Undefined] optional DOMString data); // Removed from DOM4.
     [RaisesException] ProcessingInstruction createProcessingInstruction([Default=Undefined] optional DOMString target,
                                                                                  [Default=Undefined] optional DOMString data);
-    [RaisesException] Attr createAttribute([Default=Undefined] optional DOMString name);
+    [RaisesException, MeasureAs=DocumentCreateAttribute] Attr createAttribute([Default=Undefined] optional DOMString name); // Removed from DOM4.
     [PerWorldBindings] NodeList           getElementsByTagName([Default=Undefined] optional DOMString tagname);
 
     // Introduced in DOM Level 2:
@@ -45,19 +45,19 @@
                     optional boolean deep);
     [CustomElementCallbacks=Enable, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElementNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                             [TreatNullAs=NullString,Default=Undefined] optional DOMString qualifiedName);
-    [RaisesException] Attr createAttributeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
-                                                                          [TreatNullAs=NullString,Default=Undefined] optional DOMString qualifiedName);
+    [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,Default=Undefined] optional DOMString namespaceURI,
                                                    [Default=Undefined] optional DOMString localName);
     [PerWorldBindings] Element            getElementById([Default=Undefined] optional DOMString elementId);
 
     // DOM Level 3 Core
 
-    [TreatReturnedNullStringAs=Null] readonly attribute DOMString inputEncoding;
+    [TreatReturnedNullStringAs=Null, MeasureAs=DocumentInputEncoding] readonly attribute DOMString inputEncoding; // Removed from DOM4.
 
-    [TreatReturnedNullStringAs=Null] readonly attribute DOMString xmlEncoding;
-             [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, SetterRaisesException] attribute DOMString xmlVersion;
-             [SetterRaisesException] attribute boolean xmlStandalone;
+    [TreatReturnedNullStringAs=Null, MeasureAs=DocumentXMLEncoding] readonly attribute DOMString xmlEncoding; // Removed from DOM4.
+    [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, SetterRaisesException, MeasureAs=DocumentXMLVersion] attribute DOMString xmlVersion; // Removed from DOM4.
+    [SetterRaisesException, MeasureAs=DocumentXMLStandalone] attribute boolean xmlStandalone; // Removed from DOM4.
 
     [RaisesException, CustomElementCallbacks=Enable] Node               adoptNode([Default=Undefined] optional Node source);
 
@@ -133,9 +133,8 @@
     [Custom, Replaceable, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds] readonly attribute Location location;
 
     // IE extensions
-
-             [TreatReturnedNullStringAs=Undefined, TreatNullAs=NullString] attribute DOMString charset;
-    [TreatReturnedNullStringAs=Undefined] readonly attribute DOMString defaultCharset;
+    [MeasureAs=DocumentCharset, TreatReturnedNullStringAs=Undefined, TreatNullAs=NullString] attribute DOMString charset;
+    [MeasureAs=DocumentCharset, TreatReturnedNullStringAs=Undefined] readonly attribute DOMString defaultCharset;
     [TreatReturnedNullStringAs=Undefined] readonly attribute DOMString readyState;
 
     Element            elementFromPoint([Default=Undefined] optional long x,
@@ -199,7 +198,8 @@
     [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseout;
     [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseover;
     [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseup;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousewheel;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousewheel; // Deprecated in favor of onwheel.
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onwheel;
     [NotEnumerable] attribute EventHandler onreadystatechange;
     [NotEnumerable] attribute EventHandler onscroll;
     [NotEnumerable] attribute EventHandler onselect;
@@ -261,8 +261,8 @@
                                                [Default=Undefined] optional float webkitForce);
     [EnabledAtRuntime=touch, Custom, RaisesException] TouchList createTouchList();
 
-    [DeprecateAs=PrefixedDocumentRegister, EnabledAtRuntime=customDOMElements, ImplementedAs=registerElement, CallWith=ScriptState, CustomElementCallbacks=Enable, RaisesException] CustomElementConstructor webkitRegister(DOMString name, optional Dictionary options);
-    [EnabledAtRuntime=customDOMElements, ImplementedAs=registerElement, CallWith=ScriptState, CustomElementCallbacks=Enable, RaisesException] CustomElementConstructor register(DOMString name, optional Dictionary options);
+    [DeprecateAs=PrefixedDocumentRegister, EnabledAtRuntime=customElements, ImplementedAs=registerElement, CallWith=ScriptState, CustomElementCallbacks=Enable, RaisesException] CustomElementConstructor webkitRegister(DOMString name, optional Dictionary options);
+    [EnabledAtRuntime=customElements, ImplementedAs=registerElement, CallWith=ScriptState, CustomElementCallbacks=Enable, RaisesException] CustomElementConstructor register(DOMString name, optional Dictionary options);
     [CustomElementCallbacks=Enable, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElement(DOMString localName, [TreatNullAs=NullString] DOMString typeExtension);
     [CustomElementCallbacks=Enable, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Element createElementNS([TreatNullAs=NullString] DOMString namespaceURI, DOMString qualifiedName,
                             [TreatNullAs=NullString] DOMString typeExtension);
diff --git a/core/dom/DocumentType.idl b/core/dom/DocumentType.idl
index 8f192f3..510240a 100644
--- a/core/dom/DocumentType.idl
+++ b/core/dom/DocumentType.idl
@@ -22,14 +22,14 @@
     // DOM Level 1
 
     readonly attribute DOMString name;
-    readonly attribute NamedNodeMap entities;
-    readonly attribute NamedNodeMap notations;
+    [MeasureAs=DocumentTypeEntities] readonly attribute NamedNodeMap entities; // Removed from DOM4.
+    [MeasureAs=DocumentTypeNotations] readonly attribute NamedNodeMap notations; // Removed from DOM4.
 
     // DOM Level 2
 
     [TreatReturnedNullStringAs=Null] readonly attribute DOMString publicId;
     [TreatReturnedNullStringAs=Null] readonly attribute DOMString systemId;
-    [TreatReturnedNullStringAs=Null] readonly attribute DOMString internalSubset;
+    [TreatReturnedNullStringAs=Null, MeasureAs=DocumentTypeInternalSubset] readonly attribute DOMString internalSubset; // Removed from DOM4.
 };
 
 DocumentType implements ChildNode;
diff --git a/core/dom/Element.idl b/core/dom/Element.idl
index 0137af9..9af4c05 100644
--- a/core/dom/Element.idl
+++ b/core/dom/Element.idl
@@ -30,12 +30,11 @@
     [RaisesException, CustomElementCallbacks=Enable] void setAttribute([Default=Undefined] optional DOMString name,
                                      [Default=Undefined] optional DOMString value);
     [CustomElementCallbacks=Enable] void removeAttribute([Default=Undefined] optional DOMString name);
-    Attr getAttributeNode([Default=Undefined] optional DOMString name);
-    [RaisesException, CustomElementCallbacks=Enable] Attr setAttributeNode([Default=Undefined, StrictTypeChecking] optional Attr newAttr);
-    [RaisesException, CustomElementCallbacks=Enable] Attr removeAttributeNode([Default=Undefined, StrictTypeChecking] optional Attr oldAttr);
+    [MeasureAs=ElementGetAttributeNode] Attr getAttributeNode([Default=Undefined] optional DOMString name); // Removed from DOM4.
+    [RaisesException, CustomElementCallbacks=Enable, MeasureAs=ElementSetAttributeNode] Attr setAttributeNode([Default=Undefined, StrictTypeChecking] optional Attr newAttr); // Removed from DOM4.
+    [RaisesException, CustomElementCallbacks=Enable, MeasureAs=ElementRemoveAttributeNode] Attr removeAttributeNode([Default=Undefined, StrictTypeChecking] optional Attr oldAttr); // Removed from DOM4.
     [PerWorldBindings] NodeList getElementsByTagName([Default=Undefined] optional DOMString name);
 
-    // For ObjC this is defined on Node for legacy support.
     [PerWorldBindings] readonly attribute NamedNodeMap     attributes;
     boolean            hasAttributes();
 
@@ -50,8 +49,8 @@
                                           DOMString localName);
      NodeList getElementsByTagNameNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
                                                    [Default=Undefined] optional DOMString localName);
-     Attr getAttributeNodeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
-                                           [Default=Undefined] optional DOMString localName);
+     [MeasureAs=ElementGetAttributeNodeNS] Attr getAttributeNodeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
+                                                                   [Default=Undefined] optional DOMString localName); // Removed from DOM4.
     [RaisesException, CustomElementCallbacks=Enable] Attr setAttributeNodeNS([Default=Undefined, StrictTypeChecking] optional Attr newAttr);
     boolean hasAttribute(DOMString name);
      boolean hasAttributeNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI,
@@ -63,6 +62,9 @@
     // iht.com relies on id returning the empty string when no id is present.
     // Other browsers do this as well. So we don't convert null to JS null.
     [Reflect] attribute DOMString id;
+    [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString namespaceURI;
+    [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, SetterRaisesException] attribute DOMString prefix;
+    [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString localName;
 
     // Common extensions
 
@@ -162,7 +164,8 @@
     [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseout;
     [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseover;
     [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseup;
-    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousewheel;
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousewheel; // Deprecated in favor of onwheel.
+    [NotEnumerable, PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onwheel;
     [NotEnumerable, PerWorldBindings] attribute EventHandler onscroll;
     [NotEnumerable, PerWorldBindings] attribute EventHandler onselect;
     [NotEnumerable, PerWorldBindings] attribute EventHandler onsubmit;
diff --git a/core/dom/MessageChannel.idl b/core/dom/MessageChannel.idl
index 3d62729..f5b5165 100644
--- a/core/dom/MessageChannel.idl
+++ b/core/dom/MessageChannel.idl
@@ -26,13 +26,9 @@
 
 [
     GlobalContext=Window&WorkerGlobalScope,
-    Constructor,
-    ConstructorCallWith=ScriptExecutionContext,
     CustomConstructor
 ] interface MessageChannel {
-
     readonly attribute MessagePort port1;
     readonly attribute MessagePort port2;
-
 };
 
diff --git a/core/dom/MessageEvent.idl b/core/dom/MessageEvent.idl
index 3bc8866..33d1c33 100644
--- a/core/dom/MessageEvent.idl
+++ b/core/dom/MessageEvent.idl
@@ -31,7 +31,7 @@
 ] interface MessageEvent : Event {
     [InitializedByEventConstructor] readonly attribute DOMString origin;
     [InitializedByEventConstructor] readonly attribute DOMString lastEventId;
-    [InitializedByEventConstructor] readonly attribute Window source;
+    [InitializedByEventConstructor] readonly attribute EventTarget source; // May be a Window or a MessagePort
     [InitializedByEventConstructor, CustomGetter] readonly attribute any data;
     [InitializedByEventConstructor] readonly attribute MessagePort[] ports;
 
diff --git a/core/dom/MessagePort.idl b/core/dom/MessagePort.idl
index 4324172..17ae449 100644
--- a/core/dom/MessagePort.idl
+++ b/core/dom/MessagePort.idl
@@ -28,8 +28,6 @@
 [
     ActiveDOMObject
 ] interface MessagePort : EventTarget {
-// We need to have something as an ObjC binding, because MessagePort is used in MessageEvent, which already has one,
-// but we don't want to actually expose the API while it is in flux.
     [Custom, RaisesException] void postMessage(any message, optional Array messagePorts);
 
     void start();
diff --git a/core/dom/Node.idl b/core/dom/Node.idl
index 0c7c5a1..3d774a2 100644
--- a/core/dom/Node.idl
+++ b/core/dom/Node.idl
@@ -61,12 +61,12 @@
     [CustomElementCallbacks=Enable] void normalize();
 
     // Introduced in DOM Level 2:
-     boolean isSupported([Default=Undefined] optional DOMString feature,
-                                       [TreatNullAs=NullString,Default=Undefined] optional DOMString version);
+    [MeasureAs=NodeIsSupported] boolean isSupported([Default=Undefined] optional DOMString feature,
+                                                    [TreatNullAs=NullString,Default=Undefined] optional DOMString version); // Removed in DOM4.
 
-    [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString        namespaceURI;
-             [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, SetterRaisesException] attribute DOMString        prefix;
-    [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString        localName;
+    [TreatReturnedNullStringAs=Null, PerWorldBindings, MeasureAs=NodeNamespaceURI] readonly attribute DOMString namespaceURI; // Moved to Element and Attr in DOM4.
+    [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, SetterRaisesException, 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:
     [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString       baseURI;
@@ -74,7 +74,7 @@
              // FIXME: the spec says this can also raise on retrieval.
              [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, SetterRaisesException, CustomElementCallbacks=Enable] attribute DOMString       textContent;
 
-    boolean            isSameNode([Default=Undefined] optional Node other);
+    [MeasureAs=NodeIsSameNode] boolean isSameNode([Default=Undefined] optional Node other); // Removed in DOM4.
     boolean            isEqualNode([Default=Undefined] optional Node other);
     [TreatReturnedNullStringAs=Null] DOMString          lookupPrefix([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI);
     boolean            isDefaultNamespace([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI);
diff --git a/core/dom/ParentNode.idl b/core/dom/ParentNode.idl
index 358271b..8de54f8 100644
--- a/core/dom/ParentNode.idl
+++ b/core/dom/ParentNode.idl
@@ -1,6 +1,5 @@
 [
     NoInterfaceObject,
-    LegacyImplementedInBaseClass
 ] interface ParentNode {
     [PerWorldBindings] readonly attribute HTMLCollection children;
     [PerWorldBindings] readonly attribute Element firstElementChild;
diff --git a/core/dom/ProcessingInstruction.idl b/core/dom/ProcessingInstruction.idl
index 1767ee5..80aace5 100644
--- a/core/dom/ProcessingInstruction.idl
+++ b/core/dom/ProcessingInstruction.idl
@@ -18,12 +18,11 @@
  * Boston, MA 02110-1301, USA.
  */
 
-interface ProcessingInstruction : Node {
+interface ProcessingInstruction : CharacterData {
 
     // DOM Level 1
 
     [TreatReturnedNullStringAs=Null] readonly attribute DOMString target;
-             [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] attribute DOMString data;
 
     // interface LinkStyle from DOM Level 2 Style Sheets
     readonly attribute StyleSheet sheet;
diff --git a/core/dom/Promise.idl b/core/dom/Promise.idl
index 2550866..d2fa864 100644
--- a/core/dom/Promise.idl
+++ b/core/dom/Promise.idl
@@ -28,6 +28,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+// FIXME: |PromiseValue| should be changed to |Promise|. http://crbug.com/266700
+// IDLs using |Promise| should be written with "typedef any PromiseValue;" and |PromiseValue|.
+
 callback PromiseInit = void (PromiseResolver resolver);
 callback AnyCallback = any (optional any value);
 [
diff --git a/core/dom/WebKitAnimationEvent.idl b/core/dom/WebKitAnimationEvent.idl
index e53b4e7..a168306 100644
--- a/core/dom/WebKitAnimationEvent.idl
+++ b/core/dom/WebKitAnimationEvent.idl
@@ -24,8 +24,7 @@
  */
 
 [
-    ConstructorTemplate=Event,
-    ImplementedAs=AnimationEvent
+    ConstructorTemplate=Event
 ] interface WebKitAnimationEvent : Event {
     [InitializedByEventConstructor] readonly attribute DOMString animationName;
     [InitializedByEventConstructor] readonly attribute double elapsedTime;
diff --git a/core/dom/WheelEvent.idl b/core/dom/WheelEvent.idl
index 9dc0e4a..8ee63ae 100644
--- a/core/dom/WheelEvent.idl
+++ b/core/dom/WheelEvent.idl
@@ -1,6 +1,7 @@
 /*
  * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved.
  * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2013 Samsung Electronics. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -18,17 +19,23 @@
  * Boston, MA 02110-1301, USA.
  */
 
+// Introduced in DOM Level 3:
 [
     ConstructorTemplate=Event
 ] interface WheelEvent : MouseEvent {
+    // DeltaModeCode
     const unsigned long              DOM_DELTA_PIXEL = 0x00;
     const unsigned long              DOM_DELTA_LINE  = 0x01;
     const unsigned long              DOM_DELTA_PAGE  = 0x02;
 
-    [InitializedByEventConstructor] readonly attribute long wheelDeltaX;
-    [InitializedByEventConstructor] readonly attribute long wheelDeltaY;
+    [InitializedByEventConstructor] readonly attribute double deltaX;
+    [InitializedByEventConstructor] readonly attribute double deltaY;
+    [InitializedByEventConstructor] readonly attribute double deltaZ;
     [InitializedByEventConstructor] readonly attribute unsigned long deltaMode;
 
+    // Non standard API.
+    [InitializedByEventConstructor] readonly attribute long wheelDeltaX;
+    [InitializedByEventConstructor] readonly attribute long wheelDeltaY;
     readonly attribute long wheelDelta;
 
     // WebKit Extension
diff --git a/core/fileapi/FileError.idl b/core/fileapi/FileError.idl
index 7e5542a..4f40dc8 100644
--- a/core/fileapi/FileError.idl
+++ b/core/fileapi/FileError.idl
@@ -29,7 +29,7 @@
  */
 
 [
-] interface FileError {
+] interface FileError : DOMError {
     const unsigned short NOT_FOUND_ERR = 1;
     const unsigned short SECURITY_ERR = 2;
     const unsigned short ABORT_ERR = 3;
@@ -42,5 +42,6 @@
     const unsigned short QUOTA_EXCEEDED_ERR = 10;
     const unsigned short TYPE_MISMATCH_ERR = 11;
     const unsigned short PATH_EXISTS_ERR = 12;
-    readonly attribute unsigned short code;
+
+    [DeprecateAs=FileError] readonly attribute unsigned short code;
 };
diff --git a/core/html/HTMLDialogElement.idl b/core/html/HTMLDialogElement.idl
index 2cf7e38..d95f10f 100644
--- a/core/html/HTMLDialogElement.idl
+++ b/core/html/HTMLDialogElement.idl
@@ -24,7 +24,7 @@
  */
 
 [
-    EnabledPerContext=dialogElement
+    EnabledAtRuntime=dialogElement
 ] interface HTMLDialogElement : HTMLElement {
     [Reflect] attribute boolean open;
     attribute DOMString returnValue;
diff --git a/core/inspector/InspectorInstrumentation.idl b/core/inspector/InspectorInstrumentation.idl
index a9bd1ae..6aa4ee5 100644
--- a/core/inspector/InspectorInstrumentation.idl
+++ b/core/inspector/InspectorInstrumentation.idl
@@ -336,10 +336,10 @@
     [Page]
     void frameStoppedLoading([Keep] Frame*);
 
-    [Page]
+    [Page, Resource]
     void frameScheduledNavigation([Keep] Frame*, double delay);
 
-    [Page]
+    [Page, Resource]
     void frameClearedScheduledNavigation([Keep] Frame*);
 
     [Page, Inline=FastReturn]
@@ -381,6 +381,18 @@
     [Worker]
     void workerGlobalScopeTerminated(ScriptExecutionContext*, WorkerGlobalScopeProxy* proxy);
 
+    [Profiler, Timeline]
+    void willProcessTask(WorkerGlobalScope* context);
+
+    [Profiler, Timeline]
+    void didProcessTask(WorkerGlobalScope* context);
+
+    [Profiler]
+    void willEnterNestedRunLoop(WorkerGlobalScope* context);
+
+    [Profiler]
+    void didLeaveNestedRunLoop(WorkerGlobalScope* context);
+
     [Resource, Timeline]
     void didCreateWebSocket([Keep] Document*, unsigned long identifier, const KURL& requestURL, const String& protocol);
 
@@ -418,39 +430,35 @@
 #include "core/inspector/ScriptCallStack.h"
 #include "core/inspector/ScriptProfile.h"
 
-    [Console, Debugger]  // FIXME: Drop this once we no longer generate stacks outside of Inspector.
-    void addMessageToConsole(Page* page, MessageSource source, MessageType type, MessageLevel level, const String& message, PassRefPtr<ScriptCallStack> callStack, unsigned long requestIdentifier = 0);
-
-    [Console, Debugger]
-    void addMessageToConsole(Page* page, MessageSource source, MessageType type, MessageLevel level, const String& message, ScriptState* state, PassRefPtr<ScriptArguments> arguments, unsigned long requestIdentifier = 0);
-
-    [Console]
-    void addMessageToConsole(Page* page, MessageSource source, MessageType type, MessageLevel level, const String& message, const String& scriptId, unsigned lineNumber, unsigned columnNumber = 0, ScriptState* state = 0, unsigned long requestIdentifier = 0);
-
     // FIXME: Convert to ScriptArguments to match non-worker context.
     // Use the same implementation as above as a similar method dispatched on Page.
-    void addMessageToConsole(WorkerGlobalScope* workerGlobalScope, MessageSource source, MessageType type, MessageLevel level, const String& message, PassRefPtr<ScriptCallStack> callStack, unsigned long requestIdentifier = 0);
+    [Console]
+    void addMessageToConsole(ScriptExecutionContext* context, MessageSource source, MessageType type, MessageLevel level, const String& message, PassRefPtr<ScriptCallStack> callStack, unsigned long requestIdentifier = 0);
 
     // Use the same implementation as above as a similar method dispatched on Page.
-    void addMessageToConsole(WorkerGlobalScope* workerGlobalScope, MessageSource source, MessageType type, MessageLevel level, const String& message, const String& scriptId, unsigned lineNumber, unsigned columnNumber, ScriptState* state, unsigned long requestIdentifier = 0);
+    [Console]
+    void addMessageToConsole(ScriptExecutionContext* context, MessageSource source, MessageType type, MessageLevel level, const String& message, const String& scriptId, unsigned lineNumber, unsigned columnNumber, ScriptState* state, unsigned long requestIdentifier = 0);
+
+    [Console, Debugger]
+    void addMessageToConsole(ScriptExecutionContext* context, MessageSource source, MessageType type, MessageLevel level, const String& message, ScriptState* state, PassRefPtr<ScriptArguments> arguments, unsigned long requestIdentifier = 0);
 
     [Console]
-    void consoleCount(Page* page, ScriptState* state, PassRefPtr<ScriptArguments> arguments);
+    void consoleCount(ScriptExecutionContext* context, ScriptState* state, PassRefPtr<ScriptArguments> arguments);
 
     [Timeline, Console]
-    void startConsoleTiming([Keep] Frame* frame, const String& title);
+    void startConsoleTiming([Keep] ScriptExecutionContext* context, const String& title);
 
     [Console, Timeline]
-    void stopConsoleTiming([Keep] Frame* frame, const String& title, PassRefPtr<ScriptCallStack> stack);
+    void stopConsoleTiming([Keep] ScriptExecutionContext* context, const String& title, PassRefPtr<ScriptCallStack> stack);
 
     [Timeline, Inline=FastReturn]
-    void consoleTimeStamp([Keep] Frame* frame, PassRefPtr<ScriptArguments> arguments);
+    void consoleTimeStamp([Keep] ScriptExecutionContext* context, PassRefPtr<ScriptArguments> arguments);
 
     [Profiler]
-    void addStartProfilingMessageToConsole(Page* page, const String& title, unsigned lineNumber, const String& sourceURL);
+    void addStartProfilingMessageToConsole(ScriptExecutionContext* context, const String& title, unsigned lineNumber, const String& sourceURL);
 
     [Profiler]
-    void addProfile(Page* page, PassRefPtr<ScriptProfile> profile, PassRefPtr<ScriptCallStack> callStack);
+    void addProfile(ScriptExecutionContext* context, PassRefPtr<ScriptProfile> profile, PassRefPtr<ScriptCallStack> callStack);
 }
 
 interface InspectorDatabaseInstrumentation {
@@ -481,7 +489,7 @@
     DeviceOrientationData* overrideDeviceOrientation(Page* page, [DefaultReturn] DeviceOrientationData* deviceOrientation);
 
     [Profiler]
-    String getCurrentUserInitiatedProfileName(Page* page, bool incrementProfileNumber);
+    String getCurrentUserInitiatedProfileName(ScriptExecutionContext* context, bool incrementProfileNumber);
 }
 
 
diff --git a/core/loader/appcache/DOMApplicationCache.idl b/core/loader/appcache/ApplicationCache.idl
similarity index 96%
rename from core/loader/appcache/DOMApplicationCache.idl
rename to core/loader/appcache/ApplicationCache.idl
index 8dc4c23..0082d60 100644
--- a/core/loader/appcache/DOMApplicationCache.idl
+++ b/core/loader/appcache/ApplicationCache.idl
@@ -24,9 +24,8 @@
  */
 
 [
-    NoInterfaceObject,
     DoNotCheckConstants
-] interface DOMApplicationCache : EventTarget {
+] interface ApplicationCache : EventTarget {
     // update status
     const unsigned short UNCACHED = 0;
     const unsigned short IDLE = 1;
diff --git a/core/page/Console.idl b/core/page/Console.idl
index d5373ca..de3bc19 100644
--- a/core/page/Console.idl
+++ b/core/page/Console.idl
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2007, 2008 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
@@ -28,32 +29,6 @@
 
 [
     NoInterfaceObject
-] interface Console {
-
-    [CallWith=ScriptArguments&ScriptState] void debug();
-    [CallWith=ScriptArguments&ScriptState] void error();
-    [CallWith=ScriptArguments&ScriptState] void info();
-    [CallWith=ScriptArguments&ScriptState] void log();
-    [CallWith=ScriptArguments&ScriptState] void warn();
-    [CallWith=ScriptArguments&ScriptState] void dir();
-    [CallWith=ScriptArguments&ScriptState] void dirxml();
-    [CallWith=ScriptArguments&ScriptState] void table();
-    [CallWith=ScriptArguments&ScriptState] void trace();
-    [CallWith=ScriptArguments&ScriptState, ImplementedAs=assertCondition] void assert([Default=Undefined] optional boolean condition);
-    [CallWith=ScriptArguments&ScriptState] void count();
-    [DeprecateAs=ConsoleMarkTimeline, CallWith=ScriptArguments] void markTimeline();
-
-    [CallWith=ScriptState] void profile([Default=NullString] optional DOMString title);
-    [CallWith=ScriptState] void profileEnd([Default=NullString] optional DOMString title);
-
-    void time([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString title);
-    [CallWith=ScriptState] void timeEnd([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString title);
-    [CallWith=ScriptArguments] void timeStamp();
-    [CallWith=ScriptArguments&ScriptState] void group();
-    [CallWith=ScriptArguments&ScriptState] void groupCollapsed();
-    void groupEnd();
-    [CallWith=ScriptArguments&ScriptState] void clear();
-
+] interface Console : ConsoleBase {
     readonly attribute MemoryInfo memory;
 };
-
diff --git a/core/page/ConsoleBase.idl b/core/page/ConsoleBase.idl
new file mode 100644
index 0000000..e830b9b
--- /dev/null
+++ b/core/page/ConsoleBase.idl
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2007, 2008 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
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+    CustomToV8,
+    DoNotGenerateWrap,
+    NoInterfaceObject
+] interface ConsoleBase {
+    [CallWith=ScriptArguments&ScriptState] void debug();
+    [CallWith=ScriptArguments&ScriptState] void error();
+    [CallWith=ScriptArguments&ScriptState] void info();
+    [CallWith=ScriptArguments&ScriptState] void log();
+    [CallWith=ScriptArguments&ScriptState] void warn();
+    [CallWith=ScriptArguments&ScriptState] void dir();
+    [CallWith=ScriptArguments&ScriptState] void dirxml();
+    [CallWith=ScriptArguments&ScriptState] void table();
+    [CallWith=ScriptArguments&ScriptState] void trace();
+    [CallWith=ScriptArguments&ScriptState, ImplementedAs=assertCondition] void assert([Default=Undefined] optional boolean condition);
+    [CallWith=ScriptArguments&ScriptState] void count();
+    [DeprecateAs=ConsoleMarkTimeline, CallWith=ScriptArguments] void markTimeline();
+
+    [CallWith=ScriptState] void profile([Default=NullString] optional DOMString title);
+    [CallWith=ScriptState] void profileEnd([Default=NullString] optional DOMString title);
+
+    void time([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString title);
+    [CallWith=ScriptState] void timeEnd([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString title);
+    [CallWith=ScriptArguments] void timeStamp();
+    [CallWith=ScriptArguments&ScriptState] void group();
+    [CallWith=ScriptArguments&ScriptState] void groupCollapsed();
+    void groupEnd();
+    [CallWith=ScriptArguments&ScriptState] void clear();
+};
diff --git a/core/page/ImageBitmapFactories.idl b/core/page/ImageBitmapFactories.idl
deleted file mode 100644
index 65c0dc6..0000000
--- a/core/page/ImageBitmapFactories.idl
+++ /dev/null
@@ -1,48 +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,
-    EnabledAtRuntime=experimentalCanvasFeatures
-] interface ImageBitmapFactories {
-    // FIXME: these methods should return |Promise|. http://crbug.com/266700
-    [RaisesException] any createImageBitmap(HTMLImageElement image);
-    [RaisesException] any createImageBitmap(HTMLImageElement image, long sx, long sy, long sw, long sh);
-    [RaisesException] any createImageBitmap(HTMLVideoElement video);
-    [RaisesException] any createImageBitmap(HTMLVideoElement video, long sx, long sy, long sw, long sh);
-    [RaisesException] any createImageBitmap(CanvasRenderingContext2D context);
-    [RaisesException] any createImageBitmap(CanvasRenderingContext2D context, long sx, long sy, long sw, long sh);
-    [RaisesException] any createImageBitmap(HTMLCanvasElement canvas);
-    [RaisesException] any createImageBitmap(HTMLCanvasElement canvas, long sx, long sy, long sw, long sh);
-    [RaisesException] any createImageBitmap(ImageData data);
-    [RaisesException] any createImageBitmap(ImageData data, long sx, long sy, long sw, long sh);
-    [RaisesException] any createImageBitmap(ImageBitmap bitmap);
-    [RaisesException] any createImageBitmap(ImageBitmap bitmap, long sx, long sy, long sw, long sh);
-};
\ No newline at end of file
diff --git a/core/page/Navigator.idl b/core/page/Navigator.idl
index 0c3e09d..79f322d 100644
--- a/core/page/Navigator.idl
+++ b/core/page/Navigator.idl
@@ -19,22 +19,20 @@
 
 interface Navigator {
     readonly attribute DOMString appCodeName;
-    readonly attribute DOMString appName;
-    readonly attribute DOMString appVersion;
     readonly attribute DOMString language;
-    readonly attribute DOMString userAgent;
-    readonly attribute DOMString platform;
     readonly attribute PluginArray plugins;
     readonly attribute MimeTypeArray mimeTypes;
     readonly attribute DOMString product;
-    readonly attribute DOMString productSub;
-    readonly attribute DOMString vendor;
-    readonly attribute DOMString vendorSub;
     readonly attribute boolean cookieEnabled;
     boolean javaEnabled();
 
-    readonly attribute boolean onLine;
-
     void getStorageUpdates(); // FIXME: Remove this method or rename to yieldForStorageUpdates.
+
+    // Non-standard.
+    [MeasureAs=NavigatorProductSub] readonly attribute DOMString productSub;
+    [MeasureAs=NavigatorVendor] readonly attribute DOMString vendor;
+    [MeasureAs=NavigatorVendorSub] readonly attribute DOMString vendorSub;
 };
 
+Navigator implements NavigatorID;
+Navigator implements NavigatorOnLine;
diff --git a/modules/crypto/CryptoOperation.idl b/core/page/NavigatorID.idl
similarity index 83%
copy from modules/crypto/CryptoOperation.idl
copy to core/page/NavigatorID.idl
index 3bbb4c7..a0333ba 100644
--- a/modules/crypto/CryptoOperation.idl
+++ b/core/page/NavigatorID.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013 Samsung Electronics. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -29,13 +29,10 @@
  */
 
 [
-    NoInterfaceObject,
-] interface CryptoOperation {
-    readonly attribute Algorithm algorithm;
-
-    CryptoOperation process(ArrayBuffer data);
-    CryptoOperation process(ArrayBufferView data);
-
-    any finish();
-    any abort();
+    NoInterfaceObject
+] interface NavigatorID {
+    readonly attribute DOMString appName;
+    readonly attribute DOMString appVersion;
+    readonly attribute DOMString platform;
+    readonly attribute DOMString userAgent;
 };
diff --git a/modules/crypto/CryptoOperation.idl b/core/page/NavigatorOnLine.idl
similarity index 83%
copy from modules/crypto/CryptoOperation.idl
copy to core/page/NavigatorOnLine.idl
index 3bbb4c7..db4b08c 100644
--- a/modules/crypto/CryptoOperation.idl
+++ b/core/page/NavigatorOnLine.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013 Samsung Electronics. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -29,13 +29,7 @@
  */
 
 [
-    NoInterfaceObject,
-] interface CryptoOperation {
-    readonly attribute Algorithm algorithm;
-
-    CryptoOperation process(ArrayBuffer data);
-    CryptoOperation process(ArrayBufferView data);
-
-    any finish();
-    any abort();
+    NoInterfaceObject
+] interface NavigatorOnLine {
+    readonly attribute boolean onLine;
 };
diff --git a/core/page/Window.idl b/core/page/Window.idl
index cbfa00a..94b9856 100644
--- a/core/page/Window.idl
+++ b/core/page/Window.idl
@@ -143,7 +143,7 @@
     WebKitPoint webkitConvertPointFromNodeToPage([Default=Undefined] optional Node node,
                                                  [Default=Undefined] optional WebKitPoint p);
 
-    [EnabledAtRuntime, PerWorldBindings, ActivityLog=GetterForIsolatedWorlds] readonly attribute DOMApplicationCache applicationCache;
+    [EnabledAtRuntime, PerWorldBindings, ActivityLog=GetterForIsolatedWorlds] readonly attribute ApplicationCache applicationCache;
 
     [EnabledAtRuntime, PerWorldBindings, ActivityLog=GetterForIsolatedWorlds, GetterRaisesException] readonly attribute Storage sessionStorage;
     [EnabledAtRuntime, PerWorldBindings, ActivityLog=GetterForIsolatedWorlds, GetterRaisesException] readonly attribute Storage localStorage;
@@ -208,7 +208,8 @@
     [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseout;
     [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseover;
     [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmouseup;
-    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousewheel;
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onmousewheel; // Deprecated in favor of onwheel.
+    [PerWorldBindings, ActivityLog=SetterForIsolatedWorlds] attribute EventHandler onwheel;
     attribute EventHandler onoffline;
     attribute EventHandler ononline;
     attribute EventHandler onpagehide;
@@ -263,6 +264,7 @@
 
     // Additional constructors.
     attribute TransitionEventConstructor WebKitTransitionEvent;
+    [EnabledAtRuntime=cssAnimationUnprefixed] attribute WebKitAnimationEventConstructor AnimationEvent;
     [CustomConstructor] attribute HTMLImageElementConstructorConstructor Image; // Usable with new operator
     // Mozilla has a separate XMLDocument object for XML documents.
     // We just use Document for this.
diff --git a/core/page/WorkerNavigator.idl b/core/page/WorkerNavigator.idl
index 1a1a77c..3debfca 100644
--- a/core/page/WorkerNavigator.idl
+++ b/core/page/WorkerNavigator.idl
@@ -27,13 +27,9 @@
  */
 
 [
-    NoInterfaceObject
+    GlobalContext=WorkerGlobalScope
 ] interface WorkerNavigator {
-    readonly attribute DOMString appName;
-    readonly attribute DOMString appVersion;
-    readonly attribute DOMString platform;
-    readonly attribute DOMString userAgent;
-
-    readonly attribute boolean onLine;
 };
 
+WorkerNavigator implements NavigatorID;
+WorkerNavigator implements NavigatorOnLine;
diff --git a/core/scripts/make_css_property_names.py b/core/scripts/make_css_property_names.py
index f775462..ab137e9 100755
--- a/core/scripts/make_css_property_names.py
+++ b/core/scripts/make_css_property_names.py
@@ -16,9 +16,10 @@
 #ifndef %(class_name)s_h
 #define %(class_name)s_h
 
-#include <string.h>
+#include "core/css/CSSParserMode.h"
 #include "wtf/HashFunctions.h"
 #include "wtf/HashTraits.h"
+#include <string.h>
 
 namespace WTF {
 class AtomicString;
@@ -42,6 +43,7 @@
 const WTF::AtomicString& getPropertyNameAtomicString(CSSPropertyID);
 WTF::String getPropertyNameString(CSSPropertyID);
 WTF::String getJSPropertyName(CSSPropertyID);
+bool isInternalProperty(CSSPropertyID id);
 
 inline CSSPropertyID convertToCSSPropertyID(int value)
 {
@@ -163,6 +165,16 @@
     return String(result);
 }
 
+bool isInternalProperty(CSSPropertyID id)
+{
+    switch (id) {
+        %(internal_properties)s
+            return true;
+        default:
+            return false;
+    }
+}
+
 } // namespace WebCore
 """
 
@@ -172,6 +184,7 @@
     defaults = {
         'alias_for': None,
         'condition': None,
+        'is_internal': False,
     }
 
     def __init__(self, file_paths, enabled_conditions):
@@ -196,6 +209,8 @@
         for offset, property in enumerate(self._properties):
             property['enum_name'] = self._enum_name_from_property_name(property['name'])
             property['enum_value'] = self._first_property_id + offset
+            if property['name'].startswith('-internal-'):
+                property['is_internal'] = True
 
     def _enum_name_from_property_name(self, property_name):
         return "CSSProperty" + re.sub(r'(^[^-])|-(.)', lambda match: (match.group(1) or match.group(2)).upper(), property_name)
@@ -214,6 +229,9 @@
             'max_name_length': reduce(max, map(len, map(lambda property: property['name'], self._properties))),
         }
 
+    def _case_properties(self, property):
+        return "case %(enum_name)s:" % property
+
     def generate_implementation(self):
         property_offsets = []
         current_offset = 0
@@ -227,6 +245,7 @@
             'property_name_strings': '\n'.join(map(lambda property: '    "%(name)s\\0"' % property, self._properties)),
             'property_name_offsets': '\n'.join(map(lambda offset: '    %d,' % offset, property_offsets)),
             'property_to_enum_map': '\n'.join(map(lambda property: '%(name)s, %(enum_name)s' % property, self._properties + self._aliases)),
+            'internal_properties': '\n'.join(map(self._case_properties, filter(lambda property: property['is_internal'], self._properties))),
         }
         # FIXME: If we could depend on Python 2.7, we would use subprocess.check_output
         gperf_args = ['gperf', '--key-positions=*', '-P', '-D', '-n', '-s', '2']
diff --git a/core/scripts/make_runtime_features.py b/core/scripts/make_runtime_features.py
index 1454f09..6ec681b 100755
--- a/core/scripts/make_runtime_features.py
+++ b/core/scripts/make_runtime_features.py
@@ -47,6 +47,7 @@
         'depends_on' : [],
         'custom': False,
         'status': None,
+        'writeable': False,
     }
 
     def __init__(self, in_file_path, enabled_conditions):
@@ -72,6 +73,7 @@
         lowered = lowered.replace("cSS", "css")
         lowered = lowered.replace("iME", "ime")
         lowered = lowered.replace("hTML", "html")
+        lowered = lowered.replace("sVG", "svg")
         lowered = lowered.replace("wOFF", "woff")
         return lowered
 
diff --git a/core/scripts/make_token_matcher.py b/core/scripts/make_token_matcher.py
index 3631ed9..10fae62 100755
--- a/core/scripts/make_token_matcher.py
+++ b/core/scripts/make_token_matcher.py
@@ -219,8 +219,8 @@
 
 def process_file(input_name, output_name):
     """Transforms input file into legal C++ source code."""
-    with io.open(input_name) as input_file:
-        with io.open(output_name, 'w') as output_file:
+    with io.open(input_name, 'r', -1, 'utf-8') as input_file:
+        with io.open(output_name, 'w', -1, 'utf-8') as output_file:
             processor = MainLineProcessor(output_file)
             input_lines = input_file.readlines()
             for line in input_lines:
diff --git a/core/scripts/templates/InternalRuntimeFlags.idl.tmpl b/core/scripts/templates/InternalRuntimeFlags.idl.tmpl
index c73ce7a..f0161f9 100644
--- a/core/scripts/templates/InternalRuntimeFlags.idl.tmpl
+++ b/core/scripts/templates/InternalRuntimeFlags.idl.tmpl
@@ -9,7 +9,10 @@
     it's possible that some can be and should be conditionally readonly.
 #}
     {% if feature.condition -%} [Conditional={{feature.condition}}] {% endif -%}
+    {% if feature.writeable %}
+    attribute boolean {{feature.first_lowered_name}}Enabled;
+    {% else %}
     readonly attribute boolean {{feature.first_lowered_name}}Enabled;
+    {% endif %}
 {%- endfor %}
 };
-
diff --git a/core/svg/SVGElementInstance.idl b/core/svg/SVGElementInstance.idl
index 4344913..8f6a1d8 100644
--- a/core/svg/SVGElementInstance.idl
+++ b/core/svg/SVGElementInstance.idl
@@ -56,7 +56,7 @@
     [NotEnumerable] attribute EventHandler onmouseout;
     [NotEnumerable] attribute EventHandler onmouseover;
     [NotEnumerable] attribute EventHandler onmouseup;
-    [NotEnumerable] attribute EventHandler onmousewheel;
+    [NotEnumerable] attribute EventHandler onmousewheel; // Deprecated in favor of onwheel.
     [NotEnumerable] attribute EventHandler onbeforecut;
     [NotEnumerable] attribute EventHandler oncut;
     [NotEnumerable] attribute EventHandler onbeforecopy;
@@ -78,4 +78,5 @@
     [NotEnumerable] attribute EventHandler onselectstart;
     [NotEnumerable] attribute EventHandler onsubmit;
     [NotEnumerable] attribute EventHandler onunload;
+    [NotEnumerable] attribute EventHandler onwheel;
 };
diff --git a/core/svg/SVGTextContentElement.idl b/core/svg/SVGTextContentElement.idl
index 4d69375..f4ce37d 100644
--- a/core/svg/SVGTextContentElement.idl
+++ b/core/svg/SVGTextContentElement.idl
@@ -34,15 +34,13 @@
 
     long getNumberOfChars();
     float getComputedTextLength();
-    [RaisesException] float getSubStringLength([Default=Undefined,IsIndex] optional unsigned long offset,
-                             [Default=Undefined,IsIndex] optional unsigned long length);
-    [RaisesException] SVGPoint getStartPositionOfChar([Default=Undefined,IsIndex] optional unsigned long offset);
-    [RaisesException] SVGPoint getEndPositionOfChar([Default=Undefined,IsIndex] optional unsigned long offset);
-    [RaisesException] SVGRect getExtentOfChar([Default=Undefined,IsIndex] optional unsigned long offset);
-    [RaisesException] float getRotationOfChar([Default=Undefined,IsIndex] optional unsigned long offset);
-    long getCharNumAtPosition([Default=Undefined] optional SVGPoint point);
-    [RaisesException] void selectSubString([Default=Undefined,IsIndex] optional unsigned long offset,
-                         [Default=Undefined,IsIndex] optional unsigned long length);
+    [RaisesException] float getSubStringLength(unsigned long offset, unsigned long length);
+    [RaisesException] SVGPoint getStartPositionOfChar(unsigned long offset);
+    [RaisesException] SVGPoint getEndPositionOfChar(unsigned long offset);
+    [RaisesException] SVGRect getExtentOfChar(unsigned long offset);
+    [RaisesException] float getRotationOfChar(unsigned long offset);
+    long getCharNumAtPosition(SVGPoint point);
+    [RaisesException] void selectSubString(unsigned long offset, unsigned long length);
 };
 
 // FIXME: SVGTextContentElement is not supposed to implement SVGExternalResourcesRequired.
diff --git a/core/testing/InternalSettings.idl b/core/testing/InternalSettings.idl
index 9d98511..f1d7594 100644
--- a/core/testing/InternalSettings.idl
+++ b/core/testing/InternalSettings.idl
@@ -44,6 +44,7 @@
 
     [RaisesException] void setImagesEnabled(boolean enabled);
     [RaisesException] void setDefaultVideoPosterURL(DOMString poster);
+    [RaisesException] void setViewportEnabled(boolean enabled);
 
     // FIXME: This is a temporary flag and should be removed once accelerated
     // overflow scroll is ready (crbug.com/254111).
@@ -56,6 +57,5 @@
     void setCSSExclusionsEnabled(boolean enabled);
     void setExperimentalWebSocketEnabled(boolean enabled);
     void setLangAttributeAwareFormControlUIEnabled(boolean enabled);
-    void setLazyLayoutEnabled(boolean enabled);
     void setStyleScopedEnabled(boolean enabled);
 };
diff --git a/core/testing/Internals.idl b/core/testing/Internals.idl
index d521c04..a7c648d 100644
--- a/core/testing/Internals.idl
+++ b/core/testing/Internals.idl
@@ -96,20 +96,20 @@
     [RaisesException] ClientRectList inspectorHighlightRects(Document document);
 
     [RaisesException] unsigned long markerCountForNode(Node node, DOMString markerType);
+    [RaisesException] unsigned long activeMarkerCountForNode(Node node);
     [RaisesException] Range markerRangeForNode(Node node, DOMString markerType, unsigned long index);
     [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 setScrollViewPosition(Document document, long x, long y);
 
     [RaisesException] void setPagination(Document document, DOMString mode, long gap, optional long pageLength);
 
-    [RaisesException] DOMString configurationForViewport(Document document,
-                                       float devicePixelRatio,
-                                       long deviceWidth,
-                                       long deviceHeight,
-                                       long availableWidth,
-                                       long availableHeight);
+    [RaisesException] DOMString viewportAsText(Document document,
+                                               float devicePixelRatio,
+                                               long availableWidth,
+                                               long availableHeight);
 
     [RaisesException] boolean wasLastChangeUserEdit(Element textField);
     [RaisesException] boolean elementShouldAutoComplete(Element inputElement);
@@ -142,7 +142,7 @@
     [RaisesException] unsigned long wheelEventHandlerCount(Document document);
     [RaisesException] unsigned long touchEventHandlerCount(Document document);
     [RaisesException] LayerRectList touchEventTargetLayerRects(Document document);
-    [RaisesException] unsigned long touchEventTargetLayerRectsUpdateCount(Document document);
+
 
     [RaisesException] NodeList nodesFromRect(Document document, long x, long y,
         unsigned long topPadding, unsigned long rightPadding, unsigned long bottomPadding, unsigned long leftPadding,
@@ -178,6 +178,8 @@
     [RaisesException] NodeList paintOrderListBeforePromote(Element element);
     [RaisesException] NodeList paintOrderListAfterPromote(Element element);
 
+    [RaisesException] boolean scrollsWithRespectTo(Element element1, Element element2);
+
     // The values of these constants must be kept in sync with those in RenderLayer.
     const unsigned short DO_NOT_FORCE_COMPOSITED_SCROLLING = 0;
     const unsigned short COMPOSITED_SCROLLING_ALWAYS_ON = 1;
diff --git a/core/testing/LayerRect.idl b/core/testing/LayerRect.idl
index 50994ab..8a4d8e1 100644
--- a/core/testing/LayerRect.idl
+++ b/core/testing/LayerRect.idl
@@ -31,5 +31,6 @@
 [
 ] interface LayerRect {
     readonly attribute Node layerRootNode;
+    readonly attribute DOMString layerType;
     readonly attribute ClientRect layerRelativeRect;
 };
diff --git a/core/css/WebKitCSSKeyframeRule.idl b/core/workers/WorkerConsole.idl
similarity index 85%
copy from core/css/WebKitCSSKeyframeRule.idl
copy to core/workers/WorkerConsole.idl
index c82351f..84e181b 100644
--- a/core/css/WebKitCSSKeyframeRule.idl
+++ b/core/workers/WorkerConsole.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 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
@@ -26,13 +26,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// Introduced in DOM Level ?:
 [
-    ImplementedAs=CSSKeyframeRule
-] interface WebKitCSSKeyframeRule : CSSRule {
-
-    attribute DOMString keyText;
-    readonly attribute CSSStyleDeclaration style;
-
+    NoInterfaceObject
+] interface WorkerConsole : ConsoleBase {
 };
-
diff --git a/core/workers/WorkerGlobalScope.idl b/core/workers/WorkerGlobalScope.idl
index 87c3594..0d67095 100644
--- a/core/workers/WorkerGlobalScope.idl
+++ b/core/workers/WorkerGlobalScope.idl
@@ -35,14 +35,17 @@
     [Replaceable] readonly attribute WorkerLocation location;
     void close();
     attribute EventHandler onerror;
+    [Replaceable] readonly attribute WorkerConsole console;
+
 
     // WorkerUtils
-    [Custom] void importScripts(/*[Variadic] in DOMString urls */);
+    [RaisesException] void importScripts(DOMString... urls);
     [Replaceable] readonly attribute WorkerNavigator navigator;
 
     // Additional constructors
     attribute URLConstructor webkitURL; // FIXME: deprecate this.
 };
 
+WorkerGlobalScope implements ImageBitmapFactories;
 WorkerGlobalScope implements WindowBase64;
 WorkerGlobalScope implements WindowTimers;
diff --git a/core/xml/XMLHttpRequest.idl b/core/xml/XMLHttpRequest.idl
index 2c4f120..ecee6f5 100644
--- a/core/xml/XMLHttpRequest.idl
+++ b/core/xml/XMLHttpRequest.idl
@@ -31,8 +31,7 @@
     "arraybuffer",
     "blob",
     "document",
-//    FIXME: enable once support for json responseText is completed. (bug #73648)
-//    "json",
+    "json",
     "text"
 };
 
@@ -42,17 +41,7 @@
     Constructor,
     ConstructorCallWith=ScriptExecutionContext,
     CustomConstructor(optional XMLHttpRequestOptions options)
-] interface XMLHttpRequest : EventTarget {
-    // From XMLHttpRequestEventTarget
-    // event handler attributes
-    attribute EventHandler onabort;
-    attribute EventHandler onerror;
-    attribute EventHandler onload;
-    attribute EventHandler onloadend;
-    attribute EventHandler onloadstart;
-    attribute EventHandler onprogress;
-    attribute EventHandler ontimeout;
-
+] interface XMLHttpRequest : XMLHttpRequestEventTarget {
     // event handler attributes
     attribute EventHandler onreadystatechange;
 
diff --git a/core/xml/XMLHttpRequestEventTarget.idl b/core/xml/XMLHttpRequestEventTarget.idl
new file mode 100644
index 0000000..7ec93d9
--- /dev/null
+++ b/core/xml/XMLHttpRequestEventTarget.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2008, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2013 Samsung Electronics. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are 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.
+ */
+
+[
+    NoInterfaceObject
+] interface XMLHttpRequestEventTarget : EventTarget {
+    attribute EventHandler onabort;
+    attribute EventHandler onerror;
+    attribute EventHandler onload;
+    attribute EventHandler onloadend;
+    attribute EventHandler onloadstart;
+    attribute EventHandler onprogress;
+    attribute EventHandler ontimeout;
+};
diff --git a/core/xml/XMLHttpRequestUpload.idl b/core/xml/XMLHttpRequestUpload.idl
index eec9988..ae66d38 100644
--- a/core/xml/XMLHttpRequestUpload.idl
+++ b/core/xml/XMLHttpRequestUpload.idl
@@ -26,14 +26,6 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-interface XMLHttpRequestUpload : EventTarget {
-    // From XMLHttpRequestEventTarget
-    // event handler attributes
-    attribute EventHandler onabort;
-    attribute EventHandler onerror;
-    attribute EventHandler onload;
-    attribute EventHandler onloadend;
-    attribute EventHandler onloadstart;
-    attribute EventHandler onprogress;
+interface XMLHttpRequestUpload : XMLHttpRequestEventTarget {
 };
 
diff --git a/modules/README b/modules/README
index e8fce55..fc245d1 100644
--- a/modules/README
+++ b/modules/README
@@ -6,4 +6,4 @@
 
 The current version corresponds to:
 URL: http://src.chromium.org/multivm/trunk/webkit
-Current revision: 1350
+Current revision: 1365
diff --git a/modules/crypto/CryptoOperation.idl b/modules/crypto/HmacKeyParams.idl
similarity index 88%
rename from modules/crypto/CryptoOperation.idl
rename to modules/crypto/HmacKeyParams.idl
index 3bbb4c7..bb7ac7e 100644
--- a/modules/crypto/CryptoOperation.idl
+++ b/modules/crypto/HmacKeyParams.idl
@@ -30,12 +30,7 @@
 
 [
     NoInterfaceObject,
-] interface CryptoOperation {
-    readonly attribute Algorithm algorithm;
-
-    CryptoOperation process(ArrayBuffer data);
-    CryptoOperation process(ArrayBufferView data);
-
-    any finish();
-    any abort();
+] interface HmacKeyParams : Algorithm {
+    readonly attribute Algorithm hash;
+    readonly attribute unsigned long? length;
 };
diff --git a/modules/crypto/SubtleCrypto.idl b/modules/crypto/SubtleCrypto.idl
index b283fe2..9237c6a 100644
--- a/modules/crypto/SubtleCrypto.idl
+++ b/modules/crypto/SubtleCrypto.idl
@@ -28,16 +28,19 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+// FIXME: |PromiseValue| should be replaced with |Promise|. http://crbug.com/266700
+typedef any PromiseValue;
+
 [
     NoInterfaceObject,
 ] interface SubtleCrypto {
-    [RaisesException] CryptoOperation encrypt(Dictionary algorithm, Key key);
-    [RaisesException] CryptoOperation decrypt(Dictionary algorithm, Key key);
-    [RaisesException] CryptoOperation sign(Dictionary algorithm, Key key);
-    [RaisesException, ImplementedAs=verifySignature] CryptoOperation verify(Dictionary algorithm, Key key, ArrayBufferView signature);
-    [RaisesException] CryptoOperation digest(Dictionary algorithm);
+    [RaisesException] PromiseValue encrypt(Dictionary algorithm, Key key, ArrayBufferView data);
+    [RaisesException] PromiseValue decrypt(Dictionary algorithm, Key key, ArrayBufferView data);
+    [RaisesException] PromiseValue sign(Dictionary algorithm, Key key, ArrayBufferView data);
+    [RaisesException, ImplementedAs=verifySignature] PromiseValue verify(Dictionary algorithm, Key key, ArrayBufferView signature, ArrayBufferView data);
+    [RaisesException] PromiseValue digest(Dictionary algorithm, ArrayBufferView data);
 
-    [RaisesException] any generateKey(Dictionary algorithm, boolean extractable, DOMString[] keyUsages);
-    [RaisesException] any importKey(DOMString format, ArrayBufferView keyData, Dictionary algorithm, boolean extractable, DOMString[] keyUsages);
+    [RaisesException] PromiseValue generateKey(Dictionary algorithm, boolean extractable, DOMString[] keyUsages);
+    [RaisesException] PromiseValue importKey(DOMString format, ArrayBufferView keyData, Dictionary algorithm, boolean extractable, DOMString[] keyUsages);
 };
 
diff --git a/modules/crypto/CryptoOperation.idl b/modules/imagebitmap/ImageBitmapFactories.idl
similarity index 66%
copy from modules/crypto/CryptoOperation.idl
copy to modules/imagebitmap/ImageBitmapFactories.idl
index 3bbb4c7..042b6e4 100644
--- a/modules/crypto/CryptoOperation.idl
+++ b/modules/imagebitmap/ImageBitmapFactories.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (c) 2013, Google Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -28,14 +28,17 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+// FIXME: |PromiseValue| should be replaced with |Promise|. http://crbug.com/266700
+typedef any PromiseValue;
+
 [
     NoInterfaceObject,
-] interface CryptoOperation {
-    readonly attribute Algorithm algorithm;
-
-    CryptoOperation process(ArrayBuffer data);
-    CryptoOperation process(ArrayBufferView data);
-
-    any finish();
-    any abort();
+    EnabledAtRuntime=experimentalCanvasFeatures
+] interface ImageBitmapFactories {
+    [RaisesException] PromiseValue createImageBitmap(Blob blob);
+    [RaisesException] PromiseValue createImageBitmap(Blob blob, long sx, long sy, long sw, long sh);
+    [RaisesException] PromiseValue createImageBitmap(ImageData data);
+    [RaisesException] PromiseValue createImageBitmap(ImageData data, long sx, long sy, long sw, long sh);
+    [RaisesException] PromiseValue createImageBitmap(ImageBitmap bitmap);
+    [RaisesException] PromiseValue createImageBitmap(ImageBitmap bitmap, long sx, long sy, long sw, long sh);
 };
diff --git a/modules/imagebitmap/WindowImageBitmapFactories.idl b/modules/imagebitmap/WindowImageBitmapFactories.idl
new file mode 100644
index 0000000..4d6ffbf
--- /dev/null
+++ b/modules/imagebitmap/WindowImageBitmapFactories.idl
@@ -0,0 +1,46 @@
+/*
+ * 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.
+ */
+
+// FIXME: |PromiseValue| should be replaced with |Promise|. http://crbug.com/266700
+typedef any PromiseValue;
+
+[
+    ImplementedAs=ImageBitmapFactories,
+    EnabledAtRuntime=experimentalCanvasFeatures
+] partial interface Window {
+    [RaisesException] PromiseValue createImageBitmap(HTMLImageElement image);
+    [RaisesException] PromiseValue createImageBitmap(HTMLImageElement image, long sx, long sy, long sw, long sh);
+    [RaisesException] PromiseValue createImageBitmap(HTMLVideoElement video);
+    [RaisesException] PromiseValue createImageBitmap(HTMLVideoElement video, long sx, long sy, long sw, long sh);
+    [RaisesException] PromiseValue createImageBitmap(CanvasRenderingContext2D context);
+    [RaisesException] PromiseValue createImageBitmap(CanvasRenderingContext2D context, long sx, long sy, long sw, long sh);
+    [RaisesException] PromiseValue createImageBitmap(HTMLCanvasElement canvas);
+    [RaisesException] PromiseValue createImageBitmap(HTMLCanvasElement canvas, long sx, long sy, long sw, long sh);
+};
diff --git a/modules/indexeddb/IDBCursor.idl b/modules/indexeddb/IDBCursor.idl
index 2e375c0..18d53a1 100644
--- a/modules/indexeddb/IDBCursor.idl
+++ b/modules/indexeddb/IDBCursor.idl
@@ -26,8 +26,8 @@
 interface IDBCursor {
 
     readonly attribute DOMString direction;
-    readonly attribute any key;
-    readonly attribute any primaryKey;
+    [CallWith=ScriptExecutionContext, CachedAttribute=isKeyDirty] readonly attribute any key;
+    [CallWith=ScriptExecutionContext, CachedAttribute=isPrimaryKeyDirty] readonly attribute any primaryKey;
     readonly attribute IDBAny source;
 
     [CallWith=ScriptState, RaisesException] IDBRequest update(any value);
diff --git a/modules/indexeddb/IDBCursorWithValue.idl b/modules/indexeddb/IDBCursorWithValue.idl
index d170774..4f8a780 100644
--- a/modules/indexeddb/IDBCursorWithValue.idl
+++ b/modules/indexeddb/IDBCursorWithValue.idl
@@ -24,5 +24,5 @@
  */
 
 interface IDBCursorWithValue : IDBCursor {
-    readonly attribute any value;
+    [CallWith=ScriptExecutionContext,CachedAttribute=isValueDirty] readonly attribute any value;
 };
diff --git a/modules/indexeddb/IDBIndex.idl b/modules/indexeddb/IDBIndex.idl
index 861c673..4819a1a 100644
--- a/modules/indexeddb/IDBIndex.idl
+++ b/modules/indexeddb/IDBIndex.idl
@@ -31,18 +31,10 @@
     readonly attribute boolean unique;
     readonly attribute boolean multiEntry;
 
-    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest openCursor([Default=Undefined] optional IDBKeyRange? range, [Default=NullString] optional DOMString direction);
-    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest openCursor(any key, [Default=NullString] optional DOMString direction);
+    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest openCursor([Default=Undefined] optional any key, [Default=NullString] optional DOMString direction);
+    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest openKeyCursor([Default=Undefined] optional any key, [Default=NullString] optional DOMString direction);
 
-    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest openKeyCursor([Default=Undefined] optional IDBKeyRange? range, [Default=NullString] optional DOMString  direction);
-    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest openKeyCursor(any key, [Default=NullString] optional DOMString direction);
-
-    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest get(IDBKeyRange? key);
     [CallWith=ScriptExecutionContext, RaisesException] IDBRequest get(any key);
-
-    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest getKey(IDBKeyRange? key);
     [CallWith=ScriptExecutionContext, RaisesException] IDBRequest getKey(any key);
-
-    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest count([Default=Undefined] optional IDBKeyRange? range);
-    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest count(any key);
+    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest count([Default=Undefined] optional any key);
 };
diff --git a/modules/indexeddb/IDBObjectStore.idl b/modules/indexeddb/IDBObjectStore.idl
index d3e4616..a3ca01d 100644
--- a/modules/indexeddb/IDBObjectStore.idl
+++ b/modules/indexeddb/IDBObjectStore.idl
@@ -33,18 +33,14 @@
 
     [CallWith=ScriptState, RaisesException] IDBRequest put(any value, [Default=Undefined] optional any key);
     [CallWith=ScriptState, RaisesException] IDBRequest add(any value, [Default=Undefined] optional any key);
-    [CallWith=ScriptExecutionContext, ImplementedAs=deleteFunction, RaisesException] IDBRequest delete(IDBKeyRange? keyRange);
     [CallWith=ScriptExecutionContext, ImplementedAs=deleteFunction, RaisesException] IDBRequest delete(any key);
     [CallWith=ScriptExecutionContext, RaisesException] IDBRequest clear();
-    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest get(IDBKeyRange? key);
     [CallWith=ScriptExecutionContext, RaisesException] IDBRequest get(any key);
-    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest openCursor([Default=Undefined] optional IDBKeyRange? range, [Default=NullString] optional DOMString direction);
-    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest openCursor(any key, [Default=NullString] optional DOMString direction);
+    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest openCursor([Default=Undefined] optional any key, [Default=NullString] optional DOMString direction);
 
     [CallWith=ScriptExecutionContext, RaisesException] IDBIndex createIndex(DOMString name, sequence<DOMString> keyPath, optional Dictionary options);
     [CallWith=ScriptExecutionContext, RaisesException] IDBIndex createIndex(DOMString name, DOMString keyPath, optional Dictionary options);
     [RaisesException] IDBIndex index(DOMString name);
     [RaisesException] void deleteIndex(DOMString name);
-    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest count([Default=Undefined] optional IDBKeyRange? range);
-    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest count(any key);
+    [CallWith=ScriptExecutionContext, RaisesException] IDBRequest count([Default=Undefined] optional any key);
 };