2010-06-26 Tony Gentilcore <tonyg@chromium.org>
authortonyg@chromium.org <tonyg@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 26 Jun 2010 07:49:30 +0000 (07:49 +0000)
committertonyg@chromium.org <tonyg@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 26 Jun 2010 07:49:30 +0000 (07:49 +0000)
        Reviewed by Dimitri Glazkov.

        Add an --enable-web-timing flag which guards Web Timing support.
        https://bugs.webkit.org/show_bug.cgi?id=38924

        This flag is disabled by default.
        See: http://dev.w3.org/2006/webapi/WebTiming/

        * configure.ac:
2010-06-26  Tony Gentilcore  <tonyg@chromium.org>

        Reviewed by Dimitri Glazkov.

        Add an ENABLE_WEB_TIMING option for enabling Web Timing support.
        https://bugs.webkit.org/show_bug.cgi?id=38924

        * Configurations/FeatureDefines.xcconfig:
2010-06-26  Tony Gentilcore  <tonyg@chromium.org>

        Reviewed by Dimitri Glazkov.

        Add a guarded window.performance.timing binding which is disabled by default.
        https://bugs.webkit.org/show_bug.cgi?id=38924

        This is where Web Timing support will be implemented. Web Timing is a
        draft spec for exposing load times to web pages. It will be enabled
        once the spec and implementaiton are solidified. See:
        http://dev.w3.org/2006/webapi/WebTiming/

        No new tests because guarded behind a #DEFINE. Will add tests as
        functionality is landed.

        * Android.mk:
        * CMakeLists.txt:
        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * GNUmakefile.am:
        * WebCore.gypi:
        * WebCore.pri:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::clear):
        (WebCore::DOMWindow::performance):
        * page/DOMWindow.h:
        (WebCore::DOMWindow::optionalPerformance):
        * page/DOMWindow.idl:
        * page/NavigationTiming.cpp: Added.
        (WebCore::NavigationTiming::NavigationTiming):
        (WebCore::NavigationTiming::frame):
        (WebCore::NavigationTiming::disconnectFrame):
        (WebCore::NavigationTiming::navigationStart):
        * page/NavigationTiming.h: Added.
        (WebCore::NavigationTiming::create):
        * page/NavigationTiming.idl: Added.
        * page/Performance.cpp: Added.
        (WebCore::Performance::Performance):
        (WebCore::Performance::frame):
        (WebCore::Performance::disconnectFrame):
        (WebCore::Performance::timing):
        * page/Performance.h: Added.
        (WebCore::Performance::create):
        * page/Performance.idl: Added.
2010-06-26  Tony Gentilcore  <tonyg@chromium.org>

        Reviewed by Dimitri Glazkov.

        Disable Web Timing support by default for chromium port.
        https://bugs.webkit.org/show_bug.cgi?id=38924

        * features.gypi:
2010-06-26  Tony Gentilcore  <tonyg@chromium.org>

        Reviewed by Dimitri Glazkov.

        Add an ENABLE_WEB_TIMING option for enabling Web Timing support.
        https://bugs.webkit.org/show_bug.cgi?id=38924

        * Configurations/FeatureDefines.xcconfig:
2010-06-26  Tony Gentilcore  <tonyg@chromium.org>

        Reviewed by Dimitri Glazkov.

        Add an ENABLE_WEB_TIMING option for enabling Web Timing support.
        https://bugs.webkit.org/show_bug.cgi?id=38924

        * Configurations/FeatureDefines.xcconfig:
2010-06-26  Tony Gentilcore  <tonyg@chromium.org>

        Reviewed by Dimitri Glazkov.

        Add a VS macro for enabling Web Timing support.
        https://bugs.webkit.org/show_bug.cgi?id=38924

        * win/tools/vsprops/FeatureDefines.vsprops:
2010-06-26  Tony Gentilcore  <tonyg@chromium.org>

        Reviewed by Dimitri Glazkov.

        Add a build-webkit option for enabling Web Timing support.
        https://bugs.webkit.org/show_bug.cgi?id=38924

        * Scripts/build-webkit:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@61950 268f45cc-cd09-0410-ab3c-d52691b4dbfc

35 files changed:
ChangeLog
JavaScriptCore/ChangeLog
JavaScriptCore/Configurations/FeatureDefines.xcconfig
WebCore/Android.mk
WebCore/CMakeLists.txt
WebCore/ChangeLog
WebCore/Configurations/FeatureDefines.xcconfig
WebCore/DerivedSources.cpp
WebCore/DerivedSources.make
WebCore/GNUmakefile.am
WebCore/WebCore.gypi
WebCore/WebCore.pri
WebCore/WebCore.pro
WebCore/WebCore.vcproj/WebCore.vcproj
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/page/DOMWindow.cpp
WebCore/page/DOMWindow.h
WebCore/page/DOMWindow.idl
WebCore/page/NavigationTiming.cpp [new file with mode: 0644]
WebCore/page/NavigationTiming.h [new file with mode: 0644]
WebCore/page/NavigationTiming.idl [new file with mode: 0644]
WebCore/page/Performance.cpp [new file with mode: 0644]
WebCore/page/Performance.h [new file with mode: 0644]
WebCore/page/Performance.idl [new file with mode: 0644]
WebKit/chromium/ChangeLog
WebKit/chromium/features.gypi
WebKit/mac/ChangeLog
WebKit/mac/Configurations/FeatureDefines.xcconfig
WebKit2/ChangeLog
WebKit2/Configurations/FeatureDefines.xcconfig
WebKitLibraries/ChangeLog
WebKitLibraries/win/tools/vsprops/FeatureDefines.vsprops
WebKitTools/ChangeLog
WebKitTools/Scripts/build-webkit
configure.ac

