[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
tonyg at chromium.org
tonyg at chromium.org
Wed Dec 22 11:08:45 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit a785f9c10230ab25087bbc1f1a01c6127a97ee27
Author: tonyg at chromium.org <tonyg at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Jul 13 19:21:42 2010 +0000
2010-07-13 Martin Robinson <mrobinson at igalia.com>
Unreviewed.
Fix two baselines from my previous commit.
* platform/gtk/svg/custom/relative-sized-inner-svg-expected.txt:
* platform/gtk/svg/custom/relative-sized-use-without-attributes-on-symbol-expected.txt:
2010-07-13 Tony Gentilcore <tonyg at chromium.org>
Reviewed by Darin Fisher.
Implement performance.timing.fetchStart
https://bugs.webkit.org/show_bug.cgi?id=41816
See: http://dev.w3.org/2006/webapi/WebTiming/#nt-fetch-start
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest): Record the fetchStart time for each request for the main resource. This means it is called for each server redirect, overwritting the previous value. In https://bugs.webkit.org/show_bug.cgi?id=42018, this will be modified such that if a previous value exists, it is stored as the redirect time.
* loader/FrameLoaderTypes.h:
(WebCore::FrameLoadTimeline::FrameLoadTimeline):
* page/Timing.cpp:
(WebCore::Timing::fetchStart):
* page/Timing.h:
* page/Timing.idl:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63231 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index c10fc34..b01bae6 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -35,6 +35,21 @@
Reviewed by Darin Fisher.
+ Implement performance.timing.fetchStart
+ https://bugs.webkit.org/show_bug.cgi?id=41816
+
+ Tests pass with --web-timing. Expectations set to FAIL because disabled by default.
+
+ * fast/dom/script-tests/webtiming.js:
+ (checkTimingBeforeLoad):
+ (checkWebTimingOnLoad):
+ (checkWebTimingAfterLoad):
+ * fast/dom/webtiming-expected.txt:
+
+2010-07-13 Tony Gentilcore <tonyg at chromium.org>
+
+ Reviewed by Darin Fisher.
+
Implement performance.timing.responseEnd
https://bugs.webkit.org/show_bug.cgi?id=42006
diff --git a/LayoutTests/fast/dom/script-tests/webtiming.js b/LayoutTests/fast/dom/script-tests/webtiming.js
index 2eb111d..3a8c348 100644
--- a/LayoutTests/fast/dom/script-tests/webtiming.js
+++ b/LayoutTests/fast/dom/script-tests/webtiming.js
@@ -42,6 +42,8 @@ function checkTimingBeforeLoad()
shouldBeGreaterThanOrEqual("timing.unloadEventEnd", "timing.navigationStart");
+ shouldBeGreaterThanOrEqual("timing.fetchStart", "timing.navigationStart");
+
shouldBe("timing.loadEventStart", "0");
shouldBe("timing.loadEventEnd", "0");
@@ -54,7 +56,9 @@ function checkWebTimingOnLoad()
shouldBeGreaterThanOrEqual("timing.unloadEventEnd", "timing.navigationStart");
- shouldBeGreaterThanOrEqual("timing.responseEnd", "timing.unloadEventEnd");
+ shouldBeGreaterThanOrEqual("timing.fetchStart", "timing.navigationStart");
+
+ shouldBeGreaterThanOrEqual("timing.responseEnd", "timing.fetchStart");
shouldBeGreaterThanOrEqual("timing.loadEventStart", "timing.responseEnd");
shouldBe("timing.loadEventEnd", "0");
@@ -68,7 +72,9 @@ function checkWebTimingAfterLoad()
shouldBeGreaterThanOrEqual("timing.unloadEventEnd", "timing.navigationStart");
- shouldBeGreaterThanOrEqual("timing.responseEnd", "timing.unloadEventEnd");
+ shouldBeGreaterThanOrEqual("timing.fetchStart", "timing.navigationStart");
+
+ shouldBeGreaterThanOrEqual("timing.responseEnd", "timing.fetchStart");
shouldBeGreaterThanOrEqual("timing.loadEventStart", "timing.responseEnd");
shouldBeGreaterThanOrEqual("timing.loadEventEnd", "timing.loadEventStart + 50");
diff --git a/LayoutTests/fast/dom/webtiming-expected.txt b/LayoutTests/fast/dom/webtiming-expected.txt
index 437d136..9563dba 100644
--- a/LayoutTests/fast/dom/webtiming-expected.txt
+++ b/LayoutTests/fast/dom/webtiming-expected.txt
@@ -5,16 +5,19 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
FAIL timing.navigationStart should be >= oneHourAgoUTC. Was undefined (of type undefined).
FAIL timing.unloadEventEnd should be >= timing.navigationStart. Was undefined (of type undefined).
+FAIL timing.fetchStart should be >= timing.navigationStart. Was undefined (of type undefined).
FAIL timing.loadEventStart should be 0 (of type number). Was undefined (of type undefined).
FAIL timing.loadEventEnd should be 0 (of type number). Was undefined (of type undefined).
FAIL timing.navigationStart should be >= oneHourAgoUTC. Was undefined (of type undefined).
FAIL timing.unloadEventEnd should be >= timing.navigationStart. Was undefined (of type undefined).
-FAIL timing.responseEnd should be >= timing.unloadEventEnd. Was undefined (of type undefined).
+FAIL timing.fetchStart should be >= timing.navigationStart. Was undefined (of type undefined).
+FAIL timing.responseEnd should be >= timing.fetchStart. Was undefined (of type undefined).
FAIL timing.loadEventStart should be >= timing.responseEnd. Was undefined (of type undefined).
FAIL timing.loadEventEnd should be 0 (of type number). Was undefined (of type undefined).
FAIL timing.navigationStart should be >= oneHourAgoUTC. Was undefined (of type undefined).
FAIL timing.unloadEventEnd should be >= timing.navigationStart. Was undefined (of type undefined).
-FAIL timing.responseEnd should be >= timing.unloadEventEnd. Was undefined (of type undefined).
+FAIL timing.fetchStart should be >= timing.navigationStart. Was undefined (of type undefined).
+FAIL timing.responseEnd should be >= timing.fetchStart. Was undefined (of type undefined).
FAIL timing.loadEventStart should be >= timing.responseEnd. Was undefined (of type undefined).
FAIL timing.loadEventEnd should be >= timing.loadEventStart + 50. Was undefined (of type undefined).
PASS successfullyParsed is true
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 89f07e7..f52c862 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -100,6 +100,24 @@
Reviewed by Darin Fisher.
+ Implement performance.timing.fetchStart
+ https://bugs.webkit.org/show_bug.cgi?id=41816
+
+ See: http://dev.w3.org/2006/webapi/WebTiming/#nt-fetch-start
+
+ * loader/MainResourceLoader.cpp:
+ (WebCore::MainResourceLoader::willSendRequest): Record the fetchStart time for each request for the main resource. This means it is called for each server redirect, overwritting the previous value. In https://bugs.webkit.org/show_bug.cgi?id=42018, this will be modified such that if a previous value exists, it is stored as the redirect time.
+ * loader/FrameLoaderTypes.h:
+ (WebCore::FrameLoadTimeline::FrameLoadTimeline):
+ * page/Timing.cpp:
+ (WebCore::Timing::fetchStart):
+ * page/Timing.h:
+ * page/Timing.idl:
+
+2010-07-13 Tony Gentilcore <tonyg at chromium.org>
+
+ Reviewed by Darin Fisher.
+
Implement performance.timing.responseEnd
https://bugs.webkit.org/show_bug.cgi?id=42006
diff --git a/WebCore/loader/FrameLoaderTypes.h b/WebCore/loader/FrameLoaderTypes.h
index b8a48c8..1ed2353 100644
--- a/WebCore/loader/FrameLoaderTypes.h
+++ b/WebCore/loader/FrameLoaderTypes.h
@@ -64,6 +64,7 @@ namespace WebCore {
FrameLoadTimeline()
: navigationStart(0)
, unloadEventEnd(0)
+ , fetchStart(0)
, responseEnd(0)
, loadEventStart(0)
, loadEventEnd(0)
@@ -72,6 +73,7 @@ namespace WebCore {
double navigationStart;
double unloadEventEnd;
+ double fetchStart;
double responseEnd;
double loadEventStart;
double loadEventEnd;
diff --git a/WebCore/loader/MainResourceLoader.cpp b/WebCore/loader/MainResourceLoader.cpp
index 6f57a73..1dde81c 100644
--- a/WebCore/loader/MainResourceLoader.cpp
+++ b/WebCore/loader/MainResourceLoader.cpp
@@ -44,6 +44,7 @@
#include "ResourceError.h"
#include "ResourceHandle.h"
#include "Settings.h"
+#include <wtf/CurrentTime.h>
// FIXME: More that is in common with SubresourceLoader should move up into ResourceLoader.
@@ -158,6 +159,8 @@ void MainResourceLoader::willSendRequest(ResourceRequest& newRequest, const Reso
// reference to this object; one example of this is 3266216.
RefPtr<MainResourceLoader> protect(this);
+ frameLoader()->frameLoadTimeline()->fetchStart = currentTime();
+
// Update cookie policy base URL as URL changes, except for subframes, which use the
// URL of the main frame which doesn't change when we redirect.
if (frameLoader()->isLoadingMainFrame())
diff --git a/WebCore/page/Timing.cpp b/WebCore/page/Timing.cpp
index 2615f69..1a218b9 100644
--- a/WebCore/page/Timing.cpp
+++ b/WebCore/page/Timing.cpp
@@ -68,6 +68,14 @@ unsigned long long Timing::unloadEventEnd() const
return static_cast<unsigned long long>(m_frame->loader()->frameLoadTimeline()->unloadEventEnd * 1000);
}
+unsigned long long Timing::fetchStart() const
+{
+ if (!m_frame)
+ return 0;
+
+ return static_cast<unsigned long long>(m_frame->loader()->frameLoadTimeline()->fetchStart * 1000);
+}
+
unsigned long long Timing::responseEnd() const
{
if (!m_frame)
diff --git a/WebCore/page/Timing.h b/WebCore/page/Timing.h
index b8fa831..1cdc09b 100644
--- a/WebCore/page/Timing.h
+++ b/WebCore/page/Timing.h
@@ -49,6 +49,7 @@ public:
unsigned long long navigationStart() const;
unsigned long long unloadEventEnd() const;
+ unsigned long long fetchStart() const;
unsigned long long responseEnd() const;
unsigned long long loadEventStart() const;
unsigned long long loadEventEnd() const;
diff --git a/WebCore/page/Timing.idl b/WebCore/page/Timing.idl
index d2b34ce..a237ea9 100644
--- a/WebCore/page/Timing.idl
+++ b/WebCore/page/Timing.idl
@@ -34,10 +34,10 @@ module window {
interface [Conditional=WEB_TIMING, OmitConstructor] Timing {
// FIXME: Implement remainder of interface.
readonly attribute unsigned long long navigationStart;
- // readonly attribute unsigned long long fetchStart;
readonly attribute unsigned long long unloadEventEnd;
// readonly attribute unsigned long long redirectStart;
// readonly attribute unsigned long long redirectEnd;
+ readonly attribute unsigned long long fetchStart;
// readonly attribute unsigned long long domainLookupStart;
// readonly attribute unsigned long long domainLookupEnd;
// readonly attribute unsigned long long connectStart;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list