OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/bind.h" | 6 #include "base/bind.h" |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/location.h" | 8 #include "base/location.h" |
9 #include "base/single_thread_task_runner.h" | 9 #include "base/single_thread_task_runner.h" |
10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
(...skipping 2291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2302 RequestNavigationParams()); | 2302 RequestNavigationParams()); |
2303 ProcessPendingMessages(); | 2303 ProcessPendingMessages(); |
2304 base::Time after_navigation = | 2304 base::Time after_navigation = |
2305 base::Time::Now() + base::TimeDelta::FromDays(1); | 2305 base::Time::Now() + base::TimeDelta::FromDays(1); |
2306 | 2306 |
2307 base::Time late_nav_reported_start = | 2307 base::Time late_nav_reported_start = |
2308 base::Time::FromDoubleT(GetMainFrame()->performance().navigationStart()); | 2308 base::Time::FromDoubleT(GetMainFrame()->performance().navigationStart()); |
2309 EXPECT_LE(late_nav_reported_start, after_navigation); | 2309 EXPECT_LE(late_nav_reported_start, after_navigation); |
2310 } | 2310 } |
2311 | 2311 |
| 2312 TEST_F(RenderViewImplTest, RendererNavigationStartTransmittedToBrowser) { |
| 2313 base::TimeTicks lower_bound_navigation_start; |
| 2314 frame()->GetWebFrame()->loadHTMLString( |
| 2315 "hello world", blink::WebURL(GURL("data:text/html,"))); |
| 2316 ProcessPendingMessages(); |
| 2317 const IPC::Message* frame_navigate_msg = |
| 2318 render_thread_->sink().GetUniqueMessageMatching( |
| 2319 FrameHostMsg_DidStartProvisionalLoadForFrame::ID); |
| 2320 FrameHostMsg_DidStartProvisionalLoadForFrame::Param host_nav_params; |
| 2321 FrameHostMsg_DidStartProvisionalLoadForFrame::Read(frame_navigate_msg, |
| 2322 &host_nav_params); |
| 2323 base::TimeTicks transmitted_start = base::get<1>(host_nav_params); |
| 2324 EXPECT_FALSE(transmitted_start.is_null()); |
| 2325 EXPECT_LT(lower_bound_navigation_start, transmitted_start); |
| 2326 } |
| 2327 |
| 2328 TEST_F(RenderViewImplTest, BrowserNavigationStartNotUsedForReload) { |
| 2329 const char url_string[] = "data:text/html,<div>Page</div>"; |
| 2330 // Navigate once, then reload. |
| 2331 LoadHTML(url_string); |
| 2332 ProcessPendingMessages(); |
| 2333 render_thread_->sink().ClearMessages(); |
| 2334 |
| 2335 CommonNavigationParams common_params; |
| 2336 common_params.url = GURL(url_string); |
| 2337 common_params.navigation_type = |
| 2338 FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL; |
| 2339 common_params.transition = ui::PAGE_TRANSITION_LINK; |
| 2340 |
| 2341 frame()->Navigate(common_params, StartNavigationParams(), |
| 2342 RequestNavigationParams()); |
| 2343 ProcessPendingMessages(); |
| 2344 |
| 2345 const IPC::Message* frame_navigate_msg = |
| 2346 render_thread_->sink().GetUniqueMessageMatching( |
| 2347 FrameHostMsg_DidStartProvisionalLoadForFrame::ID); |
| 2348 FrameHostMsg_DidStartProvisionalLoadForFrame::Param host_nav_params; |
| 2349 FrameHostMsg_DidStartProvisionalLoadForFrame::Read(frame_navigate_msg, |
| 2350 &host_nav_params); |
| 2351 // The true timestamp is later than the browser initiated one. |
| 2352 EXPECT_GT(base::get<1>(host_nav_params), common_params.navigation_start); |
| 2353 } |
| 2354 |
| 2355 TEST_F(RenderViewImplTest, BrowserNavigationStartNotUsedForHistoryNavigation) { |
| 2356 LoadHTML("<div id=pagename>Page A</div>"); |
| 2357 LoadHTML("<div id=pagename>Page B</div>"); |
| 2358 PageState back_state = |
| 2359 HistoryEntryToPageState(view()->history_controller()->GetCurrentEntry()); |
| 2360 LoadHTML("<div id=pagename>Page C</div>"); |
| 2361 PageState forward_state = |
| 2362 HistoryEntryToPageState(view()->history_controller()->GetCurrentEntry()); |
| 2363 ProcessPendingMessages(); |
| 2364 render_thread_->sink().ClearMessages(); |
| 2365 |
| 2366 CommonNavigationParams common_params; |
| 2367 common_params.transition = ui::PAGE_TRANSITION_FORWARD_BACK; |
| 2368 // Go back. |
| 2369 GoToOffsetWithParams(-1, back_state, common_params, StartNavigationParams(), |
| 2370 RequestNavigationParams()); |
| 2371 ProcessPendingMessages(); |
| 2372 const IPC::Message* frame_navigate_msg = |
| 2373 render_thread_->sink().GetUniqueMessageMatching( |
| 2374 FrameHostMsg_DidStartProvisionalLoadForFrame::ID); |
| 2375 FrameHostMsg_DidStartProvisionalLoadForFrame::Param host_nav_params; |
| 2376 FrameHostMsg_DidStartProvisionalLoadForFrame::Read(frame_navigate_msg, |
| 2377 &host_nav_params); |
| 2378 EXPECT_GT(base::get<1>(host_nav_params), common_params.navigation_start); |
| 2379 render_thread_->sink().ClearMessages(); |
| 2380 |
| 2381 // Go forward. |
| 2382 GoToOffsetWithParams(1, forward_state, common_params, |
| 2383 StartNavigationParams(), |
| 2384 RequestNavigationParams()); |
| 2385 ProcessPendingMessages(); |
| 2386 const IPC::Message* frame_navigate_msg2 = |
| 2387 render_thread_->sink().GetUniqueMessageMatching( |
| 2388 FrameHostMsg_DidStartProvisionalLoadForFrame::ID); |
| 2389 FrameHostMsg_DidStartProvisionalLoadForFrame::Param host_nav_params2; |
| 2390 FrameHostMsg_DidStartProvisionalLoadForFrame::Read(frame_navigate_msg2, |
| 2391 &host_nav_params2); |
| 2392 EXPECT_GT(base::get<1>(host_nav_params2), common_params.navigation_start); |
| 2393 } |
| 2394 |
| 2395 TEST_F(RenderViewImplTest, BrowserNavigationStartSuccessfullyTransmitted) { |
| 2396 CommonNavigationParams common_params; |
| 2397 common_params.url = GURL("data:text/html,<div>Page</div>"); |
| 2398 common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 2399 common_params.transition = ui::PAGE_TRANSITION_TYPED; |
| 2400 |
| 2401 frame()->Navigate(common_params, StartNavigationParams(), |
| 2402 RequestNavigationParams()); |
| 2403 ProcessPendingMessages(); |
| 2404 |
| 2405 const IPC::Message* frame_navigate_msg = |
| 2406 render_thread_->sink().GetUniqueMessageMatching( |
| 2407 FrameHostMsg_DidStartProvisionalLoadForFrame::ID); |
| 2408 FrameHostMsg_DidStartProvisionalLoadForFrame::Param host_nav_params; |
| 2409 FrameHostMsg_DidStartProvisionalLoadForFrame::Read(frame_navigate_msg, |
| 2410 &host_nav_params); |
| 2411 EXPECT_EQ(base::get<1>(host_nav_params), common_params.navigation_start); |
| 2412 } |
| 2413 |
2312 TEST_F(RenderViewImplTest, PreferredSizeZoomed) { | 2414 TEST_F(RenderViewImplTest, PreferredSizeZoomed) { |
2313 LoadHTML("<body style='margin:0;'><div style='display:inline-block; " | 2415 LoadHTML("<body style='margin:0;'><div style='display:inline-block; " |
2314 "width:400px; height:400px;'/></body>"); | 2416 "width:400px; height:400px;'/></body>"); |
2315 view()->webview()->mainFrame()->setCanHaveScrollbars(false); | 2417 view()->webview()->mainFrame()->setCanHaveScrollbars(false); |
2316 EnablePreferredSizeMode(); | 2418 EnablePreferredSizeMode(); |
2317 | 2419 |
2318 gfx::Size size = GetPreferredSize(); | 2420 gfx::Size size = GetPreferredSize(); |
2319 EXPECT_EQ(gfx::Size(400, 400), size); | 2421 EXPECT_EQ(gfx::Size(400, 400), size); |
2320 | 2422 |
2321 SetZoomLevel(ZoomFactorToZoomLevel(2.0)); | 2423 SetZoomLevel(ZoomFactorToZoomLevel(2.0)); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2379 FROM_HERE, | 2481 FROM_HERE, |
2380 base::Bind(&DevToolsAgentTest::CloseWhilePaused, base::Unretained(this))); | 2482 base::Bind(&DevToolsAgentTest::CloseWhilePaused, base::Unretained(this))); |
2381 ExecuteJavaScriptForTests("debugger;"); | 2483 ExecuteJavaScriptForTests("debugger;"); |
2382 | 2484 |
2383 // CloseWhilePaused should resume execution and continue here. | 2485 // CloseWhilePaused should resume execution and continue here. |
2384 EXPECT_FALSE(IsPaused()); | 2486 EXPECT_FALSE(IsPaused()); |
2385 Detach(); | 2487 Detach(); |
2386 } | 2488 } |
2387 | 2489 |
2388 } // namespace content | 2490 } // namespace content |
OLD | NEW |