Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 5a9da313bc67b3f7b2932be454a43784b50d4c8b..d3f2fe3ad5b02346b438c8258f09ae3ce3f3e5e7 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -2708,6 +2708,8 @@ void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame, |
// Start time is only set after request time. |
document_state->set_start_load_time(Time::Now()); |
+ NavigationStateImpl* navigation_state = static_cast<NavigationStateImpl*>( |
+ document_state->navigation_state()); |
bool is_top_most = !frame->parent(); |
if (is_top_most) { |
render_view_->set_navigation_gesture( |
@@ -2717,16 +2719,19 @@ void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame, |
// Subframe navigations that don't add session history items must be |
// marked with AUTO_SUBFRAME. See also didFailProvisionalLoad for how we |
// handle loading of error pages. |
- static_cast<NavigationStateImpl*>(document_state->navigation_state()) |
- ->set_transition_type(ui::PAGE_TRANSITION_AUTO_SUBFRAME); |
+ navigation_state->set_transition_type(ui::PAGE_TRANSITION_AUTO_SUBFRAME); |
} |
+ base::TimeTicks navigation_start = |
+ navigation_state->common_params().navigation_start; |
+ DCHECK(!navigation_start.is_null()); |
+ |
FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(), |
DidStartProvisionalLoad(frame)); |
FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidStartProvisionalLoad()); |
Send(new FrameHostMsg_DidStartProvisionalLoadForFrame( |
- routing_id_, ds->request().url())); |
+ routing_id_, ds->request().url(), navigation_start)); |
} |
void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad( |
@@ -4353,7 +4358,7 @@ void RenderFrameImpl::OnFailedNavigation( |
// Inform the browser of the start of the provisional load. This is needed so |
// that the load is properly tracked by the WebNavigation API. |
Send(new FrameHostMsg_DidStartProvisionalLoadForFrame( |
- routing_id_, common_params.url)); |
+ routing_id_, common_params.url, common_params.navigation_start)); |
// Send the provisional load failure. |
blink::WebURLError error = |