Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Unified Diff: content/renderer/render_frame_impl.cc

Issue 1427633004: Send navigation_start to the browser in DidStartProvisionalLoad IPC (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@navigation_start_renderer
Patch Set: Comments Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..3d8bd0281614fd8748125fd7e92220ed6e5c47ec 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 =

Powered by Google App Engine
This is Rietveld 408576698