index 806db6a..689f3bc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2010-06-26  Tony Gentilcore  <tonyg@chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Add an --enable-web-timing flag which guards Web Timing support.
+        https://bugs.webkit.org/show_bug.cgi?id=38924
+
+        This flag is disabled by default.
+        See: http://dev.w3.org/2006/webapi/WebTiming/
+
+        * configure.ac:
+
 2010-06-25  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
 
         Reviewed by Simon Hausmann.
index 56f999d..2b208f3 100644 (file)
@@ -1,3 +1,12 @@
+2010-06-26  Tony Gentilcore  <tonyg@chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Add an ENABLE_WEB_TIMING option for enabling Web Timing support.
+        https://bugs.webkit.org/show_bug.cgi?id=38924
+
+        * Configurations/FeatureDefines.xcconfig:
+
 2010-06-25  Nathan Lawrence  <nlawrence@apple.com>
 
         Reviewed by Geoffrey Garen.
index 08d9ef9..b65f7c4 100644 (file)
@@ -76,10 +76,12 @@ ENABLE_SVG_FOREIGN_OBJECT = ENABLE_SVG_FOREIGN_OBJECT;
 ENABLE_SVG_USE = ENABLE_SVG_USE;
 ENABLE_VIDEO = ENABLE_VIDEO;
 ENABLE_WEB_SOCKETS = ENABLE_WEB_SOCKETS;
+ENABLE_WEB_TIMING = ;
 ENABLE_WML = ;
 ENABLE_WORKERS = ENABLE_WORKERS;
 ENABLE_XHTMLMP = ;
 ENABLE_XPATH = ENABLE_XPATH;
 ENABLE_XSLT = ENABLE_XSLT;
 
-FEATURE_DEFINES = $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB_SLICE) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_READER) $(ENABLE_FILE_WRITER) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB_SLICE) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_READER) $(ENABLE_FILE_WRITER) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT);
+
index bb1a576..03b5da6 100644 (file)
@@ -361,12 +361,14 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
        page/History.cpp \
        page/Location.cpp \
        page/MouseEventWithHitTestResults.cpp \
+       page/NavigationTiming.cpp \
        page/Navigator.cpp \
        page/NavigatorBase.cpp \
        page/OriginAccessEntry.cpp \
        page/Page.cpp \
        page/PageGroup.cpp \
        page/PageGroupLoadDeferrer.cpp \
+       page/Performance.cpp \
        page/PluginHalter.cpp \
        page/PrintContext.cpp \
        page/Screen.cpp \
index 95baef8..0dcfbc6 100644 (file)
@@ -309,7 +309,9 @@ SET(WebCore_IDL_FILES
     page/History.idl
     page/Location.idl
     page/MemoryInfo.idl
+    page/NavigationTiming.idl
     page/Navigator.idl
+    page/Performance.idl
     page/PositionError.idl
     page/Screen.idl
     page/WebKitPoint.idl
@@ -1113,12 +1115,14 @@ SET(WebCore_SOURCES
     page/Location.cpp
     page/MemoryInfo.cpp
     page/MouseEventWithHitTestResults.cpp
+    page/NavigationTiming.cpp
     page/Navigator.cpp
     page/NavigatorBase.cpp
     page/OriginAccessEntry.cpp
     page/Page.cpp
     page/PageGroup.cpp
     page/PageGroupLoadDeferrer.cpp
+    page/Performance.cpp
     page/PluginHalter.cpp
     page/PrintContext.cpp
     page/Screen.cpp
index da1eaba..cd533b1 100644 (file)
@@ -1,3 +1,52 @@
+2010-06-26  Tony Gentilcore  <tonyg@chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Add a guarded window.performance.timing binding which is disabled by default.
+        https://bugs.webkit.org/show_bug.cgi?id=38924
+
+        This is where Web Timing support will be implemented. Web Timing is a
+        draft spec for exposing load times to web pages. It will be enabled
+        once the spec and implementaiton are solidified. See:
+        http://dev.w3.org/2006/webapi/WebTiming/
+
+        No new tests because guarded behind a #DEFINE. Will add tests as
+        functionality is landed.
+
+        * Android.mk:
+        * CMakeLists.txt:
+        * Configurations/FeatureDefines.xcconfig:
+        * DerivedSources.cpp:
+        * DerivedSources.make:
+        * GNUmakefile.am:
+        * WebCore.gypi:
+        * WebCore.pri:
+        * WebCore.pro:
+        * WebCore.vcproj/WebCore.vcproj:
+        * WebCore.xcodeproj/project.pbxproj:
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::clear):
+        (WebCore::DOMWindow::performance):
+        * page/DOMWindow.h:
+        (WebCore::DOMWindow::optionalPerformance):
+        * page/DOMWindow.idl:
+        * page/NavigationTiming.cpp: Added.
+        (WebCore::NavigationTiming::NavigationTiming):
+        (WebCore::NavigationTiming::frame):
+        (WebCore::NavigationTiming::disconnectFrame):
+        (WebCore::NavigationTiming::navigationStart):
+        * page/NavigationTiming.h: Added.
+        (WebCore::NavigationTiming::create):
+        * page/NavigationTiming.idl: Added.
+        * page/Performance.cpp: Added.
+        (WebCore::Performance::Performance):
+        (WebCore::Performance::frame):
+        (WebCore::Performance::disconnectFrame):
+        (WebCore::Performance::timing):
+        * page/Performance.h: Added.
+        (WebCore::Performance::create):
+        * page/Performance.idl: Added.
+
 2010-06-25  Zhenyao Mo  <zmo@google.com>
 
         Reviewed by Dimitri Glazkov.
index 08d9ef9..2cf00eb 100644 (file)
@@ -76,10 +76,11 @@ ENABLE_SVG_FOREIGN_OBJECT = ENABLE_SVG_FOREIGN_OBJECT;
 ENABLE_SVG_USE = ENABLE_SVG_USE;
 ENABLE_VIDEO = ENABLE_VIDEO;
 ENABLE_WEB_SOCKETS = ENABLE_WEB_SOCKETS;
+ENABLE_WEB_TIMING = ;
 ENABLE_WML = ;
 ENABLE_WORKERS = ENABLE_WORKERS;
 ENABLE_XHTMLMP = ;
 ENABLE_XPATH = ENABLE_XPATH;
 ENABLE_XSLT = ENABLE_XSLT;
 
-FEATURE_DEFINES = $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB_SLICE) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_READER) $(ENABLE_FILE_WRITER) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB_SLICE) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_READER) $(ENABLE_FILE_WRITER) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT);
index 904ea55..e553ff9 100644 (file)
 #include "JSMouseEvent.cpp"
 #include "JSMutationEvent.cpp"
 #include "JSNamedNodeMap.cpp"
