diff --git a/page/Coordinates.idl b/Modules/geolocation/Coordinates.idl
similarity index 88%
rename from page/Coordinates.idl
rename to Modules/geolocation/Coordinates.idl
index dc64a60..0fb9781 100644
--- a/page/Coordinates.idl
+++ b/Modules/geolocation/Coordinates.idl
@@ -24,14 +24,15 @@
  */
 
 [
+    Conditional=GEOLOCATION,
     OmitConstructor,
     ImplementationLacksVTable
 ] interface Coordinates {
     readonly attribute double latitude;
     readonly attribute double longitude;
-    [Custom] readonly attribute double altitude;
+    readonly attribute double? altitude;
     readonly attribute double accuracy;
-    [Custom] readonly attribute double altitudeAccuracy;
-    [Custom] readonly attribute double heading;
-    [Custom] readonly attribute double speed;
+    readonly attribute double? altitudeAccuracy;
+    readonly attribute double? heading;
+    readonly attribute double? speed;
 };
diff --git a/Modules/mediasource/MediaSource.idl b/Modules/mediasource/MediaSource.idl
index 6168a21..d0c562f 100644
--- a/Modules/mediasource/MediaSource.idl
+++ b/Modules/mediasource/MediaSource.idl
@@ -51,7 +51,9 @@
     
     void endOfStream(in [Optional=DefaultIsNullString] DOMString error)
         raises (DOMException);
-    
+
+    static boolean isTypeSupported (DOMString type);
+
     // EventTarget interface
     void addEventListener(in DOMString type,
                           in EventListener listener,
diff --git a/Modules/mediastream/RTCPeerConnection.idl b/Modules/mediastream/RTCPeerConnection.idl
index bc9708c..a0dc1ce 100644
--- a/Modules/mediastream/RTCPeerConnection.idl
+++ b/Modules/mediastream/RTCPeerConnection.idl
@@ -52,9 +52,6 @@
     readonly attribute RTCSessionDescription remoteDescription
         getter raises(DOMException);
 
-    // DEPRECATED
-    readonly attribute DOMString readyState;
-
     readonly attribute DOMString signalingState;
 
     void updateIce(in [Optional] Dictionary configuration, in [Optional] Dictionary mediaConstraints)
@@ -88,11 +85,10 @@
 
     attribute EventListener onnegotiationneeded;
     attribute EventListener onicecandidate;
-    attribute EventListener onstatechange;
+    attribute EventListener onsignalingstatechange;
     attribute EventListener onaddstream;
     attribute EventListener onremovestream;
-    attribute EventListener ongatheringchange;
-    attribute EventListener onicechange;
+    attribute EventListener oniceconnectionstatechange;
     attribute EventListener ondatachannel;
 
     // EventTarget interface
diff --git a/Modules/mediastream/RTCStatsReport.idl b/Modules/mediastream/RTCStatsReport.idl
index 1d6d7b2..8c50e80 100644
--- a/Modules/mediastream/RTCStatsReport.idl
+++ b/Modules/mediastream/RTCStatsReport.idl
@@ -28,6 +28,7 @@
 ] interface RTCStatsReport {
     readonly attribute Date timestamp;
     readonly attribute DOMString id;
+    readonly attribute DOMString type;
     DOMString stat(in DOMString name);
     sequence<DOMString> names();
     // DEPRECATED - fake for old RTCStatsElement object.
diff --git a/Modules/quota/WorkerNavigatorStorageQuota.idl b/Modules/quota/WorkerNavigatorStorageQuota.idl
new file mode 100644
index 0000000..17370cd
--- /dev/null
+++ b/Modules/quota/WorkerNavigatorStorageQuota.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=WorkerNavigator
+] interface WorkerNavigatorStorageQuota {
+    readonly attribute StorageQuota webkitTemporaryStorage;
+    readonly attribute StorageQuota webkitPersistentStorage;
+};
diff --git a/Modules/speech/SpeechRecognitionEvent.idl b/Modules/speech/SpeechRecognitionEvent.idl
index 184c2e9..616d750 100644
--- a/Modules/speech/SpeechRecognitionEvent.idl
+++ b/Modules/speech/SpeechRecognitionEvent.idl
@@ -27,11 +27,8 @@
     Conditional=SCRIPTED_SPEECH,
     ConstructorTemplate=Event,
 ] interface SpeechRecognitionEvent : Event {
-    // DEPRECATED
-    [InitializedByEventConstructor] readonly attribute SpeechRecognitionResult result;
-    [InitializedByEventConstructor] readonly attribute SpeechRecognitionResultList resultHistory;
-
     [InitializedByEventConstructor] readonly attribute unsigned long resultIndex;
     [InitializedByEventConstructor] readonly attribute SpeechRecognitionResultList results;
-    // FIXME: Add the emma attribute.
+
+    readonly attribute Document emma;
 };
diff --git a/Modules/webaudio/AudioBufferSourceNode.idl b/Modules/webaudio/AudioBufferSourceNode.idl
index 078b0b7..f8f98b3 100644
--- a/Modules/webaudio/AudioBufferSourceNode.idl
+++ b/Modules/webaudio/AudioBufferSourceNode.idl
@@ -37,7 +37,7 @@
 
     readonly attribute unsigned short playbackState;
 
-    readonly attribute AudioGain gain;
+    readonly attribute AudioParam gain;
     readonly attribute AudioParam playbackRate;
 
     attribute boolean loop; // This is the proper attribute name from the specification.
diff --git a/Modules/webaudio/GainNode.idl b/Modules/webaudio/GainNode.idl
index 523d89e..cbb0c96 100644
--- a/Modules/webaudio/GainNode.idl
+++ b/Modules/webaudio/GainNode.idl
@@ -27,5 +27,5 @@
     JSGenerateToJSObject
 ] interface GainNode : AudioNode {
     // FIXME: eventually it will be interesting to remove the readonly restriction, but need to properly deal with thread safety here.
-    readonly attribute AudioGain gain;
+    readonly attribute AudioParam gain;
 };
diff --git a/README b/README
index ff169b4..072c54d 100644
--- a/README
+++ b/README
@@ -6,4 +6,4 @@
 
 The current version corresponds to:
 URL: http://src.chromium.org/multivm/trunk/webkit
-Current revision: 1143
+Current revision: 1151
diff --git a/WebCore.gyp/scripts/action_makenames.py b/WebCore.gyp/scripts/action_makenames.py
index a1a410f..813b864 100644
--- a/WebCore.gyp/scripts/action_makenames.py
+++ b/WebCore.gyp/scripts/action_makenames.py
@@ -131,6 +131,8 @@
             eventsInput = inputAbsPosix
         elif inputBasename.endswith('Names.in'):
             options.append(inputAbsPosix)
+        elif inputBasename.endswith('.pm'):
+            continue
         else:
             assert False
 
diff --git a/bindings/dart/gyp/scripts/massage_factories.py b/bindings/dart/gyp/scripts/massage_factories.py
index 615371b..0ec8b84 100644
--- a/bindings/dart/gyp/scripts/massage_factories.py
+++ b/bindings/dart/gyp/scripts/massage_factories.py
@@ -84,6 +84,12 @@
         (re.compile(
             r'return createV8HTMLDirectWrapper\(element, creationContext, isolate\);'),
             r'return DartDOMWrapper::toDart<DartHTMLElement>(element);'),
