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/memory/shared_memory.h" | 8 #include "base/memory/shared_memory.h" |
9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 15 matching lines...) Expand all Loading... |
26 #include "content/public/renderer/content_renderer_client.h" | 26 #include "content/public/renderer/content_renderer_client.h" |
27 #include "content/public/renderer/document_state.h" | 27 #include "content/public/renderer/document_state.h" |
28 #include "content/public/renderer/navigation_state.h" | 28 #include "content/public/renderer/navigation_state.h" |
29 #include "content/public/test/browser_test_utils.h" | 29 #include "content/public/test/browser_test_utils.h" |
30 #include "content/public/test/frame_load_waiter.h" | 30 #include "content/public/test/frame_load_waiter.h" |
31 #include "content/public/test/render_view_test.h" | 31 #include "content/public/test/render_view_test.h" |
32 #include "content/public/test/test_utils.h" | 32 #include "content/public/test/test_utils.h" |
33 #include "content/renderer/accessibility/renderer_accessibility.h" | 33 #include "content/renderer/accessibility/renderer_accessibility.h" |
34 #include "content/renderer/history_controller.h" | 34 #include "content/renderer/history_controller.h" |
35 #include "content/renderer/history_serialization.h" | 35 #include "content/renderer/history_serialization.h" |
| 36 #include "content/renderer/navigation_state_impl.h" |
36 #include "content/renderer/render_process.h" | 37 #include "content/renderer/render_process.h" |
37 #include "content/renderer/render_view_impl.h" | 38 #include "content/renderer/render_view_impl.h" |
38 #include "content/shell/browser/shell.h" | 39 #include "content/shell/browser/shell.h" |
39 #include "content/shell/browser/shell_browser_context.h" | 40 #include "content/shell/browser/shell_browser_context.h" |
40 #include "content/test/mock_keyboard.h" | 41 #include "content/test/mock_keyboard.h" |
41 #include "net/base/net_errors.h" | 42 #include "net/base/net_errors.h" |
42 #include "net/cert/cert_status_flags.h" | 43 #include "net/cert/cert_status_flags.h" |
43 #include "testing/gtest/include/gtest/gtest.h" | 44 #include "testing/gtest/include/gtest/gtest.h" |
44 #include "third_party/WebKit/public/platform/WebData.h" | 45 #include "third_party/WebKit/public/platform/WebData.h" |
45 #include "third_party/WebKit/public/platform/WebHTTPBody.h" | 46 #include "third_party/WebKit/public/platform/WebHTTPBody.h" |
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
424 EXPECT_EQ(blink::WebHTTPBody::Element::TypeData, element.type); | 425 EXPECT_EQ(blink::WebHTTPBody::Element::TypeData, element.type); |
425 EXPECT_EQ(length, element.data.size()); | 426 EXPECT_EQ(length, element.data.size()); |
426 EXPECT_EQ(0, memcmp(raw_data, element.data.data(), length)); | 427 EXPECT_EQ(0, memcmp(raw_data, element.data.data(), length)); |
427 } | 428 } |
428 | 429 |
429 TEST_F(RenderViewImplTest, DecideNavigationPolicy) { | 430 TEST_F(RenderViewImplTest, DecideNavigationPolicy) { |
430 WebUITestWebUIControllerFactory factory; | 431 WebUITestWebUIControllerFactory factory; |
431 WebUIControllerFactory::RegisterFactory(&factory); | 432 WebUIControllerFactory::RegisterFactory(&factory); |
432 | 433 |
433 DocumentState state; | 434 DocumentState state; |
434 state.set_navigation_state(NavigationState::CreateContentInitiated()); | 435 state.set_navigation_state(NavigationStateImpl::CreateContentInitiated()); |
435 | 436 |
436 // Navigations to normal HTTP URLs can be handled locally. | 437 // Navigations to normal HTTP URLs can be handled locally. |
437 blink::WebURLRequest request(GURL("http://foo.com")); | 438 blink::WebURLRequest request(GURL("http://foo.com")); |
438 blink::WebFrameClient::NavigationPolicyInfo policy_info(request); | 439 blink::WebFrameClient::NavigationPolicyInfo policy_info(request); |
439 policy_info.frame = GetMainFrame(); | 440 policy_info.frame = GetMainFrame(); |
440 policy_info.extraData = &state; | 441 policy_info.extraData = &state; |
441 policy_info.navigationType = blink::WebNavigationTypeLinkClicked; | 442 policy_info.navigationType = blink::WebNavigationTypeLinkClicked; |
442 policy_info.defaultPolicy = blink::WebNavigationPolicyCurrentTab; | 443 policy_info.defaultPolicy = blink::WebNavigationPolicyCurrentTab; |
443 blink::WebNavigationPolicy policy = frame()->decidePolicyForNavigation( | 444 blink::WebNavigationPolicy policy = frame()->decidePolicyForNavigation( |
444 policy_info); | 445 policy_info); |
(...skipping 16 matching lines...) Expand all Loading... |
461 popup_policy_info.frame = GetMainFrame(); | 462 popup_policy_info.frame = GetMainFrame(); |
462 popup_policy_info.extraData = &state; | 463 popup_policy_info.extraData = &state; |
463 popup_policy_info.navigationType = blink::WebNavigationTypeLinkClicked; | 464 popup_policy_info.navigationType = blink::WebNavigationTypeLinkClicked; |
464 popup_policy_info.defaultPolicy = blink::WebNavigationPolicyNewForegroundTab; | 465 popup_policy_info.defaultPolicy = blink::WebNavigationPolicyNewForegroundTab; |
465 policy = frame()->decidePolicyForNavigation(popup_policy_info); | 466 policy = frame()->decidePolicyForNavigation(popup_policy_info); |
466 EXPECT_EQ(blink::WebNavigationPolicyIgnore, policy); | 467 EXPECT_EQ(blink::WebNavigationPolicyIgnore, policy); |
467 } | 468 } |
468 | 469 |
469 TEST_F(RenderViewImplTest, DecideNavigationPolicyHandlesAllTopLevel) { | 470 TEST_F(RenderViewImplTest, DecideNavigationPolicyHandlesAllTopLevel) { |
470 DocumentState state; | 471 DocumentState state; |
471 state.set_navigation_state(NavigationState::CreateContentInitiated()); | 472 state.set_navigation_state(NavigationStateImpl::CreateContentInitiated()); |
472 | 473 |
473 RendererPreferences prefs = view()->renderer_preferences(); | 474 RendererPreferences prefs = view()->renderer_preferences(); |
474 prefs.browser_handles_all_top_level_requests = true; | 475 prefs.browser_handles_all_top_level_requests = true; |
475 view()->OnSetRendererPrefs(prefs); | 476 view()->OnSetRendererPrefs(prefs); |
476 | 477 |
477 const blink::WebNavigationType kNavTypes[] = { | 478 const blink::WebNavigationType kNavTypes[] = { |
478 blink::WebNavigationTypeLinkClicked, | 479 blink::WebNavigationTypeLinkClicked, |
479 blink::WebNavigationTypeFormSubmitted, | 480 blink::WebNavigationTypeFormSubmitted, |
480 blink::WebNavigationTypeBackForward, | 481 blink::WebNavigationTypeBackForward, |
481 blink::WebNavigationTypeReload, | 482 blink::WebNavigationTypeReload, |
(...skipping 14 matching lines...) Expand all Loading... |
496 policy_info); | 497 policy_info); |
497 EXPECT_EQ(blink::WebNavigationPolicyIgnore, policy); | 498 EXPECT_EQ(blink::WebNavigationPolicyIgnore, policy); |
498 } | 499 } |
499 } | 500 } |
500 | 501 |
501 TEST_F(RenderViewImplTest, DecideNavigationPolicyForWebUI) { | 502 TEST_F(RenderViewImplTest, DecideNavigationPolicyForWebUI) { |
502 // Enable bindings to simulate a WebUI view. | 503 // Enable bindings to simulate a WebUI view. |
503 view()->OnAllowBindings(BINDINGS_POLICY_WEB_UI); | 504 view()->OnAllowBindings(BINDINGS_POLICY_WEB_UI); |
504 | 505 |
505 DocumentState state; | 506 DocumentState state; |
506 state.set_navigation_state(NavigationState::CreateContentInitiated()); | 507 state.set_navigation_state(NavigationStateImpl::CreateContentInitiated()); |
507 | 508 |
508 // Navigations to normal HTTP URLs will be sent to browser process. | 509 // Navigations to normal HTTP URLs will be sent to browser process. |
509 blink::WebURLRequest request(GURL("http://foo.com")); | 510 blink::WebURLRequest request(GURL("http://foo.com")); |
510 blink::WebFrameClient::NavigationPolicyInfo policy_info(request); | 511 blink::WebFrameClient::NavigationPolicyInfo policy_info(request); |
511 policy_info.frame = GetMainFrame(); | 512 policy_info.frame = GetMainFrame(); |
512 policy_info.extraData = &state; | 513 policy_info.extraData = &state; |
513 policy_info.navigationType = blink::WebNavigationTypeLinkClicked; | 514 policy_info.navigationType = blink::WebNavigationTypeLinkClicked; |
514 policy_info.defaultPolicy = blink::WebNavigationPolicyCurrentTab; | 515 policy_info.defaultPolicy = blink::WebNavigationPolicyCurrentTab; |
515 | 516 |
516 blink::WebNavigationPolicy policy = frame()->decidePolicyForNavigation( | 517 blink::WebNavigationPolicy policy = frame()->decidePolicyForNavigation( |
(...skipping 1817 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2334 frame()->OnNavigate(CommonNavigationParams(), StartNavigationParams(), | 2335 frame()->OnNavigate(CommonNavigationParams(), StartNavigationParams(), |
2335 CommitNavigationParams(), history_params); | 2336 CommitNavigationParams(), history_params); |
2336 | 2337 |
2337 // The history list in RenderView should have been updated. | 2338 // The history list in RenderView should have been updated. |
2338 EXPECT_EQ(1, view()->historyBackListCount()); | 2339 EXPECT_EQ(1, view()->historyBackListCount()); |
2339 EXPECT_EQ(2, view()->historyBackListCount() + | 2340 EXPECT_EQ(2, view()->historyBackListCount() + |
2340 view()->historyForwardListCount() + 1); | 2341 view()->historyForwardListCount() + 1); |
2341 } | 2342 } |
2342 | 2343 |
2343 } // namespace content | 2344 } // namespace content |
OLD | NEW |