| 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 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 399 EXPECT_EQ(blink::WebHTTPBody::Element::TypeData, element.type); | 400 EXPECT_EQ(blink::WebHTTPBody::Element::TypeData, element.type); |
| 400 EXPECT_EQ(length, element.data.size()); | 401 EXPECT_EQ(length, element.data.size()); |
| 401 EXPECT_EQ(0, memcmp(raw_data, element.data.data(), length)); | 402 EXPECT_EQ(0, memcmp(raw_data, element.data.data(), length)); |
| 402 } | 403 } |
| 403 | 404 |
| 404 TEST_F(RenderViewImplTest, DecideNavigationPolicy) { | 405 TEST_F(RenderViewImplTest, DecideNavigationPolicy) { |
| 405 WebUITestWebUIControllerFactory factory; | 406 WebUITestWebUIControllerFactory factory; |
| 406 WebUIControllerFactory::RegisterFactory(&factory); | 407 WebUIControllerFactory::RegisterFactory(&factory); |
| 407 | 408 |
| 408 DocumentState state; | 409 DocumentState state; |
| 409 state.set_navigation_state(NavigationState::CreateContentInitiated()); | 410 state.set_navigation_state(NavigationStateImpl::CreateContentInitiated()); |
| 410 | 411 |
| 411 // Navigations to normal HTTP URLs can be handled locally. | 412 // Navigations to normal HTTP URLs can be handled locally. |
| 412 blink::WebURLRequest request(GURL("http://foo.com")); | 413 blink::WebURLRequest request(GURL("http://foo.com")); |
| 413 blink::WebFrameClient::NavigationPolicyInfo policy_info(request); | 414 blink::WebFrameClient::NavigationPolicyInfo policy_info(request); |
| 414 policy_info.frame = GetMainFrame(); | 415 policy_info.frame = GetMainFrame(); |
| 415 policy_info.extraData = &state; | 416 policy_info.extraData = &state; |
| 416 policy_info.navigationType = blink::WebNavigationTypeLinkClicked; | 417 policy_info.navigationType = blink::WebNavigationTypeLinkClicked; |
| 417 policy_info.defaultPolicy = blink::WebNavigationPolicyCurrentTab; | 418 policy_info.defaultPolicy = blink::WebNavigationPolicyCurrentTab; |
| 418 blink::WebNavigationPolicy policy = frame()->decidePolicyForNavigation( | 419 blink::WebNavigationPolicy policy = frame()->decidePolicyForNavigation( |
| 419 policy_info); | 420 policy_info); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 436 popup_policy_info.frame = GetMainFrame(); | 437 popup_policy_info.frame = GetMainFrame(); |
| 437 popup_policy_info.extraData = &state; | 438 popup_policy_info.extraData = &state; |
| 438 popup_policy_info.navigationType = blink::WebNavigationTypeLinkClicked; | 439 popup_policy_info.navigationType = blink::WebNavigationTypeLinkClicked; |
| 439 popup_policy_info.defaultPolicy = blink::WebNavigationPolicyNewForegroundTab; | 440 popup_policy_info.defaultPolicy = blink::WebNavigationPolicyNewForegroundTab; |
| 440 policy = frame()->decidePolicyForNavigation(popup_policy_info); | 441 policy = frame()->decidePolicyForNavigation(popup_policy_info); |
| 441 EXPECT_EQ(blink::WebNavigationPolicyIgnore, policy); | 442 EXPECT_EQ(blink::WebNavigationPolicyIgnore, policy); |
| 442 } | 443 } |
| 443 | 444 |
| 444 TEST_F(RenderViewImplTest, DecideNavigationPolicyHandlesAllTopLevel) { | 445 TEST_F(RenderViewImplTest, DecideNavigationPolicyHandlesAllTopLevel) { |
| 445 DocumentState state; | 446 DocumentState state; |
| 446 state.set_navigation_state(NavigationState::CreateContentInitiated()); | 447 state.set_navigation_state(NavigationStateImpl::CreateContentInitiated()); |
| 447 | 448 |
| 448 RendererPreferences prefs = view()->renderer_preferences(); | 449 RendererPreferences prefs = view()->renderer_preferences(); |
| 449 prefs.browser_handles_all_top_level_requests = true; | 450 prefs.browser_handles_all_top_level_requests = true; |
| 450 view()->OnSetRendererPrefs(prefs); | 451 view()->OnSetRendererPrefs(prefs); |
| 451 | 452 |
| 452 const blink::WebNavigationType kNavTypes[] = { | 453 const blink::WebNavigationType kNavTypes[] = { |
| 453 blink::WebNavigationTypeLinkClicked, | 454 blink::WebNavigationTypeLinkClicked, |
| 454 blink::WebNavigationTypeFormSubmitted, | 455 blink::WebNavigationTypeFormSubmitted, |
| 455 blink::WebNavigationTypeBackForward, | 456 blink::WebNavigationTypeBackForward, |
| 456 blink::WebNavigationTypeReload, | 457 blink::WebNavigationTypeReload, |
| (...skipping 14 matching lines...) Expand all Loading... |
| 471 policy_info); | 472 policy_info); |
| 472 EXPECT_EQ(blink::WebNavigationPolicyIgnore, policy); | 473 EXPECT_EQ(blink::WebNavigationPolicyIgnore, policy); |
| 473 } | 474 } |
| 474 } | 475 } |
| 475 | 476 |
| 476 TEST_F(RenderViewImplTest, DecideNavigationPolicyForWebUI) { | 477 TEST_F(RenderViewImplTest, DecideNavigationPolicyForWebUI) { |
| 477 // Enable bindings to simulate a WebUI view. | 478 // Enable bindings to simulate a WebUI view. |
| 478 view()->OnAllowBindings(BINDINGS_POLICY_WEB_UI); | 479 view()->OnAllowBindings(BINDINGS_POLICY_WEB_UI); |
| 479 | 480 |
| 480 DocumentState state; | 481 DocumentState state; |
| 481 state.set_navigation_state(NavigationState::CreateContentInitiated()); | 482 state.set_navigation_state(NavigationStateImpl::CreateContentInitiated()); |
| 482 | 483 |
| 483 // Navigations to normal HTTP URLs will be sent to browser process. | 484 // Navigations to normal HTTP URLs will be sent to browser process. |
| 484 blink::WebURLRequest request(GURL("http://foo.com")); | 485 blink::WebURLRequest request(GURL("http://foo.com")); |
| 485 blink::WebFrameClient::NavigationPolicyInfo policy_info(request); | 486 blink::WebFrameClient::NavigationPolicyInfo policy_info(request); |
| 486 policy_info.frame = GetMainFrame(); | 487 policy_info.frame = GetMainFrame(); |
| 487 policy_info.extraData = &state; | 488 policy_info.extraData = &state; |
| 488 policy_info.navigationType = blink::WebNavigationTypeLinkClicked; | 489 policy_info.navigationType = blink::WebNavigationTypeLinkClicked; |
| 489 policy_info.defaultPolicy = blink::WebNavigationPolicyCurrentTab; | 490 policy_info.defaultPolicy = blink::WebNavigationPolicyCurrentTab; |
| 490 | 491 |
| 491 blink::WebNavigationPolicy policy = frame()->decidePolicyForNavigation( | 492 blink::WebNavigationPolicy policy = frame()->decidePolicyForNavigation( |
| (...skipping 1817 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2309 frame()->OnNavigate(CommonNavigationParams(), StartNavigationParams(), | 2310 frame()->OnNavigate(CommonNavigationParams(), StartNavigationParams(), |
| 2310 CommitNavigationParams(), history_params); | 2311 CommitNavigationParams(), history_params); |
| 2311 | 2312 |
| 2312 // The history list in RenderView should have been updated. | 2313 // The history list in RenderView should have been updated. |
| 2313 EXPECT_EQ(1, view()->historyBackListCount()); | 2314 EXPECT_EQ(1, view()->historyBackListCount()); |
| 2314 EXPECT_EQ(2, view()->historyBackListCount() + | 2315 EXPECT_EQ(2, view()->historyBackListCount() + |
| 2315 view()->historyForwardListCount() + 1); | 2316 view()->historyForwardListCount() + 1); |
| 2316 } | 2317 } |
| 2317 | 2318 |
| 2318 } // namespace content | 2319 } // namespace content |
| OLD | NEW |