+        (re.compile(
+            r'return V8CustomElement::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));'),
         (re.compile(r'createV8%sWrapper' % tag), r'createDart%sWrapper' % tag),
         (re.compile(r', v8::Isolate\*( isolate)?'), ''),
         (re.compile(r', v8::Handle<v8::Object> creationContext'), ''),
@@ -93,12 +99,6 @@
         (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 d3f6f2b..98deed4 100644
--- a/bindings/scripts/test/TestObj.idl
+++ b/bindings/scripts/test/TestObj.idl
@@ -81,6 +81,7 @@
     void methodWithSequenceArg(in sequence<ScriptProfile> sequenceArg);
     sequence<ScriptProfile> methodReturningSequence(in long longArg);
 
+    void methodWithEnumArg(in TestEnumType enumArg);
     TestObj methodThatRequiresAllArgsAndThrows(in DOMString strArg, in TestObj objArg)
         raises(DOMException);
 
@@ -295,4 +296,12 @@
 
     attribute long? nullableStringValue
         getter raises(DOMException);
+
+#if defined(TESTING_V8)
+    [V8PerWorldBindings] readonly attribute TestObj perWorldReadOnlyAttribute;
+    [V8PerWorldBindings] attribute TestObj perWorldAttribute;
+    [V8PerWorldBindings] void perWorldMethod();
+    [V8PerWorldBindings] void overloadedPerWorldMethod(in long longArg);
+    [V8PerWorldBindings] void overloadedPerWorldMethod(in DOMString strArg, in long longArg);
+#endif
 };
diff --git a/dom/Document.idl b/dom/Document.idl
index a4f053c..391a5ed 100644
--- a/dom/Document.idl
+++ b/dom/Document.idl
@@ -29,10 +29,11 @@
     readonly attribute DOMImplementation implementation;
     readonly attribute Element documentElement;
 
-    [ReturnNewObject] Element createElement(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString tagName)
+    [ReturnNewObject, V8DeliverCustomElementCallbacks, V8PerWorldBindings]
+    Element createElement(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString tagName)
         raises (DOMException);
     DocumentFragment   createDocumentFragment();
-    [ReturnNewObject] Text createTextNode(in [Optional=DefaultIsUndefined] DOMString data);
+    [ReturnNewObject, V8PerWorldBindings] Text createTextNode(in [Optional=DefaultIsUndefined] DOMString data);
     [ReturnNewObject] Comment createComment(in [Optional=DefaultIsUndefined] DOMString data);
     [ReturnNewObject] CDATASection createCDATASection(in [Optional=DefaultIsUndefined] DOMString data)
         raises(DOMException);
@@ -43,22 +44,24 @@
         raises (DOMException);
     [ReturnNewObject] EntityReference createEntityReference(in [Optional=DefaultIsUndefined] DOMString name)
         raises(DOMException);
-    NodeList           getElementsByTagName(in [Optional=DefaultIsUndefined] DOMString tagname);
+    [V8PerWorldBindings] NodeList           getElementsByTagName(in [Optional=DefaultIsUndefined] DOMString tagname);
 
     // Introduced in DOM Level 2:
 
-    [ObjCLegacyUnnamedParameters, ReturnNewObject] Node importNode(in [Optional=DefaultIsUndefined] Node importedNode,
-                                               in [Optional] boolean deep)
+    [ObjCLegacyUnnamedParameters, ReturnNewObject, V8DeliverCustomElementCallbacks]
+    Node importNode(in [Optional=DefaultIsUndefined] Node importedNode,
+                    in [Optional] boolean deep)
         raises (DOMException);
-    [ObjCLegacyUnnamedParameters, ReturnNewObject] Element createElementNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
-                                                       in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString qualifiedName)
+    [ObjCLegacyUnnamedParameters, ReturnNewObject, V8DeliverCustomElementCallbacks]
+    Element createElementNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
+                            in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString qualifiedName)
         raises (DOMException);
     [ObjCLegacyUnnamedParameters, ReturnNewObject] Attr createAttributeNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
-                                                      in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString qualifiedName)
+                                                                          in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString qualifiedName)
         raises (DOMException);
     [ObjCLegacyUnnamedParameters] NodeList getElementsByTagNameNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
                                                    in [Optional=DefaultIsUndefined] DOMString localName);
-    Element            getElementById(in [Optional=DefaultIsUndefined] DOMString elementId);
+    [V8PerWorldBindings] Element            getElementById(in [Optional=DefaultIsUndefined] DOMString elementId);
 
     // DOM Level 3 Core
 
@@ -131,7 +134,7 @@
         raises(DOMException);
 
     // Common extensions
-
+    [V8DeliverCustomElementCallbacks]
     boolean            execCommand(in [Optional=DefaultIsUndefined] DOMString command,
                                    in [Optional=DefaultIsUndefined] boolean userInterface,
                                    in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString value);
@@ -176,7 +179,7 @@
     readonly attribute HTMLCollection anchors;
     readonly attribute DOMString lastModified;
 
-    NodeList getElementsByName(in [Optional=DefaultIsUndefined] DOMString elementName);
+    [V8PerWorldBindings] NodeList getElementsByName(in [Optional=DefaultIsUndefined] DOMString elementName);
 
 #if defined(ENABLE_MICRODATA) && ENABLE_MICRODATA
     NodeList getItems(in [TreatNullAs=NullString, TreatUndefinedAs=NullString, Optional=DefaultIsUndefined] DOMString typeNames);
@@ -341,6 +344,7 @@
     [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenerror;
     [NotEnumerable, Conditional=POINTER_LOCK] attribute EventListener onwebkitpointerlockchange;
     [NotEnumerable, Conditional=POINTER_LOCK] attribute EventListener onwebkitpointerlockerror;
+    [NotEnumerable, Conditional=CSP_NEXT, V8EnabledAtRuntime=experimentalContentSecurityPolicyFeatures] attribute EventListener onsecuritypolicyviolation;
 #endif
 
 #if defined(ENABLE_TOUCH_EVENTS) && ENABLE_TOUCH_EVENTS
@@ -361,11 +365,13 @@
 #endif
 
 #if defined(ENABLE_CUSTOM_ELEMENTS) && ENABLE_CUSTOM_ELEMENTS
-    [V8EnabledAtRuntime=customDOMElements, Conditional=CUSTOM_ELEMENTS, ImplementedAs=registerElement, CallWith=ScriptState]
+    [V8EnabledAtRuntime=customDOMElements, Conditional=CUSTOM_ELEMENTS, ImplementedAs=registerElement, CallWith=ScriptState, V8DeliverCustomElementCallbacks]
     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);
+    [ReturnNewObject, V8DeliverCustomElementCallbacks, V8PerWorldBindings]
+    Element createElement(in DOMString localName, in [TreatNullAs=NullString] DOMString typeExtension) raises (DOMException);
+    [ReturnNewObject, V8DeliverCustomElementCallbacks]
+    Element createElementNS(in [TreatNullAs=NullString] DOMString namespaceURI, in DOMString qualifiedName,
+                            in [TreatNullAs=NullString] DOMString typeExtension) raises (DOMException);
 #endif
 
 #if defined(LANGUAGE_CPP) && LANGUAGE_CPP
diff --git a/dom/Element.idl b/dom/Element.idl
index faa73a8..38806da 100644
--- a/dom/Element.idl
+++ b/dom/Element.idl
@@ -27,7 +27,7 @@
 
     // DOM Level 1 Core
 
