| 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 |