[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