-    [TreatReturnedNullStringAs=Null] readonly attribute DOMString tagName;
+    [TreatReturnedNullStringAs=Null, V8PerWorldBindings] readonly attribute DOMString tagName;
 
     [TreatReturnedNullStringAs=Null] DOMString getAttribute(in [Optional=DefaultIsUndefined] DOMString name);
     [ObjCLegacyUnnamedParameters] void setAttribute(in [Optional=DefaultIsUndefined] DOMString name,
@@ -39,11 +39,11 @@
         raises(DOMException);
     Attr removeAttributeNode(in [Optional=DefaultIsUndefined] Attr oldAttr)
         raises(DOMException);
-    NodeList getElementsByTagName(in [Optional=DefaultIsUndefined] DOMString name);
+    [V8PerWorldBindings] NodeList getElementsByTagName(in [Optional=DefaultIsUndefined] DOMString name);
 
 #if !defined(LANGUAGE_OBJECTIVE_C)
     // For ObjC this is defined on Node for legacy support.
-    readonly attribute NamedNodeMap     attributes;
+    [V8PerWorldBindings] readonly attribute NamedNodeMap     attributes;
     boolean            hasAttributes();
 #endif
 
@@ -67,23 +67,23 @@
     [ObjCLegacyUnnamedParameters] boolean hasAttributeNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
                                           in [Optional=DefaultIsUndefined] DOMString localName);
 
-    readonly attribute CSSStyleDeclaration style;
+    [V8PerWorldBindings] readonly attribute CSSStyleDeclaration style;
 
     // Common extensions
 
-    readonly attribute long offsetLeft;
-    readonly attribute long offsetTop;
-    readonly attribute long offsetWidth;
-    readonly attribute long offsetHeight;
-    readonly attribute Element offsetParent;
-    readonly attribute long clientLeft;
-    readonly attribute long clientTop;
-    readonly attribute long clientWidth;
-    readonly attribute long clientHeight;
-             attribute long scrollLeft;
-             attribute long scrollTop;
-    readonly attribute long scrollWidth;
-    readonly attribute long scrollHeight;
+    [V8PerWorldBindings] readonly attribute long offsetLeft;
+    [V8PerWorldBindings] readonly attribute long offsetTop;
+    [V8PerWorldBindings] readonly attribute long offsetWidth;
+    [V8PerWorldBindings] readonly attribute long offsetHeight;
+    [ImplementedAs=bindingsOffsetParent, V8PerWorldBindings] readonly attribute Element offsetParent;
+    [V8PerWorldBindings] readonly attribute long clientLeft;
+    [V8PerWorldBindings] readonly attribute long clientTop;
+    [V8PerWorldBindings] readonly attribute long clientWidth;
+    [V8PerWorldBindings] readonly attribute long clientHeight;
+             [V8PerWorldBindings] attribute long scrollLeft;
+             [V8PerWorldBindings] attribute long scrollTop;
+    [V8PerWorldBindings] readonly attribute long scrollWidth;
+    [V8PerWorldBindings] readonly attribute long scrollHeight;
 
     void focus();
     void blur();
@@ -98,11 +98,11 @@
     // HTML 5
     NodeList getElementsByClassName(in [Optional=DefaultIsUndefined] DOMString name);
 
-    [Reflect=class] attribute DOMString className;
-    readonly attribute DOMTokenList classList;
+    [Reflect=class, V8PerWorldBindings] attribute DOMString className;
+    [V8PerWorldBindings] readonly attribute DOMTokenList classList;
 
 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
-    readonly attribute DOMStringMap dataset;
+    [V8PerWorldBindings] readonly attribute DOMStringMap dataset;
 #endif
 
     // NodeSelector - Selector API
@@ -116,17 +116,18 @@
         raises(DOMException);
 
     // ElementTraversal API
-    readonly attribute Element firstElementChild;
-    readonly attribute Element lastElementChild;
-    readonly attribute Element previousElementSibling;
-    readonly attribute Element nextElementSibling;
-    readonly attribute unsigned long childElementCount;
+    [V8PerWorldBindings] readonly attribute Element firstElementChild;
+    [V8PerWorldBindings] readonly attribute Element lastElementChild;
+    [V8PerWorldBindings] readonly attribute Element previousElementSibling;
+    [V8PerWorldBindings] readonly attribute Element nextElementSibling;
+    [V8PerWorldBindings] readonly attribute unsigned long childElementCount;
 
     // ShadowAware API
 #if defined(ENABLE_SHADOW_DOM) && ENABLE_SHADOW_DOM && defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
-    [Reflect=pseudo, V8EnabledAtRuntime=shadowDOM, ImplementedAs=pseudo] attribute DOMString webkitPseudo;
+    [Reflect=pseudo, V8EnabledAtRuntime=shadowDOM, ImplementedAs=pseudo, V8PerWorldBindings] attribute DOMString webkitPseudo;
     [V8EnabledAtRuntime=shadowDOM, ImplementedAs=createShadowRoot] ShadowRoot webkitCreateShadowRoot() raises(DOMException);
-    [V8EnabledAtRuntime=shadowDOM, ImplementedAs=shadowRoot] readonly attribute ShadowRoot webkitShadowRoot;
+    [V8EnabledAtRuntime=shadowDOM, ImplementedAs=shadowRoot, V8PerWorldBindings] readonly attribute ShadowRoot webkitShadowRoot;
+    [V8EnabledAtRuntime=shadowDOM, ImplementedAs=insertionParentForBinding, V8PerWorldBindings] readonly attribute Node webkitInsertionParent;
 #endif
 
     // DOM 4
@@ -141,7 +142,7 @@
 
 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
     // Objective-C extensions
-    readonly attribute DOMString innerText;
+    [V8PerWorldBindings] readonly attribute DOMString innerText;
 #endif
 
 #if defined(ENABLE_FULLSCREEN_API) && ENABLE_FULLSCREEN_API
@@ -156,41 +157,41 @@
     [Conditional=POINTER_LOCK] void webkitRequestPointerLock();
 
     // CSS Regions API
-    [Conditional=CSS_REGIONS, V8EnabledAtRuntime=cssRegions] readonly attribute DOMString webkitRegionOverset;
+    [Conditional=CSS_REGIONS, V8EnabledAtRuntime=cssRegions, V8PerWorldBindings] readonly attribute DOMString webkitRegionOverset;
     [Conditional=CSS_REGIONS, V8EnabledAtRuntime=cssRegions] sequence<Range> webkitGetRegionFlowRanges();
 
 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
     // Event handler DOM attributes
