Index: content/browser/frame_host/navigator_impl.cc |
diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc |
index 5d9f22528208fe1beaa2dd7ec1b3c455b248e52c..aa7e8716f2841581815c58eb1359284d9cffcde1 100644 |
--- a/content/browser/frame_host/navigator_impl.cc |
+++ b/content/browser/frame_host/navigator_impl.cc |
@@ -119,7 +119,8 @@ NavigationController* NavigatorImpl::GetController() { |
void NavigatorImpl::DidStartProvisionalLoad( |
RenderFrameHostImpl* render_frame_host, |
- const GURL& url) { |
+ const GURL& url, |
+ double navigation_start) { |
bool is_main_frame = render_frame_host->frame_tree_node()->IsMainFrame(); |
bool is_error_page = (url.spec() == kUnreachableWebDataURL); |
bool is_iframe_srcdoc = (url.spec() == kAboutSrcDocURL); |
@@ -160,7 +161,7 @@ void NavigatorImpl::DidStartProvisionalLoad( |
} |
render_frame_host->SetNavigationHandle(NavigationHandleImpl::Create( |
- validated_url, render_frame_host->frame_tree_node())); |
+ validated_url, render_frame_host->frame_tree_node(), navigation_start)); |
} |
void NavigatorImpl::DidFailProvisionalLoadWithError( |
@@ -686,7 +687,8 @@ void NavigatorImpl::OnBeginNavigation( |
controller_->GetLastCommittedEntryIndex(), |
controller_->GetEntryCount())); |
NavigationRequest* navigation_request = frame_tree_node->navigation_request(); |
- navigation_request->CreateNavigationHandle(); |
+ navigation_request->CreateNavigationHandle( |
+ begin_params.renderer_navigation_start); |
if (frame_tree_node->IsMainFrame()) { |
// Renderer-initiated main-frame navigations that need to swap processes |
@@ -855,7 +857,10 @@ void NavigatorImpl::RequestNavigation( |
navigation_type, is_same_document_history_load, navigation_start, |
controller_)); |
NavigationRequest* navigation_request = frame_tree_node->navigation_request(); |
- navigation_request->CreateNavigationHandle(); |
+ |
+ double navigation_start_seconds = |
+ (navigation_start - base::TimeTicks()).InSecondsF(); |
+ navigation_request->CreateNavigationHandle(navigation_start_seconds); |
// Have the current renderer execute its beforeunload event if needed. If it |
// is not needed (when beforeunload dispatch is not needed or this navigation |