Diff
Modified: trunk/Source/WebCore/CMakeLists.txt (204428 => 204429)
--- trunk/Source/WebCore/CMakeLists.txt 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/CMakeLists.txt 2016-08-12 22:53:27 UTC (rev 204429)
@@ -1912,7 +1912,6 @@
loader/CrossOriginAccessControl.cpp
loader/CrossOriginPreflightChecker.cpp
loader/CrossOriginPreflightResultCache.cpp
- loader/DocumentLoadTiming.cpp
loader/DocumentLoader.cpp
loader/DocumentThreadableLoader.cpp
loader/DocumentWriter.cpp
@@ -1926,6 +1925,7 @@
loader/HistoryController.cpp
loader/ImageLoader.cpp
loader/LinkLoader.cpp
+ loader/LoadTiming.cpp
loader/LoaderStrategy.cpp
loader/MediaResourceLoader.cpp
loader/MixedContentChecker.cpp
Modified: trunk/Source/WebCore/ChangeLog (204428 => 204429)
--- trunk/Source/WebCore/ChangeLog 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/ChangeLog 2016-08-12 22:53:27 UTC (rev 204429)
@@ -1,3 +1,127 @@
+2016-08-12 Johan K. Jensen <[email protected]>
+
+ Rename DocumentLoadTiming and ResourceLoadTiming
+ https://bugs.webkit.org/show_bug.cgi?id=160821
+
+ Reviewed by Alex Christensen.
+
+ Renames ResourceLoadTiming to NetworkLoadTiming.
+ Renames DocumentLoadTiming to LoadTiming as well as
+ navigationStart() to startTime(), so it's generic for
+ both the main resource and subresources.
+
+ * CMakeLists.txt:
+ * Modules/gamepad/NavigatorGamepad.cpp:
+ (WebCore::NavigatorGamepad::from):
+ * PlatformMac.cmake:
+ * WebCore.xcodeproj/project.pbxproj:
+ * inspector/InspectorNetworkAgent.cpp:
+ (WebCore::buildObjectForTiming):
+ (WebCore::buildObjectForResourceResponse):
+ * loader/DocumentLoader.cpp:
+ (WebCore::DocumentLoader::startLoadingMainResource):
+ * loader/DocumentLoader.h:
+ (WebCore::DocumentLoader::timing):
+ (WebCore::DocumentLoader::resetTiming):
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::dispatchUnloadEvents):
+ (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
+ * loader/LoadTiming.cpp: Renamed from Source/WebCore/loader/DocumentLoadTiming.cpp.
+ (WebCore::LoadTiming::LoadTiming):
+ (WebCore::LoadTiming::monotonicTimeToZeroBasedDocumentTime):
+ (WebCore::LoadTiming::monotonicTimeToPseudoWallTime):
+ (WebCore::LoadTiming::markStartTime):
+ (WebCore::LoadTiming::addRedirect):
+ * loader/LoadTiming.h: Renamed from Source/WebCore/loader/DocumentLoadTiming.h.
+ (WebCore::LoadTiming::markUnloadEventStart):
+ (WebCore::LoadTiming::markUnloadEventEnd):
+ (WebCore::LoadTiming::markRedirectStart):
+ (WebCore::LoadTiming::markRedirectEnd):
+ (WebCore::LoadTiming::markFetchStart):
+ (WebCore::LoadTiming::setResponseEnd):
+ (WebCore::LoadTiming::markLoadEventStart):
+ (WebCore::LoadTiming::markLoadEventEnd):
+ (WebCore::LoadTiming::setHasSameOriginAsPreviousDocument):
+ (WebCore::LoadTiming::startTime):
+ (WebCore::LoadTiming::unloadEventStart):
+ (WebCore::LoadTiming::unloadEventEnd):
+ (WebCore::LoadTiming::redirectStart):
+ (WebCore::LoadTiming::redirectEnd):
+ (WebCore::LoadTiming::redirectCount):
+ (WebCore::LoadTiming::fetchStart):
+ (WebCore::LoadTiming::responseEnd):
+ (WebCore::LoadTiming::loadEventStart):
+ (WebCore::LoadTiming::loadEventEnd):
+ (WebCore::LoadTiming::hasCrossOriginRedirect):
+ (WebCore::LoadTiming::hasSameOriginAsPreviousDocument):
+ (WebCore::LoadTiming::referenceMonotonicTime):
+ (WebCore::LoadTiming::referenceWallTime):
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::dispatchLoadEvent):
+ * page/PerformanceNavigation.cpp:
+ (WebCore::PerformanceNavigation::redirectCount):
+ * page/PerformanceResourceTiming.cpp:
+ (WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
+ (WebCore::PerformanceResourceTiming::resourceTimeToDocumentMilliseconds):
+ * page/PerformanceResourceTiming.h:
+ * page/PerformanceTiming.cpp:
+ (WebCore::PerformanceTiming::navigationStart):
+ (WebCore::PerformanceTiming::unloadEventStart):
+ (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::secureConnectionStart):
+ (WebCore::PerformanceTiming::requestStart):
+ (WebCore::PerformanceTiming::responseStart):
+ (WebCore::PerformanceTiming::responseEnd):
+ (WebCore::PerformanceTiming::loadEventStart):
+ (WebCore::PerformanceTiming::loadEventEnd):
+ (WebCore::PerformanceTiming::loadTiming):
+ (WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds):
+ * page/PerformanceTiming.h:
+ * platform/network/NetworkLoadTiming.h: Renamed from Source/WebCore/platform/network/ResourceLoadTiming.h.
+ (WebCore::NetworkLoadTiming::NetworkLoadTiming):
+ (WebCore::NetworkLoadTiming::operator=):
+ (WebCore::NetworkLoadTiming::isolatedCopy):
+ (WebCore::NetworkLoadTiming::operator==):
+ (WebCore::NetworkLoadTiming::operator!=):
+ (WebCore::NetworkLoadTiming::encode):
+ (WebCore::NetworkLoadTiming::decode):
+ * platform/network/ResourceHandle.h:
+ * platform/network/ResourceResponseBase.cpp:
+ (WebCore::ResourceResponseBase::crossThreadData):
+ (WebCore::ResourceResponseBase::fromCrossThreadData):
+ (WebCore::ResourceResponseBase::compare):
+ * platform/network/ResourceResponseBase.h:
+ (WebCore::ResourceResponseBase::networkLoadTiming):
+ (WebCore::ResourceResponseBase::encode):
+ (WebCore::ResourceResponseBase::decode):
+ * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
+ (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
+ * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
+ (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
+ * platform/network/cocoa/NetworkLoadTiming.mm: Renamed from Source/WebCore/platform/network/cocoa/ResourceLoadTiming.mm.
+ (WebCore::timingValue):
+ (WebCore::copyTimingData):
+ (WebCore::setCollectsTimingData):
+ * platform/network/curl/ResourceHandleManager.cpp:
+ (WebCore::calculateWebTimingInformations):
+ * platform/network/mac/ResourceHandleMac.mm:
+ (WebCore::ResourceHandle::getConnectionTimingData):
+ * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
+ (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
+ * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
+ (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
+ * platform/network/soup/ResourceHandleSoup.cpp:
+ (WebCore::sendRequestCallback):
+ (WebCore::ResourceHandle::didStartRequest):
+ (WebCore::networkEventCallback):
+
2016-08-12 Joseph Pecoraro <[email protected]>
Remove unused includes of RefCountedLeakCounter.h
Modified: trunk/Source/WebCore/Modules/gamepad/NavigatorGamepad.cpp (204428 => 204429)
--- trunk/Source/WebCore/Modules/gamepad/NavigatorGamepad.cpp 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/Modules/gamepad/NavigatorGamepad.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -66,7 +66,7 @@
if (Frame* frame = navigator->frame()) {
if (DocumentLoader* documentLoader = frame->loader().documentLoader())
- supplement->m_navigationStart = documentLoader->timing().navigationStart();
+ supplement->m_navigationStart = documentLoader->timing().startTime();
}
}
return supplement;
Modified: trunk/Source/WebCore/PlatformMac.cmake (204428 => 204429)
--- trunk/Source/WebCore/PlatformMac.cmake 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/PlatformMac.cmake 2016-08-12 22:53:27 UTC (rev 204429)
@@ -653,8 +653,8 @@
platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp
platform/network/cocoa/CredentialCocoa.mm
+ platform/network/cocoa/NetworkLoadTiming.mm
platform/network/cocoa/ProtectionSpaceCocoa.mm
- platform/network/cocoa/ResourceLoadTiming.mm
platform/network/cocoa/ResourceRequestCocoa.mm
platform/network/cocoa/ResourceResponseCocoa.mm
platform/network/cocoa/WebCoreNSURLSession.mm
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (204428 => 204429)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2016-08-12 22:53:27 UTC (rev 204429)
@@ -2409,7 +2409,7 @@
5C7C88D81D0F1F4A009D2F6D /* SocketProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C7C88D71D0F1F2B009D2F6D /* SocketProvider.h */; settings = {ATTRIBUTES = (Private, ); }; };
5C9A7A751AA0F6EA00958ACF /* DFABytecodeCompiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C39305E1AA0F6A90029C816 /* DFABytecodeCompiler.cpp */; };
5C9A7A761AA0F6ED00958ACF /* DFABytecodeInterpreter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C3930601AA0F6A90029C816 /* DFABytecodeInterpreter.cpp */; };
- 5C9B860C1C21E3C900110F36 /* ResourceLoadTiming.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C9B860B1C21E3C600110F36 /* ResourceLoadTiming.mm */; };
+ 5C9B860C1C21E3C900110F36 /* NetworkLoadTiming.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C9B860B1C21E3C600110F36 /* NetworkLoadTiming.mm */; };
5CB37FFE1C62D28C00F20188 /* ScrollAnimatorMock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CB37FFC1C62D27800F20188 /* ScrollAnimatorMock.cpp */; };
5CB37FFF1C62D2A100F20188 /* ScrollAnimatorMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB37FFD1C62D27800F20188 /* ScrollAnimatorMock.h */; };
5CBC8DAC1AAA302200E1C803 /* MediaAccessibilitySoftLink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CBC8DAA1AAA302200E1C803 /* MediaAccessibilitySoftLink.cpp */; };
@@ -3354,7 +3354,7 @@
85F74E0A0AA8DF8C000DC284 /* DOMCSSUnknownRule.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 85032DD50AA8C9BE007D3B7D /* DOMCSSUnknownRule.h */; };
85FF315A0AAFBFCB00374F38 /* DOMKeyboardEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 85FF31580AAFBFCB00374F38 /* DOMKeyboardEvent.h */; settings = {ATTRIBUTES = (Private, ); }; };
85FF315B0AAFBFCB00374F38 /* DOMKeyboardEvent.mm in Sources */ = {isa = PBXBuildFile; fileRef = 85FF31590AAFBFCB00374F38 /* DOMKeyboardEvent.mm */; };
- 861C2EA413FB4FDD00062ABB /* DocumentLoadTiming.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 861C2EA313FB4FDD00062ABB /* DocumentLoadTiming.cpp */; };
+ 861C2EA413FB4FDD00062ABB /* LoadTiming.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 861C2EA313FB4FDD00062ABB /* LoadTiming.cpp */; };
862F129E18C1576F005C54AF /* CountedUserActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 862F129D18C1572C005C54AF /* CountedUserActivity.h */; settings = {ATTRIBUTES = (Private, ); }; };
862F12A018C1DD02005C54AF /* HysteresisActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 862F129F18C1DCE4005C54AF /* HysteresisActivity.h */; settings = {ATTRIBUTES = (Private, ); }; };
86512EDE154A2AEF00A90426 /* PerformanceResourceTiming.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 86512EDB154A2AEE00A90426 /* PerformanceResourceTiming.cpp */; };
@@ -3377,13 +3377,13 @@
89B5EAA211E8003D00F2367E /* LineEnding.h in Headers */ = {isa = PBXBuildFile; fileRef = 89B5EAA011E8003D00F2367E /* LineEnding.h */; settings = {ATTRIBUTES = (Private, ); }; };
89F60B11157F686E0075E157 /* DOMWindowQuota.h in Headers */ = {isa = PBXBuildFile; fileRef = 89F60B0A157F686D0075E157 /* DOMWindowQuota.h */; };
89F60CDA15809D760075E157 /* JSStorageInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 89F60CD215809D760075E157 /* JSStorageInfo.h */; };
- 8A12E35D11FA33280025836A /* DocumentLoadTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A12E35C11FA33280025836A /* DocumentLoadTiming.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 8A12E35D11FA33280025836A /* LoadTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A12E35C11FA33280025836A /* LoadTiming.h */; settings = {ATTRIBUTES = (Private, ); }; };
8A309C9F123950BE00CB9204 /* NestingLevelIncrementer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A309C9E123950BE00CB9204 /* NestingLevelIncrementer.h */; };
8A413AE01207BBA50082016E /* ScriptRunner.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A413ADE1207BBA50082016E /* ScriptRunner.h */; settings = {ATTRIBUTES = (Private, ); }; };
8A413AE11207BBA50082016E /* ScriptRunner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A413ADF1207BBA50082016E /* ScriptRunner.cpp */; };
8A7CC96B12076D73001D4588 /* PendingScript.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A7CC96A12076D73001D4588 /* PendingScript.h */; settings = {ATTRIBUTES = (Private, ); }; };
8A7CC97012076F8A001D4588 /* PendingScript.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A7CC96F12076F8A001D4588 /* PendingScript.cpp */; };
- 8A81BF8511DCFD9000DA2B98 /* ResourceLoadTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A81BF8411DCFD9000DA2B98 /* ResourceLoadTiming.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 8A81BF8511DCFD9000DA2B98 /* NetworkLoadTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A81BF8411DCFD9000DA2B98 /* NetworkLoadTiming.h */; settings = {ATTRIBUTES = (Private, ); }; };
8A844D0511D3C18E0014065C /* Performance.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A844D0211D3C18E0014065C /* Performance.h */; };
8A9A587011E84C36008ACFD1 /* JSPerformanceNavigation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A9A586E11E84C35008ACFD1 /* JSPerformanceNavigation.cpp */; };
8A9A587111E84C36008ACFD1 /* JSPerformanceNavigation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A9A586F11E84C36008ACFD1 /* JSPerformanceNavigation.h */; };
@@ -9771,7 +9771,7 @@
5C6E653F1D5CEDC900F7862E /* URLParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = URLParser.cpp; sourceTree = "<group>"; };
5C6E65401D5CEDC900F7862E /* URLParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URLParser.h; sourceTree = "<group>"; };
5C7C88D71D0F1F2B009D2F6D /* SocketProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SocketProvider.h; sourceTree = "<group>"; };
- 5C9B860B1C21E3C600110F36 /* ResourceLoadTiming.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceLoadTiming.mm; sourceTree = "<group>"; };
+ 5C9B860B1C21E3C600110F36 /* NetworkLoadTiming.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = NetworkLoadTiming.mm; sourceTree = "<group>"; };
5CB37FFC1C62D27800F20188 /* ScrollAnimatorMock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollAnimatorMock.cpp; sourceTree = "<group>"; };
5CB37FFD1C62D27800F20188 /* ScrollAnimatorMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollAnimatorMock.h; sourceTree = "<group>"; };
5CBC8DAA1AAA302200E1C803 /* MediaAccessibilitySoftLink.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaAccessibilitySoftLink.cpp; sourceTree = "<group>"; };
@@ -10828,7 +10828,7 @@
85F56A790A98CE3700ADB60A /* DOMProcessingInstruction.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMProcessingInstruction.mm; sourceTree = "<group>"; };
85FF31580AAFBFCB00374F38 /* DOMKeyboardEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = DOMKeyboardEvent.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
85FF31590AAFBFCB00374F38 /* DOMKeyboardEvent.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; path = DOMKeyboardEvent.mm; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
- 861C2EA313FB4FDD00062ABB /* DocumentLoadTiming.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocumentLoadTiming.cpp; sourceTree = "<group>"; };
+ 861C2EA313FB4FDD00062ABB /* LoadTiming.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LoadTiming.cpp; sourceTree = "<group>"; };
862F129D18C1572C005C54AF /* CountedUserActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CountedUserActivity.h; sourceTree = "<group>"; };
862F129F18C1DCE4005C54AF /* HysteresisActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HysteresisActivity.h; sourceTree = "<group>"; };
86512EDB154A2AEE00A90426 /* PerformanceResourceTiming.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PerformanceResourceTiming.cpp; sourceTree = "<group>"; };
@@ -10866,13 +10866,13 @@
89F60B0A157F686D0075E157 /* DOMWindowQuota.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMWindowQuota.h; sourceTree = "<group>"; };
89F60CD215809D760075E157 /* JSStorageInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSStorageInfo.h; sourceTree = "<group>"; };
89FD58D816EEDBD400E183F0 /* NavigatorStorageQuota.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigatorStorageQuota.h; sourceTree = "<group>"; };
- 8A12E35C11FA33280025836A /* DocumentLoadTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentLoadTiming.h; sourceTree = "<group>"; };
+ 8A12E35C11FA33280025836A /* LoadTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoadTiming.h; sourceTree = "<group>"; };
8A309C9E123950BE00CB9204 /* NestingLevelIncrementer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NestingLevelIncrementer.h; sourceTree = "<group>"; };
8A413ADE1207BBA50082016E /* ScriptRunner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptRunner.h; sourceTree = "<group>"; };
8A413ADF1207BBA50082016E /* ScriptRunner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptRunner.cpp; sourceTree = "<group>"; };
8A7CC96A12076D73001D4588 /* PendingScript.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PendingScript.h; sourceTree = "<group>"; };
8A7CC96F12076F8A001D4588 /* PendingScript.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PendingScript.cpp; sourceTree = "<group>"; };
- 8A81BF8411DCFD9000DA2B98 /* ResourceLoadTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceLoadTiming.h; sourceTree = "<group>"; };
+ 8A81BF8411DCFD9000DA2B98 /* NetworkLoadTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkLoadTiming.h; 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 /* JSPerformanceNavigation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSPerformanceNavigation.cpp; sourceTree = "<group>"; };
@@ -17952,7 +17952,7 @@
514C76660CE923A1007EF3CD /* ResourceHandleInternal.h */,
51E4143216A6595100C633C7 /* ResourceHandleTypes.h */,
E4295FA312B0614E00D1ACE0 /* ResourceLoadPriority.h */,
- 8A81BF8411DCFD9000DA2B98 /* ResourceLoadTiming.h */,
+ 8A81BF8411DCFD9000DA2B98 /* NetworkLoadTiming.h */,
514C76670CE923A1007EF3CD /* ResourceRequestBase.cpp */,
514C76680CE923A1007EF3CD /* ResourceRequestBase.h */,
514C76690CE923A1007EF3CD /* ResourceResponseBase.cpp */,
@@ -18356,7 +18356,7 @@
3792917B1987678F00F4B661 /* CredentialCocoa.mm */,
372ADA37197F47B900FC501E /* ProtectionSpaceCocoa.h */,
372ADA39197F687600FC501E /* ProtectionSpaceCocoa.mm */,
- 5C9B860B1C21E3C600110F36 /* ResourceLoadTiming.mm */,
+ 5C9B860B1C21E3C600110F36 /* NetworkLoadTiming.mm */,
7E7DE1FC195CEF260035363B /* ResourceRequestCocoa.mm */,
A1F78D0B1C25422C00245446 /* ResourceResponseCocoa.mm */,
CD225C0A1C46FBF400140761 /* WebCoreNSURLSession.h */,
@@ -22396,8 +22396,8 @@
E1C415D90F655D6F0092D2FB /* CrossOriginPreflightResultCache.h */,
93E227DB0AF589AD00D48324 /* DocumentLoader.cpp */,
656D371E0ADBA5DE00A4554D /* DocumentLoader.h */,
- 861C2EA313FB4FDD00062ABB /* DocumentLoadTiming.cpp */,
- 8A12E35C11FA33280025836A /* DocumentLoadTiming.h */,
+ 861C2EA313FB4FDD00062ABB /* LoadTiming.cpp */,
+ 8A12E35C11FA33280025836A /* LoadTiming.h */,
0B9056150F2578BE0095FF6A /* DocumentThreadableLoader.cpp */,
0B9056160F2578BE0095FF6A /* DocumentThreadableLoader.h */,
9738899E116EA9DC00ADF313 /* DocumentWriter.cpp */,
@@ -25296,7 +25296,7 @@
A3BB59F41457A40D00AC56FE /* DocumentEventQueue.h in Headers */,
A8185F3D09765766005826D9 /* DocumentFragment.h in Headers */,
656D37360ADBA5DE00A4554D /* DocumentLoader.h in Headers */,
- 8A12E35D11FA33280025836A /* DocumentLoadTiming.h in Headers */,
+ 8A12E35D11FA33280025836A /* LoadTiming.h in Headers */,
ED2BA83C09A24B91006C0AC4 /* DocumentMarker.h in Headers */,
CE057FA61220731100A476D5 /* DocumentMarkerController.h in Headers */,
14947FFE12F80CD200A0F631 /* DocumentOrderedMap.h in Headers */,
@@ -27359,7 +27359,7 @@
E4295FA412B0614E00D1ACE0 /* ResourceLoadPriority.h in Headers */,
7A929CA71C598AA9004DF226 /* ResourceLoadStatistics.h in Headers */,
7AD3CDDA1C8A01A400F12698 /* ResourceLoadStatisticsStore.h in Headers */,
- 8A81BF8511DCFD9000DA2B98 /* ResourceLoadTiming.h in Headers */,
+ 8A81BF8511DCFD9000DA2B98 /* NetworkLoadTiming.h in Headers */,
7EE6846D12D26E3800E79415 /* ResourceRequest.h in Headers */,
514C767D0CE923A1007EF3CD /* ResourceRequestBase.h in Headers */,
7EE6846F12D26E3800E79415 /* ResourceRequestCFNet.h in Headers */,
@@ -29115,7 +29115,7 @@
A8185F3F09765766005826D9 /* DocumentFragment.cpp in Sources */,
93E227E00AF589AD00D48324 /* DocumentLoader.cpp in Sources */,
1C26497A0D7E248A00BD10F2 /* DocumentLoaderMac.cpp in Sources */,
- 861C2EA413FB4FDD00062ABB /* DocumentLoadTiming.cpp in Sources */,
+ 861C2EA413FB4FDD00062ABB /* LoadTiming.cpp in Sources */,
A781C6A713828B5D0012A62A /* DocumentMarker.cpp in Sources */,
CE057FA51220731100A476D5 /* DocumentMarkerController.cpp in Sources */,
14947FFD12F80CD200A0F631 /* DocumentOrderedMap.cpp in Sources */,
@@ -31018,7 +31018,7 @@
6B693A341C51A95D00B03BEF /* ResourceLoadObserver.cpp in Sources */,
7A929CA61C598A9E004DF226 /* ResourceLoadStatistics.cpp in Sources */,
7AD3CDD91C8A002F00F12698 /* ResourceLoadStatisticsStore.cpp in Sources */,
- 5C9B860C1C21E3C900110F36 /* ResourceLoadTiming.mm in Sources */,
+ 5C9B860C1C21E3C900110F36 /* NetworkLoadTiming.mm in Sources */,
514C767C0CE923A1007EF3CD /* ResourceRequestBase.cpp in Sources */,
7EE6846E12D26E3800E79415 /* ResourceRequestCFNet.cpp in Sources */,
7E7DE1FD195CEF260035363B /* ResourceRequestCocoa.mm in Sources */,
Modified: trunk/Source/WebCore/inspector/InspectorNetworkAgent.cpp (204428 => 204429)
--- trunk/Source/WebCore/inspector/InspectorNetworkAgent.cpp 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/inspector/InspectorNetworkAgent.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -184,10 +184,10 @@
return headersObject;
}
-static Ref<Inspector::Protocol::Network::ResourceTiming> buildObjectForTiming(const ResourceLoadTiming& timing, DocumentLoader* loader)
+static Ref<Inspector::Protocol::Network::ResourceTiming> buildObjectForTiming(const NetworkLoadTiming& timing, DocumentLoader* loader)
{
return Inspector::Protocol::Network::ResourceTiming::create()
- .setNavigationStart(loader->timing().navigationStart())
+ .setNavigationStart(loader->timing().startTime())
.setDomainLookupStart(timing.domainLookupStart)
.setDomainLookupEnd(timing.domainLookupEnd)
.setConnectStart(timing.connectStart)
@@ -230,7 +230,7 @@
.release();
responseObject->setFromDiskCache(response.source() == ResourceResponse::Source::DiskCache || response.source() == ResourceResponse::Source::DiskCacheAfterValidation);
- responseObject->setTiming(buildObjectForTiming(response.resourceLoadTiming(), loader));
+ responseObject->setTiming(buildObjectForTiming(response.networkLoadTiming(), loader));
return WTFMove(responseObject);
}
Deleted: trunk/Source/WebCore/loader/DocumentLoadTiming.cpp (204428 => 204429)
--- trunk/Source/WebCore/loader/DocumentLoadTiming.cpp 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/loader/DocumentLoadTiming.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2011 Google, Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "DocumentLoadTiming.h"
-
-#include "Document.h"
-#include "DocumentLoader.h"
-#include "Frame.h"
-#include "Page.h"
-#include "SecurityOrigin.h"
-#include <wtf/CurrentTime.h>
-#include <wtf/RefPtr.h>
-
-namespace WebCore {
-
-DocumentLoadTiming::DocumentLoadTiming()
- : m_referenceMonotonicTime(0.0)
- , m_referenceWallTime(0.0)
- , m_navigationStart(0.0)
- , m_unloadEventStart(0.0)
- , m_unloadEventEnd(0.0)
- , m_redirectStart(0.0)
- , m_redirectEnd(0.0)
- , m_redirectCount(0)
- , m_fetchStart(0.0)
- , m_responseEnd(0.0)
- , m_loadEventStart(0.0)
- , m_loadEventEnd(0.0)
- , m_hasCrossOriginRedirect(false)
- , m_hasSameOriginAsPreviousDocument(false)
-{
-}
-
-double DocumentLoadTiming::monotonicTimeToZeroBasedDocumentTime(double monotonicTime) const
-{
- if (!monotonicTime)
- return 0.0;
- return monotonicTime - m_referenceMonotonicTime;
-}
-
-double DocumentLoadTiming::monotonicTimeToPseudoWallTime(double monotonicTime) const
-{
- if (!monotonicTime)
- return 0.0;
- return m_referenceWallTime + monotonicTime - m_referenceMonotonicTime;
-}
-
-void DocumentLoadTiming::markNavigationStart()
-{
- ASSERT(!m_navigationStart && !m_referenceMonotonicTime && !m_referenceWallTime);
-
- m_navigationStart = m_referenceMonotonicTime = monotonicallyIncreasingTime();
- m_referenceWallTime = currentTime();
-}
-
-void DocumentLoadTiming::addRedirect(const URL& redirectingUrl, const URL& redirectedUrl)
-{
- m_redirectCount++;
- if (!m_redirectStart)
- m_redirectStart = m_fetchStart;
- m_redirectEnd = m_fetchStart = monotonicallyIncreasingTime();
- // Check if the redirected url is allowed to access the redirecting url's timing information.
- Ref<SecurityOrigin> redirectedSecurityOrigin(SecurityOrigin::create(redirectedUrl));
- m_hasCrossOriginRedirect = !redirectedSecurityOrigin.get().canRequest(redirectingUrl);
-}
-
-} // namespace WebCore
Deleted: trunk/Source/WebCore/loader/DocumentLoadTiming.h (204428 => 204429)
--- trunk/Source/WebCore/loader/DocumentLoadTiming.h 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/loader/DocumentLoadTiming.h 2016-08-12 22:53:27 UTC (rev 204429)
@@ -1,92 +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:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef DocumentLoadTiming_h
-#define DocumentLoadTiming_h
-
-#include <wtf/CurrentTime.h>
-
-namespace WebCore {
-
-class Frame;
-class URL;
-
-class DocumentLoadTiming {
-public:
- DocumentLoadTiming();
-
- double monotonicTimeToZeroBasedDocumentTime(double) const;
- double monotonicTimeToPseudoWallTime(double) const;
-
- void markNavigationStart();
- void addRedirect(const URL& redirectingUrl, const URL& redirectedUrl);
-
- void markUnloadEventStart() { m_unloadEventStart = monotonicallyIncreasingTime(); }
- void markUnloadEventEnd() { m_unloadEventEnd = monotonicallyIncreasingTime(); }
- void markRedirectStart() { m_redirectStart = monotonicallyIncreasingTime(); }
- void markRedirectEnd() { m_redirectEnd = monotonicallyIncreasingTime(); }
- void markFetchStart() { m_fetchStart = monotonicallyIncreasingTime(); }
- void setResponseEnd(double monotonicTime) { m_responseEnd = monotonicTime; }
- void markLoadEventStart() { m_loadEventStart = monotonicallyIncreasingTime(); }
- void markLoadEventEnd() { m_loadEventEnd = monotonicallyIncreasingTime(); }
-
- void setHasSameOriginAsPreviousDocument(bool value) { m_hasSameOriginAsPreviousDocument = value; }
-
- double navigationStart() const { return m_navigationStart; }
- double unloadEventStart() const { return m_unloadEventStart; }
- double unloadEventEnd() const { return m_unloadEventEnd; }
- double redirectStart() const { return m_redirectStart; }
- double redirectEnd() const { return m_redirectEnd; }
- short redirectCount() const { return m_redirectCount; }
- double fetchStart() const { return m_fetchStart; }
- double responseEnd() const { return m_responseEnd; }
- double loadEventStart() const { return m_loadEventStart; }
- double loadEventEnd() const { return m_loadEventEnd; }
- bool hasCrossOriginRedirect() const { return m_hasCrossOriginRedirect; }
- bool hasSameOriginAsPreviousDocument() const { return m_hasSameOriginAsPreviousDocument; }
-
- double referenceMonotonicTime() const { return m_referenceMonotonicTime; }
- double referenceWallTime() const { return m_referenceWallTime; }
-
-private:
- double m_referenceMonotonicTime;
- double m_referenceWallTime;
- double m_navigationStart;
- double m_unloadEventStart;
- double m_unloadEventEnd;
- double m_redirectStart;
- double m_redirectEnd;
- short m_redirectCount;
- double m_fetchStart;
- double m_responseEnd;
- double m_loadEventStart;
- double m_loadEventEnd;
- bool m_hasCrossOriginRedirect;
- bool m_hasSameOriginAsPreviousDocument;
-};
-
-} // namespace WebCore
-
-#endif
Modified: trunk/Source/WebCore/loader/DocumentLoader.cpp (204428 => 204429)
--- trunk/Source/WebCore/loader/DocumentLoader.cpp 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/loader/DocumentLoader.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -1466,7 +1466,7 @@
void DocumentLoader::startLoadingMainResource()
{
m_mainDocumentError = ResourceError();
- timing().markNavigationStart();
+ timing().markStartTime();
ASSERT(!m_mainResource);
ASSERT(!m_loadingMainResource);
m_loadingMainResource = true;
@@ -1484,7 +1484,7 @@
// because we pass a wrong loadType (see FIXME in addExtraFieldsToMainResourceRequest()).
frameLoader()->addExtraFieldsToMainResourceRequest(m_request);
- ASSERT(timing().navigationStart());
+ ASSERT(timing().startTime());
ASSERT(!timing().fetchStart());
timing().markFetchStart();
Modified: trunk/Source/WebCore/loader/DocumentLoader.h (204428 => 204429)
--- trunk/Source/WebCore/loader/DocumentLoader.h 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/loader/DocumentLoader.h 2016-08-12 22:53:27 UTC (rev 204429)
@@ -31,9 +31,9 @@
#include "CachedRawResourceClient.h"
#include "CachedResourceHandle.h"
-#include "DocumentLoadTiming.h"
#include "DocumentWriter.h"
#include "IconDatabaseBase.h"
+#include "LoadTiming.h"
#include "NavigationAction.h"
#include "ResourceError.h"
#include "ResourceLoaderOptions.h"
@@ -255,8 +255,8 @@
void recordMemoryCacheLoadForFutureClientNotification(const ResourceRequest&);
void takeMemoryCacheLoadsForClientNotification(Vector<ResourceRequest>& loads);
- DocumentLoadTiming& timing() { return m_documentLoadTiming; }
- void resetTiming() { m_documentLoadTiming = DocumentLoadTiming(); }
+ LoadTiming& timing() { return m_loadTiming; }
+ void resetTiming() { m_loadTiming = LoadTiming(); }
// The WebKit layer calls this function when it's ready for the data to
// actually be added to the document.
@@ -426,7 +426,7 @@
bool m_didCreateGlobalHistoryEntry;
bool m_loadingMainResource;
- DocumentLoadTiming m_documentLoadTiming;
+ LoadTiming m_loadTiming;
double m_timeOfLastDataReceived;
unsigned long m_identifierForLoadWithoutResourceLoader;
Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (204428 => 204429)
--- trunk/Source/WebCore/loader/FrameLoader.cpp 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -51,7 +51,6 @@
#include "DiagnosticLoggingClient.h"
#include "DiagnosticLoggingKeys.h"
#include "Document.h"
-#include "DocumentLoadTiming.h"
#include "DocumentLoader.h"
#include "Editor.h"
#include "EditorClient.h"
@@ -82,6 +81,7 @@
#include "IgnoreOpensDuringUnloadCountIncrementer.h"
#include "InspectorController.h"
#include "InspectorInstrumentation.h"
+#include "LoadTiming.h"
#include "LoaderStrategy.h"
#include "Logging.h"
#include "MIMETypeRegistry.h"
@@ -2933,12 +2933,12 @@
if (!m_frame.document()->inPageCache()) {
Ref<Event> unloadEvent(Event::create(eventNames().unloadEvent, false, false));
- // The DocumentLoader (and thus its DocumentLoadTiming) might get destroyed
+ // The DocumentLoader (and thus its LoadTiming) might get destroyed
// while dispatching the event, so protect it to prevent writing the end
// time into freed memory.
RefPtr<DocumentLoader> documentLoader = m_provisionalDocumentLoader;
m_pageDismissalEventBeingDispatched = PageDismissalType::Unload;
- if (documentLoader && documentLoader->timing().navigationStart() && !documentLoader->timing().unloadEventStart() && !documentLoader->timing().unloadEventEnd()) {
+ if (documentLoader && documentLoader->timing().startTime() && !documentLoader->timing().unloadEventStart() && !documentLoader->timing().unloadEventEnd()) {
auto& timing = documentLoader->timing();
timing.markUnloadEventStart();
m_frame.document()->domWindow()->dispatchEvent(unloadEvent, m_frame.document());
@@ -3241,9 +3241,9 @@
m_loadingFromCachedPage = true;
// Should have timing data from previous time(s) the page was shown.
- ASSERT(provisionalLoader->timing().navigationStart());
+ ASSERT(provisionalLoader->timing().startTime());
provisionalLoader->resetTiming();
- provisionalLoader->timing().markNavigationStart();
+ provisionalLoader->timing().markStartTime();
provisionalLoader->setCommitted(true);
commitProvisionalLoad();
Copied: trunk/Source/WebCore/loader/LoadTiming.cpp (from rev 204428, trunk/Source/WebCore/loader/DocumentLoadTiming.cpp) (0 => 204429)
--- trunk/Source/WebCore/loader/LoadTiming.cpp (rev 0)
+++ trunk/Source/WebCore/loader/LoadTiming.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2011 Google, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "LoadTiming.h"
+
+#include "Document.h"
+#include "DocumentLoader.h"
+#include "Frame.h"
+#include "Page.h"
+#include "SecurityOrigin.h"
+#include <wtf/CurrentTime.h>
+#include <wtf/RefPtr.h>
+
+namespace WebCore {
+
+LoadTiming::LoadTiming()
+ : m_referenceMonotonicTime(0.0)
+ , m_referenceWallTime(0.0)
+ , m_startTime(0.0)
+ , m_unloadEventStart(0.0)
+ , m_unloadEventEnd(0.0)
+ , m_redirectStart(0.0)
+ , m_redirectEnd(0.0)
+ , m_redirectCount(0)
+ , m_fetchStart(0.0)
+ , m_responseEnd(0.0)
+ , m_loadEventStart(0.0)
+ , m_loadEventEnd(0.0)
+ , m_hasCrossOriginRedirect(false)
+ , m_hasSameOriginAsPreviousDocument(false)
+{
+}
+
+double LoadTiming::monotonicTimeToZeroBasedDocumentTime(double monotonicTime) const
+{
+ if (!monotonicTime)
+ return 0.0;
+ return monotonicTime - m_referenceMonotonicTime;
+}
+
+double LoadTiming::monotonicTimeToPseudoWallTime(double monotonicTime) const
+{
+ if (!monotonicTime)
+ return 0.0;
+ return m_referenceWallTime + monotonicTime - m_referenceMonotonicTime;
+}
+
+void LoadTiming::markStartTime()
+{
+ ASSERT(!m_startTime && !m_referenceMonotonicTime && !m_referenceWallTime);
+
+ m_startTime = m_referenceMonotonicTime = monotonicallyIncreasingTime();
+ m_referenceWallTime = currentTime();
+}
+
+void LoadTiming::addRedirect(const URL& redirectingUrl, const URL& redirectedUrl)
+{
+ m_redirectCount++;
+ if (!m_redirectStart)
+ m_redirectStart = m_fetchStart;
+ m_redirectEnd = m_fetchStart = monotonicallyIncreasingTime();
+ // Check if the redirected url is allowed to access the redirecting url's timing information.
+ Ref<SecurityOrigin> redirectedSecurityOrigin(SecurityOrigin::create(redirectedUrl));
+ m_hasCrossOriginRedirect = !redirectedSecurityOrigin.get().canRequest(redirectingUrl);
+}
+
+} // namespace WebCore
Copied: trunk/Source/WebCore/loader/LoadTiming.h (from rev 204428, trunk/Source/WebCore/loader/DocumentLoadTiming.h) (0 => 204429)
--- trunk/Source/WebCore/loader/LoadTiming.h (rev 0)
+++ trunk/Source/WebCore/loader/LoadTiming.h 2016-08-12 22:53:27 UTC (rev 204429)
@@ -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:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <wtf/CurrentTime.h>
+
+namespace WebCore {
+
+class Frame;
+class URL;
+
+class LoadTiming {
+public:
+ LoadTiming();
+
+ double monotonicTimeToZeroBasedDocumentTime(double) const;
+ double monotonicTimeToPseudoWallTime(double) const;
+
+ void markStartTime();
+ void addRedirect(const URL& redirectingUrl, const URL& redirectedUrl);
+
+ void markUnloadEventStart() { m_unloadEventStart = monotonicallyIncreasingTime(); }
+ void markUnloadEventEnd() { m_unloadEventEnd = monotonicallyIncreasingTime(); }
+ void markRedirectStart() { m_redirectStart = monotonicallyIncreasingTime(); }
+ void markRedirectEnd() { m_redirectEnd = monotonicallyIncreasingTime(); }
+ void markFetchStart() { m_fetchStart = monotonicallyIncreasingTime(); }
+ void setResponseEnd(double monotonicTime) { m_responseEnd = monotonicTime; }
+ void markLoadEventStart() { m_loadEventStart = monotonicallyIncreasingTime(); }
+ void markLoadEventEnd() { m_loadEventEnd = monotonicallyIncreasingTime(); }
+
+ void setHasSameOriginAsPreviousDocument(bool value) { m_hasSameOriginAsPreviousDocument = value; }
+
+ double startTime() const { return m_startTime; }
+ double unloadEventStart() const { return m_unloadEventStart; }
+ double unloadEventEnd() const { return m_unloadEventEnd; }
+ double redirectStart() const { return m_redirectStart; }
+ double redirectEnd() const { return m_redirectEnd; }
+ short redirectCount() const { return m_redirectCount; }
+ double fetchStart() const { return m_fetchStart; }
+ double responseEnd() const { return m_responseEnd; }
+ double loadEventStart() const { return m_loadEventStart; }
+ double loadEventEnd() const { return m_loadEventEnd; }
+ bool hasCrossOriginRedirect() const { return m_hasCrossOriginRedirect; }
+ bool hasSameOriginAsPreviousDocument() const { return m_hasSameOriginAsPreviousDocument; }
+
+ double referenceMonotonicTime() const { return m_referenceMonotonicTime; }
+ double referenceWallTime() const { return m_referenceWallTime; }
+
+private:
+ double m_referenceMonotonicTime;
+ double m_referenceWallTime;
+ double m_startTime;
+ double m_unloadEventStart;
+ double m_unloadEventEnd;
+ double m_redirectStart;
+ double m_redirectEnd;
+ short m_redirectCount;
+ double m_fetchStart;
+ double m_responseEnd;
+ double m_loadEventStart;
+ double m_loadEventEnd;
+ bool m_hasCrossOriginRedirect;
+ bool m_hasSameOriginAsPreviousDocument;
+};
+
+} // namespace WebCore
Modified: trunk/Source/WebCore/page/DOMWindow.cpp (204428 => 204429)
--- trunk/Source/WebCore/page/DOMWindow.cpp 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/page/DOMWindow.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -1868,10 +1868,10 @@
{
Ref<Event> loadEvent = Event::create(eventNames().loadEvent, false, false);
if (m_frame && m_frame->loader().documentLoader() && !m_frame->loader().documentLoader()->timing().loadEventStart()) {
- // The DocumentLoader (and thus its DocumentLoadTiming) might get destroyed while dispatching
+ // The DocumentLoader (and thus its LoadTiming) might get destroyed while dispatching
// the event, so protect it to prevent writing the end time into freed memory.
RefPtr<DocumentLoader> documentLoader = m_frame->loader().documentLoader();
- DocumentLoadTiming& timing = documentLoader->timing();
+ LoadTiming& timing = documentLoader->timing();
timing.markLoadEventStart();
dispatchEvent(loadEvent, document());
timing.markLoadEventEnd();
Modified: trunk/Source/WebCore/page/PerformanceNavigation.cpp (204428 => 204429)
--- trunk/Source/WebCore/page/PerformanceNavigation.cpp 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/page/PerformanceNavigation.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -73,7 +73,7 @@
if (!loader)
return 0;
- DocumentLoadTiming& timing = loader->timing();
+ LoadTiming& timing = loader->timing();
if (timing.hasCrossOriginRedirect())
return 0;
Modified: trunk/Source/WebCore/page/PerformanceResourceTiming.cpp (204428 => 204429)
--- trunk/Source/WebCore/page/PerformanceResourceTiming.cpp 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/page/PerformanceResourceTiming.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -35,9 +35,9 @@
#if ENABLE(WEB_TIMING)
#include "Document.h"
-#include "DocumentLoadTiming.h"
#include "DocumentLoader.h"
#include "HTTPHeaderNames.h"
+#include "LoadTiming.h"
#include "URL.h"
#include "ResourceRequest.h"
#include "ResourceResponse.h"
@@ -79,7 +79,7 @@
PerformanceResourceTiming::PerformanceResourceTiming(const AtomicString& initiatorType, const ResourceRequest& request, const ResourceResponse& response, double initiationTime, double finishTime, Document* requestingDocument)
: PerformanceEntry(request.url().string(), "resource", monotonicTimeToDocumentMilliseconds(requestingDocument, initiationTime), monotonicTimeToDocumentMilliseconds(requestingDocument, finishTime))
, m_initiatorType(initiatorType)
- , m_timing(response.resourceLoadTiming())
+ , m_timing(response.networkLoadTiming())
, m_finishTime(finishTime)
, m_shouldReportDetails(passesTimingAllowCheck(response, requestingDocument))
, m_requestingDocument(requestingDocument)
@@ -195,7 +195,7 @@
{
if (!deltaMilliseconds)
return 0.0;
- return monotonicTimeToDocumentMilliseconds(m_requestingDocument.get(), m_requestingDocument->loader()->timing().navigationStart()) + deltaMilliseconds;
+ return monotonicTimeToDocumentMilliseconds(m_requestingDocument.get(), m_requestingDocument->loader()->timing().startTime()) + deltaMilliseconds;
}
} // namespace WebCore
Modified: trunk/Source/WebCore/page/PerformanceResourceTiming.h (204428 => 204429)
--- trunk/Source/WebCore/page/PerformanceResourceTiming.h 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/page/PerformanceResourceTiming.h 2016-08-12 22:53:27 UTC (rev 204429)
@@ -34,8 +34,8 @@
#if ENABLE(WEB_TIMING)
+#include "NetworkLoadTiming.h"
#include "PerformanceEntry.h"
-#include "ResourceLoadTiming.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
#include <wtf/text/WTFString.h>
@@ -44,7 +44,7 @@
class Document;
class URL;
-class ResourceLoadTiming;
+class NetworkLoadTiming;
class ResourceRequest;
class ResourceResponse;
@@ -77,7 +77,7 @@
double resourceTimeToDocumentMilliseconds(int deltaMilliseconds) const;
AtomicString m_initiatorType;
- ResourceLoadTiming m_timing;
+ NetworkLoadTiming m_timing;
double m_finishTime;
bool m_shouldReportDetails;
RefPtr<Document> m_requestingDocument;
Modified: trunk/Source/WebCore/page/PerformanceTiming.cpp (204428 => 204429)
--- trunk/Source/WebCore/page/PerformanceTiming.cpp 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/page/PerformanceTiming.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -34,12 +34,12 @@
#if ENABLE(WEB_TIMING)
#include "Document.h"
-#include "DocumentLoadTiming.h"
#include "DocumentLoader.h"
#include "DocumentTiming.h"
#include "Frame.h"
#include "FrameLoader.h"
-#include "ResourceLoadTiming.h"
+#include "LoadTiming.h"
+#include "NetworkLoadTiming.h"
#include "ResourceResponse.h"
#include <wtf/CurrentTime.h>
@@ -58,16 +58,16 @@
unsigned long long PerformanceTiming::navigationStart() const
{
- DocumentLoadTiming* timing = documentLoadTiming();
+ LoadTiming* timing = loadTiming();
if (!timing)
return 0;
- return monotonicTimeToIntegerMilliseconds(timing->navigationStart());
+ return monotonicTimeToIntegerMilliseconds(timing->startTime());
}
unsigned long long PerformanceTiming::unloadEventStart() const
{
- DocumentLoadTiming* timing = documentLoadTiming();
+ LoadTiming* timing = loadTiming();
if (!timing)
return 0;
@@ -79,7 +79,7 @@
unsigned long long PerformanceTiming::unloadEventEnd() const
{
- DocumentLoadTiming* timing = documentLoadTiming();
+ LoadTiming* timing = loadTiming();
if (!timing)
return 0;
@@ -91,7 +91,7 @@
unsigned long long PerformanceTiming::redirectStart() const
{
- DocumentLoadTiming* timing = documentLoadTiming();
+ LoadTiming* timing = loadTiming();
if (!timing)
return 0;
@@ -103,7 +103,7 @@
unsigned long long PerformanceTiming::redirectEnd() const
{
- DocumentLoadTiming* timing = documentLoadTiming();
+ LoadTiming* timing = loadTiming();
if (!timing)
return 0;
@@ -115,7 +115,7 @@
unsigned long long PerformanceTiming::fetchStart() const
{
- DocumentLoadTiming* timing = documentLoadTiming();
+ LoadTiming* timing = loadTiming();
if (!timing)
return 0;
@@ -128,7 +128,7 @@
if (!loader)
return fetchStart();
- const ResourceLoadTiming& timing = loader->response().resourceLoadTiming();
+ const NetworkLoadTiming& timing = loader->response().networkLoadTiming();
// 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.
@@ -144,7 +144,7 @@
if (!loader)
return domainLookupStart();
- const ResourceLoadTiming& timing = loader->response().resourceLoadTiming();
+ const NetworkLoadTiming& timing = loader->response().networkLoadTiming();
// 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.
@@ -160,7 +160,7 @@
if (!loader)
return domainLookupEnd();
- const ResourceLoadTiming& timing = loader->response().resourceLoadTiming();
+ const NetworkLoadTiming& timing = loader->response().networkLoadTiming();
// 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.
@@ -168,7 +168,7 @@
if (connectStart < 0)
return domainLookupEnd();
- // ResourceLoadTiming's connect phase includes DNS, however Navigation Timing's
+ // NetworkLoadTiming's connect phase includes DNS, however Navigation Timing's
// connect phase should not. So if there is DNS time, trim it from the start.
if (timing.domainLookupEnd >= 0 && timing.domainLookupEnd > connectStart)
connectStart = timing.domainLookupEnd;
@@ -182,7 +182,7 @@
if (!loader)
return connectStart();
- const ResourceLoadTiming& timing = loader->response().resourceLoadTiming();
+ const NetworkLoadTiming& timing = loader->response().networkLoadTiming();
// 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.
@@ -198,7 +198,7 @@
if (!loader)
return 0;
- const ResourceLoadTiming& timing = loader->response().resourceLoadTiming();
+ const NetworkLoadTiming& timing = loader->response().networkLoadTiming();
if (timing.secureConnectionStart < 0)
return 0;
@@ -212,7 +212,7 @@
if (!loader)
return connectEnd();
- const ResourceLoadTiming& timing = loader->response().resourceLoadTiming();
+ const NetworkLoadTiming& timing = loader->response().networkLoadTiming();
ASSERT(timing.requestStart >= 0);
return resourceLoadTimeRelativeToFetchStart(timing.requestStart);
@@ -224,7 +224,7 @@
if (!loader)
return requestStart();
- const ResourceLoadTiming& timing = loader->response().resourceLoadTiming();
+ const NetworkLoadTiming& timing = loader->response().networkLoadTiming();
ASSERT(timing.responseStart >= 0);
return resourceLoadTimeRelativeToFetchStart(timing.responseStart);
@@ -232,7 +232,7 @@
unsigned long long PerformanceTiming::responseEnd() const
{
- DocumentLoadTiming* timing = documentLoadTiming();
+ LoadTiming* timing = loadTiming();
if (!timing)
return 0;
@@ -286,7 +286,7 @@
unsigned long long PerformanceTiming::loadEventStart() const
{
- DocumentLoadTiming* timing = documentLoadTiming();
+ LoadTiming* timing = loadTiming();
if (!timing)
return 0;
@@ -295,7 +295,7 @@
unsigned long long PerformanceTiming::loadEventEnd() const
{
- DocumentLoadTiming* timing = documentLoadTiming();
+ LoadTiming* timing = loadTiming();
if (!timing)
return 0;
@@ -322,7 +322,7 @@
return &document->timing();
}
-DocumentLoadTiming* PerformanceTiming::documentLoadTiming() const
+LoadTiming* PerformanceTiming::loadTiming() const
{
DocumentLoader* loader = documentLoader();
if (!loader)
@@ -340,7 +340,7 @@
unsigned long long PerformanceTiming::monotonicTimeToIntegerMilliseconds(double monotonicSeconds) const
{
ASSERT(monotonicSeconds >= 0);
- if (const DocumentLoadTiming* timing = documentLoadTiming())
+ if (const LoadTiming* timing = loadTiming())
return toIntegerMilliseconds(timing->monotonicTimeToPseudoWallTime(monotonicSeconds));
return 0;
}
Modified: trunk/Source/WebCore/page/PerformanceTiming.h (204428 => 204429)
--- trunk/Source/WebCore/page/PerformanceTiming.h 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/page/PerformanceTiming.h 2016-08-12 22:53:27 UTC (rev 204429)
@@ -39,11 +39,11 @@
namespace WebCore {
-class DocumentLoadTiming;
+class LoadTiming;
class DocumentLoader;
struct DocumentTiming;
class Frame;
-class ResourceLoadTiming;
+class NetworkLoadTiming;
class PerformanceTiming : public RefCounted<PerformanceTiming>, public DOMWindowProperty {
public:
@@ -76,7 +76,7 @@
const DocumentTiming* documentTiming() const;
DocumentLoader* documentLoader() const;
- DocumentLoadTiming* documentLoadTiming() const;
+ LoadTiming* loadTiming() const;
unsigned long long resourceLoadTimeRelativeToFetchStart(int) const;
unsigned long long monotonicTimeToIntegerMilliseconds(double) const;
};
Copied: trunk/Source/WebCore/platform/network/NetworkLoadTiming.h (from rev 204428, trunk/Source/WebCore/platform/network/ResourceLoadTiming.h) (0 => 204429)
--- trunk/Source/WebCore/platform/network/NetworkLoadTiming.h (rev 0)
+++ trunk/Source/WebCore/platform/network/NetworkLoadTiming.h 2016-08-12 22:53:27 UTC (rev 204429)
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2010 Google, Inc. All Rights Reserved.
+ * Copyright (C) 2014 Apple, Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * 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.
+ */
+
+#pragma once
+
+#if PLATFORM(COCOA)
+OBJC_CLASS NSDictionary;
+#endif
+
+namespace WebCore {
+
+class NetworkLoadTiming {
+public:
+ NetworkLoadTiming()
+ : domainLookupStart(-1)
+ , domainLookupEnd(-1)
+ , connectStart(-1)
+ , connectEnd(-1)
+ , requestStart(0)
+ , responseStart(0)
+ , secureConnectionStart(-1)
+ {
+ }
+
+ NetworkLoadTiming(const NetworkLoadTiming& other)
+ : domainLookupStart(other.domainLookupStart)
+ , domainLookupEnd(other.domainLookupEnd)
+ , connectStart(other.connectStart)
+ , connectEnd(other.connectEnd)
+ , requestStart(other.requestStart)
+ , responseStart(other.responseStart)
+ , secureConnectionStart(other.secureConnectionStart)
+ {
+ }
+
+ NetworkLoadTiming& operator=(const NetworkLoadTiming& other)
+ {
+ domainLookupStart = other.domainLookupStart;
+ domainLookupEnd = other.domainLookupEnd;
+ connectStart = other.connectStart;
+ connectEnd = other.connectEnd;
+ requestStart = other.requestStart;
+ responseStart = other.responseStart;
+ secureConnectionStart = other.secureConnectionStart;
+ return *this;
+ }
+
+ NetworkLoadTiming isolatedCopy() const
+ {
+ // There are currently no members that need isolated copies, so we can use the copy constructor.
+ return *this;
+ }
+
+ bool operator==(const NetworkLoadTiming& other) const
+ {
+ return domainLookupStart == other.domainLookupStart
+ && domainLookupEnd == other.domainLookupEnd
+ && connectStart == other.connectStart
+ && connectEnd == other.connectEnd
+ && requestStart == other.requestStart
+ && responseStart == other.responseStart
+ && secureConnectionStart == other.secureConnectionStart;
+ }
+
+ bool operator!=(const NetworkLoadTiming& other) const
+ {
+ return !(*this == other);
+ }
+
+ template<class Encoder> void encode(Encoder&) const;
+ template<class Decoder> static bool decode(Decoder&, NetworkLoadTiming&);
+
+ // These are millisecond deltas from the navigation start.
+ int domainLookupStart;
+ int domainLookupEnd;
+ int connectStart;
+ int connectEnd;
+ int requestStart;
+ int responseStart;
+ int secureConnectionStart;
+};
+
+#if PLATFORM(COCOA)
+WEBCORE_EXPORT void copyTimingData(NSDictionary *timingData, NetworkLoadTiming&);
+#endif
+
+#if PLATFORM(COCOA) && !HAVE(TIMINGDATAOPTIONS)
+WEBCORE_EXPORT void setCollectsTimingData();
+#endif
+
+template<class Encoder>
+void NetworkLoadTiming::encode(Encoder& encoder) const
+{
+ encoder << domainLookupStart;
+ encoder << domainLookupEnd;
+ encoder << connectStart;
+ encoder << connectEnd;
+ encoder << requestStart;
+ encoder << responseStart;
+ encoder << secureConnectionStart;
+}
+
+template<class Decoder>
+bool NetworkLoadTiming::decode(Decoder& decoder, NetworkLoadTiming& timing)
+{
+ return decoder.decode(timing.domainLookupStart)
+ && decoder.decode(timing.domainLookupEnd)
+ && decoder.decode(timing.connectStart)
+ && decoder.decode(timing.connectEnd)
+ && decoder.decode(timing.requestStart)
+ && decoder.decode(timing.responseStart)
+ && decoder.decode(timing.secureConnectionStart);
+}
+
+}
Modified: trunk/Source/WebCore/platform/network/ResourceHandle.h (204428 => 204429)
--- trunk/Source/WebCore/platform/network/ResourceHandle.h 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/platform/network/ResourceHandle.h 2016-08-12 22:53:27 UTC (rev 204429)
@@ -86,7 +86,7 @@
class ResourceError;
class ResourceHandleClient;
class ResourceHandleInternal;
-class ResourceLoadTiming;
+class NetworkLoadTiming;
class ResourceRequest;
class ResourceResponse;
class SharedBuffer;
@@ -134,9 +134,9 @@
#if PLATFORM(COCOA) && ENABLE(WEB_TIMING)
#if USE(CFNETWORK)
- static void getConnectionTimingData(CFURLConnectionRef, ResourceLoadTiming&);
+ static void getConnectionTimingData(CFURLConnectionRef, NetworkLoadTiming&);
#else
- static void getConnectionTimingData(NSURLConnection *, ResourceLoadTiming&);
+ static void getConnectionTimingData(NSURLConnection *, NetworkLoadTiming&);
#endif
#endif
Deleted: trunk/Source/WebCore/platform/network/ResourceLoadTiming.h (204428 => 204429)
--- trunk/Source/WebCore/platform/network/ResourceLoadTiming.h 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/platform/network/ResourceLoadTiming.h 2016-08-12 22:53:27 UTC (rev 204429)
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2010 Google, Inc. All Rights Reserved.
- * Copyright (C) 2014 Apple, Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * 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 ResourceLoadTiming_h
-#define ResourceLoadTiming_h
-
-#if PLATFORM(COCOA)
-OBJC_CLASS NSDictionary;
-#endif
-
-namespace WebCore {
-
-class ResourceLoadTiming {
-public:
- ResourceLoadTiming()
- : domainLookupStart(-1)
- , domainLookupEnd(-1)
- , connectStart(-1)
- , connectEnd(-1)
- , requestStart(0)
- , responseStart(0)
- , secureConnectionStart(-1)
- {
- }
-
- ResourceLoadTiming(const ResourceLoadTiming& other)
- : domainLookupStart(other.domainLookupStart)
- , domainLookupEnd(other.domainLookupEnd)
- , connectStart(other.connectStart)
- , connectEnd(other.connectEnd)
- , requestStart(other.requestStart)
- , responseStart(other.responseStart)
- , secureConnectionStart(other.secureConnectionStart)
- {
- }
-
- ResourceLoadTiming& operator=(const ResourceLoadTiming& other)
- {
- domainLookupStart = other.domainLookupStart;
- domainLookupEnd = other.domainLookupEnd;
- connectStart = other.connectStart;
- connectEnd = other.connectEnd;
- requestStart = other.requestStart;
- responseStart = other.responseStart;
- secureConnectionStart = other.secureConnectionStart;
- return *this;
- }
-
- ResourceLoadTiming isolatedCopy() const
- {
- // There are currently no members that need isolated copies, so we can use the copy constructor.
- return *this;
- }
-
- bool operator==(const ResourceLoadTiming& other) const
- {
- return domainLookupStart == other.domainLookupStart
- && domainLookupEnd == other.domainLookupEnd
- && connectStart == other.connectStart
- && connectEnd == other.connectEnd
- && requestStart == other.requestStart
- && responseStart == other.responseStart
- && secureConnectionStart == other.secureConnectionStart;
- }
-
- bool operator!=(const ResourceLoadTiming& other) const
- {
- return !(*this == other);
- }
-
- template<class Encoder> void encode(Encoder&) const;
- template<class Decoder> static bool decode(Decoder&, ResourceLoadTiming&);
-
- // These are millisecond deltas from the navigation start.
- int domainLookupStart;
- int domainLookupEnd;
- int connectStart;
- int connectEnd;
- int requestStart;
- int responseStart;
- int secureConnectionStart;
-};
-
-#if PLATFORM(COCOA)
-WEBCORE_EXPORT void copyTimingData(NSDictionary *timingData, ResourceLoadTiming&);
-#endif
-
-#if PLATFORM(COCOA) && !HAVE(TIMINGDATAOPTIONS)
-WEBCORE_EXPORT void setCollectsTimingData();
-#endif
-
-template<class Encoder>
-void ResourceLoadTiming::encode(Encoder& encoder) const
-{
- encoder << domainLookupStart;
- encoder << domainLookupEnd;
- encoder << connectStart;
- encoder << connectEnd;
- encoder << requestStart;
- encoder << responseStart;
- encoder << secureConnectionStart;
-}
-
-template<class Decoder>
-bool ResourceLoadTiming::decode(Decoder& decoder, ResourceLoadTiming& timing)
-{
- return decoder.decode(timing.domainLookupStart)
- && decoder.decode(timing.domainLookupEnd)
- && decoder.decode(timing.connectStart)
- && decoder.decode(timing.connectEnd)
- && decoder.decode(timing.requestStart)
- && decoder.decode(timing.responseStart)
- && decoder.decode(timing.secureConnectionStart);
-}
-
-}
-
-#endif
Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp (204428 => 204429)
--- trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -71,7 +71,7 @@
data.httpVersion = httpVersion().isolatedCopy();
data.httpHeaderFields = httpHeaderFields().isolatedCopy();
- data.resourceLoadTiming = m_resourceLoadTiming.isolatedCopy();
+ data.networkLoadTiming = m_networkLoadTiming.isolatedCopy();
data.type = m_type;
data.isRedirected = m_isRedirected;
@@ -92,7 +92,7 @@
response.setHTTPVersion(data.httpVersion);
response.m_httpHeaderFields = WTFMove(data.httpHeaderFields);
- response.m_resourceLoadTiming = data.resourceLoadTiming;
+ response.m_networkLoadTiming = data.networkLoadTiming;
response.m_type = data.type;
response.m_isRedirected = data.isRedirected;
@@ -575,7 +575,7 @@
return false;
if (a.httpHeaderFields() != b.httpHeaderFields())
return false;
- if (a.resourceLoadTiming() != b.resourceLoadTiming())
+ if (a.networkLoadTiming() != b.networkLoadTiming())
return false;
return ResourceResponse::platformCompare(a, b);
}
Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.h (204428 => 204429)
--- trunk/Source/WebCore/platform/network/ResourceResponseBase.h 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/platform/network/ResourceResponseBase.h 2016-08-12 22:53:27 UTC (rev 204429)
@@ -29,8 +29,8 @@
#include "CacheValidation.h"
#include "CertificateInfo.h"
#include "HTTPHeaderMap.h"
+#include "NetworkLoadTiming.h"
#include "ParsedContentRange.h"
-#include "ResourceLoadTiming.h"
#include "URL.h"
namespace WebCore {
@@ -57,7 +57,7 @@
String httpStatusText;
String httpVersion;
HTTPHeaderMap httpHeaderFields;
- ResourceLoadTiming resourceLoadTiming;
+ NetworkLoadTiming networkLoadTiming;
Type type;
bool isRedirected;
};
@@ -135,7 +135,7 @@
WEBCORE_EXPORT Source source() const;
WEBCORE_EXPORT void setSource(Source);
- ResourceLoadTiming& resourceLoadTiming() const { return m_resourceLoadTiming; }
+ NetworkLoadTiming& networkLoadTiming() const { return m_networkLoadTiming; }
// The ResourceResponse subclass may "shadow" this method to provide platform-specific memory usage information
unsigned memoryUsage() const
@@ -187,7 +187,7 @@
AtomicString m_httpStatusText;
AtomicString m_httpVersion;
HTTPHeaderMap m_httpHeaderFields;
- mutable ResourceLoadTiming m_resourceLoadTiming;
+ mutable NetworkLoadTiming m_networkLoadTiming;
mutable Optional<CertificateInfo> m_certificateInfo;
@@ -232,7 +232,7 @@
encoder << m_httpStatusText;
encoder << m_httpVersion;
encoder << m_httpHeaderFields;
- encoder << m_resourceLoadTiming;
+ encoder << m_networkLoadTiming;
encoder << m_httpStatusCode;
encoder << m_certificateInfo;
encoder.encodeEnum(m_source);
@@ -266,7 +266,7 @@
return false;
if (!decoder.decode(response.m_httpHeaderFields))
return false;
- if (!decoder.decode(response.m_resourceLoadTiming))
+ if (!decoder.decode(response.m_networkLoadTiming))
return false;
if (!decoder.decode(response.m_httpStatusCode))
return false;
Modified: trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp (204428 => 204429)
--- trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -156,7 +156,7 @@
ResourceResponse resourceResponse(cfResponse);
#if ENABLE(WEB_TIMING)
- ResourceHandle::getConnectionTimingData(connection, resourceResponse.resourceLoadTiming());
+ ResourceHandle::getConnectionTimingData(connection, resourceResponse.networkLoadTiming());
#else
UNUSED_PARAM(connection);
#endif
Modified: trunk/Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp (204428 => 204429)
--- trunk/Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -175,7 +175,7 @@
ResourceResponse resourceResponse(cfResponse);
#if PLATFORM(COCOA) && ENABLE(WEB_TIMING)
- ResourceHandle::getConnectionTimingData(connection, resourceResponse.resourceLoadTiming());
+ ResourceHandle::getConnectionTimingData(connection, resourceResponse.networkLoadTiming());
#else
UNUSED_PARAM(connection);
#endif
Copied: trunk/Source/WebCore/platform/network/cocoa/NetworkLoadTiming.mm (from rev 204428, trunk/Source/WebCore/platform/network/cocoa/ResourceLoadTiming.mm) (0 => 204429)
--- trunk/Source/WebCore/platform/network/cocoa/NetworkLoadTiming.mm (rev 0)
+++ trunk/Source/WebCore/platform/network/cocoa/NetworkLoadTiming.mm 2016-08-12 22:53:27 UTC (rev 204429)
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2015 Apple, Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * 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.
+ */
+
+#import "config.h"
+#import "NetworkLoadTiming.h"
+
+#import <WebCore/NSURLConnectionSPI.h>
+
+namespace WebCore {
+
+static double timingValue(NSDictionary *timingData, NSString *key)
+{
+ if (id object = [timingData objectForKey:key])
+ return [object doubleValue];
+ return 0.0;
+}
+
+void copyTimingData(NSDictionary *timingData, NetworkLoadTiming& timing)
+{
+ if (!timingData)
+ return;
+
+ // This is not the navigationStart time in monotonic time, but the other times are relative to this time
+ // and only the differences between times are stored.
+ double referenceStart = timingValue(timingData, @"_kCFNTimingDataFetchStart");
+
+ double domainLookupStart = timingValue(timingData, @"_kCFNTimingDataDomainLookupStart");
+ double domainLookupEnd = timingValue(timingData, @"_kCFNTimingDataDomainLookupEnd");
+ double connectStart = timingValue(timingData, @"_kCFNTimingDataConnectStart");
+ double secureConnectionStart = timingValue(timingData, @"_kCFNTimingDataSecureConnectionStart");
+ double connectEnd = timingValue(timingData, @"_kCFNTimingDataConnectEnd");
+ double requestStart = timingValue(timingData, @"_kCFNTimingDataRequestStart");
+ double responseStart = timingValue(timingData, @"_kCFNTimingDataResponseStart");
+
+ timing.domainLookupStart = domainLookupStart <= 0 ? -1 : (domainLookupStart - referenceStart) * 1000;
+ timing.domainLookupEnd = domainLookupEnd <= 0 ? -1 : (domainLookupEnd - referenceStart) * 1000;
+ timing.connectStart = connectStart <= 0 ? -1 : (connectStart - referenceStart) * 1000;
+ timing.secureConnectionStart = secureConnectionStart <= 0 ? -1 : (secureConnectionStart - referenceStart) * 1000;
+ timing.connectEnd = connectEnd <= 0 ? -1 : (connectEnd - referenceStart) * 1000;
+ timing.requestStart = requestStart <= 0 ? 0 : (requestStart - referenceStart) * 1000;
+ timing.responseStart = responseStart <= 0 ? 0 : (responseStart - referenceStart) * 1000;
+}
+
+#if !HAVE(TIMINGDATAOPTIONS)
+void setCollectsTimingData()
+{
+ static dispatch_once_t onceToken;
+ dispatch_once(&onceToken, ^{
+ [NSURLConnection _setCollectsTimingData:YES];
+ [NSURLConnection _collectTimingDataWithOptions:TimingDataCollectionNStatsOff | TimingDataCollectionConnectionDataOff];
+ });
+}
+#endif
+
+}
Deleted: trunk/Source/WebCore/platform/network/cocoa/ResourceLoadTiming.mm (204428 => 204429)
--- trunk/Source/WebCore/platform/network/cocoa/ResourceLoadTiming.mm 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/platform/network/cocoa/ResourceLoadTiming.mm 2016-08-12 22:53:27 UTC (rev 204429)
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2015 Apple, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * 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.
- */
-
-#import "config.h"
-#import "ResourceLoadTiming.h"
-
-#import <WebCore/NSURLConnectionSPI.h>
-
-namespace WebCore {
-
-static double timingValue(NSDictionary *timingData, NSString *key)
-{
- if (id object = [timingData objectForKey:key])
- return [object doubleValue];
- return 0.0;
-}
-
-void copyTimingData(NSDictionary *timingData, ResourceLoadTiming& timing)
-{
- if (!timingData)
- return;
-
- // This is not the navigationStart time in monotonic time, but the other times are relative to this time
- // and only the differences between times are stored.
- double referenceStart = timingValue(timingData, @"_kCFNTimingDataFetchStart");
-
- double domainLookupStart = timingValue(timingData, @"_kCFNTimingDataDomainLookupStart");
- double domainLookupEnd = timingValue(timingData, @"_kCFNTimingDataDomainLookupEnd");
- double connectStart = timingValue(timingData, @"_kCFNTimingDataConnectStart");
- double secureConnectionStart = timingValue(timingData, @"_kCFNTimingDataSecureConnectionStart");
- double connectEnd = timingValue(timingData, @"_kCFNTimingDataConnectEnd");
- double requestStart = timingValue(timingData, @"_kCFNTimingDataRequestStart");
- double responseStart = timingValue(timingData, @"_kCFNTimingDataResponseStart");
-
- timing.domainLookupStart = domainLookupStart <= 0 ? -1 : (domainLookupStart - referenceStart) * 1000;
- timing.domainLookupEnd = domainLookupEnd <= 0 ? -1 : (domainLookupEnd - referenceStart) * 1000;
- timing.connectStart = connectStart <= 0 ? -1 : (connectStart - referenceStart) * 1000;
- timing.secureConnectionStart = secureConnectionStart <= 0 ? -1 : (secureConnectionStart - referenceStart) * 1000;
- timing.connectEnd = connectEnd <= 0 ? -1 : (connectEnd - referenceStart) * 1000;
- timing.requestStart = requestStart <= 0 ? 0 : (requestStart - referenceStart) * 1000;
- timing.responseStart = responseStart <= 0 ? 0 : (responseStart - referenceStart) * 1000;
-}
-
-#if !HAVE(TIMINGDATAOPTIONS)
-void setCollectsTimingData()
-{
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- [NSURLConnection _setCollectsTimingData:YES];
- [NSURLConnection _collectTimingDataWithOptions:TimingDataCollectionNStatsOff | TimingDataCollectionConnectionDataOff];
- });
-}
-#endif
-
-}
Modified: trunk/Source/WebCore/platform/network/curl/ResourceHandleManager.cpp (204428 => 204429)
--- trunk/Source/WebCore/platform/network/curl/ResourceHandleManager.cpp 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/platform/network/curl/ResourceHandleManager.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -188,17 +188,17 @@
curl_easy_getinfo(d->m_handle, CURLINFO_STARTTRANSFER_TIME, &startTransfertTime);
curl_easy_getinfo(d->m_handle, CURLINFO_PRETRANSFER_TIME, &preTransferTime);
- d->m_response.resourceLoadTiming().domainLookupStart = 0;
- d->m_response.resourceLoadTiming().domainLookupEnd = static_cast<int>(dnslookupTime * 1000);
+ d->m_response.networkLoadTiming().domainLookupStart = 0;
+ d->m_response.networkLoadTiming().domainLookupEnd = static_cast<int>(dnslookupTime * 1000);
- d->m_response.resourceLoadTiming().connectStart = static_cast<int>(dnslookupTime * 1000);
- d->m_response.resourceLoadTiming().connectEnd = static_cast<int>(connectTime * 1000);
+ d->m_response.networkLoadTiming().connectStart = static_cast<int>(dnslookupTime * 1000);
+ d->m_response.networkLoadTiming().connectEnd = static_cast<int>(connectTime * 1000);
- d->m_response.resourceLoadTiming().requestStart = static_cast<int>(connectTime *1000);
- d->m_response.resourceLoadTiming().responseStart =static_cast<int>(preTransferTime * 1000);
+ d->m_response.networkLoadTiming().requestStart = static_cast<int>(connectTime *1000);
+ d->m_response.networkLoadTiming().responseStart =static_cast<int>(preTransferTime * 1000);
if (appConnectTime)
- d->m_response.resourceLoadTiming().secureConnectionStart = static_cast<int>(connectTime * 1000);
+ d->m_response.networkLoadTiming().secureConnectionStart = static_cast<int>(connectTime * 1000);
}
#endif
Modified: trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm (204428 => 204429)
--- trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm 2016-08-12 22:53:27 UTC (rev 204429)
@@ -737,7 +737,7 @@
#if USE(CFNETWORK)
-void ResourceHandle::getConnectionTimingData(CFURLConnectionRef connection, ResourceLoadTiming& timing)
+void ResourceHandle::getConnectionTimingData(CFURLConnectionRef connection, NetworkLoadTiming& timing)
{
copyTimingData((__bridge NSDictionary*)adoptCF(_CFURLConnectionCopyTimingData(connection)).get(), timing);
}
@@ -744,7 +744,7 @@
#else
-void ResourceHandle::getConnectionTimingData(NSURLConnection *connection, ResourceLoadTiming& timing)
+void ResourceHandle::getConnectionTimingData(NSURLConnection *connection, NetworkLoadTiming& timing)
{
copyTimingData([connection _timingData], timing);
}
Modified: trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm (204428 => 204429)
--- trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm 2016-08-12 22:53:27 UTC (rev 204429)
@@ -151,7 +151,7 @@
ResourceResponse resourceResponse(r);
resourceResponse.setSource(ResourceResponse::Source::Network);
#if ENABLE(WEB_TIMING)
- ResourceHandle::getConnectionTimingData(connection, resourceResponse.resourceLoadTiming());
+ ResourceHandle::getConnectionTimingData(connection, resourceResponse.networkLoadTiming());
#else
UNUSED_PARAM(connection);
#endif
Modified: trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm (204428 => 204429)
--- trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm 2016-08-12 22:53:27 UTC (rev 204429)
@@ -195,7 +195,7 @@
ResourceResponse resourceResponse(r);
#if ENABLE(WEB_TIMING)
- ResourceHandle::getConnectionTimingData(connection, resourceResponse.resourceLoadTiming());
+ ResourceHandle::getConnectionTimingData(connection, resourceResponse.networkLoadTiming());
#else
UNUSED_PARAM(connection);
#endif
Modified: trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp (204428 => 204429)
--- trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp 2016-08-12 22:53:27 UTC (rev 204429)
@@ -709,7 +709,7 @@
}
#if ENABLE(WEB_TIMING)
- d->m_response.resourceLoadTiming().responseStart = milisecondsSinceRequest(handle->m_requestTime);
+ d->m_response.networkLoadTiming().responseStart = milisecondsSinceRequest(handle->m_requestTime);
#endif
if (soupMessage && d->m_response.isMultipart())
@@ -843,7 +843,7 @@
void ResourceHandle::didStartRequest()
{
- getInternal()->m_response.resourceLoadTiming().requestStart = milisecondsSinceRequest(m_requestTime);
+ getInternal()->m_response.networkLoadTiming().requestStart = milisecondsSinceRequest(m_requestTime);
}
#if SOUP_CHECK_VERSION(2, 49, 91)
@@ -866,21 +866,21 @@
int deltaTime = milisecondsSinceRequest(handle->m_requestTime);
switch (event) {
case G_SOCKET_CLIENT_RESOLVING:
- d->m_response.resourceLoadTiming().domainLookupStart = deltaTime;
+ d->m_response.networkLoadTiming().domainLookupStart = deltaTime;
break;
case G_SOCKET_CLIENT_RESOLVED:
- d->m_response.resourceLoadTiming().domainLookupEnd = deltaTime;
+ d->m_response.networkLoadTiming().domainLookupEnd = deltaTime;
break;
case G_SOCKET_CLIENT_CONNECTING:
- d->m_response.resourceLoadTiming().connectStart = deltaTime;
- if (d->m_response.resourceLoadTiming().domainLookupStart != -1) {
+ d->m_response.networkLoadTiming().connectStart = deltaTime;
+ if (d->m_response.networkLoadTiming().domainLookupStart != -1) {
// WebCore/inspector/front-end/RequestTimingView.js assumes
// that DNS time is included in connection time so must
// substract here the DNS delta that will be added later (see
// WebInspector.RequestTimingView.createTimingTable in the
// file above for more details).
- d->m_response.resourceLoadTiming().connectStart -=
- d->m_response.resourceLoadTiming().domainLookupEnd - d->m_response.resourceLoadTiming().domainLookupStart;
+ d->m_response.networkLoadTiming().connectStart -=
+ d->m_response.networkLoadTiming().domainLookupEnd - d->m_response.networkLoadTiming().domainLookupStart;
}
break;
case G_SOCKET_CLIENT_CONNECTED:
@@ -892,12 +892,12 @@
case G_SOCKET_CLIENT_PROXY_NEGOTIATED:
break;
case G_SOCKET_CLIENT_TLS_HANDSHAKING:
- d->m_response.resourceLoadTiming().secureConnectionStart = deltaTime;
+ d->m_response.networkLoadTiming().secureConnectionStart = deltaTime;
break;
case G_SOCKET_CLIENT_TLS_HANDSHAKED:
break;
case G_SOCKET_CLIENT_COMPLETE:
- d->m_response.resourceLoadTiming().connectEnd = deltaTime;
+ d->m_response.networkLoadTiming().connectEnd = deltaTime;
break;
default:
ASSERT_NOT_REACHED();
Modified: trunk/Source/WebKit2/ChangeLog (204428 => 204429)
--- trunk/Source/WebKit2/ChangeLog 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebKit2/ChangeLog 2016-08-12 22:53:27 UTC (rev 204429)
@@ -1,3 +1,15 @@
+2016-08-12 Johan K. Jensen <[email protected]>
+
+ Rename DocumentLoadTiming and ResourceLoadTiming
+ https://bugs.webkit.org/show_bug.cgi?id=160821
+
+ Reviewed by Alex Christensen.
+
+ Rename ResourceLoadTiming to NetworkLoadTiming.
+
+ * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+ (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
+
2016-08-12 Anders Carlsson <[email protected]>
message loading never finishes in Mail
Modified: trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm (204428 => 204429)
--- trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2016-08-12 22:32:55 UTC (rev 204428)
+++ trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2016-08-12 22:53:27 UTC (rev 204429)
@@ -40,10 +40,10 @@
#import <WebCore/CFNetworkSPI.h>
#import <WebCore/Credential.h>
#import <WebCore/FrameLoaderTypes.h>
+#import <WebCore/NetworkLoadTiming.h>
#import <WebCore/NetworkStorageSession.h>
#import <WebCore/NotImplemented.h>
#import <WebCore/ResourceError.h>
-#import <WebCore/ResourceLoadTiming.h>
#import <WebCore/ResourceRequest.h>
#import <WebCore/ResourceResponse.h>
#import <WebCore/SharedBuffer.h>
@@ -249,7 +249,7 @@
// all the fields when sending the response to the WebContent process over IPC.
resourceResponse.disableLazyInitialization();
- copyTimingData([dataTask _timingData], resourceResponse.resourceLoadTiming());
+ copyTimingData([dataTask _timingData], resourceResponse.networkLoadTiming());
auto completionHandlerCopy = Block_copy(completionHandler);
networkDataTask->didReceiveResponse(WTFMove(resourceResponse), [completionHandlerCopy, taskIdentifier](WebCore::PolicyAction policyAction) {
LOG(NetworkSession, "%llu didReceiveResponse completionHandler (cancel)", taskIdentifier);