-    [NotEnumerable] attribute EventListener onabort;
-    [NotEnumerable] attribute EventListener onblur;
-    [NotEnumerable] attribute EventListener onchange;
-    [NotEnumerable] attribute EventListener onclick;
-    [NotEnumerable] attribute EventListener oncontextmenu;
-    [NotEnumerable] attribute EventListener ondblclick;
-    [NotEnumerable] attribute EventListener ondrag;
-    [NotEnumerable] attribute EventListener ondragend;
-    [NotEnumerable] attribute EventListener ondragenter;
-    [NotEnumerable] attribute EventListener ondragleave;
-    [NotEnumerable] attribute EventListener ondragover;
-    [NotEnumerable] attribute EventListener ondragstart;
-    [NotEnumerable] attribute EventListener ondrop;
-    [NotEnumerable] attribute EventListener onerror;
-    [NotEnumerable] attribute EventListener onfocus;
-    [NotEnumerable] attribute EventListener oninput;
-    [NotEnumerable] attribute EventListener oninvalid;
-    [NotEnumerable] attribute EventListener onkeydown;
-    [NotEnumerable] attribute EventListener onkeypress;
-    [NotEnumerable] attribute EventListener onkeyup;
-    [NotEnumerable] attribute EventListener onload;
-    [NotEnumerable] attribute EventListener onmousedown;
-    [NotEnumerable] attribute EventListener onmousemove;
-    [NotEnumerable] attribute EventListener onmouseout;
-    [NotEnumerable] attribute EventListener onmouseover;
-    [NotEnumerable] attribute EventListener onmouseup;
-    [NotEnumerable] attribute EventListener onmousewheel;
-    [NotEnumerable] attribute EventListener onscroll;
-    [NotEnumerable] attribute EventListener onselect;
-    [NotEnumerable] attribute EventListener onsubmit;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onabort;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onblur;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onchange;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onclick;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener oncontextmenu;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener ondblclick;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener ondrag;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener ondragend;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener ondragenter;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener ondragleave;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener ondragover;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener ondragstart;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener ondrop;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onerror;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onfocus;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener oninput;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener oninvalid;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onkeydown;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onkeypress;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onkeyup;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onload;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onmousedown;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onmousemove;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onmouseout;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onmouseover;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onmouseup;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onmousewheel;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onscroll;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onselect;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onsubmit;
 
     // attribute [NotEnumerable] EventListener oncanplay;
     // attribute [NotEnumerable] EventListener oncanplaythrough;
@@ -216,21 +217,21 @@
     // attribute [NotEnumerable] EventListener onwaiting;
 
     // WebKit extensions
-    [NotEnumerable] attribute EventListener onbeforecut;
-    [NotEnumerable] attribute EventListener oncut;
-    [NotEnumerable] attribute EventListener onbeforecopy;
-    [NotEnumerable] attribute EventListener oncopy;
-    [NotEnumerable] attribute EventListener onbeforepaste;
-    [NotEnumerable] attribute EventListener onpaste;
-    [NotEnumerable] attribute EventListener onreset;
-    [NotEnumerable] attribute EventListener onsearch;
-    [NotEnumerable] attribute EventListener onselectstart;
-    [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime=touch] attribute EventListener ontouchstart;
-    [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime=touch] attribute EventListener ontouchmove;
-    [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime=touch] attribute EventListener ontouchend;
-    [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime=touch] attribute EventListener ontouchcancel;
-    [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenchange;
-    [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenerror;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onbeforecut;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener oncut;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onbeforecopy;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener oncopy;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onbeforepaste;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onpaste;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onreset;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onsearch;
+    [NotEnumerable, V8PerWorldBindings] attribute EventListener onselectstart;
+    [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime=touch, V8PerWorldBindings] attribute EventListener ontouchstart;
+    [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime=touch, V8PerWorldBindings] attribute EventListener ontouchmove;
+    [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime=touch, V8PerWorldBindings] attribute EventListener ontouchend;
+    [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime=touch, V8PerWorldBindings] attribute EventListener ontouchcancel;
+    [NotEnumerable, Conditional=FULLSCREEN_API, V8PerWorldBindings] attribute EventListener onwebkitfullscreenchange;
+    [NotEnumerable, Conditional=FULLSCREEN_API, V8PerWorldBindings] attribute EventListener onwebkitfullscreenerror;
 #endif
 };
 
diff --git a/dom/Node.idl b/dom/Node.idl
index 5ee3b07..5ddfbec 100644
--- a/dom/Node.idl
+++ b/dom/Node.idl
@@ -49,33 +49,34 @@
     const unsigned short      DOCUMENT_FRAGMENT_NODE         = 11;
     const unsigned short      NOTATION_NODE                  = 12;
 
-    readonly attribute [TreatReturnedNullStringAs=Null] DOMString        nodeName;
+    readonly attribute [TreatReturnedNullStringAs=Null, V8PerWorldBindings] DOMString        nodeName;
 
              // FIXME: the spec says this can also raise on retrieval.
-             attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString        nodeValue
+             attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, V8PerWorldBindings] DOMString        nodeValue
                  setter raises(DOMException);
 
-    readonly attribute unsigned short   nodeType;
-    readonly attribute Node             parentNode;
-    readonly attribute NodeList         childNodes;
-    readonly attribute Node             firstChild;
-    readonly attribute Node             lastChild;
-    readonly attribute Node             previousSibling;
-    readonly attribute Node             nextSibling;
-    readonly attribute Document         ownerDocument;
+    readonly attribute [V8PerWorldBindings] unsigned short   nodeType;
+    readonly attribute [V8PerWorldBindings] Node             parentNode;
+    readonly attribute [V8PerWorldBindings] NodeList         childNodes;
+    readonly attribute [V8PerWorldBindings] Node             firstChild;
+    readonly attribute [V8PerWorldBindings] Node             lastChild;
+    readonly attribute [V8PerWorldBindings] Node             previousSibling;
+    readonly attribute [V8PerWorldBindings] Node             nextSibling;
+    readonly attribute [V8PerWorldBindings] Document         ownerDocument;
 
-    [ObjCLegacyUnnamedParameters, Custom] Node insertBefore(in [CustomReturn] Node newChild,
+    [ObjCLegacyUnnamedParameters, Custom, V8PerWorldBindings] Node insertBefore(in [CustomReturn] Node newChild,
                                                             in Node refChild)
         raises(DOMException);
     [ObjCLegacyUnnamedParameters, Custom] Node replaceChild(in Node newChild,
                                                             in [CustomReturn] Node oldChild)
         raises(DOMException);
-    [Custom] Node               removeChild(in [CustomReturn] Node oldChild)
+    [Custom, V8PerWorldBindings] Node removeChild(in [CustomReturn] Node oldChild)
         raises(DOMException);
-    [Custom] Node               appendChild(in [CustomReturn] Node newChild)
+    [Custom, V8PerWorldBindings] Node appendChild(in [CustomReturn] Node newChild)
         raises(DOMException);
 
     boolean            hasChildNodes();
+    [V8DeliverCustomElementCallbacks, V8PerWorldBindings]
     Node               cloneNode(in [Optional=DefaultIsUndefined] boolean deep);
     void               normalize();
 
@@ -84,23 +85,23 @@
     [ObjCLegacyUnnamedParameters] boolean isSupported(in [Optional=DefaultIsUndefined] DOMString feature, 
                                        in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString version);
 
-    readonly attribute [TreatReturnedNullStringAs=Null] DOMString        namespaceURI;
-             attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString        prefix
+    readonly attribute [TreatReturnedNullStringAs=Null, V8PerWorldBindings] DOMString        namespaceURI;
+             attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, V8PerWorldBindings] DOMString        prefix
                  setter raises(DOMException);
-    readonly attribute [TreatReturnedNullStringAs=Null] DOMString        localName;
+    readonly attribute [TreatReturnedNullStringAs=Null, V8PerWorldBindings] DOMString        localName;
 
 #if defined(LANGUAGE_OBJECTIVE_C)
