[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 15:49:07 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 6000d4c14a256f18950ad812c3f085e263436e24
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Nov 12 22:51:21 2010 +0000

    2010-11-12  James Simonsen  <simonjam at chromium.org>
    
            Reviewed by Darin Fisher.
    
            [Web Timing] Rename interfaces:
            - Navigation -> PerformanceNavigation
            - Timing -> PerformanceTiming
            https://bugs.webkit.org/show_bug.cgi?id=48919
    
            * fast/dom/Window/window-properties-performance-expected.txt: Class names changed.
    2010-11-12  James Simonsen  <simonjam at chromium.org>
    
            Reviewed by Darin Fisher.
    
            [Web Timing] Rename interfaces:
            - Navigation -> PerformanceNavigation
            - Timing -> PerformanceTiming
            https://bugs.webkit.org/show_bug.cgi?id=48919
    
            * DerivedSources.cpp:
            * DerivedSources.make:
            * GNUmakefile.am:
            * WebCore.gypi:
            * WebCore.vcproj/WebCore.vcproj:
            * WebCore.xcodeproj/project.pbxproj:
            * page/Performance.cpp:
            (WebCore::Performance::navigation):
            (WebCore::Performance::timing):
            * page/Performance.h:
            * page/Performance.idl:
            * page/PerformanceNavigation.cpp: Renamed from WebCore/page/Navigation.cpp.
            (WebCore::PerformanceNavigation::PerformanceNavigation):
            (WebCore::PerformanceNavigation::frame):
            (WebCore::PerformanceNavigation::disconnectFrame):
            (WebCore::PerformanceNavigation::type):
            (WebCore::PerformanceNavigation::redirectCount):
            * page/PerformanceNavigation.h: Renamed from WebCore/page/Navigation.h.
            (WebCore::PerformanceNavigation::create):
            * page/PerformanceNavigation.idl: Renamed from WebCore/page/Navigation.idl.
            * page/PerformanceTiming.cpp: Renamed from WebCore/page/Timing.cpp.
            (WebCore::toIntegerMilliseconds):
            (WebCore::getPossiblySkewedTimeInKnownRange):
            (WebCore::PerformanceTiming::PerformanceTiming):
            (WebCore::PerformanceTiming::frame):
            (WebCore::PerformanceTiming::disconnectFrame):
            (WebCore::PerformanceTiming::navigationStart):
            (WebCore::PerformanceTiming::unloadEventEnd):
            (WebCore::PerformanceTiming::redirectStart):
            (WebCore::PerformanceTiming::redirectEnd):
            (WebCore::PerformanceTiming::fetchStart):
            (WebCore::PerformanceTiming::domainLookupStart):
            (WebCore::PerformanceTiming::domainLookupEnd):
            (WebCore::PerformanceTiming::connectStart):
            (WebCore::PerformanceTiming::connectEnd):
            (WebCore::PerformanceTiming::requestStart):
            (WebCore::PerformanceTiming::requestEnd):
            (WebCore::PerformanceTiming::responseStart):
            (WebCore::PerformanceTiming::responseEnd):
            (WebCore::PerformanceTiming::domLoading):
            (WebCore::PerformanceTiming::domInteractive):
            (WebCore::PerformanceTiming::domContentLoaded):
            (WebCore::PerformanceTiming::domComplete):
            (WebCore::PerformanceTiming::loadEventStart):
            (WebCore::PerformanceTiming::loadEventEnd):
            (WebCore::PerformanceTiming::documentLoader):
            (WebCore::PerformanceTiming::documentTiming):
            (WebCore::PerformanceTiming::documentLoadTiming):
            (WebCore::PerformanceTiming::resourceLoadTiming):
            (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
            * page/PerformanceTiming.h: Renamed from WebCore/page/Timing.h.
            (WebCore::PerformanceTiming::create):
            * page/PerformanceTiming.idl: Renamed from WebCore/page/Timing.idl.
    2010-11-12  James Simonsen  <simonjam at chromium.org>
    
            Reviewed by Darin Fisher.
    
            [Web Timing] Rename interfaces:
            - Navigation -> PerformanceNavigation
            - Timing -> PerformanceTiming
            https://bugs.webkit.org/show_bug.cgi?id=48919
    
            * src/WebPerformance.cpp:
            (WebKit::WebPerformance::navigationType):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71951 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 6f23589..7030a3e 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2010-11-12  James Simonsen  <simonjam at chromium.org>
+
+        Reviewed by Darin Fisher.
+
+        [Web Timing] Rename interfaces:
+        - Navigation -> PerformanceNavigation
+        - Timing -> PerformanceTiming
+        https://bugs.webkit.org/show_bug.cgi?id=48919
+
+        * fast/dom/Window/window-properties-performance-expected.txt: Class names changed.
+
 2010-11-12  Mihai Parparita  <mihaip at chromium.org>
 
         Unreviewed Chromium expectations update.
diff --git a/LayoutTests/fast/dom/Window/window-properties-performance-expected.txt b/LayoutTests/fast/dom/Window/window-properties-performance-expected.txt
index 1c52f44..8d2229d 100644
--- a/LayoutTests/fast/dom/Window/window-properties-performance-expected.txt
+++ b/LayoutTests/fast/dom/Window/window-properties-performance-expected.txt
@@ -4,13 +4,13 @@ window.webkitPerformance [object Performance]
 window.webkitPerformance.memory [object MemoryInfo]
 window.webkitPerformance.memory.totalJSHeapSize [number]
 window.webkitPerformance.memory.usedJSHeapSize [number]
-window.webkitPerformance.navigation [object Navigation]
+window.webkitPerformance.navigation [object PerformanceNavigation]
 window.webkitPerformance.navigation.BACK_FORWARD [number]
 window.webkitPerformance.navigation.NAVIGATE [number]
 window.webkitPerformance.navigation.RELOAD [number]
 window.webkitPerformance.navigation.redirectCount [number]
 window.webkitPerformance.navigation.type [number]
-window.webkitPerformance.timing [object Timing]
+window.webkitPerformance.timing [object PerformanceTiming]
 window.webkitPerformance.timing.connectEnd [number]
 window.webkitPerformance.timing.connectStart [number]
 window.webkitPerformance.timing.domComplete [number]
diff --git a/WebCore/Android.mk b/WebCore/Android.mk
index 923fdef..b64e32b 100644
--- a/WebCore/Android.mk
+++ b/WebCore/Android.mk
@@ -418,7 +418,6 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
 	page/History.cpp \
 	page/Location.cpp \
 	page/MouseEventWithHitTestResults.cpp \
-	page/Navigation.cpp \
 	page/Navigator.cpp \
 	page/NavigatorBase.cpp \
 	page/OriginAccessEntry.cpp \
@@ -426,6 +425,8 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
 	page/PageGroup.cpp \
 	page/PageGroupLoadDeferrer.cpp \
 	page/Performance.cpp \
+	page/PerformanceNavigation.cpp \
+	page/PerformanceTiming.cpp \
 	page/PluginHalter.cpp \
 	page/PrintContext.cpp \
 	page/Screen.cpp \
@@ -435,7 +436,6 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
 	page/SpeechInput.cpp \
 	page/SpeechInputResult.cpp \
 	page/SuspendableTimer.cpp \
-	page/Timing.cpp \
 	page/UserContentURLPattern.cpp \
 	page/WindowFeatures.cpp \
 	page/WorkerNavigator.cpp \
diff --git a/WebCore/CMakeLists.txt b/WebCore/CMakeLists.txt
index 7a2f98b..d5b6908 100644
--- a/WebCore/CMakeLists.txt
+++ b/WebCore/CMakeLists.txt
@@ -329,12 +329,12 @@ SET(WebCore_IDL_FILES
     page/History.idl
     page/Location.idl
     page/MemoryInfo.idl
-    page/Navigation.idl
     page/Navigator.idl
     page/Performance.idl
+    page/PerformanceNavigation.idl
+    page/PerformanceTiming.idl
     page/PositionError.idl
     page/Screen.idl
-    page/Timing.idl
     page/WebKitPoint.idl
     page/WorkerNavigator.idl
 
@@ -1225,7 +1225,6 @@ SET(WebCore_SOURCES
     page/Location.cpp
     page/MemoryInfo.cpp
     page/MouseEventWithHitTestResults.cpp
-    page/Navigation.cpp
     page/Navigator.cpp
     page/NavigatorBase.cpp
     page/OriginAccessEntry.cpp
@@ -1233,6 +1232,8 @@ SET(WebCore_SOURCES
     page/PageGroup.cpp
     page/PageGroupLoadDeferrer.cpp
     page/Performance.cpp
+    page/PerformanceNavigation.cpp
+    page/PerformanceTiming.cpp
     page/PluginHalter.cpp
     page/PrintContext.cpp
     page/Screen.cpp
@@ -1240,7 +1241,6 @@ SET(WebCore_SOURCES
     page/Settings.cpp
     page/SpatialNavigation.cpp
     page/SuspendableTimer.cpp
-    page/Timing.cpp
     page/UserContentURLPattern.cpp
     page/WindowFeatures.cpp
     page/WorkerNavigator.cpp
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index dcbd910..3d709f0 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,66 @@
+2010-11-12  James Simonsen  <simonjam at chromium.org>
+
+        Reviewed by Darin Fisher.
+
+        [Web Timing] Rename interfaces:
+        - Navigation -> PerformanceNavigation
+        - Timing -> PerformanceTiming
+        https://bugs.webkit.org/show_bug.cgi?id=48919
+
+        * DerivedSources.cpp:
+        * DerivedSources.make:
+        * GNUmakefile.am:
+        * WebCore.gypi:
+        * WebCore.vcproj/WebCore.vcproj:
+        * WebCore.xcodeproj/project.pbxproj:
+        * page/Performance.cpp:
+        (WebCore::Performance::navigation):
+        (WebCore::Performance::timing):
+        * page/Performance.h:
+        * page/Performance.idl:
+        * page/PerformanceNavigation.cpp: Renamed from WebCore/page/Navigation.cpp.
+        (WebCore::PerformanceNavigation::PerformanceNavigation):
+        (WebCore::PerformanceNavigation::frame):
+        (WebCore::PerformanceNavigation::disconnectFrame):
+        (WebCore::PerformanceNavigation::type):
+        (WebCore::PerformanceNavigation::redirectCount):
+        * page/PerformanceNavigation.h: Renamed from WebCore/page/Navigation.h.
+        (WebCore::PerformanceNavigation::create):
+        * page/PerformanceNavigation.idl: Renamed from WebCore/page/Navigation.idl.
+        * page/PerformanceTiming.cpp: Renamed from WebCore/page/Timing.cpp.
+        (WebCore::toIntegerMilliseconds):
+        (WebCore::getPossiblySkewedTimeInKnownRange):
+        (WebCore::PerformanceTiming::PerformanceTiming):
+        (WebCore::PerformanceTiming::frame):
+        (WebCore::PerformanceTiming::disconnectFrame):
+        (WebCore::PerformanceTiming::navigationStart):
+        (WebCore::PerformanceTiming::unloadEventEnd):
+        (WebCore::PerformanceTiming::redirectStart):
+        (WebCore::PerformanceTiming::redirectEnd):
+        (WebCore::PerformanceTiming::fetchStart):
+        (WebCore::PerformanceTiming::domainLookupStart):
+        (WebCore::PerformanceTiming::domainLookupEnd):
+        (WebCore::PerformanceTiming::connectStart):
+        (WebCore::PerformanceTiming::connectEnd):
+        (WebCore::PerformanceTiming::requestStart):
+        (WebCore::PerformanceTiming::requestEnd):
+        (WebCore::PerformanceTiming::responseStart):
+        (WebCore::PerformanceTiming::responseEnd):
+        (WebCore::PerformanceTiming::domLoading):
+        (WebCore::PerformanceTiming::domInteractive):
+        (WebCore::PerformanceTiming::domContentLoaded):
+        (WebCore::PerformanceTiming::domComplete):
+        (WebCore::PerformanceTiming::loadEventStart):
+        (WebCore::PerformanceTiming::loadEventEnd):
+        (WebCore::PerformanceTiming::documentLoader):
+        (WebCore::PerformanceTiming::documentTiming):
+        (WebCore::PerformanceTiming::documentLoadTiming):
+        (WebCore::PerformanceTiming::resourceLoadTiming):
+        (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
+        * page/PerformanceTiming.h: Renamed from WebCore/page/Timing.h.
+        (WebCore::PerformanceTiming::create):
+        * page/PerformanceTiming.idl: Renamed from WebCore/page/Timing.idl.
+
 2010-11-12  Eric Carlson  <eric.carlson at apple.com>
 
         Reviewed by Simon Fraser.
diff --git a/WebCore/DerivedSources.cpp b/WebCore/DerivedSources.cpp
index ea8689c..8c95d25 100644
--- a/WebCore/DerivedSources.cpp
+++ b/WebCore/DerivedSources.cpp
@@ -235,7 +235,6 @@
 #include "JSMouseEvent.cpp"
 #include "JSMutationEvent.cpp"
 #include "JSNamedNodeMap.cpp"
-#include "JSNavigation.cpp"
 #include "JSNavigator.cpp"
 #include "JSNode.cpp"
 #include "JSNodeFilter.cpp"
@@ -247,6 +246,8 @@
 #include "JSOverflowEvent.cpp"
 #include "JSPageTransitionEvent.cpp"
 #include "JSPerformance.cpp"
+#include "JSPerformanceNavigation.cpp"
+#include "JSPerformanceTiming.cpp"
 #include "JSPopStateEvent.cpp"
 #include "JSPositionError.cpp"
 #include "JSProcessingInstruction.cpp"
@@ -415,7 +416,6 @@
 #include "JSTextEvent.cpp"
 #include "JSTextMetrics.cpp"
 #include "JSTimeRanges.cpp"
-#include "JSTiming.cpp"
 #include "JSTouch.cpp"
 #include "JSTouchEvent.cpp"
 #include "JSTouchList.cpp"
diff --git a/WebCore/DerivedSources.make b/WebCore/DerivedSources.make
index 255325e..b62f830 100644
--- a/WebCore/DerivedSources.make
+++ b/WebCore/DerivedSources.make
@@ -279,7 +279,6 @@ DOM_CLASSES = \
     MouseEvent \
     MutationEvent \
     NamedNodeMap \
-    Navigation \
     Navigator \
     Node \
     NodeFilter \
@@ -291,6 +290,8 @@ DOM_CLASSES = \
     OverflowEvent \
     PageTransitionEvent \
     Performance \
+    PerformanceNavigation \
+    PerformanceTiming \
     PopStateEvent \
     PositionError \
     ProcessingInstruction \
@@ -470,7 +471,6 @@ DOM_CLASSES = \
     TextEvent \
     TextMetrics \
     TimeRanges \
-    Timing \
     Touch \
     TouchEvent \
     TouchList \
diff --git a/WebCore/GNUmakefile.am b/WebCore/GNUmakefile.am
index a5ec07c..c8714bb 100644
--- a/WebCore/GNUmakefile.am
+++ b/WebCore/GNUmakefile.am
@@ -447,8 +447,6 @@ webcore_built_sources += \
 	DerivedSources/WebCore/JSMutationEvent.h \
 	DerivedSources/WebCore/JSNamedNodeMap.cpp \
 	DerivedSources/WebCore/JSNamedNodeMap.h \
-	DerivedSources/WebCore/JSNavigation.cpp \
-	DerivedSources/WebCore/JSNavigation.h \
 	DerivedSources/WebCore/JSNavigator.cpp \
 	DerivedSources/WebCore/JSNavigator.h \
 	DerivedSources/WebCore/JSNode.cpp \
@@ -471,6 +469,10 @@ webcore_built_sources += \
 	DerivedSources/WebCore/JSPageTransitionEvent.h \
 	DerivedSources/WebCore/JSPerformance.cpp \
 	DerivedSources/WebCore/JSPerformance.h \
+	DerivedSources/WebCore/JSPerformanceNavigation.cpp \
+	DerivedSources/WebCore/JSPerformanceNavigation.h \
+	DerivedSources/WebCore/JSPerformanceTiming.cpp \
+	DerivedSources/WebCore/JSPerformanceTiming.h \
 	DerivedSources/WebCore/JSPopStateEvent.cpp \
 	DerivedSources/WebCore/JSPopStateEvent.h \
 	DerivedSources/WebCore/JSPositionError.cpp \
@@ -512,8 +514,6 @@ webcore_built_sources += \
 	DerivedSources/WebCore/JSTextMetrics.h \
 	DerivedSources/WebCore/JSTimeRanges.cpp \
 	DerivedSources/WebCore/JSTimeRanges.h \
-	DerivedSources/WebCore/JSTiming.cpp \
-	DerivedSources/WebCore/JSTiming.h \
 	DerivedSources/WebCore/JSTouch.cpp \
 	DerivedSources/WebCore/JSTouchEvent.cpp \
 	DerivedSources/WebCore/JSTouchEvent.h \
@@ -2128,8 +2128,6 @@ webcore_sources += \
 	WebCore/page/MemoryInfo.h \
 	WebCore/page/MouseEventWithHitTestResults.cpp \
 	WebCore/page/MouseEventWithHitTestResults.h \
-	WebCore/page/Navigation.cpp \
-	WebCore/page/Navigation.h \
 	WebCore/page/NavigatorBase.cpp \
 	WebCore/page/NavigatorBase.h \
 	WebCore/page/Navigator.cpp \
@@ -2144,6 +2142,10 @@ webcore_sources += \
 	WebCore/page/Page.h \
 	WebCore/page/Performance.cpp \
 	WebCore/page/Performance.h \
+	WebCore/page/PerformanceNavigation.cpp \
+	WebCore/page/PerformanceNavigation.h \
+	WebCore/page/PerformanceTiming.cpp \
+	WebCore/page/PerformanceTiming.h \
 	WebCore/page/PluginHalterClient.h \
 	WebCore/page/PluginHalter.cpp \
 	WebCore/page/PluginHalter.h \
@@ -2170,8 +2172,6 @@ webcore_sources += \
 	WebCore/page/SpeechInputResult.h \
 	WebCore/page/SuspendableTimer.cpp \
 	WebCore/page/SuspendableTimer.h \
-	WebCore/page/Timing.cpp \
-	WebCore/page/Timing.h \
 	WebCore/page/UserContentTypes.h \
 	WebCore/page/UserContentURLPattern.cpp \
 	WebCore/page/UserContentURLPattern.h \
diff --git a/WebCore/WebCore.gypi b/WebCore/WebCore.gypi
index 6e414ec..75455ed 100644
--- a/WebCore/WebCore.gypi
+++ b/WebCore/WebCore.gypi
@@ -246,12 +246,12 @@
             'page/History.idl',
             'page/Location.idl',
             'page/MemoryInfo.idl',
-            'page/Navigation.idl',
             'page/Navigator.idl',
             'page/Performance.idl',
+            'page/PerformanceNavigation.idl',
+            'page/PerformanceTiming.idl',
             'page/PositionError.idl',
             'page/Screen.idl',
-            'page/Timing.idl',
             'page/WebKitPoint.idl',
             'page/WorkerNavigator.idl',
             'plugins/DOMMimeType.idl',
@@ -2261,8 +2261,6 @@
             'page/MemoryInfo.h',
             'page/MouseEventWithHitTestResults.cpp',
             'page/MouseEventWithHitTestResults.h',
-            'page/Navigation.cpp',
-            'page/Navigation.h',
             'page/Navigator.cpp',
             'page/Navigator.h',
             'page/NavigatorBase.cpp',
@@ -2277,6 +2275,10 @@
             'page/PageGroupLoadDeferrer.h',
             'page/Performance.cpp',
             'page/Performance.h',
+            'page/PerformanceNavigation.cpp',
+            'page/PerformanceNavigation.h',
+            'page/PerformanceTiming.cpp',
+            'page/PerformanceTiming.h',
             'page/PluginHalter.cpp',
             'page/PluginHalter.h',
             'page/PluginHalterClient.h',
@@ -2303,8 +2305,6 @@
             'page/SpeechInputResult.h',
             'page/SuspendableTimer.cpp',
             'page/SuspendableTimer.h',
-            'page/Timing.cpp',
-            'page/Timing.h',
             'page/UserContentURLPattern.cpp',
             'page/UserContentURLPattern.h',
             'page/UserContentTypes.h',
diff --git a/WebCore/WebCore.pri b/WebCore/WebCore.pri
index 9d9906a..cc0393c 100644
--- a/WebCore/WebCore.pri
+++ b/WebCore/WebCore.pri
@@ -307,12 +307,12 @@ IDL_BINDINGS += \
     page/History.idl \
     page/Location.idl \
     page/MemoryInfo.idl \
-    page/Navigation.idl \
     page/Navigator.idl \
     page/Performance.idl \
+    page/PerformanceNavigation.idl \
+    page/PerformanceTiming.idl \
     page/PositionError.idl \
     page/Screen.idl \
-    page/Timing.idl \
     page/WebKitPoint.idl \
     page/WorkerNavigator.idl \
     plugins/DOMPlugin.idl \
diff --git a/WebCore/WebCore.pro b/WebCore/WebCore.pro
index 23128d2..84e2f2e 100644
--- a/WebCore/WebCore.pro
+++ b/WebCore/WebCore.pro
@@ -1090,7 +1090,6 @@ SOURCES += \
     page/DOMSelection.cpp \
     page/DOMTimer.cpp \
     page/DOMWindow.cpp \
-    page/Navigation.cpp \
     page/Navigator.cpp \
     page/NavigatorBase.cpp \
     page/DragController.cpp \
@@ -1113,6 +1112,8 @@ SOURCES += \
     page/PageGroup.cpp \
     page/PageGroupLoadDeferrer.cpp \
     page/Performance.cpp \
+    page/PerformanceNavigation.cpp \
+    page/PerformanceTiming.cpp \
     page/PluginHalter.cpp \
     page/PrintContext.cpp \
     page/SecurityOrigin.cpp \
@@ -1120,7 +1121,6 @@ SOURCES += \
     page/Settings.cpp \
     page/SpatialNavigation.cpp \
     page/SuspendableTimer.cpp \
-    page/Timing.cpp \
     page/UserContentURLPattern.cpp \
     page/WindowFeatures.cpp \
     page/XSSAuditor.cpp \
diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj
index 7af4af8..8f5323b 100644
--- a/WebCore/WebCore.vcproj/WebCore.vcproj
+++ b/WebCore/WebCore.vcproj/WebCore.vcproj
@@ -10692,7 +10692,7 @@
 				>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNavigation.cpp"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNavigator.cpp"
 				>
 				<FileConfiguration
 					Name="Debug|Win32"
@@ -10744,11 +10744,11 @@
 				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNavigation.h"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNavigator.h"
 				>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNavigator.cpp"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNode.cpp"
 				>
 				<FileConfiguration
 					Name="Debug|Win32"
@@ -10800,11 +10800,11 @@
 				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNavigator.h"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNode.h"
 				>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNode.cpp"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNodeFilter.cpp"
 				>
 				<FileConfiguration
 					Name="Debug|Win32"
@@ -10856,11 +10856,11 @@
 				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNode.h"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNodeFilter.h"
 				>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNodeFilter.cpp"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNodeIterator.cpp"
 				>
 				<FileConfiguration
 					Name="Debug|Win32"
@@ -10912,11 +10912,11 @@
 				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNodeFilter.h"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNodeIterator.h"
 				>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNodeIterator.cpp"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNodeList.cpp"
 				>
 				<FileConfiguration
 					Name="Debug|Win32"
@@ -10968,11 +10968,11 @@
 				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNodeIterator.h"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNodeList.h"
 				>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNodeList.cpp"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNotation.cpp"
 				>
 				<FileConfiguration
 					Name="Debug|Win32"
@@ -11024,11 +11024,11 @@
 				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNodeList.h"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNotation.h"
 				>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNotation.cpp"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNotification.cpp"
 				>
 				<FileConfiguration
 					Name="Debug|Win32"
@@ -11080,11 +11080,11 @@
 				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNotation.h"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNotification.h"
 				>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNotification.cpp"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNotificationCenter.cpp"
 				>
 				<FileConfiguration
 					Name="Debug|Win32"
@@ -11136,11 +11136,11 @@
 				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNotification.h"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNotificationCenter.h"
 				>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNotificationCenter.cpp"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSOverflowEvent.cpp"
 				>
 				<FileConfiguration
 					Name="Debug|Win32"
@@ -11192,11 +11192,11 @@
 				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNotificationCenter.h"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSOverflowEvent.h"
 				>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSOverflowEvent.cpp"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPageTransitionEvent.cpp"
 				>
 				<FileConfiguration
 					Name="Debug|Win32"
@@ -11248,11 +11248,11 @@
 				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSOverflowEvent.h"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPageTransitionEvent.h"
 				>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPageTransitionEvent.cpp"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPerformance.cpp"
 				>
 				<FileConfiguration
 					Name="Debug|Win32"
@@ -11304,11 +11304,11 @@
 				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPageTransitionEvent.h"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPerformance.h"
 				>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPerformance.cpp"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPerformanceNavigation.cpp"
 				>
 				<FileConfiguration
 					Name="Debug|Win32"
@@ -11360,7 +11360,63 @@
 				</FileConfiguration>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPerformance.h"
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPerformanceNavigation.h"
+				>
+			</File>
+			<File
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPerformanceTiming.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug_Internal|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug_Cairo|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release_Cairo|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug_All|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPerformanceTiming.h"
 				>
 			</File>
 			<File
@@ -20276,62 +20332,6 @@
 				>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSTiming.cpp"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug_Internal|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug_Cairo|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release_Cairo|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug_All|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSTiming.h"
-				>
-			</File>
-			<File
 				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSTreeWalker.cpp"
 				>
 				<FileConfiguration
@@ -23480,14 +23480,6 @@
 				>
 			</File>
 			<File
-				RelativePath="..\page\Navigation.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\page\Navigation.h"
-				>
-			</File>
-			<File
 				RelativePath="..\page\Navigator.cpp"
 				>
 			</File>
@@ -23540,6 +23532,22 @@
 				>
 			</File>
 			<File
+				RelativePath="..\page\PerformanceNavigation.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\page\PerformanceNavigation.h"
+				>
+			</File>
+			<File
+				RelativePath="..\page\PerformanceTiming.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\page\PerformanceTiming.h"
+				>
+			</File>
+			<File
 				RelativePath="..\page\PluginHalter.cpp"
 				>
 			</File>
@@ -23632,14 +23640,6 @@
 				>
 			</File>
 			<File
-				RelativePath="..\page\Timing.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\page\Timing.h"
-				>
-			</File>
-			<File
 				RelativePath="..\page\UserContentURLPattern.cpp"
 				>
 			</File>
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index b19fbfb..78a9a90 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -2641,17 +2641,17 @@
 		8A81BF8511DCFD9000DA2B98 /* ResourceLoadTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A81BF8411DCFD9000DA2B98 /* ResourceLoadTiming.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		8A844D0411D3C18E0014065C /* Performance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A844D0111D3C18E0014065C /* Performance.cpp */; };
 		8A844D0511D3C18E0014065C /* Performance.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A844D0211D3C18E0014065C /* Performance.h */; };
-		8A9A587011E84C36008ACFD1 /* JSNavigation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A9A586E11E84C35008ACFD1 /* JSNavigation.cpp */; };
-		8A9A587111E84C36008ACFD1 /* JSNavigation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A9A586F11E84C36008ACFD1 /* JSNavigation.h */; };
+		8A9A587011E84C36008ACFD1 /* JSPerformanceNavigation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A9A586E11E84C35008ACFD1 /* JSPerformanceNavigation.cpp */; };
+		8A9A587111E84C36008ACFD1 /* JSPerformanceNavigation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A9A586F11E84C36008ACFD1 /* JSPerformanceNavigation.h */; };
 		8A9A587411E84C81008ACFD1 /* JSPerformance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A9A587211E84C81008ACFD1 /* JSPerformance.cpp */; };
 		8A9A587511E84C81008ACFD1 /* JSPerformance.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A9A587311E84C81008ACFD1 /* JSPerformance.h */; };
