| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "content/browser/frame_host/navigation_handle_impl.h" | 5 #include "content/browser/frame_host/navigation_handle_impl.h" |
| 6 #include "content/browser/web_contents/web_contents_impl.h" | 6 #include "content/browser/web_contents/web_contents_impl.h" |
| 7 #include "content/public/browser/web_contents.h" | 7 #include "content/public/browser/web_contents.h" |
| 8 #include "content/public/browser/web_contents_observer.h" | 8 #include "content/public/browser/web_contents_observer.h" |
| 9 #include "content/public/test/browser_test_utils.h" | 9 #include "content/public/test/browser_test_utils.h" |
| 10 #include "content/public/test/content_browser_test.h" | 10 #include "content/public/test/content_browser_test.h" |
| 11 #include "content/public/test/content_browser_test_utils.h" | 11 #include "content/public/test/content_browser_test_utils.h" |
| 12 #include "content/public/test/test_navigation_observer.h" | 12 #include "content/public/test/test_navigation_observer.h" |
| 13 #include "content/public/test/test_utils.h" | 13 #include "content/public/test/test_utils.h" |
| 14 #include "content/shell/browser/shell.h" | 14 #include "content/shell/browser/shell.h" |
| 15 #include "content/test/content_browser_test_utils_internal.h" |
| 15 #include "net/dns/mock_host_resolver.h" | 16 #include "net/dns/mock_host_resolver.h" |
| 16 #include "ui/base/page_transition_types.h" | 17 #include "ui/base/page_transition_types.h" |
| 17 #include "url/url_constants.h" | 18 #include "url/url_constants.h" |
| 18 | 19 |
| 19 namespace content { | 20 namespace content { |
| 20 | 21 |
| 21 namespace { | 22 namespace { |
| 22 | 23 |
| 23 class NavigationHandleObserver : public WebContentsObserver { | 24 class NavigationHandleObserver : public WebContentsObserver { |
| 24 public: | 25 public: |
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 443 "a.com", "/cross_site_iframe_factory.html?a(a())")); | 444 "a.com", "/cross_site_iframe_factory.html?a(a())")); |
| 444 EXPECT_TRUE(NavigateToURL(shell(), url)); | 445 EXPECT_TRUE(NavigateToURL(shell(), url)); |
| 445 | 446 |
| 446 FrameTreeNode* root = static_cast<WebContentsImpl*>(shell()->web_contents()) | 447 FrameTreeNode* root = static_cast<WebContentsImpl*>(shell()->web_contents()) |
| 447 ->GetFrameTree() | 448 ->GetFrameTree() |
| 448 ->root(); | 449 ->root(); |
| 449 | 450 |
| 450 NavigationHandleObserver observer( | 451 NavigationHandleObserver observer( |
| 451 shell()->web_contents(), | 452 shell()->web_contents(), |
| 452 embedded_test_server()->GetURL("a.com", "/bar")); | 453 embedded_test_server()->GetURL("a.com", "/bar")); |
| 453 EXPECT_TRUE(ExecuteScript(root->child_at(0)->current_frame_host(), | 454 EXPECT_TRUE(ExecuteScript(root->child_at(0), |
| 454 "window.history.pushState({}, '', 'bar');")); | 455 "window.history.pushState({}, '', 'bar');")); |
| 455 | 456 |
| 456 EXPECT_TRUE(observer.has_committed()); | 457 EXPECT_TRUE(observer.has_committed()); |
| 457 EXPECT_FALSE(observer.is_error()); | 458 EXPECT_FALSE(observer.is_error()); |
| 458 EXPECT_TRUE(observer.is_renderer_initiated()); | 459 EXPECT_TRUE(observer.is_renderer_initiated()); |
| 459 } | 460 } |
| 460 } | 461 } |
| 461 | 462 |
| 462 // Ensure that the IsSrcdoc() method on NavigationHandle behaves correctly. | 463 // Ensure that the IsSrcdoc() method on NavigationHandle behaves correctly. |
| 463 IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, VerifySrcdoc) { | 464 IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, VerifySrcdoc) { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 479 GURL url(embedded_test_server()->GetURL( | 480 GURL url(embedded_test_server()->GetURL( |
| 480 "a.com", "/cross_site_iframe_factory.html?a(a())")); | 481 "a.com", "/cross_site_iframe_factory.html?a(a())")); |
| 481 EXPECT_TRUE(NavigateToURL(shell(), url)); | 482 EXPECT_TRUE(NavigateToURL(shell(), url)); |
| 482 | 483 |
| 483 FrameTreeNode* root = static_cast<WebContentsImpl*>(shell()->web_contents()) | 484 FrameTreeNode* root = static_cast<WebContentsImpl*>(shell()->web_contents()) |
| 484 ->GetFrameTree() | 485 ->GetFrameTree() |
| 485 ->root(); | 486 ->root(); |
| 486 | 487 |
| 487 NavigationHandleObserver observer( | 488 NavigationHandleObserver observer( |
| 488 shell()->web_contents(), embedded_test_server()->GetURL("a.com", "/bar")); | 489 shell()->web_contents(), embedded_test_server()->GetURL("a.com", "/bar")); |
| 489 EXPECT_TRUE(ExecuteScript(root->child_at(0)->current_frame_host(), | 490 EXPECT_TRUE(ExecuteScript(root->child_at(0), |
| 490 "window.history.pushState({}, '', 'bar');")); | 491 "window.history.pushState({}, '', 'bar');")); |
| 491 | 492 |
| 492 EXPECT_TRUE(observer.has_committed()); | 493 EXPECT_TRUE(observer.has_committed()); |
| 493 EXPECT_FALSE(observer.is_error()); | 494 EXPECT_FALSE(observer.is_error()); |
| 494 EXPECT_TRUE(observer.is_synchronous()); | 495 EXPECT_TRUE(observer.is_synchronous()); |
| 495 } | 496 } |
| 496 | 497 |
| 497 // Ensure that a NavigationThrottle can cancel the navigation at navigation | 498 // Ensure that a NavigationThrottle can cancel the navigation at navigation |
| 498 // start. | 499 // start. |
| 499 IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, ThrottleCancelStart) { | 500 IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, ThrottleCancelStart) { |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 623 navigation_observer.Wait(); | 624 navigation_observer.Wait(); |
| 624 | 625 |
| 625 EXPECT_TRUE(observer.has_committed()); | 626 EXPECT_TRUE(observer.has_committed()); |
| 626 EXPECT_TRUE(observer.was_redirected()); | 627 EXPECT_TRUE(observer.was_redirected()); |
| 627 EXPECT_FALSE(observer.is_error()); | 628 EXPECT_FALSE(observer.is_error()); |
| 628 EXPECT_EQ(shell()->web_contents()->GetLastCommittedURL(), | 629 EXPECT_EQ(shell()->web_contents()->GetLastCommittedURL(), |
| 629 GURL(embedded_test_server()->GetURL("bar.com", "/title2.html"))); | 630 GURL(embedded_test_server()->GetURL("bar.com", "/title2.html"))); |
| 630 } | 631 } |
| 631 | 632 |
| 632 } // namespace content | 633 } // namespace content |
| OLD | NEW |