+#include "JSNavigationTiming.cpp"
 #include "JSNavigator.cpp"
 #include "JSNode.cpp"
 #include "JSNodeFilter.cpp"
 #include "JSNotification.cpp"
 #include "JSOverflowEvent.cpp"
 #include "JSPageTransitionEvent.cpp"
+#include "JSPerformance.cpp"
 #include "JSPlugin.cpp"
 #include "JSPluginArray.cpp"
 #include "JSPopStateEvent.cpp"
index bf09a22..a9cef03 100644 (file)
@@ -241,6 +241,7 @@ DOM_CLASSES = \
     MouseEvent \
     MutationEvent \
     NamedNodeMap \
+    NavigationTiming \
     Navigator \
     Node \
     NodeFilter \
@@ -251,6 +252,7 @@ DOM_CLASSES = \
     NotificationCenter \
     OverflowEvent \
     PageTransitionEvent \
+    Performance \
     Plugin \
     PluginArray \
     PopStateEvent \
index 50b9130..bc96aa6 100644 (file)
@@ -298,7 +298,9 @@ IDL_BINDINGS += \
        WebCore/page/History.idl \
        WebCore/page/Location.idl \
        WebCore/page/MemoryInfo.idl \
+       WebCore/page/NavigationTiming.idl \
        WebCore/page/Navigator.idl \
+       WebCore/page/Performance.idl \
        WebCore/page/PositionError.idl \
        WebCore/page/Screen.idl \
        WebCore/page/WebKitPoint.idl \
@@ -1524,6 +1526,8 @@ webcore_sources += \
        WebCore/page/MemoryInfo.h \
        WebCore/page/MouseEventWithHitTestResults.cpp \
        WebCore/page/MouseEventWithHitTestResults.h \
+       WebCore/page/NavigationTiming.cpp \
+       WebCore/page/NavigationTiming.h \
        WebCore/page/Navigator.cpp \
        WebCore/page/Navigator.h \
        WebCore/page/NavigatorBase.cpp \
@@ -1536,6 +1540,8 @@ webcore_sources += \
        WebCore/page/PageGroup.h \
   WebCore/page/PageGroupLoadDeferrer.cpp \
   WebCore/page/PageGroupLoadDeferrer.h \
+       WebCore/page/Performance.cpp \
+       WebCore/page/Performance.h \
        WebCore/page/PluginHalter.cpp \
        WebCore/page/PluginHalter.h \
        WebCore/page/PluginHalterClient.h \
index 42df810..3db8cc7 100644 (file)
             'page/History.idl',
             'page/Location.idl',
             'page/MemoryInfo.idl',
+            'page/NavigationTiming.idl',
             'page/Navigator.idl',
+            'page/Performance.idl',
             'page/PositionError.idl',
             'page/Screen.idl',
             'page/WebKitPoint.idl',
             'page/MemoryInfo.h',
             'page/MouseEventWithHitTestResults.cpp',
             'page/MouseEventWithHitTestResults.h',
+            'page/NavigationTiming.cpp',
+            'page/NavigationTiming.h',
             'page/Navigator.cpp',
             'page/Navigator.h',
             'page/NavigatorBase.cpp',
             'page/PageGroup.h',
             'page/PageGroupLoadDeferrer.cpp',
             'page/PageGroupLoadDeferrer.h',
+            'page/Performance.cpp',
+            'page/Performance.h',
             'page/PluginHalter.cpp',
             'page/PluginHalter.h',
             'page/PluginHalterClient.h',