-		8A9A588711E84F37008ACFD1 /* JSTiming.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A9A587611E84C98008ACFD1 /* JSTiming.cpp */; };
-		8A9A588811E84F37008ACFD1 /* JSTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A9A587711E84C98008ACFD1 /* JSTiming.h */; };
+		8A9A588711E84F37008ACFD1 /* JSPerformanceTiming.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A9A587611E84C98008ACFD1 /* JSPerformanceTiming.cpp */; };
+		8A9A588811E84F37008ACFD1 /* JSPerformanceTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A9A587711E84C98008ACFD1 /* JSPerformanceTiming.h */; };
 		8AB4BC77126FDB7100DEB727 /* IgnoreDestructiveWriteCountIncrementer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AB4BC76126FDB7100DEB727 /* IgnoreDestructiveWriteCountIncrementer.h */; };
-		8AF4E55511DC5A36000ED3DE /* Navigation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AF4E55211DC5A36000ED3DE /* Navigation.cpp */; };
-		8AF4E55611DC5A36000ED3DE /* Navigation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF4E55311DC5A36000ED3DE /* Navigation.h */; };
-		8AF4E55B11DC5A63000ED3DE /* Timing.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AF4E55811DC5A63000ED3DE /* Timing.cpp */; };
-		8AF4E55C11DC5A63000ED3DE /* Timing.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF4E55911DC5A63000ED3DE /* Timing.h */; };
+		8AF4E55511DC5A36000ED3DE /* PerformanceNavigation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AF4E55211DC5A36000ED3DE /* PerformanceNavigation.cpp */; };
+		8AF4E55611DC5A36000ED3DE /* PerformanceNavigation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF4E55311DC5A36000ED3DE /* PerformanceNavigation.h */; };
+		8AF4E55B11DC5A63000ED3DE /* PerformanceTiming.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AF4E55811DC5A63000ED3DE /* PerformanceTiming.cpp */; };
+		8AF4E55C11DC5A63000ED3DE /* PerformanceTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF4E55911DC5A63000ED3DE /* PerformanceTiming.h */; };
 		8C6EA61911EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8C6EA61711EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp */; };
 		8C6EA61A11EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C6EA61811EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h */; };
 		8FAC774D119872CB0015AE94 /* JSMainThreadExecState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F934D841189F1EE00508D5D /* JSMainThreadExecState.cpp */; };
