| Index: webkit/glue/resource_loader_bridge.h
|
| diff --git a/webkit/glue/resource_loader_bridge.h b/webkit/glue/resource_loader_bridge.h
|
| index 6711039652ad869bb9584f6b524f2e50f963c0b1..25e788bf35dbdb66cec6d3d0e037e576ea144866 100644
|
| --- a/webkit/glue/resource_loader_bridge.h
|
| +++ b/webkit/glue/resource_loader_bridge.h
|
| @@ -33,6 +33,7 @@
|
| #include "googleurl/src/gurl.h"
|
| #include "net/base/host_port_pair.h"
|
| #include "net/url_request/url_request_status.h"
|
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebURLLoadTiming.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h"
|
| #include "webkit/glue/resource_type.h"
|
|
|
| @@ -52,8 +53,11 @@ struct ResourceLoadTimingInfo {
|
| ResourceLoadTimingInfo();
|
| ~ResourceLoadTimingInfo();
|
|
|
| - // All the values in this struct are given as offsets in milliseconds wrt
|
| - // this base time.
|
| + // All the values in this struct are given as offsets in ticks wrt
|
| + // this base tick count.
|
| + base::TimeTicks base_ticks;
|
| +
|
| + // The value of Time::Now() when base_ticks was set.
|
| base::Time base_time;
|
|
|
| // The time that proxy processing started. For requests with no proxy phase,
|
| @@ -270,6 +274,12 @@ class ResourceLoaderBridge {
|
|
|
| // The response data.
|
| std::string data;
|
| +
|
| + // TimeTicks when the network stack first receives the request.
|
| + base::TimeTicks start_time;
|
| +
|
| + // TimeTicks when the response is sent to the renderer.
|
| + base::TimeTicks end_time;
|
| };
|
|
|
| // Generated by the bridge. This is implemented by our custom resource loader
|
| @@ -296,12 +306,16 @@ class ResourceLoaderBridge {
|
| // should be consulted for the third-party cookie blocking policy.
|
| virtual bool OnReceivedRedirect(const GURL& new_url,
|
| const ResourceResponseInfo& info,
|
| + const base::TimeTicks& start_time,
|
| + const base::TimeTicks& end_time,
|
| bool* has_new_first_party_for_cookies,
|
| GURL* new_first_party_for_cookies) = 0;
|
|
|
| // Called when response headers are available (after all redirects have
|
| // been followed).
|
| - virtual void OnReceivedResponse(const ResourceResponseInfo& info) = 0;
|
| + virtual void OnReceivedResponse(const ResourceResponseInfo& info,
|
| + const base::TimeTicks& start_time,
|
| + const base::TimeTicks& end_time) = 0;
|
|
|
| // Called when a chunk of response data is downloaded. This method may be
|
| // called multiple times or not at all if an error occurs. This method is
|
| @@ -324,9 +338,10 @@ class ResourceLoaderBridge {
|
|
|
| // Called when the response is complete. This method signals completion of
|
| // the resource load.ff
|
| - virtual void OnCompletedRequest(const net::URLRequestStatus& status,
|
| - const std::string& security_info,
|
| - const base::Time& completion_time) = 0;
|
| + virtual void OnCompletedRequest(
|
| + const net::URLRequestStatus& status,
|
| + const std::string& security_info,
|
| + const base::TimeTicks& completion_time) = 0;
|
| };
|
|
|
| // use Create() for construction, but anybody can delete at any time,
|
| @@ -401,6 +416,14 @@ class ResourceLoaderBridge {
|
| DISALLOW_COPY_AND_ASSIGN(ResourceLoaderBridge);
|
| };
|
|
|
| +// For testing purposes.
|
| +WebKit::WebURLLoadTiming PopulateWebURLLoadTiming(
|
| + const ResourceLoadTimingInfo& timing_info,
|
| + const base::TimeTicks& initiation_time,
|
| + const base::TimeTicks& start_time,
|
| + const base::TimeTicks& end_time,
|
| + const base::TimeTicks& callback_time);
|
| +
|
| } // namespace webkit_glue
|
|
|
| #endif // WEBKIT_GLUE_RESOURCE_LOADER_BRIDGE_H_
|
|
|