index 66e77ca..43896ea 100644 (file)
@@ -110,6 +110,9 @@ greaterThan(QT_MINOR_VERSION, 5) {
 # Web Socket support.
 !contains(DEFINES, ENABLE_WEB_SOCKETS=.): DEFINES += ENABLE_WEB_SOCKETS=1
 
+# Web Timing support.
+!contains(DEFINES, ENABLE_WEB_TIMING=.): DEFINES += ENABLE_WEB_TIMING=0
+
 # XSLT support with QtXmlPatterns
 !contains(DEFINES, ENABLE_XSLT=.) {
     contains(QT_CONFIG, xmlpatterns):DEFINES += ENABLE_XSLT=1
@@ -176,6 +179,7 @@ contains(DEFINES, ENABLE_SVG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SVG=1
 contains(DEFINES, ENABLE_JAVASCRIPT_DEBUGGER=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_JAVASCRIPT_DEBUGGER=1
 contains(DEFINES, ENABLE_OFFLINE_WEB_APPLICATIONS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_OFFLINE_WEB_APPLICATIONS=1
 contains(DEFINES, ENABLE_WEB_SOCKETS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WEB_SOCKETS=1
+contains(DEFINES, ENABLE_WEB_TIMING=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WEB_TIMING=1
 contains(DEFINES, ENABLE_TOUCH_EVENTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_TOUCH_EVENTS=1
 contains(DEFINES, ENABLE_TILED_BACKING_STORE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_TILED_BACKING_STORE=1
 contains(DEFINES, ENABLE_NOTIFICATIONS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_NOTIFICATIONS=1
@@ -449,7 +453,9 @@ IDL_BINDINGS += \
     page/History.idl \
     page/Location.idl \
     page/MemoryInfo.idl \
+    page/NavigationTiming.idl \
     page/Navigator.idl \
+    page/Performance.idl \
     page/PositionError.idl \
     page/Screen.idl \
     page/WebKitPoint.idl \
index 9ec607e..81e12d9 100644 (file)
@@ -796,6 +796,7 @@ SOURCES += \
     page/DOMSelection.cpp \
     page/DOMTimer.cpp \
     page/DOMWindow.cpp \
+    page/NavigationTiming.cpp \
     page/Navigator.cpp \
     page/NavigatorBase.cpp \
     page/DragController.cpp \
@@ -816,6 +817,7 @@ SOURCES += \
     page/Page.cpp \
     page/PageGroup.cpp \
     page/PageGroupLoadDeferrer.cpp \
+    page/Performance.cpp \
     page/PluginHalter.cpp \
     page/PrintContext.cpp \
     page/SecurityOrigin.cpp \
index f1a4a9e..e1b418e 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNavigationTiming.cpp"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Debug_Internal|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Debug_Cairo|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release_Cairo|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Debug_All|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                       />\r
+                               </FileConfiguration>\r
+                       </File>\r
+                       <File\r
+                               RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNavigationTiming.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
                                RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNavigator.cpp"\r
                                >\r
                                <FileConfiguration\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPerformance.cpp"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Debug_Internal|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Debug_Cairo|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release_Cairo|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Debug_All|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                       />\r
+                               </FileConfiguration>\r
+                       </File>\r
+                       <File\r
+                               RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPerformance.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
                                RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPlugin.cpp"\r
                                >\r
                                <FileConfiguration\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\page\NavigationTiming.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\page\NavigationTiming.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
                                RelativePath="..\page\Navigator.cpp"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\page\Performance.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath="..\page\Performance.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
                                RelativePath="..\page\PageGroupLoadDeferrer.cpp"\r
                                >\r
                        </File>\r
index fce6384..8334d23 100644 (file)
                89BED5EC11BE11CE00448492 /* BlobBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 89BED5EA11BE11CE00448492 /* BlobBuilder.h */; };
                89CD029311C85B870070B791 /* JSBlobBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 89CD029111C85B870070B791 /* JSBlobBuilder.cpp */; };
                89CD029411C85B870070B791 /* JSBlobBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 89CD029211C85B870070B791 /* JSBlobBuilder.h */; };
+               8A844CFE11D3C17C0014065C /* NavigationTiming.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A844CFB11D3C17C0014065C /* NavigationTiming.cpp */; };
+               8A844CFF11D3C17C0014065C /* NavigationTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A844CFC11D3C17C0014065C /* NavigationTiming.h */; };
+               8A844D0411D3C18E0014065C /* Performance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A844D0111D3C18E0014065C /* Performance.cpp */; };
+               8A844D0511D3C18E0014065C /* Performance.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A844D0211D3C18E0014065C /* Performance.h */; };
                8FAC774D119872CB0015AE94 /* JSMainThreadExecState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F934D841189F1EE00508D5D /* JSMainThreadExecState.cpp */; };
                9302B0BD0D79F82900C7EE83 /* PageGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9302B0BC0D79F82900C7EE83 /* PageGroup.cpp */; };
                9302B0BF0D79F82C00C7EE83 /* PageGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 9302B0BE0D79F82C00C7EE83 /* PageGroup.h */; settings = {ATTRIBUTES = (Private, ); }; };
                89CD027911C859A80070B791 /* BlobBuilder.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BlobBuilder.idl; sourceTree = "<group>"; };
                89CD029111C85B870070B791 /* JSBlobBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSBlobBuilder.cpp; sourceTree = "<group>"; };
                89CD029211C85B870070B791 /* JSBlobBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSBlobBuilder.h; sourceTree = "<group>"; };
+               8A844CFB11D3C17C0014065C /* NavigationTiming.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NavigationTiming.cpp; sourceTree = "<group>"; };
+               8A844CFC11D3C17C0014065C /* NavigationTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigationTiming.h; sourceTree = "<group>"; };
+               8A844CFD11D3C17C0014065C /* NavigationTiming.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NavigationTiming.idl; sourceTree = "<group>"; };
+               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>"; };
                8F934D831189F1EE00508D5D /* JSMainThreadExecState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMainThreadExecState.h; sourceTree = "<group>"; };
                8F934D841189F1EE00508D5D /* JSMainThreadExecState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMainThreadExecState.cpp; sourceTree = "<group>"; };
                9302B0BC0D79F82900C7EE83 /* PageGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageGroup.cpp; sourceTree = "<group>"; };
                                9FFE3E7C11B59C6E0037874E /* MemoryInfo.idl */,
                                93EB355E09E37FD600F43799 /* MouseEventWithHitTestResults.cpp */,
                                935C476209AC4CE600A6AAB4 /* MouseEventWithHitTestResults.h */,