@@ -8768,19 +8768,19 @@
 		8A844D0111D3C18E0014065C /* Performance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Performance.cpp; sourceTree = "<group>"; };
 		8A844D0211D3C18E0014065C /* Performance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Performance.h; sourceTree = "<group>"; };
 		8A844D0311D3C18E0014065C /* Performance.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Performance.idl; sourceTree = "<group>"; };
-		8A9A586E11E84C35008ACFD1 /* JSNavigation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNavigation.cpp; sourceTree = "<group>"; };
-		8A9A586F11E84C36008ACFD1 /* JSNavigation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSNavigation.h; sourceTree = "<group>"; };
+		8A9A586E11E84C35008ACFD1 /* JSPerformanceNavigation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSPerformanceNavigation.cpp; sourceTree = "<group>"; };
+		8A9A586F11E84C36008ACFD1 /* JSPerformanceNavigation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSPerformanceNavigation.h; sourceTree = "<group>"; };
 		8A9A587211E84C81008ACFD1 /* JSPerformance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSPerformance.cpp; sourceTree = "<group>"; };
 		8A9A587311E84C81008ACFD1 /* JSPerformance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSPerformance.h; sourceTree = "<group>"; };
-		8A9A587611E84C98008ACFD1 /* JSTiming.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTiming.cpp; sourceTree = "<group>"; };
-		8A9A587711E84C98008ACFD1 /* JSTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSTiming.h; sourceTree = "<group>"; };
+		8A9A587611E84C98008ACFD1 /* JSPerformanceTiming.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSPerformanceTiming.cpp; sourceTree = "<group>"; };
+		8A9A587711E84C98008ACFD1 /* JSPerformanceTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSPerformanceTiming.h; sourceTree = "<group>"; };
 		8AB4BC76126FDB7100DEB727 /* IgnoreDestructiveWriteCountIncrementer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IgnoreDestructiveWriteCountIncrementer.h; sourceTree = "<group>"; };
-		8AF4E55211DC5A36000ED3DE /* Navigation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Navigation.cpp; sourceTree = "<group>"; };
-		8AF4E55311DC5A36000ED3DE /* Navigation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Navigation.h; sourceTree = "<group>"; };
-		8AF4E55411DC5A36000ED3DE /* Navigation.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Navigation.idl; sourceTree = "<group>"; };
-		8AF4E55811DC5A63000ED3DE /* Timing.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Timing.cpp; sourceTree = "<group>"; };
-		8AF4E55911DC5A63000ED3DE /* Timing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Timing.h; sourceTree = "<group>"; };
-		8AF4E55A11DC5A63000ED3DE /* Timing.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Timing.idl; sourceTree = "<group>"; };
+		8AF4E55211DC5A36000ED3DE /* PerformanceNavigation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PerformanceNavigation.cpp; sourceTree = "<group>"; };
+		8AF4E55311DC5A36000ED3DE /* PerformanceNavigation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PerformanceNavigation.h; sourceTree = "<group>"; };
+		8AF4E55411DC5A36000ED3DE /* PerformanceNavigation.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PerformanceNavigation.idl; sourceTree = "<group>"; };
+		8AF4E55811DC5A63000ED3DE /* PerformanceTiming.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PerformanceTiming.cpp; sourceTree = "<group>"; };
+		8AF4E55911DC5A63000ED3DE /* PerformanceTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PerformanceTiming.h; sourceTree = "<group>"; };
+		8AF4E55A11DC5A63000ED3DE /* PerformanceTiming.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PerformanceTiming.idl; sourceTree = "<group>"; };
 		8C6EA61711EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RuntimeEnabledFeatures.cpp; path = generic/RuntimeEnabledFeatures.cpp; sourceTree = "<group>"; };
 		8C6EA61811EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RuntimeEnabledFeatures.h; path = generic/RuntimeEnabledFeatures.h; sourceTree = "<group>"; };
 		8F934D831189F1EE00508D5D /* JSMainThreadExecState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMainThreadExecState.h; sourceTree = "<group>"; };
@@ -13307,9 +13307,6 @@
 				9FFE3E7C11B59C6E0037874E /* MemoryInfo.idl */,
 				93EB355E09E37FD600F43799 /* MouseEventWithHitTestResults.cpp */,
 				935C476209AC4CE600A6AAB4 /* MouseEventWithHitTestResults.h */,
