Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 6f08693d2fbfb13d5200a140879e5bc08bda2b4b..c1274ff74255d3cb38efee307af87e96cc380c70 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -2718,6 +2718,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( |
@@ -2727,16 +2729,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( |
@@ -4343,7 +4348,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 = |