+                               8A844CFB11D3C17C0014065C /* NavigationTiming.cpp */,
+                               8A844CFC11D3C17C0014065C /* NavigationTiming.h */,
+                               8A844CFD11D3C17C0014065C /* NavigationTiming.idl */,
                                A9C6E5A30D746458006442E9 /* Navigator.cpp */,
                                A9C6E5A40D746458006442E9 /* Navigator.h */,
                                A9C6E65D0D746694006442E9 /* Navigator.idl */,
                                9302B0BE0D79F82C00C7EE83 /* PageGroup.h */,
                                7A674BD90F9EBF4E006CF099 /* PageGroupLoadDeferrer.cpp */,
                                7A674BDA0F9EBF4E006CF099 /* PageGroupLoadDeferrer.h */,
+                               8A844D0111D3C18E0014065C /* Performance.cpp */,
+                               8A844D0211D3C18E0014065C /* Performance.h */,
+                               8A844D0311D3C18E0014065C /* Performance.idl */,
                                7693BACF106C2DCA007B0823 /* PluginHalter.cpp */,
                                7693BAD0106C2DCA007B0823 /* PluginHalter.h */,
                                7693BAD1106C2DCA007B0823 /* PluginHalterClient.h */,
                                A8E6A78111D1661B00311F4A /* HTMLParserScheduler.h in Headers */,
                                A84D827C11D333ED00972990 /* RawDataDocumentParser.h in Headers */,
                                CEA3949D11D45CDA003094CF /* StaticHashSetNodeList.h in Headers */,
+                               8A844CFF11D3C17C0014065C /* NavigationTiming.h in Headers */,
+                               8A844D0511D3C18E0014065C /* Performance.h in Headers */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                                A8E6A78211D1661B00311F4A /* HTMLParserScheduler.cpp in Sources */,
                                CEA3949C11D45CDA003094CF /* StaticHashSetNodeList.cpp in Sources */,
                                A8C2280E11D4A59700D5A7D3 /* DocumentParser.cpp in Sources */,
