Index: content/browser/frame_host/navigation_handle_impl.h |
diff --git a/content/browser/frame_host/navigation_handle_impl.h b/content/browser/frame_host/navigation_handle_impl.h |
index 6f46707108e531ceac132639638d387611e5710f..b0a7b9a36008a11a40eeaca47a28970b330fa8a9 100644 |
--- a/content/browser/frame_host/navigation_handle_impl.h |
+++ b/content/browser/frame_host/navigation_handle_impl.h |
@@ -57,9 +57,14 @@ struct NavigationRequestInfo; |
// the RenderFrameHost still apply. |
class CONTENT_EXPORT NavigationHandleImpl : public NavigationHandle { |
public: |
+ // |navigation_start| comes from the DidStartProvisionalLoad IPC, which tracks |
+ // both renderer-initiated and browser-initiated navigation start. |
+ // PlzNavigate: This value always comes from the CommonNavigationParams |
+ // associated with this navigation. |
static scoped_ptr<NavigationHandleImpl> Create( |
const GURL& url, |
- FrameTreeNode* frame_tree_node); |
+ FrameTreeNode* frame_tree_node, |
+ const base::TimeTicks& navigation_start); |
~NavigationHandleImpl() override; |
// NavigationHandle implementation: |
@@ -90,6 +95,11 @@ class CONTENT_EXPORT NavigationHandleImpl : public NavigationHandle { |
const GURL& new_referrer_url, |
bool new_is_external_protocol) override; |
+ // The time the navigation started, recorded either in the renderer or browser |
+ // process. Corresponds to Navigation Timing API. |
+ // TODO(csharrison): Add this to the public class and mark this override. |
+ const base::TimeTicks& navigation_start() { return navigation_start_; } |
+ |
NavigatorDelegate* GetDelegate() const; |
void set_net_error_code(net::Error net_error_code) { |
@@ -162,7 +172,8 @@ class CONTENT_EXPORT NavigationHandleImpl : public NavigationHandle { |
}; |
NavigationHandleImpl(const GURL& url, |
- FrameTreeNode* frame_tree_node); |
+ FrameTreeNode* frame_tree_node, |
+ const base::TimeTicks& navigation_start); |
NavigationThrottle::ThrottleCheckResult CheckWillStartRequest(); |
NavigationThrottle::ThrottleCheckResult CheckWillRedirectRequest(); |
@@ -197,6 +208,9 @@ class CONTENT_EXPORT NavigationHandleImpl : public NavigationHandle { |
// The index of the next throttle to check. |
size_t next_index_; |
+ // The time this navigation started. |
+ const base::TimeTicks navigation_start_; |
+ |
// This callback will be run when all throttle checks have been performed. |
ThrottleChecksFinishedCallback complete_callback_; |