-				8AF4E55211DC5A36000ED3DE /* Navigation.cpp */,
-				8AF4E55311DC5A36000ED3DE /* Navigation.h */,
-				8AF4E55411DC5A36000ED3DE /* Navigation.idl */,
 				A9C6E5A30D746458006442E9 /* Navigator.cpp */,
 				A9C6E5A40D746458006442E9 /* Navigator.h */,
 				A9C6E65D0D746694006442E9 /* Navigator.idl */,
@@ -13326,6 +13323,12 @@
 				8A844D0111D3C18E0014065C /* Performance.cpp */,
 				8A844D0211D3C18E0014065C /* Performance.h */,
 				8A844D0311D3C18E0014065C /* Performance.idl */,
+				8AF4E55211DC5A36000ED3DE /* PerformanceNavigation.cpp */,
+				8AF4E55311DC5A36000ED3DE /* PerformanceNavigation.h */,
+				8AF4E55411DC5A36000ED3DE /* PerformanceNavigation.idl */,
+				8AF4E55811DC5A63000ED3DE /* PerformanceTiming.cpp */,
+				8AF4E55911DC5A63000ED3DE /* PerformanceTiming.h */,
+				8AF4E55A11DC5A63000ED3DE /* PerformanceTiming.idl */,
 				7693BACF106C2DCA007B0823 /* PluginHalter.cpp */,
 				7693BAD0106C2DCA007B0823 /* PluginHalter.h */,
 				7693BAD1106C2DCA007B0823 /* PluginHalterClient.h */,
@@ -13354,9 +13357,6 @@
 				758978EB127090D60076D5A9 /* SpeechInputResult.h */,
 				62C1217A11AB9E76003C462C /* SuspendableTimer.cpp */,
 				62C1217B11AB9E77003C462C /* SuspendableTimer.h */,
-				8AF4E55811DC5A63000ED3DE /* Timing.cpp */,
-				8AF4E55911DC5A63000ED3DE /* Timing.h */,
-				8AF4E55A11DC5A63000ED3DE /* Timing.idl */,
 				003F1FE911E6AB43008258D9 /* UserContentTypes.h */,
 				BCACF3BA1072921A00C0C8A3 /* UserContentURLPattern.cpp */,
 				BCACF3BB1072921A00C0C8A3 /* UserContentURLPattern.h */,
@@ -17268,16 +17268,16 @@
 				BCE1C43A0D9830D3003B02F2 /* JSLocation.h */,
 				9FFE3EA311B5A4390037874E /* JSMemoryInfo.cpp */,
 				9FFE3EA411B5A4390037874E /* JSMemoryInfo.h */,
-				8A9A586E11E84C35008ACFD1 /* JSNavigation.cpp */,
-				8A9A586F11E84C36008ACFD1 /* JSNavigation.h */,
 				A9D247F50D757E3300FDF959 /* JSNavigator.cpp */,
 				A9D247F60D757E3300FDF959 /* JSNavigator.h */,
 				8A9A587211E84C81008ACFD1 /* JSPerformance.cpp */,
 				8A9A587311E84C81008ACFD1 /* JSPerformance.h */,
+				8A9A586E11E84C35008ACFD1 /* JSPerformanceNavigation.cpp */,
+				8A9A586F11E84C36008ACFD1 /* JSPerformanceNavigation.h */,
+				8A9A587611E84C98008ACFD1 /* JSPerformanceTiming.cpp */,
+				8A9A587711E84C98008ACFD1 /* JSPerformanceTiming.h */,
 				BCEC01C00C274DDD009F4EC9 /* JSScreen.cpp */,
 				BCEC01C10C274DDD009F4EC9 /* JSScreen.h */,
-				8A9A587611E84C98008ACFD1 /* JSTiming.cpp */,
-				8A9A587711E84C98008ACFD1 /* JSTiming.h */,
 				494BD79B0F55C94C00747828 /* JSWebKitPoint.cpp */,
 				494BD79C0F55C94C00747828 /* JSWebKitPoint.h */,
 			);
@@ -20200,7 +20200,6 @@
 				A86629D109DA2B48009633A5 /* JSMouseEvent.h in Headers */,
 				65DF31FC09D1CC60000BE325 /* JSMutationEvent.h in Headers */,
 				BCD9C2C10C17B69E005C90A2 /* JSNamedNodeMap.h in Headers */,
-				8A9A587111E84C36008ACFD1 /* JSNavigation.h in Headers */,
 				A9D247F80D757E3400FDF959 /* JSNavigator.h in Headers */,
 				BC9439C3116CF4940048C750 /* JSNodeCustom.h in Headers */,
 				14115B7309F84CD600CA4FC1 /* JSNodeFilter.h in Headers */,
@@ -20214,6 +20213,8 @@
 				1A0D57410A5C7867007EDD4C /* JSOverflowEvent.h in Headers */,
 				E1284BB110449FFA00EAEB52 /* JSPageTransitionEvent.h in Headers */,
 				8A9A587511E84C81008ACFD1 /* JSPerformance.h in Headers */,
+				8A9A587111E84C36008ACFD1 /* JSPerformanceNavigation.h in Headers */,
+				8A9A588811E84F37008ACFD1 /* JSPerformanceTiming.h in Headers */,
 				93B70D6C09EB0C7C009D8468 /* JSPluginElementFunctions.h in Headers */,
 				5189F01E10B37BD900F3C739 /* JSPopStateEvent.h in Headers */,
 				FE80DA720E9C472F000D6F75 /* JSPositionError.h in Headers */,
@@ -20386,7 +20387,6 @@
 				933A14B90B7D1D5200A53FFD /* JSTextEvent.h in Headers */,
 				BCEF45F60E687B5C001C1287 /* JSTextMetrics.h in Headers */,
 				E446141B0CD6826900FADA75 /* JSTimeRanges.h in Headers */,
-				8A9A588811E84F37008ACFD1 /* JSTiming.h in Headers */,
 				1A750D5D0A90DEE1000FF215 /* JSTreeWalker.h in Headers */,
 				A86629CF09DA2B47009633A5 /* JSUIEvent.h in Headers */,
 				49EECF0D105070C400099FAB /* JSUint16Array.h in Headers */,
@@ -20506,7 +20506,6 @@
 				A81872230977D3C0005826D9 /* NamedNodeMap.h in Headers */,
 				A818721E0977D3C0005826D9 /* NameNodeList.h in Headers */,
 				E10B9B6C0B747599003ED890 /* NativeXPathNSResolver.h in Headers */,
-				8AF4E55611DC5A36000ED3DE /* Navigation.h in Headers */,
 				93CCF0270AF6C52900018E89 /* NavigationAction.h in Headers */,
 				979F43D41075E44A0000F83B /* NavigationScheduler.h in Headers */,
 				A9C6E5A60D746458006442E9 /* Navigator.h in Headers */,
@@ -20575,6 +20574,8 @@
 				B27535820B053814002CE64F /* Pen.h in Headers */,
 				8A7CC96B12076D73001D4588 /* PendingScript.h in Headers */,
 				8A844D0511D3C18E0014065C /* Performance.h in Headers */,
+				8AF4E55611DC5A36000ED3DE /* PerformanceNavigation.h in Headers */,
+				8AF4E55C11DC5A63000ED3DE /* PerformanceTiming.h in Headers */,
 				49D5DC2E0F423A73008F20FD /* PerspectiveTransformOperation.h in Headers */,
 				D0FF2A5E11F8C45A007E74E0 /* PingLoader.h in Headers */,
 				377C4CDF1014E9F600B9AE42 /* PlaceholderDocument.h in Headers */,
@@ -21197,7 +21198,6 @@
 				7553CFE8108F473F00EA281E /* TimelineRecordFactory.h in Headers */,
 				9305B24D098F1B6B00C28855 /* Timer.h in Headers */,
 				E44613B00CD6331000FADA75 /* TimeRanges.h in Headers */,
-				8AF4E55C11DC5A63000ED3DE /* Timing.h in Headers */,
 				49E912AE0EFAC906009D0CAF /* TimingFunction.h in Headers */,
 				49E911C40EF86D47009D0CAF /* TransformationMatrix.h in Headers */,
 				49E911CE0EF86D47009D0CAF /* TransformOperation.h in Headers */,
@@ -22884,7 +22884,6 @@
 				65DF31FB09D1CC60000BE325 /* JSMutationEvent.cpp in Sources */,
 				BCD9C2C00C17B69E005C90A2 /* JSNamedNodeMap.cpp in Sources */,
 				BCD9C2630C17AA67005C90A2 /* JSNamedNodeMapCustom.cpp in Sources */,
-				8A9A587011E84C36008ACFD1 /* JSNavigation.cpp in Sources */,
 				A9D247F70D757E3400FDF959 /* JSNavigator.cpp in Sources */,
 				A9C6E6490D7465D8006442E9 /* JSNavigatorCustom.cpp in Sources */,
 				14DC0D3709FED073007B0235 /* JSNode.cpp in Sources */,
