Commit 6180404a authored by tonyg@chromium.org's avatar tonyg@chromium.org

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-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: http://svn.webkit.org/repository/webkit/trunk@61950 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent bc60b9e6
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.
......
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.
......
......@@ -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);
......@@ -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 \
......
......@@ -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
......
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.
......
......@@ -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);
......@@ -196,6 +196,7 @@
#include "JSMouseEvent.cpp"
#include "JSMutationEvent.cpp"
#include "JSNamedNodeMap.cpp"
#include "JSNavigationTiming.cpp"
#include "JSNavigator.cpp"
#include "JSNode.cpp"
#include "JSNodeFilter.cpp"
......@@ -206,6 +207,7 @@
#include "JSNotification.cpp"
#include "JSOverflowEvent.cpp"
#include "JSPageTransitionEvent.cpp"
#include "JSPerformance.cpp"
#include "JSPlugin.cpp"
#include "JSPluginArray.cpp"
#include "JSPopStateEvent.cpp"
......
......@@ -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 \
......
......@@ -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 \
......
......@@ -214,7 +214,9 @@
'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',
......@@ -1963,6 +1965,8 @@
'page/MemoryInfo.h',
'page/MouseEventWithHitTestResults.cpp',
'page/MouseEventWithHitTestResults.h',
'page/NavigationTiming.cpp',
'page/NavigationTiming.h',
'page/Navigator.cpp',
'page/Navigator.h',
'page/NavigatorBase.cpp',
......@@ -1975,6 +1979,8 @@
'page/PageGroup.h',
'page/PageGroupLoadDeferrer.cpp',
'page/PageGroupLoadDeferrer.h',
'page/Performance.cpp',
'page/Performance.h',
'page/PluginHalter.cpp',
'page/PluginHalter.h',
'page/PluginHalterClient.h',
......
......@@ -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 \
......
......@@ -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 \
......
......@@ -9004,6 +9004,62 @@
RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNamedNodeMap.h"
>
</File>
<File
RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNavigationTiming.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\JSNavigationTiming.h"
>
</File>
<File
RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSNavigator.cpp"
>
......@@ -9564,6 +9620,62 @@
RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPageTransitionEvent.h"
>
</File>
<File
RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPerformance.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\JSPerformance.h"
>
</File>
<File
RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSPlugin.cpp"
>
......@@ -21560,6 +21672,14 @@
RelativePath="..\page\MouseEventWithHitTestResults.h"
>
</File>
<File
RelativePath="..\page\NavigationTiming.cpp"
>
</File>
<File
RelativePath="..\page\NavigationTiming.h"
>
</File>
<File
RelativePath="..\page\Navigator.cpp"
>
......@@ -21596,6 +21716,14 @@
RelativePath="..\page\PageGroup.h"
>
</File>
<File
RelativePath="..\page\Performance.cpp"
>
</File>
<File
RelativePath="..\page\Performance.h"
>
</File>
<File
RelativePath="..\page\PageGroupLoadDeferrer.cpp"
>
......@@ -2281,6 +2281,10 @@
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, ); }; };
......@@ -7914,6 +7918,12 @@
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>"; };
......@@ -12146,6 +12156,9 @@
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 */,
......@@ -12159,6 +12172,9 @@
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 */,
......@@ -19540,6 +19556,8 @@
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;
};
......@@ -21861,6 +21879,8 @@
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;
};
......@@ -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)
......
......@@ -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)
......
......@@ -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...);
......
/*
* 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)