+                               8A844CFE11D3C17C0014065C /* NavigationTiming.cpp in Sources */,
+                               8A844D0411D3C18E0014065C /* Performance.cpp in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
index fbccddf..a06dd79 100644 (file)
@@ -65,6 +65,7 @@
 #include "NotificationCenter.h"
 #include "Page.h"
 #include "PageGroup.h"
+#include "Performance.h"
 #include "PlatformScreen.h"
 #include "PlatformString.h"
 #include "Screen.h"
@@ -442,6 +443,12 @@ void DOMWindow::clear()
         m_navigator->disconnectFrame();
     m_navigator = 0;
 
+#if ENABLE(WEB_TIMING)
+    if (m_performance)
+        m_performance->disconnectFrame();
+    m_performance = 0;
+#endif
+
     if (m_location)
         m_location->disconnectFrame();
     m_location = 0;
@@ -566,6 +573,15 @@ Navigator* DOMWindow::navigator() const
     return m_navigator.get();
 }
 
+#if ENABLE(WEB_TIMING)
+Performance* DOMWindow::performance() const
+{
+    if (!m_performance)
+        m_performance = Performance::create(m_frame);
+    return m_performance.get();
+}
+#endif
+
 Location* DOMWindow::location() const
 {
     if (!m_location)
index 4765b31..f810be6 100644 (file)
@@ -60,6 +60,11 @@ namespace WebCore {
     class Navigator;
     class Node;
     class NotificationCenter;
+
+#if ENABLE(WEB_TIMING)
+    class Performance;
+#endif
+
     class PostMessageTimer;
     class ScheduledAction;
     class SerializedScriptValue;
@@ -125,6 +130,9 @@ namespace WebCore {
         BarInfo* toolbar() const;
         Navigator* navigator() const;
         Navigator* clientInformation() const { return navigator(); }
+#if ENABLE(WEB_TIMING)
+        Performance* performance() const;
+#endif
         Location* location() const;
 
         DOMSelection* getSelection();
@@ -356,6 +364,9 @@ namespace WebCore {
         BarInfo* optionalToolbar() const { return m_toolbar.get(); }
         Console* optionalConsole() const { return m_console.get(); }
         Navigator* optionalNavigator() const { return m_navigator.get(); }
+#if ENABLE(WEB_TIMING)
+        Performance* optionalPerformance() const { return m_performance.get(); }
+#endif
         Location* optionalLocation() const { return m_location.get(); }
         StyleMedia* optionalMedia() const { return m_media.get(); }
 #if ENABLE(DOM_STORAGE)
@@ -393,6 +404,9 @@ namespace WebCore {
         mutable RefPtr<BarInfo> m_toolbar;
         mutable RefPtr<Console> m_console;
         mutable RefPtr<Navigator> m_navigator;
+#if ENABLE(WEB_TIMING)
+        mutable RefPtr<Performance> m_performance;
+#endif
         mutable RefPtr<Location> m_location;
         mutable RefPtr<StyleMedia> m_media;
 #if ENABLE(DOM_STORAGE)
index ce239d6..36b1dc9 100644 (file)
@@ -195,6 +195,10 @@ module window {
             raises(DOMException);
 #endif
 
+#if defined(ENABLE_WEB_TIMING) && ENABLE_WEB_TIMING
+        readonly attribute Performance performance;
+#endif
+
         // Timers
         [Custom] long setTimeout(in TimeoutHandler handler, in long timeout);
         // [Custom] long setTimeout(in TimeoutHandler handler, in long timeout, arguments...);
diff --git a/WebCore/page/NavigationTiming.cpp b/WebCore/page/NavigationTiming.cpp
new file mode 100644 (file)
index 0000000..8cbbbc1
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * 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 "NavigationTiming.h"
+
+#if ENABLE(WEB_TIMING)
+
+#include "Frame.h"
+
+namespace WebCore {
+
+NavigationTiming::NavigationTiming(Frame* frame)
+    : m_frame(frame)
+{
+}
+
+Frame* NavigationTiming::frame() const
+{
+    return m_frame;
+}
+
+void NavigationTiming::disconnectFrame()
+{
+    m_frame = 0;
+}
+
+unsigned long NavigationTiming::navigationStart() const
+{
+    if (!m_frame)
+        return 0;
+
+    return 0; // FIXME
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(WEB_TIMING)
diff --git a/WebCore/page/NavigationTiming.h b/WebCore/page/NavigationTiming.h
new file mode 100644 (file)
index 0000000..95482ee
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * 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 NavigationTiming_h
+#define NavigationTiming_h
+
+#if ENABLE(WEB_TIMING)
+
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+class Frame;
+
+class NavigationTiming : public RefCounted<NavigationTiming> {
+public:
+    static PassRefPtr<NavigationTiming> create(Frame* frame) { return adoptRef(new NavigationTiming(frame)); }
+
+    Frame* frame() const;
+    void disconnectFrame();
+
+    unsigned long navigationStart() const;
+
+private:
+    NavigationTiming(Frame*);
+
+    Frame* m_frame;
+};
+
+}
+
+#endif // !ENABLE(WEB_TIMING)
+#endif // !defined(NavigationTiming_h)
diff --git a/WebCore/page/NavigationTiming.idl b/WebCore/page/NavigationTiming.idl
new file mode 100644 (file)
index 0000000..e9a2590
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * 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] NavigationTiming {
+        readonly attribute unsigned long navigationStart;
+        // FIXME: Implement remainder of interface.
+    };
+
+}
diff --git a/WebCore/page/Performance.cpp b/WebCore/page/Performance.cpp
new file mode 100644 (file)
index 0000000..9809c0f
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * 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 "Performance.h"
+
+#include "NavigationTiming.h"
+
+#if ENABLE(WEB_TIMING)
+
+#include "Frame.h"
+
+namespace WebCore {
+
+Performance::Performance(Frame* frame)
+    : m_frame(frame)
+{
+}
+
+Frame* Performance::frame() const
+{
+    return m_frame;
+}
+
+void Performance::disconnectFrame()
+{
+    m_frame = 0;
+}
+
+NavigationTiming* Performance::timing() const
+{
+    if (!m_navigationTiming)
+        m_navigationTiming = NavigationTiming::create(m_frame);
+
+    return m_navigationTiming.get();
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(WEB_TIMING)
diff --git a/WebCore/page/Performance.h b/WebCore/page/Performance.h
new file mode 100644 (file)
index 0000000..896f712
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * 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 Performance_h
+#define Performance_h
+
+#if ENABLE(WEB_TIMING)
+
+#include "NavigationTiming.h"
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefCounted.h>
+#include <wtf/RefPtr.h>
+
+namespace WebCore {
+
+class Performance : public RefCounted<Performance> {
+public:
+    static PassRefPtr<Performance> create(Frame* frame) { return adoptRef(new Performance(frame)); }
+
+    Frame* frame() const;
+    void disconnectFrame();
+
+    NavigationTiming* timing() const;
+
+private:
+    Performance(Frame*);
+
+    mutable RefPtr<NavigationTiming> m_navigationTiming;
+    Frame* m_frame;
+};
+
+}
+
+#endif // !ENABLE(WEB_TIMING)
+#endif // !defined(Performance_h)
diff --git a/WebCore/page/Performance.idl b/WebCore/page/Performance.idl
new file mode 100644 (file)
index 0000000..3a11edc
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * 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] Performance {
+        readonly attribute NavigationTiming timing;
+    };
+
+}
index afe4481..556d807 100644 (file)
@@ -1,3 +1,12 @@
+2010-06-26  Tony Gentilcore  <tonyg@chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Disable Web Timing support by default for chromium port.
+        https://bugs.webkit.org/show_bug.cgi?id=38924
+
+        * features.gypi:
+
 2010-06-25  Jay Civelli  <jcivelli@chromium.org>
 
         Reviewed by Darin Fisher.
index 6c41d04..6abc465 100644 (file)
@@ -75,6 +75,7 @@
         'ENABLE_TOUCH_EVENTS=1',
         'ENABLE_VIDEO=1',
         'ENABLE_WEB_SOCKETS=1',
+        'ENABLE_WEB_TIMING=0',
         'ENABLE_WORKERS=1',
         'ENABLE_XHTMLMP=0',
         'ENABLE_XPATH=1',
index ea2393a..3f5d916 100644 (file)
@@ -1,3 +1,12 @@
+2010-06-26  Tony Gentilcore  <tonyg@chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Add an ENABLE_WEB_TIMING option for enabling Web Timing support.
+        https://bugs.webkit.org/show_bug.cgi?id=38924
+
+        * Configurations/FeatureDefines.xcconfig:
+
 2010-06-24  Jer Noble  <jer.noble@apple.com>
 
         Reviewed by Eric Carlson.
index 08d9ef9..2cf00eb 100644 (file)
@@ -76,10 +76,11 @@ ENABLE_SVG_FOREIGN_OBJECT = ENABLE_SVG_FOREIGN_OBJECT;
 ENABLE_SVG_USE = ENABLE_SVG_USE;
 ENABLE_VIDEO = ENABLE_VIDEO;
 ENABLE_WEB_SOCKETS = ENABLE_WEB_SOCKETS;
+ENABLE_WEB_TIMING = ;
 ENABLE_WML = ;
 ENABLE_WORKERS = ENABLE_WORKERS;
 ENABLE_XHTMLMP = ;
 ENABLE_XPATH = ENABLE_XPATH;
 ENABLE_XSLT = ENABLE_XSLT;
 
-FEATURE_DEFINES = $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB_SLICE) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_READER) $(ENABLE_FILE_WRITER) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB_SLICE) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_READER) $(ENABLE_FILE_WRITER) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_RESIZER) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT);
index 7342434..aa307db 100644 (file)
@@ -1,3 +1,12 @@
+2010-06-26  Tony Gentilcore  <tonyg@chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Add an ENABLE_WEB_TIMING option for enabling Web Timing support.
+        https://bugs.webkit.org/show_bug.cgi?id=38924
+
+        * Configurations/FeatureDefines.xcconfig:
+
 2010-06-25  Steve Falkenburg  <sfalken@apple.com>
 
         Windows build fix.
index 34fdad2..67123e9 100644 (file)
@@ -74,10 +74,11 @@ ENABLE_SVG_FOREIGN_OBJECT = ENABLE_SVG_FOREIGN_OBJECT;
 ENABLE_SVG_USE = ENABLE_SVG_USE;
 ENABLE_VIDEO = ENABLE_VIDEO;
 ENABLE_WEB_SOCKETS = ENABLE_WEB_SOCKETS;
+ENABLE_WEB_TIMING = ;
 ENABLE_WML = ;
 ENABLE_WORKERS = ENABLE_WORKERS;
 ENABLE_XHTMLMP = ;
 ENABLE_XPATH = ENABLE_XPATH;
 ENABLE_XSLT = ENABLE_XSLT;
 
-FEATURE_DEFINES = $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB_SLICE) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_READER) $(ENABLE_FILE_WRITER) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_3D_CANVAS) $(ENABLE_3D_RENDERING) $(ENABLE_BLOB_SLICE) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_DATABASE) $(ENABLE_DATAGRID) $(ENABLE_DATALIST) $(ENABLE_DOM_STORAGE) $(ENABLE_EVENTSOURCE) $(ENABLE_FILTERS) $(ENABLE_FILE_READER) $(ENABLE_FILE_WRITER) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_MATHML) $(ENABLE_METER_TAG) $(ENABLE_NOTIFICATIONS) $(ENABLE_OFFLINE_WEB_APPLICATIONS) $(ENABLE_PROGRESS_TAG) $(ENABLE_RUBY) $(ENABLE_SANDBOX) $(ENABLE_SHARED_WORKERS) $(ENABLE_SVG) $(ENABLE_SVG_ANIMATION) $(ENABLE_SVG_AS_IMAGE) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_FOREIGN_OBJECT) $(ENABLE_SVG_USE) $(ENABLE_VIDEO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WML) $(ENABLE_WORKERS) $(ENABLE_XHTMLMP) $(ENABLE_XPATH) $(ENABLE_XSLT);
index ed55485..de60b74 100644 (file)
@@ -1,3 +1,12 @@
+2010-06-26  Tony Gentilcore  <tonyg@chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Add a VS macro for enabling Web Timing support.
+        https://bugs.webkit.org/show_bug.cgi?id=38924
+
+        * win/tools/vsprops/FeatureDefines.vsprops:
+
 2010-06-21  Sam Weinig  <sam@webkit.org>
 
         Reviewed by Anders Carlsson.
index e7a98e8..40b5fd7 100644 (file)
@@ -9,7 +9,7 @@
        >
   <Tool
                Name="VCCLCompilerTool"
-               PreprocessorDefinitions="$(ENABLE_3D_CANVAS);$(ENABLE_3D_RENDERING);$(ENABLE_BLOB_SLICE);$(ENABLE_CHANNEL_MESSAGING);$(ENABLE_CLIENT_BASED_GEOLOCATION);$(ENABLE_DATABASE);$(ENABLE_DATAGRID);$(ENABLE_DATALIST);$(ENABLE_DEVICE_ORIENTATION);$(ENABLE_DOM_STORAGE);$(ENABLE_EVENTSOURCE);$(ENABLE_FILTERS);$(ENABLE_FILE_READER);$(ENABLE_FILE_WRITER);$(ENABLE_GEOLOCATION);$(ENABLE_ICONDATABASE);$(ENABLE_IMAGE_RESIZER);$(ENABLE_INDEXED_DATABASE);$(ENABLE_INPUT_SPEECH);$(ENABLE_JAVASCRIPT_DEBUGGER);$(ENABLE_MATHML);$(ENABLE_NOTIFICATIONS);$(ENABLE_OFFLINE_WEB_APPLICATIONS);$(ENABLE_RUBY);$(ENABLE_SANDBOX);$(ENABLE_SHARED_WORKERS);$(ENABLE_SVG);$(ENABLE_SVG_ANIMATION);$(ENABLE_SVG_AS_IMAGE);$(ENABLE_SVG_DOM_OBJC_BINDINGS);$(ENABLE_SVG_FONTS);$(ENABLE_SVG_FOREIGN_OBJECT);$(ENABLE_SVG_USE);$(ENABLE_VIDEO);$(ENABLE_WEB_SOCKETS);$(ENABLE_WML);$(ENABLE_WORKERS);$(ENABLE_XHTMLMP);$(ENABLE_XPATH);$(ENABLE_XSLT)"
+               PreprocessorDefinitions="$(ENABLE_3D_CANVAS);$(ENABLE_3D_RENDERING);$(ENABLE_BLOB_SLICE);$(ENABLE_CHANNEL_MESSAGING);$(ENABLE_CLIENT_BASED_GEOLOCATION);$(ENABLE_DATABASE);$(ENABLE_DATAGRID);$(ENABLE_DATALIST);$(ENABLE_DEVICE_ORIENTATION);$(ENABLE_DOM_STORAGE);$(ENABLE_EVENTSOURCE);$(ENABLE_FILTERS);$(ENABLE_FILE_READER);$(ENABLE_FILE_WRITER);$(ENABLE_GEOLOCATION);$(ENABLE_ICONDATABASE);$(ENABLE_IMAGE_RESIZER);$(ENABLE_INDEXED_DATABASE);$(ENABLE_INPUT_SPEECH);$(ENABLE_JAVASCRIPT_DEBUGGER);$(ENABLE_MATHML);$(ENABLE_NOTIFICATIONS);$(ENABLE_OFFLINE_WEB_APPLICATIONS);$(ENABLE_RUBY);$(ENABLE_SANDBOX);$(ENABLE_SHARED_WORKERS);$(ENABLE_SVG);$(ENABLE_SVG_ANIMATION);$(ENABLE_SVG_AS_IMAGE);$(ENABLE_SVG_DOM_OBJC_BINDINGS);$(ENABLE_SVG_FONTS);$(ENABLE_SVG_FOREIGN_OBJECT);$(ENABLE_SVG_USE);$(ENABLE_VIDEO);$(ENABLE_WEB_SOCKETS);$(ENABLE_WEB_TIMING);$(ENABLE_WML);$(ENABLE_WORKERS);$(ENABLE_XHTMLMP);$(ENABLE_XPATH);$(ENABLE_XSLT)"
        />
   <UserMacro
                Name="ENABLE_3D_CANVAS"
                PerformEnvironmentSet="true"
        />
   <UserMacro
+               Name="ENABLE_WEB_TIMING"
+               Value="ENABLE_WEB_TIMING"
+               PerformEnvironmentSet="true"
+       />
+  <UserMacro
                Name="ENABLE_WML"
                Value=""
                PerformEnvironmentSet="true"
index 28d1f32..c0296fc 100644 (file)
@@ -1,3 +1,12 @@
+2010-06-26  Tony Gentilcore  <tonyg@chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Add a build-webkit option for enabling Web Timing support.
+        https://bugs.webkit.org/show_bug.cgi?id=38924
+
+        * Scripts/build-webkit:
+
 2010-06-25  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
 
         Reviewed by Kenneth Rohde Christiansen.
index 88765e8..fdcd746 100755 (executable)
@@ -59,7 +59,7 @@ my ($threeDCanvasSupport, $threeDRenderingSupport, $channelMessagingSupport, $cl
     $domStorageSupport, $eventsourceSupport, $filtersSupport, $geolocationSupport, $iconDatabaseSupport, $imageResizerSupport, $indexedDatabaseSupport, $inputSpeechSupport,
     $javaScriptDebuggerSupport, $mathmlSupport, $offlineWebApplicationSupport, $rubySupport, $systemMallocSupport, $sandboxSupport, $sharedWorkersSupport,
     $svgSupport, $svgAnimationSupport, $svgAsImageSupport, $svgDOMObjCBindingsSupport, $svgFontsSupport,
-    $svgForeignObjectSupport, $svgUseSupport, $videoSupport, $webSocketsSupport, $wmlSupport, $wcssSupport, $xhtmlmpSupport, $workersSupport,
+    $svgForeignObjectSupport, $svgUseSupport, $videoSupport, $webSocketsSupport, $webTimingSupport, $wmlSupport, $wcssSupport, $xhtmlmpSupport, $workersSupport,
     $xpathSupport, $xsltSupport, $coverageSupport, $notificationsSupport, $blobSliceSupport, $tiledBackingStoreSupport,
     $fileReaderSupport, $fileWriterSupport);
 
@@ -169,6 +169,9 @@ my @features = (
     { option => "web-sockets", desc => "Toggle Web Sockets support",
       define => "ENABLE_WEB_SOCKETS", default => 1, value=> \$webSocketsSupport },
 
+    { option => "web-timing", desc => "Toggle Web Timing support",
+      define => "ENABLE_WEB_TIMING", default => 0, value=> \$webTimingSupport },
+
     { option => "wml", desc => "Toggle WML support",
       define => "ENABLE_WML", default => 0, value => \$wmlSupport },
 
index f9484d0..7fa3152 100644 (file)
@@ -569,6 +569,14 @@ AC_ARG_ENABLE(web_sockets,
               [],[enable_web_sockets="no"])
 AC_MSG_RESULT([$enable_web_sockets])
 
+# check whether to enable Web Timing support
+AC_MSG_CHECKING([whether to enable Web Timing support])
+AC_ARG_ENABLE(web_timing,
+              AC_HELP_STRING([--enable-web-timing],
+                             [enable support for Web Timing [default=no]]),
+              [],[enable_web_timing="no"])
+AC_MSG_RESULT([$enable_web_timing])
+
 # check whether to enable Blob.slice support
 AC_MSG_CHECKING([whether to enable Blob.slice support])
 AC_ARG_ENABLE(blob_slice,
@@ -859,6 +867,7 @@ AM_CONDITIONAL([ENABLE_SHARED_WORKERS],[test "$enable_shared_workers" = "yes"])
 AM_CONDITIONAL([SVG_FLAGS],[test "$svg_flags" = "yes"])
 AM_CONDITIONAL([HTML_FLAGS],[test "$html_flags" = "yes"])
 AM_CONDITIONAL([ENABLE_WEB_SOCKETS],[test "$enable_web_sockets" = "yes"])
+AM_CONDITIONAL([ENABLE_WEB_TIMING],[test "$enable_web_timing" = "yes"])
 
 # Gtk conditionals
 AM_CONDITIONAL([ENABLE_INTROSPECTION],[test "$enable_introspection" = "yes"])
@@ -916,6 +925,7 @@ Features:
  SVG use element support                                  : $enable_svg_use
  WML support                                              : $enable_wml
  Web Sockets support                                      : $enable_web_sockets
+ Web Timing support                                       : $enable_web_timing
  Web Workers support                                      : $enable_workers
  XHTML-MP support                                         : $enable_xhtmlmp
  XPATH support                                            : $enable_xpath