-    readonly attribute NamedNodeMap     attributes;
+    readonly attribute [V8PerWorldBindings] NamedNodeMap     attributes;
     boolean            hasAttributes();
 #endif
 
 
     // Introduced in DOM Level 3:
 
-    readonly attribute [TreatReturnedNullStringAs=Null] DOMString       baseURI;
+    readonly attribute [TreatReturnedNullStringAs=Null, V8PerWorldBindings] DOMString       baseURI;
 
              // FIXME: the spec says this can also raise on retrieval.
-             attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString       textContent
+             attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, V8PerWorldBindings] DOMString       textContent
                  setter raises(DOMException);
 
     boolean            isSameNode(in [Optional=DefaultIsUndefined] Node other);
@@ -123,11 +124,11 @@
     boolean contains(in [Optional=DefaultIsUndefined] Node other);
 
     // IE extensions
-    readonly attribute Element          parentElement;
+    readonly attribute [V8PerWorldBindings] Element          parentElement;
 
 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
     // Objective-C extensions
-    readonly attribute boolean          isContentEditable;
+    readonly attribute [V8PerWorldBindings] boolean          isContentEditable;
 
     void inspect();
 #endif /* defined(LANGUAGE_OBJECTIVE_C) */
diff --git a/dom/SecurityPolicyViolationEvent.idl b/dom/SecurityPolicyViolationEvent.idl
new file mode 100644
index 0000000..435707f
--- /dev/null
+++ b/dom/SecurityPolicyViolationEvent.idl
@@ -0,0 +1,37 @@
+/*
+ * 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. 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=CSP_NEXT,
+    ConstructorTemplate=Event,
+] interface SecurityPolicyViolationEvent : Event {
+    [InitializedByEventConstructor] readonly attribute DOMString documentURI;
+    [InitializedByEventConstructor] readonly attribute DOMString referrer;
+    [InitializedByEventConstructor] readonly attribute DOMString blockedURI;
+    [InitializedByEventConstructor] readonly attribute DOMString violatedDirective;
+    [InitializedByEventConstructor] readonly attribute DOMString effectiveDirective;
+    [InitializedByEventConstructor] readonly attribute DOMString originalPolicy;
+    [InitializedByEventConstructor] readonly attribute DOMString sourceFile;
+    [InitializedByEventConstructor] readonly attribute long      lineNumber;
+};
diff --git a/dom/ShadowRoot.idl b/dom/ShadowRoot.idl
index a39ca92..5b35e9f 100644
--- a/dom/ShadowRoot.idl
+++ b/dom/ShadowRoot.idl
@@ -32,8 +32,8 @@
     attribute boolean applyAuthorStyles;
     attribute boolean resetStyleInheritance;
 
-    [TreatNullAs=NullString] attribute DOMString innerHTML
-        setter raises(DOMException);
+    [TreatNullAs=NullString, V8DeliverCustomElementCallbacks]
+    attribute DOMString innerHTML setter raises(DOMException);
 
 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
     Node cloneNode(in [Optional=DefaultIsUndefined] boolean deep) raises(DOMException);
diff --git a/dom/Text.idl b/dom/Text.idl
index da243fc..b8e602b 100644
--- a/dom/Text.idl
+++ b/dom/Text.idl
@@ -16,8 +16,9 @@
  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  * Boston, MA 02110-1301, USA.
  */
-
-interface Text : CharacterData {
+[ 
+    V8SkipVTableValidation,
+] interface Text : CharacterData {
 
     // DOM Level 1
 
@@ -28,5 +29,10 @@
     readonly attribute DOMString       wholeText;
     Text               replaceWholeText(in [Optional=DefaultIsUndefined] DOMString content)
                                         raises(DOMException);
+    // ShadowAware API
+#if defined(ENABLE_SHADOW_DOM) && ENABLE_SHADOW_DOM && defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+    [V8EnabledAtRuntime=shadowDOM, ImplementedAs=insertionParentForBinding, V8PerWorldBindings] readonly attribute Node webkitInsertionParent;
+#endif
+
 };
 
diff --git a/html/HTMLElement.idl b/html/HTMLElement.idl
index bc639b8..8ca3908 100644
--- a/html/HTMLElement.idl
+++ b/html/HTMLElement.idl
@@ -39,7 +39,7 @@
              [Reflect] attribute DOMString accessKey;
 
     // Extensions
-             [TreatNullAs=NullString] attribute DOMString innerHTML
+             [TreatNullAs=NullString, V8DeliverCustomElementCallbacks] attribute DOMString innerHTML
                  setter raises(DOMException);
              [TreatNullAs=NullString] attribute DOMString innerText
                  setter raises(DOMException);
diff --git a/Modules/webaudio/AudioGain.idl b/html/canvas/WebGLCompressedTexturePVRTC.idl
similarity index 71%
rename from Modules/webaudio/AudioGain.idl
rename to html/canvas/WebGLCompressedTexturePVRTC.idl
index 8da7729..7494877 100644
--- a/Modules/webaudio/AudioGain.idl
+++ b/html/canvas/WebGLCompressedTexturePVRTC.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 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
@@ -10,9 +10,6 @@
  * 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
@@ -27,7 +24,14 @@
  */
 
 [
-    Conditional=WEB_AUDIO,
-    JSGenerateToJSObject
-] interface AudioGain : AudioParam {
+    Conditional=WEBGL,
+    JSGenerateIsReachable=ImplContext,
+    OmitConstructor,
+    DoNotCheckConstants
+] interface WebGLCompressedTexturePVRTC {
+    /* Compressed Texture Formats */
+    const unsigned int COMPRESSED_RGB_PVRTC_4BPPV1_IMG  = 0x8C00;
+    const unsigned int COMPRESSED_RGB_PVRTC_2BPPV1_IMG  = 0x8C01;
+    const unsigned int COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02;
+    const unsigned int COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03;
 };
diff --git a/html/shadow/HTMLContentElement.idl b/html/shadow/HTMLContentElement.idl
index b286c48..c6bb613 100644
--- a/html/shadow/HTMLContentElement.idl
+++ b/html/shadow/HTMLContentElement.idl
@@ -26,7 +26,8 @@
 
 [
     Conditional=SHADOW_DOM,
-    V8EnabledAtRuntime=shadowDOM
+    V8EnabledAtRuntime=shadowDOM,
+    V8SkipVTableValidation
 ] interface HTMLContentElement : HTMLElement {
     [Reflect] attribute DOMString select;
     attribute boolean resetStyleInheritance;
diff --git a/html/track/TextTrack.idl b/html/track/TextTrack.idl
index 75da6b3..da355e2 100644
--- a/html/track/TextTrack.idl
+++ b/html/track/TextTrack.idl
@@ -45,6 +45,13 @@
     void removeCue(in TextTrackCue cue)
         raises (DOMException);
 
+#if defined(ENABLE_WEBVTT_REGIONS) && ENABLE_WEBVTT_REGIONS
+    readonly attribute TextTrackRegionList regions;
+    void addRegion(in TextTrackRegion region);
+    void removeRegion(in TextTrackRegion region)
+        raises (DOMException);
+#endif
+
     // EventTarget interface
     void addEventListener(in DOMString type, 
                           in EventListener listener, 
diff --git a/page/Coordinates.idl b/html/track/TextTrackRegionList.idl
similarity index 68%
copy from page/Coordinates.idl
copy to html/track/TextTrackRegionList.idl
index dc64a60..3dca629 100644
--- a/page/Coordinates.idl
+++ b/html/track/TextTrackRegionList.idl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009 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
@@ -10,10 +10,10 @@
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
  *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY 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 INC. OR
+ * 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
@@ -24,14 +24,13 @@
  */
 
 [
-    OmitConstructor,
+    Conditional=VIDEO_TRACK & WEBVTT_REGIONS,
+    V8EnabledAtRuntime=webkitVideoTrack,
+    IndexedGetter,
     ImplementationLacksVTable
-] interface Coordinates {
-    readonly attribute double latitude;
-    readonly attribute double longitude;
-    [Custom] readonly attribute double altitude;
-    readonly attribute double accuracy;
-    [Custom] readonly attribute double altitudeAccuracy;
-    [Custom] readonly attribute double heading;
-    [Custom] readonly attribute double speed;
+] interface TextTrackRegionList {
+    readonly attribute unsigned long length;
+    TextTrackRegion item(in unsigned long index);
+    TextTrackRegion getRegionById(in DOMString id);
 };
+
diff --git a/inspector/InjectedScriptHost.idl b/inspector/InjectedScriptHost.idl
index bec3485..6880f6f 100644
--- a/inspector/InjectedScriptHost.idl
+++ b/inspector/InjectedScriptHost.idl
@@ -46,9 +46,18 @@
     [Custom] Array getInternalProperties(in any object);
     [Custom] Array getEventListeners(in Node node);
 
+    // FIXME: Remove evaluateReturnsEvalFunction once InjectedScriptHost returns eval in evaluate on V8. https://webkit.org/b/113134
+    readonly attribute boolean evaluateReturnsEvalFunction;
+
+#if defined(V8_BINDING) && V8_BINDING
+    [Custom] any evaluate(in DOMString text);
+#else
+    [Custom] readonly attribute any evaluate;
+#endif
+
     [Custom] DOMString databaseId(in any database);
     [Custom] DOMString storageId(in any storage);
-    [Custom] any evaluate(in DOMString text);
+
     // Only declarative scope (local, with and catch) is accepted. Returns undefined. 
     [Custom] any setFunctionVariableValue(in any functionObject, in int scopeIndex, in DOMString variableName, any newValue);
 };
diff --git a/inspector/Inspector.json b/inspector/Inspector.json
index 9cfe6a6..82e1035 100644
--- a/inspector/Inspector.json
+++ b/inspector/Inspector.json
@@ -35,6 +35,10 @@
                 "parameters": [
                     { "name": "reason", "type": "string", "description": "The reason why connection has been terminated." }
                 ]
+            },
+            {
+                "name": "targetCrashed",
+                "description": "Fired when debugging target has crashed"
             }
         ]
     },
