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

Unified Diff: content/renderer/render_view_browsertest.cc

Issue 1425823002: (DEPRECATED) Send navigation_start to browser process in DidStartProvisionalLoad (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Stop calling didCreateDataSource for same-page navs 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_view_browsertest.cc
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc
index 47a4ef6c7c567d4f3d640c5a936f42e8d53bebf0..938e73ee8260f8607f8a89810485fd82ca239e45 100644
--- a/content/renderer/render_view_browsertest.cc
+++ b/content/renderer/render_view_browsertest.cc
@@ -1911,12 +1911,11 @@ TEST_F(RenderViewImplTest, NavigateSubframe) {
common_params.url = GURL("data:text/html,world");
common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
common_params.transition = ui::PAGE_TRANSITION_TYPED;
+ common_params.navigation_start = base::TimeTicks::FromInternalValue(1);
request_params.current_history_list_length = 1;
request_params.current_history_list_offset = 0;
request_params.pending_history_list_offset = 1;
request_params.page_id = -1;
- request_params.browser_navigation_start =
- base::TimeTicks::FromInternalValue(1);
TestRenderFrame* subframe =
static_cast<TestRenderFrame*>(RenderFrameImpl::FromWebFrame(
@@ -2277,9 +2276,8 @@ TEST_F(RenderViewImplTest, NavigationStartOverride) {
early_common_params.url = GURL("data:text/html,<div>Page</div>");
early_common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
early_common_params.transition = ui::PAGE_TRANSITION_TYPED;
+ early_common_params.navigation_start = base::TimeTicks::FromInternalValue(1);
early_start_params.is_post = true;
- early_request_params.browser_navigation_start =
- base::TimeTicks::FromInternalValue(1);
frame()->Navigate(early_common_params, early_start_params,
early_request_params);
@@ -2298,9 +2296,9 @@ TEST_F(RenderViewImplTest, NavigationStartOverride) {
late_common_params.url = GURL("data:text/html,<div>Another page</div>");
late_common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
late_common_params.transition = ui::PAGE_TRANSITION_TYPED;
- late_start_params.is_post = true;
- late_request_params.browser_navigation_start =
+ late_common_params.navigation_start =
base::TimeTicks::Now() + base::TimeDelta::FromDays(42);
+ late_start_params.is_post = true;
frame()->Navigate(late_common_params, late_start_params, late_request_params);
ProcessPendingMessages();
@@ -2312,6 +2310,36 @@ TEST_F(RenderViewImplTest, NavigationStartOverride) {
EXPECT_LE(late_nav_reported_start, after_navigation);
}
+TEST_F(RenderViewImplTest, BrowserNavigationStartSuccessfullyTransmitted) {
+ CommonNavigationParams common_params;
+ StartNavigationParams start_params;
+ RequestNavigationParams request_params;
+ common_params.url = GURL("data:text/html,<div>Page</div>");
+ common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
+ common_params.transition = ui::PAGE_TRANSITION_TYPED;
+ start_params.is_post = true;
+
+ // Data munching to simulate what we do in blink: convert navigation_start to
+ // a double for DocumentLoadTiming, then back to a TimeTicks to send back to
+ // the browser in FrameHostMsg_DidStartProvisionalLoadForFrame.
+ double navigation_start_seconds =
+ (common_params.navigation_start - base::TimeTicks()).InSecondsF();
+ base::TimeTicks adjusted_navigation_start =
+ base::TimeTicks::FromInternalValue(navigation_start_seconds *
+ base::Time::kMicrosecondsPerSecond);
+
+ frame()->Navigate(common_params, start_params, request_params);
+ ProcessPendingMessages();
+
+ const IPC::Message* frame_navigate_msg =
+ render_thread_->sink().GetUniqueMessageMatching(
+ FrameHostMsg_DidStartProvisionalLoadForFrame::ID);
+ FrameHostMsg_DidStartProvisionalLoadForFrame::Param host_nav_params;
+ FrameHostMsg_DidStartProvisionalLoadForFrame::Read(frame_navigate_msg,
+ &host_nav_params);
+ EXPECT_EQ(base::get<1>(host_nav_params), adjusted_navigation_start);
+}
+
TEST_F(RenderViewImplTest, PreferredSizeZoomed) {
LoadHTML("<body style='margin:0;'><div style='display:inline-block; "
"width:400px; height:400px;'/></body>");

Powered by Google App Engine
This is Rietveld 408576698