| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index e8ee6ab93f75f97283aaa28122c69d259ee92d1c..082c158db4988a1d71ea898d6e13b04182909aaa 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -2691,6 +2691,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(
|
| @@ -2700,16 +2702,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(
|
| @@ -4317,7 +4322,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 =
|
|
|