@@ -382,14 +386,16 @@
                 "description": "Determines if scripts can be executed in the page.",
                 "returns": [
                     { "name": "result", "type": "string", "enum": ["allowed", "disabled", "forbidden"], "description": "Script execution status: \"allowed\" if scripts can be executed, \"disabled\" if script execution has been disabled through page settings, \"forbidden\" if script execution for the given page is not possible for other reasons." }
-                ]
+                ],
+                "hidden": true
             },
             {
                 "name": "setScriptExecutionDisabled",
                 "description": "Switches script execution in the page.",
                 "parameters": [
                     { "name": "value", "type": "boolean", "description": "Whether script execution should be disabled in the page." }
-                ]
+                ],
+                "hidden": true
             },
             {
                 "name": "setGeolocationOverride",
@@ -398,13 +404,11 @@
                     { "name": "latitude", "type": "number", "optional": true, "description": "Mock longitude"},
                     { "name": "longitude", "type": "number", "optional": true, "description": "Mock latitude"},
                     { "name": "accuracy", "type": "number", "optional": true, "description": "Mock accuracy"}
-                ],
-                "hidden": true
+                ]
             },
             {
                 "name": "clearGeolocationOverride",
-                "description": "Clears the overriden Geolocation Position and Error.",
-                "hidden": true
+                "description": "Clears the overriden Geolocation Position and Error."
             },
             {
                 "name": "canOverrideGeolocation",
@@ -474,14 +478,14 @@
                 "description": "Capture page screenshot.",
                 "returns": [
                     { "name": "data", "type": "string", "description": "Base64-encoded image data (PNG)." }
-                ],
-                "hidden": true
+                ]
             },
             {
                 "name": "handleJavaScriptDialog",
                 "description": "Accepts or dismisses a JavaScript initiated dialog (alert, confirm, prompt, or onbeforeunload).",
                 "parameters": [
-                    { "name": "accept", "type": "boolean", "description": "Whether to accept or dismiss the dialog." }
+                    { "name": "accept", "type": "boolean", "description": "Whether to accept or dismiss the dialog." },
+                    { "name": "promptText", "type": "string", "optional": "true", "description": "The text to enter into the dialog prompt before accepting. Used only if this is a prompt dialog." }
                 ],
                 "hidden": true
             }
@@ -630,7 +634,7 @@
                     { "name": "configurable", "type": "boolean", "description": "True if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object." },
                     { "name": "enumerable", "type": "boolean", "description": "True if this property shows up during enumeration of the properties on the corresponding object." },
                     { "name": "wasThrown", "type": "boolean", "optional": true, "description": "True if the result was thrown during the evaluation." },
-                    { "name": "isOwn", "optional": true, "type": "boolean", "description": "True if the property is owned for the object." }
+                    { "name": "isOwn", "optional": true, "type": "boolean", "description": "True if the property is owned for the object.", "hidden": true }
 
                 ]
             },
@@ -641,7 +645,8 @@
                 "properties": [
                     { "name": "name", "type": "string", "description": "Conventional property name." },
                     { "name": "value", "$ref": "RemoteObject", "optional": true, "description": "The value associated with the property." }
-                ]
+                ],
+                "hidden": true
             },
             {
                 "id": "CallArgument",
@@ -655,8 +660,7 @@
             {
                 "id": "ExecutionContextId",
                 "type": "integer",
-                "description": "Id of an execution context.",
-                "hidden": true
+                "description": "Id of an execution context."
             },
             {
                 "id": "ExecutionContextDescription",
@@ -664,11 +668,10 @@
                 "description": "Description of an isolated world.",
                 "properties": [
                     { "name": "id", "$ref": "ExecutionContextId", "description": "Unique id of the execution context. It can be used to specify in which execution context script evaluation should be performed." },
-                    { "name": "isPageContext", "type": "boolean", "description": "True if this is a context where inpspected web page scripts run. False if it is a content script isolated context." },
-                    { "name": "name", "type": "string", "description": "Human readable name describing given context." },
+                    { "name": "isPageContext", "type": "boolean", "description": "True if this is a context where inpspected web page scripts run. False if it is a content script isolated context.", "hidden": true },
+                    { "name": "name", "type": "string", "description": "Human readable name describing given context.", "hidden": true},
                     { "name": "frameId", "$ref": "Network.FrameId", "description": "Id of the owning frame." }
-                ],
-                "hidden": true
+                ]
             }
 
         ],
@@ -680,7 +683,7 @@
                     { "name": "objectGroup", "type": "string", "optional": true, "description": "Symbolic group name that can be used to release multiple objects." },
                     { "name": "includeCommandLineAPI", "type": "boolean", "optional": true, "description": "Determines whether Command Line API should be available during the evaluation.", "hidden": true },
                     { "name": "doNotPauseOnExceptionsAndMuteConsole", "type": "boolean", "optional": true, "description": "Specifies whether evaluation should stop on exceptions and mute console. Overrides setPauseOnException state.", "hidden": true },