@@ -22903,6 +22902,8 @@
 				1A0D57400A5C7867007EDD4C /* JSOverflowEvent.cpp in Sources */,
 				E1284BB210449FFA00EAEB52 /* JSPageTransitionEvent.cpp in Sources */,
 				8A9A587411E84C81008ACFD1 /* JSPerformance.cpp in Sources */,
+				8A9A587011E84C36008ACFD1 /* JSPerformanceNavigation.cpp in Sources */,
+				8A9A588711E84F37008ACFD1 /* JSPerformanceTiming.cpp in Sources */,
 				93B70D6B09EB0C7C009D8468 /* JSPluginElementFunctions.cpp in Sources */,
 				5189F01D10B37BD900F3C739 /* JSPopStateEvent.cpp in Sources */,
 				5189F01810B3781300F3C739 /* JSPopStateEventCustom.cpp in Sources */,
@@ -23087,7 +23088,6 @@
 				933A14B80B7D1D5200A53FFD /* JSTextEvent.cpp in Sources */,
 				BCEF45F50E687B5C001C1287 /* JSTextMetrics.cpp in Sources */,
 				E446141A0CD6826900FADA75 /* JSTimeRanges.cpp in Sources */,
-				8A9A588711E84F37008ACFD1 /* JSTiming.cpp in Sources */,
 				1A750D5C0A90DEE1000FF215 /* JSTreeWalker.cpp in Sources */,
 				516BB7940CE91E6800512F79 /* JSTreeWalkerCustom.cpp in Sources */,
 				A86629D009DA2B48009633A5 /* JSUIEvent.cpp in Sources */,
@@ -23216,7 +23216,6 @@
 				BCF34A3711A231CD00C71804 /* NamedNodeMap.cpp in Sources */,
 				A81872240977D3C0005826D9 /* NameNodeList.cpp in Sources */,
 				E10B9B6D0B747599003ED890 /* NativeXPathNSResolver.cpp in Sources */,
-				8AF4E55511DC5A36000ED3DE /* Navigation.cpp in Sources */,
 				93CCF0600AF6CA7600018E89 /* NavigationAction.cpp in Sources */,
 				979F43D31075E44A0000F83B /* NavigationScheduler.cpp in Sources */,
 				A9C6E5A50D746458006442E9 /* Navigator.cpp in Sources */,
@@ -23267,6 +23266,8 @@
 				B27535810B053814002CE64F /* Pen.cpp in Sources */,
 				8A7CC97012076F8A001D4588 /* PendingScript.cpp in Sources */,
 				8A844D0411D3C18E0014065C /* Performance.cpp in Sources */,
+				8AF4E55511DC5A36000ED3DE /* PerformanceNavigation.cpp in Sources */,
+				8AF4E55B11DC5A63000ED3DE /* PerformanceTiming.cpp in Sources */,
 				49D5DC2D0F423A73008F20FD /* PerspectiveTransformOperation.cpp in Sources */,
 				D0FF2A5D11F8C45A007E74E0 /* PingLoader.cpp in Sources */,
 				377C4CE01014E9F600B9AE42 /* PlaceholderDocument.cpp in Sources */,
@@ -23798,7 +23799,6 @@
 				7553CFE9108F473F00EA281E /* TimelineRecordFactory.cpp in Sources */,
 				93309EA4099EB78C0056E581 /* Timer.cpp in Sources */,
 				E44613AF0CD6331000FADA75 /* TimeRanges.cpp in Sources */,
-				8AF4E55B11DC5A63000ED3DE /* Timing.cpp in Sources */,
 				49E911C30EF86D47009D0CAF /* TransformationMatrix.cpp in Sources */,
 				B27535580B053814002CE64F /* TransformationMatrixCG.cpp in Sources */,
 				49E911CF0EF86D47009D0CAF /* TransformOperations.cpp in Sources */,
diff --git a/WebCore/page/Navigation.cpp b/WebCore/page/Navigation.cpp
deleted file mode 100644
index ad93b47..0000000
--- a/WebCore/page/Navigation.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "Navigation.h"
-
-#if ENABLE(WEB_TIMING)
-
-#include "DocumentLoader.h"
-#include "Frame.h"
-#include "FrameLoaderTypes.h"
-
-namespace WebCore {
-
-Navigation::Navigation(Frame* frame)
-    : m_frame(frame)
-{
-}
-
-Frame* Navigation::frame() const
-{
-    return m_frame;
-}
-
-void Navigation::disconnectFrame()
-{
-    m_frame = 0;
-}
-
-unsigned short Navigation::type() const
-{
-    if (!m_frame)
-        return NAVIGATE;
-
-    DocumentLoader* documentLoader = m_frame->loader()->documentLoader();
-    if (!documentLoader)
-        return NAVIGATE;
-
-    WebCore::NavigationType navigationType = documentLoader->triggeringAction().type();
-    switch (navigationType) {
-    case NavigationTypeReload:
-        return RELOAD;
-    case NavigationTypeBackForward:
-        return BACK_FORWARD;
-    default:
-        return NAVIGATE;
-    }
-}
-
-unsigned short Navigation::redirectCount() const
-{
-    if (!m_frame)
-        return 0;
-
-    DocumentLoader* loader = m_frame->loader()->documentLoader();
-    if (!loader)
-        return 0;
-
-    return loader->timing()->redirectCount;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WEB_TIMING)
diff --git a/WebCore/page/Navigation.h b/WebCore/page/Navigation.h
deleted file mode 100644
index ba68ff3..0000000
--- a/WebCore/page/Navigation.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef Navigation_h
-#define Navigation_h
-
-#if ENABLE(WEB_TIMING)
-
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-
-namespace WebCore {
-
-class Frame;
-
-class Navigation : public RefCounted<Navigation> {
-public:
-    static PassRefPtr<Navigation> create(Frame* frame) { return adoptRef(new Navigation(frame)); }
-
-    Frame* frame() const;
-    void disconnectFrame();
-
-    enum NavigationType {
-        NAVIGATE,
-        RELOAD,
-        BACK_FORWARD
-    };
-
-    unsigned short type() const;
-    unsigned short redirectCount() const;
-
-private:
-    Navigation(Frame*);
-
-    Frame* m_frame;
-};
-
-}
-
-#endif // !ENABLE(WEB_TIMING)
-#endif // !defined(Navigation_h)
diff --git a/WebCore/page/Navigation.idl b/WebCore/page/Navigation.idl
deleted file mode 100644
index b0227f3..0000000
--- a/WebCore/page/Navigation.idl
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-module window {
-
-    // See: http://dev.w3.org/2006/webapi/WebTiming/
-    interface [Conditional=WEB_TIMING, OmitConstructor] Navigation {
-        const unsigned short NAVIGATE = 0;
-        const unsigned short RELOAD = 1;
-        const unsigned short BACK_FORWARD = 2;
-        readonly attribute unsigned short type;
-
-        readonly attribute unsigned short redirectCount;
-    };
-
-}
diff --git a/WebCore/page/Performance.cpp b/WebCore/page/Performance.cpp
index c4234a7..4e130ea 100644
--- a/WebCore/page/Performance.cpp
+++ b/WebCore/page/Performance.cpp
@@ -32,8 +32,8 @@
 #include "Performance.h"
 
 #include "MemoryInfo.h"
-#include "Navigation.h"
-#include "Timing.h"
+#include "PerformanceNavigation.h"
+#include "PerformanceTiming.h"
 
 #if ENABLE(WEB_TIMING)
 
@@ -72,18 +72,18 @@ MemoryInfo* Performance::memory() const
     return m_memory.get();
 }
 
-Navigation* Performance::navigation() const
+PerformanceNavigation* Performance::navigation() const
 {
     if (!m_navigation)
-        m_navigation = Navigation::create(m_frame);
+        m_navigation = PerformanceNavigation::create(m_frame);
 
     return m_navigation.get();
 }
 
-Timing* Performance::timing() const
+PerformanceTiming* Performance::timing() const
 {
     if (!m_timing)
-        m_timing = Timing::create(m_frame);
+        m_timing = PerformanceTiming::create(m_frame);
 
     return m_timing.get();
 }
diff --git a/WebCore/page/Performance.h b/WebCore/page/Performance.h
index 9736fe7..be9e124 100644
--- a/WebCore/page/Performance.h
+++ b/WebCore/page/Performance.h
@@ -34,8 +34,8 @@
 #if ENABLE(WEB_TIMING)
 
 #include "MemoryInfo.h"
-#include "Navigation.h"
-#include "Timing.h"
+#include "PerformanceNavigation.h"
+#include "PerformanceTiming.h"
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/RefPtr.h>
@@ -50,15 +50,15 @@ public:
     void disconnectFrame();
 
     MemoryInfo* memory() const;
-    Navigation* navigation() const;
-    Timing* timing() const;
+    PerformanceNavigation* navigation() const;
+    PerformanceTiming* timing() const;
 
 private:
     Performance(Frame*);
 
     mutable RefPtr<MemoryInfo> m_memory;
-    mutable RefPtr<Navigation> m_navigation;
-    mutable RefPtr<Timing> m_timing;
+    mutable RefPtr<PerformanceNavigation> m_navigation;
+    mutable RefPtr<PerformanceTiming> m_timing;
     Frame* m_frame;
 };
 
