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 |