-                    { "name": "contextId", "$ref": "Runtime.ExecutionContextId", "optional": true, "description": "Specifies in which isolated context to perform evaluation. Each content script lives in an isolated context and this parameter may be used to specify one of those contexts. If the parameter is omitted or 0 the evaluation will be performed in the context of the inspected page.", "hidden": true },
+                    { "name": "contextId", "$ref": "Runtime.ExecutionContextId", "optional": true, "description": "Specifies in which isolated context to perform evaluation. Each content script lives in an isolated context and this parameter may be used to specify one of those contexts. If the parameter is omitted or 0 the evaluation will be performed in the context of the inspected page." },
                     { "name": "returnByValue", "type": "boolean", "optional": true, "description": "Whether the result is expected to be a JSON object that should be sent by value." },
                     { "name": "generatePreview", "type": "boolean", "optional": true, "hidden": true, "description": "Whether preview should be generated for the result." }
                 ],
@@ -714,7 +717,7 @@
                 ],
                 "returns": [
                     { "name": "result", "type": "array", "items": { "$ref": "PropertyDescriptor"}, "description": "Object properties." },
-                    { "name": "internalProperties", "optional": true, "type": "array", "items": { "$ref": "InternalPropertyDescriptor"}, "description": "Internal object properties." }
+                    { "name": "internalProperties", "optional": true, "type": "array", "items": { "$ref": "InternalPropertyDescriptor"}, "description": "Internal object properties.", "hidden": true }
                 ],
                 "description": "Returns properties of a given object. Object group of the result is inherited from the target object."
             },
@@ -739,7 +742,6 @@
             },
             {
                 "name": "enable",
-                "hidden": true,
                 "description": "Enables reporting of execution contexts creation by means of <code>executionContextCreated</code> event. When the reporting gets enabled the event will be sent immediately for each existing execution context."
             },
             {
@@ -754,7 +756,6 @@
                 "parameters": [
                     { "name": "context", "$ref": "ExecutionContextDescription", "description": "A newly created execution contex." }
                 ],
-                "hidden": true,
                 "description": "Issued when new execution context is created."
             }
         ]
@@ -831,7 +832,8 @@
                 "name": "addInspectedHeapObject",
                 "parameters": [
                     { "name": "heapObjectId", "type": "integer" }
-                ]
+                ],
+                "hidden": true
             }
         ],
         "events": [
@@ -1408,6 +1410,18 @@
                     { "name": "hasMore", "type": "boolean", "description": "If true, there are more entries to fetch in the given range." }
                 ],
                 "description": "Requests data from object store or index."
+            },
+            {
+                "name": "clearObjectStore",
+                "async": true,
+                "parameters": [
+                    { "name": "securityOrigin", "type": "string", "description": "Security origin." },
+                    { "name": "databaseName", "type": "string", "description": "Database name." },
+                    { "name": "objectStoreName", "type": "string", "description": "Object store name." }
+                ],
+                "returns": [
+                ],
+                "description": "Clears all entries from an object store."
             }
         ]
     },
@@ -1713,17 +1727,17 @@
                     { "name": "children", "type": "array", "optional": true, "items": { "$ref": "Node" }, "description": "Child nodes of this node when requested with children." },
                     { "name": "attributes", "type": "array", "optional": true, "items": { "type": "string" }, "description": "Attributes of the <code>Element</code> node in the form of flat array <code>[name1, value1, name2, value2]</code>." },
                     { "name": "documentURL", "type": "string", "optional": true, "description": "Document URL that <code>Document</code> or <code>FrameOwner</code> node points to." },
-                    { "name": "baseURL", "type": "string", "optional": true, "description": "Base URL that <code>Document</code> or <code>FrameOwner</code> node uses for URL completion." },
+                    { "name": "baseURL", "type": "string", "optional": true, "description": "Base URL that <code>Document</code> or <code>FrameOwner</code> node uses for URL completion.", "hidden": true },
                     { "name": "publicId", "type": "string", "optional": true, "description": "<code>DocumentType</code>'s publicId." },
                     { "name": "systemId", "type": "string", "optional": true, "description": "<code>DocumentType</code>'s systemId." },
                     { "name": "internalSubset", "type": "string", "optional": true, "description": "<code>DocumentType</code>'s internalSubset." },
                     { "name": "xmlVersion", "type": "string", "optional": true, "description": "<code>Document</code>'s XML version in case of XML documents." },
                     { "name": "name", "type": "string", "optional": true, "description": "<code>Attr</code>'s name." },
                     { "name": "value", "type": "string", "optional": true, "description": "<code>Attr</code>'s value." },
-                    { "name": "frameId", "$ref": "Network.FrameId", "optional": true, "description": "Frame ID for frame owner elements." },
+                    { "name": "frameId", "$ref": "Network.FrameId", "optional": true, "description": "Frame ID for frame owner elements.", "hidden": true },
                     { "name": "contentDocument", "$ref": "Node", "optional": true, "description": "Content document for frame owner elements." },
-                    { "name": "shadowRoots", "type": "array", "optional": true, "items": { "$ref": "Node" }, "description": "Shadow root list for given element host." },
-                    { "name": "templateContent", "$ref": "Node", "optional": true, "description": "Content document fragment for template elements" }
+                    { "name": "shadowRoots", "type": "array", "optional": true, "items": { "$ref": "Node" }, "description": "Shadow root list for given element host.", "hidden": true },
+                    { "name": "templateContent", "$ref": "Node", "optional": true, "description": "Content document fragment for template elements", "hidden": true }
                 ],
                 "description": "DOM interaction is implemented in terms of mirror objects that represent the actual DOM nodes. DOMNode is a base node mirror type."
             },
@@ -1779,7 +1793,7 @@
                 "name": "requestChildNodes",
                 "parameters": [
                     { "name": "nodeId", "$ref": "NodeId", "description": "Id of the node to get children for." },
-                    { "name": "depth", "type": "integer", "optional": true, "description": "The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the entire subtree or provide an integer larger than 0." }
+                    { "name": "depth", "type": "integer", "optional": true, "description": "The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the entire subtree or provide an integer larger than 0.", "hidden": true }
                 ],
                 "description": "Requests that children of the node with given id are returned to the caller in form of <code>setChildNodes</code> events where not only immediate children are retrieved, but all children down to the specified depth."
             },
@@ -1956,7 +1970,7 @@
                 "parameters": [
                     { "name": "highlightConfig", "$ref": "HighlightConfig",  "description": "A descriptor for the highlight appearance." },
                     { "name": "nodeId", "$ref": "NodeId", "optional": true, "description": "Identifier of the node to highlight." },
-                    { "name": "objectId", "$ref": "Runtime.RemoteObjectId", "optional": true, "description": "JavaScript object id of the node to be highlighted." }
+                    { "name": "objectId", "$ref": "Runtime.RemoteObjectId", "optional": true, "description": "JavaScript object id of the node to be highlighted.", "hidden": true }
                 ],
                 "description": "Highlights DOM node with given id or with the given JavaScript object wrapper. Either nodeId or objectId must be specified."
             },