diff --git a/WebCore/page/Performance.idl b/WebCore/page/Performance.idl
index ffe8b6f..c72f4bc 100644
--- a/WebCore/page/Performance.idl
+++ b/WebCore/page/Performance.idl
@@ -32,8 +32,8 @@ module window {
 
     // See: http://dev.w3.org/2006/webapi/WebTiming/
     interface [Conditional=WEB_TIMING, OmitConstructor] Performance {
-        readonly attribute Navigation navigation;
-        readonly attribute Timing timing;
+        readonly attribute PerformanceNavigation navigation;
+        readonly attribute PerformanceTiming timing;
         readonly attribute MemoryInfo memory;
     };
 
diff --git a/WebCore/page/PerformanceNavigation.cpp b/WebCore/page/PerformanceNavigation.cpp
new file mode 100644
index 0000000..d570561
--- /dev/null
+++ b/WebCore/page/PerformanceNavigation.cpp
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "PerformanceNavigation.h"
+
+#if ENABLE(WEB_TIMING)
+
+#include "DocumentLoader.h"
+#include "Frame.h"
+#include "FrameLoaderTypes.h"
+
+namespace WebCore {
+
+PerformanceNavigation::PerformanceNavigation(Frame* frame)
+    : m_frame(frame)
+{
+}
+
+Frame* PerformanceNavigation::frame() const
+{
+    return m_frame;
+}
+
+void PerformanceNavigation::disconnectFrame()
+{
+    m_frame = 0;
+}
+
+unsigned short PerformanceNavigation::type() const
+{
+    if (!m_frame)
+        return NAVIGATE;
+
+    DocumentLoader* documentLoader = m_frame->loader()->documentLoader();
+    if (!documentLoader)
+        return NAVIGATE;
+
+    WebCore::NavigationType navigationType = documentLoader->triggeringAction().type();
+    switch (navigationType) {
+    case NavigationTypeReload:
+        return RELOAD;
+    case NavigationTypeBackForward:
+        return BACK_FORWARD;
+    default:
+        return NAVIGATE;
+    }
+}
+
+unsigned short PerformanceNavigation::redirectCount() const
+{
+    if (!m_frame)
+        return 0;
+
+    DocumentLoader* loader = m_frame->loader()->documentLoader();
+    if (!loader)
+        return 0;
+
+    return loader->timing()->redirectCount;
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(WEB_TIMING)
diff --git a/WebCore/page/PerformanceNavigation.h b/WebCore/page/PerformanceNavigation.h
new file mode 100644
index 0000000..2ba9b9c
--- /dev/null
+++ b/WebCore/page/PerformanceNavigation.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef PerformanceNavigation_h
+#define PerformanceNavigation_h
+
+#if ENABLE(WEB_TIMING)
+
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+class Frame;
+
+class PerformanceNavigation : public RefCounted<PerformanceNavigation> {
+public:
+    static PassRefPtr<PerformanceNavigation> create(Frame* frame) { return adoptRef(new PerformanceNavigation(frame)); }
+
+    Frame* frame() const;
+    void disconnectFrame();
+
+    enum PerformanceNavigationType {
+        NAVIGATE,
+        RELOAD,
+        BACK_FORWARD
+    };
+
+    unsigned short type() const;
+    unsigned short redirectCount() const;
+
+private:
+    PerformanceNavigation(Frame*);
+
+    Frame* m_frame;
+};
+
+}
+
+#endif // !ENABLE(WEB_TIMING)
+#endif // !defined(PerformanceNavigation_h)
diff --git a/WebCore/page/PerformanceNavigation.idl b/WebCore/page/PerformanceNavigation.idl
new file mode 100644
index 0000000..5c06050
--- /dev/null
+++ b/WebCore/page/PerformanceNavigation.idl
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+module window {
+
+    // See: http://dev.w3.org/2006/webapi/WebTiming/
+    interface [Conditional=WEB_TIMING, OmitConstructor] PerformanceNavigation {
+        const unsigned short NAVIGATE = 0;
+        const unsigned short RELOAD = 1;
+        const unsigned short BACK_FORWARD = 2;
+        readonly attribute unsigned short type;
+
+        readonly attribute unsigned short redirectCount;
+    };
+
+}
diff --git a/WebCore/page/PerformanceTiming.cpp b/WebCore/page/PerformanceTiming.cpp
new file mode 100644
index 0000000..4fc16da
--- /dev/null
+++ b/WebCore/page/PerformanceTiming.cpp
@@ -0,0 +1,366 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "PerformanceTiming.h"
+
+#if ENABLE(WEB_TIMING)
+
+#include "DocumentLoadTiming.h"
+#include "DocumentLoader.h"
+#include "DocumentTiming.h"
+#include "Frame.h"
+#include "ResourceLoadTiming.h"
+#include "ResourceResponse.h"
+
+namespace WebCore {
+
+static unsigned long long toIntegerMilliseconds(double seconds)
+{
+    ASSERT(seconds >= 0);
+    return static_cast<unsigned long long>(seconds * 1000.0);
+}
+
+static double getPossiblySkewedTimeInKnownRange(double skewedTime, double lowerBound, double upperBound)
+{
+#if PLATFORM(CHROMIUM)
+    // The chromium port's currentTime() implementation only syncs with the
+    // system clock every 60 seconds. So it is possible for timing marks
+    // collected in different threads or processes to have a small skew.
+    // FIXME: It may be possible to add a currentTimeFromSystemTime() method
+    // that eliminates the skew.
+    if (skewedTime <= lowerBound)
+        return lowerBound;
+
+    if (skewedTime >= upperBound)
+        return upperBound;
+#else
+    ASSERT_UNUSED(lowerBound, skewedTime >= lowerBound);
+    ASSERT_UNUSED(upperBound, skewedTime <= upperBound);
+#endif
+
+    return skewedTime;
+}
+
+PerformanceTiming::PerformanceTiming(Frame* frame)
+    : m_frame(frame)
+{
+}
+
+Frame* PerformanceTiming::frame() const
+{
+    return m_frame;
+}
+
+void PerformanceTiming::disconnectFrame()
+{
+    m_frame = 0;
+}
+
+unsigned long long PerformanceTiming::navigationStart() const
+{
+    DocumentLoadTiming* timing = documentLoadTiming();
+    if (!timing)
+        return 0;
+
+    return toIntegerMilliseconds(timing->navigationStart);
+}
+
+unsigned long long PerformanceTiming::unloadEventEnd() const
+{
+    DocumentLoadTiming* timing = documentLoadTiming();
+    if (!timing)
+        return 0;
+
+    return toIntegerMilliseconds(timing->unloadEventEnd);
+}
+
+unsigned long long PerformanceTiming::redirectStart() const
+{
+    DocumentLoadTiming* timing = documentLoadTiming();
+    if (!timing)
+        return 0;
+
+    return toIntegerMilliseconds(timing->redirectStart);
+}
+
+unsigned long long PerformanceTiming::redirectEnd() const
+{
+    DocumentLoadTiming* timing = documentLoadTiming();
+    if (!timing)
+        return 0;
+
+    return toIntegerMilliseconds(timing->redirectEnd);
+}
+
+unsigned long long PerformanceTiming::fetchStart() const
+{
+    DocumentLoadTiming* timing = documentLoadTiming();
+    if (!timing)
+        return 0;
+
+    return toIntegerMilliseconds(timing->fetchStart);
+}
+
+unsigned long long PerformanceTiming::domainLookupStart() const
+{
+    ResourceLoadTiming* timing = resourceLoadTiming();
+    if (!timing)
+        return 0;
+
+    // This will be -1 when a DNS request is not performed.
+    // Rather than exposing a special value that indicates no DNS, we "backfill" with fetchStart.
+    int dnsStart = timing->dnsStart;
+    if (dnsStart < 0)
+        return fetchStart();
+
+    return resourceLoadTimeRelativeToAbsolute(dnsStart);
+}
+
+unsigned long long PerformanceTiming::domainLookupEnd() const
+{
+    ResourceLoadTiming* timing = resourceLoadTiming();
+    if (!timing)
+        return 0;
+
+    // This will be -1 when a DNS request is not performed.
+    // Rather than exposing a special value that indicates no DNS, we "backfill" with domainLookupStart.
+    int dnsEnd = timing->dnsEnd;
+    if (dnsEnd < 0)
+        return domainLookupStart();
+
+    return resourceLoadTimeRelativeToAbsolute(dnsEnd);
+}
+
+unsigned long long PerformanceTiming::connectStart() const
+{
+    DocumentLoader* loader = documentLoader();
+    if (!loader)
+        return 0;
+
+    ResourceLoadTiming* timing = loader->response().resourceLoadTiming();
+    if (!timing)
+        return 0;
+
+    // connectStart will be -1 when a network request is not made.
+    // Rather than exposing a special value that indicates no new connection, we "backfill" with domainLookupEnd.
+    int connectStart = timing->connectStart;
+    if (connectStart < 0 || loader->response().connectionReused())
+        return domainLookupEnd();
+
+    // ResourceLoadTiming's connect phase includes DNS and SSL, however Web Timing's
+    // connect phase should not. So if there is DNS time, trim it from the start.
+    if (timing->dnsEnd >= 0 && timing->dnsEnd > connectStart)
+        connectStart = timing->dnsEnd;
+
+    return resourceLoadTimeRelativeToAbsolute(connectStart);
+}
+
+unsigned long long PerformanceTiming::connectEnd() const
+{
+    DocumentLoader* loader = documentLoader();
+    if (!loader)
+        return 0;
+
+    ResourceLoadTiming* timing = loader->response().resourceLoadTiming();
+    if (!timing)
+        return 0;
+
+    // connectEnd will be -1 when a network request is not made.
+    // Rather than exposing a special value that indicates no new connection, we "backfill" with connectStart.
+    int connectEnd = timing->connectEnd;
+    if (connectEnd < 0 || loader->response().connectionReused())
+        return connectStart();
+
+    // ResourceLoadTiming's connect phase includes DNS and SSL, however Web Timing's
+    // connect phase should not. So if there is SSL time, trim it from the end.
+    if (timing->sslStart >= 0 && timing->sslStart < connectEnd)
+        connectEnd = timing->sslStart;
+
+    return resourceLoadTimeRelativeToAbsolute(connectEnd);
+}
+
+unsigned long long PerformanceTiming::requestStart() const
+{
+    ResourceLoadTiming* timing = resourceLoadTiming();
+    if (!timing)
+        return 0;
+
+    ASSERT(timing->sendStart >= 0);
+    return resourceLoadTimeRelativeToAbsolute(timing->sendStart);
+}
+
+unsigned long long PerformanceTiming::responseStart() const
+{
+    ResourceLoadTiming* timing = resourceLoadTiming();
+    if (!timing)
+        return 0;
+
+    // FIXME: Response start needs to be the time of the first received byte.
+    // However, the ResourceLoadTiming API currently only supports the time
+    // the last header byte was received. For many responses with reasonable
+    // sized cookies, the HTTP headers fit into a single packet so this time
+    // is basically equivalent. But for some responses, particularly those with
+    // headers larger than a single packet, this time will be too late.
+    ASSERT(timing->receiveHeadersEnd >= 0);
+    return resourceLoadTimeRelativeToAbsolute(timing->receiveHeadersEnd);
+}
+
+unsigned long long PerformanceTiming::responseEnd() const
+{
+    DocumentLoadTiming* timing = documentLoadTiming();
+    if (!timing)
+        return 0;
+
+    return toIntegerMilliseconds(timing->responseEnd);
+}
+
+unsigned long long PerformanceTiming::domLoading() const
+{
+    const DocumentTiming* timing = documentTiming();
+    if (!timing)
+        return 0;
+
+    return toIntegerMilliseconds(timing->domLoading);
+}
+
+unsigned long long PerformanceTiming::domInteractive() const
+{
+    const DocumentTiming* timing = documentTiming();
+    if (!timing)
+        return 0;
+
+    return toIntegerMilliseconds(timing->domInteractive);
+}
+
+unsigned long long PerformanceTiming::domContentLoadedStart() const
+{
+    const DocumentTiming* timing = documentTiming();
+    if (!timing)
+        return 0;
+
+    return toIntegerMilliseconds(timing->domContentLoadedStart);
+}
+
+unsigned long long PerformanceTiming::domContentLoadedEnd() const
+{
+    const DocumentTiming* timing = documentTiming();
+    if (!timing)
+        return 0;
+
+    return toIntegerMilliseconds(timing->domContentLoadedEnd);
+}
+
+unsigned long long PerformanceTiming::domComplete() const
+{
+    const DocumentTiming* timing = documentTiming();
+    if (!timing)
+        return 0;
+
+    return toIntegerMilliseconds(timing->domComplete);
+}
+
+unsigned long long PerformanceTiming::loadEventStart() const
+{
+    DocumentLoadTiming* timing = documentLoadTiming();
+    if (!timing)
+        return 0;
+
+    return toIntegerMilliseconds(timing->loadEventStart);
+}
+
+unsigned long long PerformanceTiming::loadEventEnd() const
+{
+    DocumentLoadTiming* timing = documentLoadTiming();
+    if (!timing)
+        return 0;
+
+    return toIntegerMilliseconds(timing->loadEventEnd);
+}
+
+DocumentLoader* PerformanceTiming::documentLoader() const
+{
+    if (!m_frame)
+        return 0;
+
+    return m_frame->loader()->documentLoader();
+}
+
+const DocumentTiming* PerformanceTiming::documentTiming() const
+{
+    if (!m_frame)
+        return 0;
+
+    Document* document = m_frame->document();
+    if (!document)
+        return 0;
+
+    return document->timing();
+}
+
+DocumentLoadTiming* PerformanceTiming::documentLoadTiming() const
+{
+    DocumentLoader* loader = documentLoader();
+    if (!loader)
+        return 0;
+
+    return loader->timing();
+}
+
+ResourceLoadTiming* PerformanceTiming::resourceLoadTiming() const
+{
+    DocumentLoader* loader = documentLoader();
+    if (!loader)
+        return 0;
+
+    return loader->response().resourceLoadTiming();
+}
+
+unsigned long long PerformanceTiming::resourceLoadTimeRelativeToAbsolute(int relativeSeconds) const
+{
+    ASSERT(relativeSeconds >= 0);
+    ResourceLoadTiming* resourceTiming = resourceLoadTiming();
+    ASSERT(resourceTiming);
+    DocumentLoadTiming* documentTiming = documentLoadTiming();
+    ASSERT(documentTiming);
+
+    // The ResourceLoadTiming API's requestTime is the base time to which all
+    // other marks are relative. So to get an absolute time, we must add it to
+    // the relative marks.
+    //
+    // Since ResourceLoadTimings came from the network platform layer, we must
+    // check them for skew because they may be from another thread/process.
+    double baseTime = getPossiblySkewedTimeInKnownRange(resourceTiming->requestTime, documentTiming->fetchStart, documentTiming->responseEnd - (resourceTiming->receiveHeadersEnd / 1000.0));
+    return toIntegerMilliseconds(baseTime) + relativeSeconds;
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(WEB_TIMING)
diff --git a/WebCore/page/PerformanceTiming.h b/WebCore/page/PerformanceTiming.h
new file mode 100644
index 0000000..5124e2b
--- /dev/null
+++ b/WebCore/page/PerformanceTiming.h
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef PerformanceTiming_h
+#define PerformanceTiming_h
+
+#if ENABLE(WEB_TIMING)
+
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+struct DocumentLoadTiming;
+class DocumentLoader;
+struct DocumentTiming;
+class Frame;
+class ResourceLoadTiming;
+
+class PerformanceTiming : public RefCounted<PerformanceTiming> {
+public:
+    static PassRefPtr<PerformanceTiming> create(Frame* frame) { return adoptRef(new PerformanceTiming(frame)); }
+
+    Frame* frame() const;
+    void disconnectFrame();
+
+    unsigned long long navigationStart() const;
+    unsigned long long unloadEventEnd() const;
+    unsigned long long redirectStart() const;
+    unsigned long long redirectEnd() const;
+    unsigned long long fetchStart() const;
+    unsigned long long domainLookupStart() const;
+    unsigned long long domainLookupEnd() const;
+    unsigned long long connectStart() const;
+    unsigned long long connectEnd() const;
+    unsigned long long requestStart() const;
+    unsigned long long responseStart() const;
+    unsigned long long responseEnd() const;
+    unsigned long long domLoading() const;
+    unsigned long long domInteractive() const;
+    unsigned long long domContentLoadedStart() const;
+    unsigned long long domContentLoadedEnd() const;
+    unsigned long long domComplete() const;
+    unsigned long long loadEventStart() const;
+    unsigned long long loadEventEnd() const;
+
+private:
+    PerformanceTiming(Frame*);
+
+    const DocumentTiming* documentTiming() const;
+    DocumentLoader* documentLoader() const;
+    DocumentLoadTiming* documentLoadTiming() const;
+    ResourceLoadTiming* resourceLoadTiming() const;
+    unsigned long long resourceLoadTimeRelativeToAbsolute(int) const;
+
+    Frame* m_frame;
+};
+
+}
+
+#endif // !ENABLE(WEB_TIMING)
+#endif // !defined(PerformanceTiming_h)
diff --git a/WebCore/page/PerformanceTiming.idl b/WebCore/page/PerformanceTiming.idl
new file mode 100644
index 0000000..49442b0
--- /dev/null
+++ b/WebCore/page/PerformanceTiming.idl
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+module window {
+
+    // See: http://dev.w3.org/2006/webapi/WebTiming/
+    interface [Conditional=WEB_TIMING, OmitConstructor] PerformanceTiming {
+        readonly attribute unsigned long long navigationStart;
+        readonly attribute unsigned long long unloadEventEnd;
+        readonly attribute unsigned long long redirectStart;
+        readonly attribute unsigned long long redirectEnd;
+        readonly attribute unsigned long long fetchStart;
+        readonly attribute unsigned long long domainLookupStart;
+        readonly attribute unsigned long long domainLookupEnd;
+        readonly attribute unsigned long long connectStart;
+        readonly attribute unsigned long long connectEnd;
+        readonly attribute unsigned long long requestStart;
+        readonly attribute unsigned long long responseStart;
+        readonly attribute unsigned long long responseEnd;
+        readonly attribute unsigned long long domLoading;
+        readonly attribute unsigned long long domInteractive;
+        readonly attribute unsigned long long domContentLoadedStart;
+        readonly attribute unsigned long long domContentLoadedEnd;
+        readonly attribute unsigned long long domComplete;
+        readonly attribute unsigned long long loadEventStart;
+        readonly attribute unsigned long long loadEventEnd;
+    };
+
+}
diff --git a/WebCore/page/Timing.cpp b/WebCore/page/Timing.cpp
deleted file mode 100644
index 68d1405..0000000
--- a/WebCore/page/Timing.cpp
+++ /dev/null
@@ -1,366 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "Timing.h"
-
-#if ENABLE(WEB_TIMING)
-
-#include "DocumentLoadTiming.h"
-#include "DocumentLoader.h"
-#include "DocumentTiming.h"
-#include "Frame.h"
-#include "ResourceLoadTiming.h"
-#include "ResourceResponse.h"
-
-namespace WebCore {
-
-static unsigned long long toIntegerMilliseconds(double seconds)
-{
-    ASSERT(seconds >= 0);
-    return static_cast<unsigned long long>(seconds * 1000.0);
-}
-
-static double getPossiblySkewedTimeInKnownRange(double skewedTime, double lowerBound, double upperBound)
-{
-#if PLATFORM(CHROMIUM)
-    // The chromium port's currentTime() implementation only syncs with the
-    // system clock every 60 seconds. So it is possible for timing marks
-    // collected in different threads or processes to have a small skew.
-    // FIXME: It may be possible to add a currentTimeFromSystemTime() method
-    // that eliminates the skew.
-    if (skewedTime <= lowerBound)
-        return lowerBound;
-
-    if (skewedTime >= upperBound)
-        return upperBound;
-#else
-    ASSERT_UNUSED(lowerBound, skewedTime >= lowerBound);
-    ASSERT_UNUSED(upperBound, skewedTime <= upperBound);
-#endif
-
-    return skewedTime;
-}
-
-Timing::Timing(Frame* frame)
-    : m_frame(frame)
-{
-}
-
-Frame* Timing::frame() const
-{
-    return m_frame;
-}
-
-void Timing::disconnectFrame()
-{
-    m_frame = 0;
-}
-
-unsigned long long Timing::navigationStart() const
-{
-    DocumentLoadTiming* timing = documentLoadTiming();
-    if (!timing)
-        return 0;
-
-    return toIntegerMilliseconds(timing->navigationStart);
-}
-
-unsigned long long Timing::unloadEventEnd() const
-{
-    DocumentLoadTiming* timing = documentLoadTiming();
-    if (!timing)
-        return 0;
-
-    return toIntegerMilliseconds(timing->unloadEventEnd);
-}
-
-unsigned long long Timing::redirectStart() const
-{
-    DocumentLoadTiming* timing = documentLoadTiming();
-    if (!timing)
-        return 0;
-
-    return toIntegerMilliseconds(timing->redirectStart);
-}
-
-unsigned long long Timing::redirectEnd() const
-{
-    DocumentLoadTiming* timing = documentLoadTiming();
-    if (!timing)
-        return 0;
-
-    return toIntegerMilliseconds(timing->redirectEnd);
-}
-
-unsigned long long Timing::fetchStart() const
-{
-    DocumentLoadTiming* timing = documentLoadTiming();
-    if (!timing)
-        return 0;
-
-    return toIntegerMilliseconds(timing->fetchStart);
-}
-
-unsigned long long Timing::domainLookupStart() const
-{
-    ResourceLoadTiming* timing = resourceLoadTiming();
-    if (!timing)
-        return 0;
-
-    // This will be -1 when a DNS request is not performed.
-    // Rather than exposing a special value that indicates no DNS, we "backfill" with fetchStart.
-    int dnsStart = timing->dnsStart;
-    if (dnsStart < 0)
-        return fetchStart();
-
-    return resourceLoadTimeRelativeToAbsolute(dnsStart);
-}
-
-unsigned long long Timing::domainLookupEnd() const
-{
-    ResourceLoadTiming* timing = resourceLoadTiming();
-    if (!timing)
-        return 0;
-
-    // This will be -1 when a DNS request is not performed.
-    // Rather than exposing a special value that indicates no DNS, we "backfill" with domainLookupStart.
-    int dnsEnd = timing->dnsEnd;
-    if (dnsEnd < 0)
-        return domainLookupStart();
-
-    return resourceLoadTimeRelativeToAbsolute(dnsEnd);
-}
-
-unsigned long long Timing::connectStart() const
-{
-    DocumentLoader* loader = documentLoader();
-    if (!loader)
-        return 0;
-
-    ResourceLoadTiming* timing = loader->response().resourceLoadTiming();
-    if (!timing)
-        return 0;
-
-    // connectStart will be -1 when a network request is not made.
-    // Rather than exposing a special value that indicates no new connection, we "backfill" with domainLookupEnd.
-    int connectStart = timing->connectStart;
-    if (connectStart < 0 || loader->response().connectionReused())
-        return domainLookupEnd();
-
-    // ResourceLoadTiming's connect phase includes DNS and SSL, however Web Timing's
-    // connect phase should not. So if there is DNS time, trim it from the start.
-    if (timing->dnsEnd >= 0 && timing->dnsEnd > connectStart)
-        connectStart = timing->dnsEnd;
-
-    return resourceLoadTimeRelativeToAbsolute(connectStart);
-}
-
-unsigned long long Timing::connectEnd() const
-{
-    DocumentLoader* loader = documentLoader();
-    if (!loader)
-        return 0;
-
-    ResourceLoadTiming* timing = loader->response().resourceLoadTiming();
-    if (!timing)
-        return 0;
-
-    // connectEnd will be -1 when a network request is not made.
-    // Rather than exposing a special value that indicates no new connection, we "backfill" with connectStart.
-    int connectEnd = timing->connectEnd;
-    if (connectEnd < 0 || loader->response().connectionReused())
-        return connectStart();
-
-    // ResourceLoadTiming's connect phase includes DNS and SSL, however Web Timing's
-    // connect phase should not. So if there is SSL time, trim it from the end.
-    if (timing->sslStart >= 0 && timing->sslStart < connectEnd)
-        connectEnd = timing->sslStart;
-
-    return resourceLoadTimeRelativeToAbsolute(connectEnd);
-}
-
-unsigned long long Timing::requestStart() const
-{
-    ResourceLoadTiming* timing = resourceLoadTiming();
-    if (!timing)
-        return 0;
-
-    ASSERT(timing->sendStart >= 0);
-    return resourceLoadTimeRelativeToAbsolute(timing->sendStart);
-}
-
-unsigned long long Timing::responseStart() const
-{
-    ResourceLoadTiming* timing = resourceLoadTiming();
-    if (!timing)
-        return 0;
-
-    // FIXME: Response start needs to be the time of the first received byte.
-    // However, the ResourceLoadTiming API currently only supports the time
-    // the last header byte was received. For many responses with reasonable
-    // sized cookies, the HTTP headers fit into a single packet so this time
-    // is basically equivalent. But for some responses, particularly those with
-    // headers larger than a single packet, this time will be too late.
-    ASSERT(timing->receiveHeadersEnd >= 0);
-    return resourceLoadTimeRelativeToAbsolute(timing->receiveHeadersEnd);
-}
-
-unsigned long long Timing::responseEnd() const
-{
-    DocumentLoadTiming* timing = documentLoadTiming();
-    if (!timing)
-        return 0;
-
-    return toIntegerMilliseconds(timing->responseEnd);
-}
-
-unsigned long long Timing::domLoading() const
-{
-    const DocumentTiming* timing = documentTiming();
-    if (!timing)
-        return 0;
-
-    return toIntegerMilliseconds(timing->domLoading);
-}
-
-unsigned long long Timing::domInteractive() const
-{
-    const DocumentTiming* timing = documentTiming();
-    if (!timing)
-        return 0;
-
-    return toIntegerMilliseconds(timing->domInteractive);
-}
-
-unsigned long long Timing::domContentLoadedStart() const
-{
-    const DocumentTiming* timing = documentTiming();
-    if (!timing)
-        return 0;
-
-    return toIntegerMilliseconds(timing->domContentLoadedStart);
-}
-
-unsigned long long Timing::domContentLoadedEnd() const
-{
-    const DocumentTiming* timing = documentTiming();
-    if (!timing)
-        return 0;
-
-    return toIntegerMilliseconds(timing->domContentLoadedEnd);
-}
-
-unsigned long long Timing::domComplete() const
-{
-    const DocumentTiming* timing = documentTiming();
-    if (!timing)
-        return 0;
-
-    return toIntegerMilliseconds(timing->domComplete);
-}
-
-unsigned long long Timing::loadEventStart() const
-{
-    DocumentLoadTiming* timing = documentLoadTiming();
-    if (!timing)
-        return 0;
-
-    return toIntegerMilliseconds(timing->loadEventStart);
-}
-
-unsigned long long Timing::loadEventEnd() const
-{
-    DocumentLoadTiming* timing = documentLoadTiming();
-    if (!timing)
-        return 0;
-
-    return toIntegerMilliseconds(timing->loadEventEnd);
-}
-
-DocumentLoader* Timing::documentLoader() const
-{
-    if (!m_frame)
-        return 0;
-
-    return m_frame->loader()->documentLoader();
-}
-
-const DocumentTiming* Timing::documentTiming() const
-{
-    if (!m_frame)
-        return 0;
-
-    Document* document = m_frame->document();
-    if (!document)
-        return 0;
-
-    return document->timing();
-}
-
-DocumentLoadTiming* Timing::documentLoadTiming() const
-{
-    DocumentLoader* loader = documentLoader();
-    if (!loader)
-        return 0;
-
-    return loader->timing();
-}
-
-ResourceLoadTiming* Timing::resourceLoadTiming() const
-{
-    DocumentLoader* loader = documentLoader();
-    if (!loader)
-        return 0;
-
-    return loader->response().resourceLoadTiming();
-}
-
-unsigned long long Timing::resourceLoadTimeRelativeToAbsolute(int relativeSeconds) const
-{
-    ASSERT(relativeSeconds >= 0);
-    ResourceLoadTiming* resourceTiming = resourceLoadTiming();
-    ASSERT(resourceTiming);
-    DocumentLoadTiming* documentTiming = documentLoadTiming();
-    ASSERT(documentTiming);
-
-    // The ResourceLoadTiming API's requestTime is the base time to which all
-    // other marks are relative. So to get an absolute time, we must add it to
-    // the relative marks.
-    //
-    // Since ResourceLoadTimings came from the network platform layer, we must
-    // check them for skew because they may be from another thread/process.
-    double baseTime = getPossiblySkewedTimeInKnownRange(resourceTiming->requestTime, documentTiming->fetchStart, documentTiming->responseEnd - (resourceTiming->receiveHeadersEnd / 1000.0));
-    return toIntegerMilliseconds(baseTime) + relativeSeconds;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WEB_TIMING)
diff --git a/WebCore/page/Timing.h b/WebCore/page/Timing.h
deleted file mode 100644
index 9cdb9b8..0000000
--- a/WebCore/page/Timing.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef Timing_h
-#define Timing_h
-
-#if ENABLE(WEB_TIMING)
-
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-
-namespace WebCore {
-
-struct DocumentLoadTiming;
-class DocumentLoader;
-struct DocumentTiming;
-class Frame;
-class ResourceLoadTiming;
-
-class Timing : public RefCounted<Timing> {
-public:
-    static PassRefPtr<Timing> create(Frame* frame) { return adoptRef(new Timing(frame)); }
-
-    Frame* frame() const;
-    void disconnectFrame();
-
-    unsigned long long navigationStart() const;
-    unsigned long long unloadEventEnd() const;
-    unsigned long long redirectStart() const;
-    unsigned long long redirectEnd() const;
-    unsigned long long fetchStart() const;
-    unsigned long long domainLookupStart() const;
-    unsigned long long domainLookupEnd() const;
-    unsigned long long connectStart() const;
-    unsigned long long connectEnd() const;
-    unsigned long long requestStart() const;
-    unsigned long long responseStart() const;
-    unsigned long long responseEnd() const;
-    unsigned long long domLoading() const;
-    unsigned long long domInteractive() const;
-    unsigned long long domContentLoadedStart() const;
-    unsigned long long domContentLoadedEnd() const;
-    unsigned long long domComplete() const;
-    unsigned long long loadEventStart() const;
-    unsigned long long loadEventEnd() const;
-
-private:
-    Timing(Frame*);
-
-    const DocumentTiming* documentTiming() const;
-    DocumentLoader* documentLoader() const;
-    DocumentLoadTiming* documentLoadTiming() const;
-    ResourceLoadTiming* resourceLoadTiming() const;
-    unsigned long long resourceLoadTimeRelativeToAbsolute(int) const;
-
-    Frame* m_frame;
-};
-
-}
-
-#endif // !ENABLE(WEB_TIMING)
-#endif // !defined(Timing_h)
diff --git a/WebCore/page/Timing.idl b/WebCore/page/Timing.idl
deleted file mode 100644
index 7776980..0000000
--- a/WebCore/page/Timing.idl
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-module window {
-
-    // See: http://dev.w3.org/2006/webapi/WebTiming/
-    interface [Conditional=WEB_TIMING, OmitConstructor] Timing {
-        readonly attribute unsigned long long navigationStart;
-        readonly attribute unsigned long long unloadEventEnd;
-        readonly attribute unsigned long long redirectStart;
-        readonly attribute unsigned long long redirectEnd;
-        readonly attribute unsigned long long fetchStart;
-        readonly attribute unsigned long long domainLookupStart;
-        readonly attribute unsigned long long domainLookupEnd;
-        readonly attribute unsigned long long connectStart;
-        readonly attribute unsigned long long connectEnd;
-        readonly attribute unsigned long long requestStart;
-        readonly attribute unsigned long long responseStart;
-        readonly attribute unsigned long long responseEnd;
-        readonly attribute unsigned long long domLoading;
-        readonly attribute unsigned long long domInteractive;
-        readonly attribute unsigned long long domContentLoadedStart;
-        readonly attribute unsigned long long domContentLoadedEnd;
-        readonly attribute unsigned long long domComplete;
-        readonly attribute unsigned long long loadEventStart;
-        readonly attribute unsigned long long loadEventEnd;
-    };
-
-}
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 3d4beec..52e831a 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,15 @@
+2010-11-12  James Simonsen  <simonjam at chromium.org>
+
+        Reviewed by Darin Fisher.
+
+        [Web Timing] Rename interfaces:
+        - Navigation -> PerformanceNavigation
+        - Timing -> PerformanceTiming
+        https://bugs.webkit.org/show_bug.cgi?id=48919
+
+        * src/WebPerformance.cpp:
+        (WebKit::WebPerformance::navigationType):
+
 2010-11-12  Zhenyao Mo  <zmo at google.com>
 
         Reviewed by James Robinson.
diff --git a/WebKit/chromium/src/WebPerformance.cpp b/WebKit/chromium/src/WebPerformance.cpp
index e894895..de9c1f6 100644
--- a/WebKit/chromium/src/WebPerformance.cpp
+++ b/WebKit/chromium/src/WebPerformance.cpp
@@ -55,11 +55,11 @@ void WebPerformance::assign(const WebPerformance& other)
 WebNavigationType WebPerformance::navigationType() const
 {
     switch (m_private->navigation()->type()) {
-    case Navigation::NAVIGATE:
+    case PerformanceNavigation::NAVIGATE:
         return WebNavigationTypeOther;
-    case Navigation::RELOAD:
+    case PerformanceNavigation::RELOAD:
         return WebNavigationTypeReload;
-    case Navigation::BACK_FORWARD:
+    case PerformanceNavigation::BACK_FORWARD:
         return WebNavigationTypeBackForward;
     }
     ASSERT_NOT_REACHED();

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list