Title: [109300] trunk/Source
Revision
109300
Author
[email protected]
Date
2012-02-29 20:08:54 -0800 (Wed, 29 Feb 2012)

Log Message

[chromium] Fix navigation start time on cross-renderer navigation
https://bugs.webkit.org/show_bug.cgi?id=75922

Reviewed by Darin Fisher.

Source/WebCore:

* loader/DocumentLoadTiming.cpp:
(WebCore::DocumentLoadTiming::setNavigationStart): Added.
* loader/DocumentLoadTiming.h:

Source/WebKit/chromium:

* public/WebDataSource.h:
* src/WebDataSource.cpp:
(WebKit::WebDataSource::setNavigationStartTime): Added.
* src/WebDataSource.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (109299 => 109300)


--- trunk/Source/WebCore/ChangeLog	2012-03-01 03:54:24 UTC (rev 109299)
+++ trunk/Source/WebCore/ChangeLog	2012-03-01 04:08:54 UTC (rev 109300)
@@ -1,3 +1,14 @@
+2012-02-29  James Simonsen  <[email protected]>
+
+        [chromium] Fix navigation start time on cross-renderer navigation
+        https://bugs.webkit.org/show_bug.cgi?id=75922
+
+        Reviewed by Darin Fisher.
+
+        * loader/DocumentLoadTiming.cpp:
+        (WebCore::DocumentLoadTiming::setNavigationStart): Added.
+        * loader/DocumentLoadTiming.h:
+
 2012-02-29  Stephen Chenney  <[email protected]>
 
         SVG <use> element allows invalid contents

Modified: trunk/Source/WebCore/loader/DocumentLoadTiming.cpp (109299 => 109300)


--- trunk/Source/WebCore/loader/DocumentLoadTiming.cpp	2012-03-01 03:54:24 UTC (rev 109299)
+++ trunk/Source/WebCore/loader/DocumentLoadTiming.cpp	2012-03-01 04:08:54 UTC (rev 109300)
@@ -72,6 +72,12 @@
     }
 }
 
+void DocumentLoadTiming::setNavigationStart(double navigationStart)
+{
+    ASSERT(m_referenceMonotonicTime && m_referenceWallTime);
+    m_navigationStart = navigationStart;
+}
+
 void DocumentLoadTiming::addRedirect(const KURL& redirectingUrl, const KURL& redirectedUrl)
 {
     m_redirectCount++;

Modified: trunk/Source/WebCore/loader/DocumentLoadTiming.h (109299 => 109300)


--- trunk/Source/WebCore/loader/DocumentLoadTiming.h	2012-03-01 03:54:24 UTC (rev 109299)
+++ trunk/Source/WebCore/loader/DocumentLoadTiming.h	2012-03-01 04:08:54 UTC (rev 109300)
@@ -38,6 +38,7 @@
     DocumentLoadTiming();
 
     void markNavigationStart(Frame*);
+    void setNavigationStart(double);
     void addRedirect(const KURL& redirectingUrl, const KURL& redirectedUrl);
     double convertMonotonicTimeToDocumentTime(double monotonicTime) const;
 

Modified: trunk/Source/WebKit/chromium/ChangeLog (109299 => 109300)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-03-01 03:54:24 UTC (rev 109299)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-03-01 04:08:54 UTC (rev 109300)
@@ -1,3 +1,15 @@
+2012-02-29  James Simonsen  <[email protected]>
+
+        [chromium] Fix navigation start time on cross-renderer navigation
+        https://bugs.webkit.org/show_bug.cgi?id=75922
+
+        Reviewed by Darin Fisher.
+
+        * public/WebDataSource.h:
+        * src/WebDataSource.cpp:
+        (WebKit::WebDataSource::setNavigationStartTime): Added.
+        * src/WebDataSource.h:
+
 2012-02-29  Ian Vollick  <[email protected]>
 
         [chromium] Add impl-thread support for animation-timing-function

Modified: trunk/Source/WebKit/chromium/public/WebDataSource.h (109299 => 109300)


--- trunk/Source/WebKit/chromium/public/WebDataSource.h	2012-03-01 03:54:24 UTC (rev 109299)
+++ trunk/Source/WebKit/chromium/public/WebDataSource.h	2012-03-01 04:08:54 UTC (rev 109300)
@@ -103,6 +103,14 @@
     // testing.
     virtual void setDeferMainResourceDataLoad(bool) = 0;
 
+    // Sets the navigation start time for this datasource. Ordinarily,
+    // navigation start is determined in WebCore. But, in some situations,
+    // the embedder might have a better value and can override it here. This
+    // should be called before WebFrameClient::didCommitProvisionalLoad.
+    // Calling it later may confuse users, because _javascript_ may have run and
+    // the user may have already recorded the original value.
+    virtual void setNavigationStartTime(double) = 0;
+
 protected:
     ~WebDataSource() { }
 };

Modified: trunk/Source/WebKit/chromium/src/WebDataSourceImpl.cpp (109299 => 109300)


--- trunk/Source/WebKit/chromium/src/WebDataSourceImpl.cpp	2012-03-01 03:54:24 UTC (rev 109299)
+++ trunk/Source/WebKit/chromium/src/WebDataSourceImpl.cpp	2012-03-01 04:08:54 UTC (rev 109300)
@@ -129,6 +129,11 @@
     DocumentLoader::setDeferMainResourceDataLoad(defer);
 }
 
+void WebDataSourceImpl::setNavigationStartTime(double navigationStart)
+{
+    timing()->setNavigationStart(navigationStart);
+}
+
 WebNavigationType WebDataSourceImpl::toWebNavigationType(NavigationType type)
 {
     switch (type) {

Modified: trunk/Source/WebKit/chromium/src/WebDataSourceImpl.h (109299 => 109300)


--- trunk/Source/WebKit/chromium/src/WebDataSourceImpl.h	2012-03-01 03:54:24 UTC (rev 109299)
+++ trunk/Source/WebKit/chromium/src/WebDataSourceImpl.h	2012-03-01 04:08:54 UTC (rev 109300)
@@ -70,6 +70,7 @@
     virtual void setExtraData(ExtraData*);
     virtual WebApplicationCacheHost* applicationCacheHost();
     virtual void setDeferMainResourceDataLoad(bool);
+    virtual void setNavigationStartTime(double);
 
     static WebNavigationType toWebNavigationType(WebCore::NavigationType type);
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to