@@ -2588,7 +2602,7 @@
                 "type": "object",
                 "properties": [
                     { "name": "type", "type": "string", "description": "Event type." },
-                    { "name": "thread", "type": "string", "optional": true, "description": "If present, identifies the thread that produced the event." },
+                    { "name": "thread", "type": "string", "optional": true, "description": "If present, identifies the thread that produced the event.", "hidden": true },
                     { "name": "data", "type": "object", "description": "Event data." },
                     { "name": "children", "type": "array", "optional": true, "items": { "$ref": "TimelineEvent" }, "description": "Nested records." }
                 ],
@@ -2599,7 +2613,10 @@
             {
                 "name": "start",
                 "parameters": [
-                    { "name": "maxCallStackDepth", "optional": true, "type": "integer", "description": "Samples JavaScript stack traces up to <code>maxCallStackDepth</code>, defaults to 5." }
+                    { "name": "maxCallStackDepth", "optional": true, "type": "integer", "description": "Samples JavaScript stack traces up to <code>maxCallStackDepth</code>, defaults to 5." },
+                    { "name": "includeDomCounters", "optional": true, "type": "boolean", "hidden": true, "description": "Whether DOM counters data should be included into timeline events." },
+                    { "name": "includeNativeMemoryStatistics", "optional": true, "type": "boolean", "hidden": true, "description": "Whether native memory usage statistics should be reported as part of timeline events." }
+
                 ],
                 "description": "Starts capturing instrumentation events."
             },
@@ -2608,22 +2625,6 @@
                 "description": "Stops capturing instrumentation events."
             },
             {
-                "name": "setIncludeDomCounters",
-                "parameters": [
-                    { "name": "enabled", "type": "boolean", "description": "Whether DOM counters data should be included into timeline events." }
-                ],
-                "hidden": true,
-                "description": "Controls if DOM counters should be send as part of timeline events."
-            },
-            {
-                "name": "setIncludeNativeMemoryStatistics",
-                "parameters": [
-                    { "name": "enabled", "type": "boolean", "description": "Whether native memory usage statistics should be reported as part of timeline events." }
-                ],
-                "hidden": true,
-                "description": "Controls whether statistics on native memory usage is sent with timeline events."
-            },
-            {
                 "name": "supportsFrameInstrumentation",
                 "returns": [
                     { "name": "result", "type": "boolean", "description": "True if timeline supports frame instrumentation." }
@@ -2962,7 +2963,7 @@
                     { "name": "endColumn", "type": "integer", "description": "Length of the last line of the script." },
                     { "name": "isContentScript", "type": "boolean", "optional": true, "description": "Determines whether this script is a user extension script." },
                     { "name": "sourceMapURL", "type": "string", "optional": true, "description": "URL of source map associated with script (if any)." },
-                    { "name": "hasSourceURL", "type": "boolean", "optional": true, "description": "True, if this script has sourceURL." }
+                    { "name": "hasSourceURL", "type": "boolean", "optional": true, "description": "True, if this script has sourceURL.", "hidden": true }
                 ],
                 "description": "Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger."
             },
@@ -3102,7 +3103,8 @@
                     { "name": "numberOfCalls", "type": "integer", "description": "Number of calls." },
                     { "name": "visible", "type": "boolean", "description": "Visibility." },
                     { "name": "callUID", "type": "number", "description": "Call UID." },
-                    { "name": "children", "type": "array", "items": { "$ref": "CPUProfileNode" }, "description": "Child nodes." }
+                    { "name": "children", "type": "array", "items": { "$ref": "CPUProfileNode" }, "description": "Child nodes." },
+                    { "name": "id", "optional": true, "type": "integer", "description": "Unique id of the node." }
                 ]
             },
             {
@@ -3111,7 +3113,8 @@
                 "description": "Profile.",
                 "properties": [
                     { "name": "head", "$ref": "CPUProfileNode", "optional": true },
-                    { "name": "idleTime", "type": "number", "optional": true }
+                    { "name": "idleTime", "type": "number", "optional": true },
+                    { "name": "samples", "optional": true, "type": "array", "items": { "type": "integer" }, "description": "Ids of samples top nodes." }
                 ]
             },
             {
@@ -3605,7 +3608,6 @@
     },
     {
         "domain": "Input",
-        "hidden": true,
         "types": [],
         "commands": [
             {
diff --git a/inspector/compile-front-end.py b/inspector/compile-front-end.py
index cdc70c9..7e10abc 100755
--- a/inspector/compile-front-end.py
+++ b/inspector/compile-front-end.py
@@ -65,6 +65,7 @@
             "CompilerScriptMapping.js",
             "ConsoleModel.js",
             "ContentProvider.js",
+            "ContentProviderBasedProjectDelegate.js",
             "ContentProviders.js",
             "CookieParser.js",
             "CSSMetadata.js",
@@ -134,6 +135,7 @@
             "HelpScreen.js",
             "InspectorView.js",
             "KeyboardShortcut.js",
+            "OverviewGrid.js",
             "Panel.js",
             "PanelEnablerView.js",
             "Placard.js",
diff --git a/inspector/front-end/ace/LICENSE.txt b/inspector/front-end/ace/LICENSE.txt
new file mode 100644
index 0000000..4760be2
--- /dev/null
+++ b/inspector/front-end/ace/LICENSE.txt
@@ -0,0 +1,24 @@
+Copyright (c) 2010, Ajax.org B.V.
+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 Ajax.org B.V. 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 AJAX.ORG B.V. BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/page/DOMWindow.idl b/page/DOMWindow.idl
index 98374cc..d06afe0 100644
--- a/page/DOMWindow.idl
+++ b/page/DOMWindow.idl
@@ -147,8 +147,8 @@
     readonly attribute StyleMedia styleMedia;
 
     // DOM Level 2 Style Interface
-    CSSStyleDeclaration getComputedStyle(in [Optional=DefaultIsUndefined] Element element,
-                                         in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString pseudoElement);
+    [V8PerWorldBindings] CSSStyleDeclaration getComputedStyle(in [Optional=DefaultIsUndefined] Element element,
+                                                              in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString pseudoElement);
 
     // WebKit extensions
 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
@@ -570,6 +570,7 @@
     [Conditional=WEBGL] attribute WebGLContextEventConstructor WebGLContextEvent;
     [Conditional=PROXIMITY_EVENTS] attribute DeviceProximityEventConstructor DeviceProximityEvent;
     [Conditional=REQUEST_AUTOCOMPLETE] attribute AutocompleteErrorEventConstructor AutocompleteErrorEvent;
+    [Conditional=CSP_NEXT, V8EnabledAtRuntime=experimentalContentSecurityPolicyFeatures] attribute SecurityPolicyViolationEventConstructor SecurityPolicyViolationEvent;
 
     attribute EventExceptionConstructor EventException;
 
diff --git a/testing/Internals.idl b/testing/Internals.idl
index 461afe5..6ed48e4 100644
--- a/testing/Internals.idl
+++ b/testing/Internals.idl
@@ -167,6 +167,7 @@
     boolean hasSpellingMarker(in Document document, in long from, in long length) raises (DOMException);
     boolean hasGrammarMarker(in Document document, in long from, in long length) raises (DOMException);
     boolean hasAutocorrectedMarker(in Document document, in long from, in long length) raises (DOMException);
+    void setContinuousSpellCheckingEnabled(in boolean enabled) raises (DOMException);
 
     unsigned long numberOfScrollableAreas(in Document document) raises (DOMException);
 
