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 <stdint.h> | 5 #include <stdint.h> |
6 #include <utility> | 6 #include <utility> |
7 | 7 |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 1519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1530 const GURL url("http://www.google.com"); | 1530 const GURL url("http://www.google.com"); |
1531 controller().LoadURL( | 1531 controller().LoadURL( |
1532 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); | 1532 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
1533 int entry_id = controller().GetPendingEntry()->GetUniqueID(); | 1533 int entry_id = controller().GetPendingEntry()->GetUniqueID(); |
1534 contents()->GetMainFrame()->PrepareForCommit(); | 1534 contents()->GetMainFrame()->PrepareForCommit(); |
1535 contents()->TestDidNavigate(orig_rfh, 1, entry_id, true, url, | 1535 contents()->TestDidNavigate(orig_rfh, 1, entry_id, true, url, |
1536 ui::PAGE_TRANSITION_TYPED); | 1536 ui::PAGE_TRANSITION_TYPED); |
1537 EXPECT_EQ(orig_rfh, contents()->GetMainFrame()); | 1537 EXPECT_EQ(orig_rfh, contents()->GetMainFrame()); |
1538 | 1538 |
1539 // Toggle fullscreen mode on (as if initiated via IPC from renderer). | 1539 // Toggle fullscreen mode on (as if initiated via IPC from renderer). |
1540 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab(test_rvh()->GetWidget())); | 1540 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab()); |
1541 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1541 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
1542 orig_rfh->OnMessageReceived( | 1542 orig_rfh->OnMessageReceived( |
1543 FrameHostMsg_ToggleFullscreen(orig_rfh->GetRoutingID(), true)); | 1543 FrameHostMsg_ToggleFullscreen(orig_rfh->GetRoutingID(), true)); |
1544 EXPECT_TRUE(contents()->IsFullscreenForCurrentTab(test_rvh()->GetWidget())); | 1544 EXPECT_TRUE(contents()->IsFullscreenForCurrentTab()); |
1545 EXPECT_TRUE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1545 EXPECT_TRUE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
1546 | 1546 |
1547 // Navigate to a new site. | 1547 // Navigate to a new site. |
1548 const GURL url2("http://www.yahoo.com"); | 1548 const GURL url2("http://www.yahoo.com"); |
1549 controller().LoadURL( | 1549 controller().LoadURL( |
1550 url2, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); | 1550 url2, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
1551 entry_id = controller().GetPendingEntry()->GetUniqueID(); | 1551 entry_id = controller().GetPendingEntry()->GetUniqueID(); |
1552 contents()->GetMainFrame()->PrepareForCommit(); | 1552 contents()->GetMainFrame()->PrepareForCommit(); |
1553 TestRenderFrameHost* const pending_rfh = contents()->GetPendingMainFrame(); | 1553 TestRenderFrameHost* const pending_rfh = contents()->GetPendingMainFrame(); |
1554 contents()->TestDidNavigate(pending_rfh, 1, entry_id, true, url2, | 1554 contents()->TestDidNavigate(pending_rfh, 1, entry_id, true, url2, |
1555 ui::PAGE_TRANSITION_TYPED); | 1555 ui::PAGE_TRANSITION_TYPED); |
1556 | 1556 |
1557 // Confirm fullscreen has exited. | 1557 // Confirm fullscreen has exited. |
1558 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab(test_rvh()->GetWidget())); | 1558 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab()); |
1559 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1559 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
1560 | 1560 |
1561 contents()->SetDelegate(nullptr); | 1561 contents()->SetDelegate(nullptr); |
1562 } | 1562 } |
1563 | 1563 |
1564 // Tests that fullscreen is exited throughout the object hierarchy when | 1564 // Tests that fullscreen is exited throughout the object hierarchy when |
1565 // instructing NavigationController to GoBack() or GoForward(). | 1565 // instructing NavigationController to GoBack() or GoForward(). |
1566 TEST_F(WebContentsImplTest, HistoryNavigationExitsFullscreen) { | 1566 TEST_F(WebContentsImplTest, HistoryNavigationExitsFullscreen) { |
1567 FakeFullscreenDelegate fake_delegate; | 1567 FakeFullscreenDelegate fake_delegate; |
1568 contents()->SetDelegate(&fake_delegate); | 1568 contents()->SetDelegate(&fake_delegate); |
(...skipping 14 matching lines...) Expand all Loading... |
1583 controller().LoadURL( | 1583 controller().LoadURL( |
1584 url2, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); | 1584 url2, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
1585 entry_id = controller().GetPendingEntry()->GetUniqueID(); | 1585 entry_id = controller().GetPendingEntry()->GetUniqueID(); |
1586 orig_rfh->PrepareForCommit(); | 1586 orig_rfh->PrepareForCommit(); |
1587 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); | 1587 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); |
1588 contents()->TestDidNavigate(orig_rfh, 2, entry_id, true, url2, | 1588 contents()->TestDidNavigate(orig_rfh, 2, entry_id, true, url2, |
1589 ui::PAGE_TRANSITION_TYPED); | 1589 ui::PAGE_TRANSITION_TYPED); |
1590 EXPECT_EQ(orig_rfh, contents()->GetMainFrame()); | 1590 EXPECT_EQ(orig_rfh, contents()->GetMainFrame()); |
1591 | 1591 |
1592 // Sanity-check: Confirm we're not starting out in fullscreen mode. | 1592 // Sanity-check: Confirm we're not starting out in fullscreen mode. |
1593 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab(test_rvh()->GetWidget())); | 1593 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab()); |
1594 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1594 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
1595 | 1595 |
1596 for (int i = 0; i < 2; ++i) { | 1596 for (int i = 0; i < 2; ++i) { |
1597 // Toggle fullscreen mode on (as if initiated via IPC from renderer). | 1597 // Toggle fullscreen mode on (as if initiated via IPC from renderer). |
1598 orig_rfh->OnMessageReceived( | 1598 orig_rfh->OnMessageReceived( |
1599 FrameHostMsg_ToggleFullscreen(orig_rfh->GetRoutingID(), true)); | 1599 FrameHostMsg_ToggleFullscreen(orig_rfh->GetRoutingID(), true)); |
1600 EXPECT_TRUE(contents()->IsFullscreenForCurrentTab(test_rvh()->GetWidget())); | 1600 EXPECT_TRUE(contents()->IsFullscreenForCurrentTab()); |
1601 EXPECT_TRUE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1601 EXPECT_TRUE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
1602 | 1602 |
1603 // Navigate backward (or forward). | 1603 // Navigate backward (or forward). |
1604 if (i == 0) | 1604 if (i == 0) |
1605 controller().GoBack(); | 1605 controller().GoBack(); |
1606 else | 1606 else |
1607 controller().GoForward(); | 1607 controller().GoForward(); |
1608 entry_id = controller().GetPendingEntry()->GetUniqueID(); | 1608 entry_id = controller().GetPendingEntry()->GetUniqueID(); |
1609 orig_rfh->PrepareForCommit(); | 1609 orig_rfh->PrepareForCommit(); |
1610 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); | 1610 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); |
1611 EXPECT_EQ(orig_rfh, contents()->GetMainFrame()); | 1611 EXPECT_EQ(orig_rfh, contents()->GetMainFrame()); |
1612 contents()->TestDidNavigate(orig_rfh, i + 1, entry_id, false, url, | 1612 contents()->TestDidNavigate(orig_rfh, i + 1, entry_id, false, url, |
1613 ui::PAGE_TRANSITION_FORWARD_BACK); | 1613 ui::PAGE_TRANSITION_FORWARD_BACK); |
1614 orig_rfh->SimulateNavigationStop(); | 1614 orig_rfh->SimulateNavigationStop(); |
1615 | 1615 |
1616 // Confirm fullscreen has exited. | 1616 // Confirm fullscreen has exited. |
1617 EXPECT_FALSE( | 1617 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab()); |
1618 contents()->IsFullscreenForCurrentTab(test_rvh()->GetWidget())); | |
1619 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1618 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
1620 } | 1619 } |
1621 | 1620 |
1622 contents()->SetDelegate(nullptr); | 1621 contents()->SetDelegate(nullptr); |
1623 } | 1622 } |
1624 | 1623 |
1625 TEST_F(WebContentsImplTest, TerminateHidesValidationMessage) { | 1624 TEST_F(WebContentsImplTest, TerminateHidesValidationMessage) { |
1626 FakeValidationMessageDelegate fake_delegate; | 1625 FakeValidationMessageDelegate fake_delegate; |
1627 contents()->SetDelegate(&fake_delegate); | 1626 contents()->SetDelegate(&fake_delegate); |
1628 EXPECT_FALSE(fake_delegate.hide_validation_message_was_called()); | 1627 EXPECT_FALSE(fake_delegate.hide_validation_message_was_called()); |
(...skipping 18 matching lines...) Expand all Loading... |
1647 // Navigate to a site. | 1646 // Navigate to a site. |
1648 const GURL url("http://www.google.com"); | 1647 const GURL url("http://www.google.com"); |
1649 controller().LoadURL( | 1648 controller().LoadURL( |
1650 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); | 1649 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
1651 int entry_id = controller().GetPendingEntry()->GetUniqueID(); | 1650 int entry_id = controller().GetPendingEntry()->GetUniqueID(); |
1652 main_test_rfh()->PrepareForCommit(); | 1651 main_test_rfh()->PrepareForCommit(); |
1653 contents()->TestDidNavigate(contents()->GetMainFrame(), 1, entry_id, true, | 1652 contents()->TestDidNavigate(contents()->GetMainFrame(), 1, entry_id, true, |
1654 url, ui::PAGE_TRANSITION_TYPED); | 1653 url, ui::PAGE_TRANSITION_TYPED); |
1655 | 1654 |
1656 // Toggle fullscreen mode on (as if initiated via IPC from renderer). | 1655 // Toggle fullscreen mode on (as if initiated via IPC from renderer). |
1657 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab(test_rvh()->GetWidget())); | 1656 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab()); |
1658 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1657 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
1659 contents()->GetMainFrame()->OnMessageReceived(FrameHostMsg_ToggleFullscreen( | 1658 contents()->GetMainFrame()->OnMessageReceived(FrameHostMsg_ToggleFullscreen( |
1660 contents()->GetMainFrame()->GetRoutingID(), true)); | 1659 contents()->GetMainFrame()->GetRoutingID(), true)); |
1661 EXPECT_TRUE(contents()->IsFullscreenForCurrentTab(test_rvh()->GetWidget())); | 1660 EXPECT_TRUE(contents()->IsFullscreenForCurrentTab()); |
1662 EXPECT_TRUE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1661 EXPECT_TRUE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
1663 | 1662 |
1664 // Crash the renderer. | 1663 // Crash the renderer. |
1665 main_test_rfh()->GetProcess()->SimulateCrash(); | 1664 main_test_rfh()->GetProcess()->SimulateCrash(); |
1666 | 1665 |
1667 // Confirm fullscreen has exited. | 1666 // Confirm fullscreen has exited. |
1668 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab(test_rvh()->GetWidget())); | 1667 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab()); |
1669 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1668 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
1670 | 1669 |
1671 contents()->SetDelegate(nullptr); | 1670 contents()->SetDelegate(nullptr); |
1672 } | 1671 } |
1673 | 1672 |
1674 //////////////////////////////////////////////////////////////////////////////// | 1673 //////////////////////////////////////////////////////////////////////////////// |
1675 // Interstitial Tests | 1674 // Interstitial Tests |
1676 //////////////////////////////////////////////////////////////////////////////// | 1675 //////////////////////////////////////////////////////////////////////////////// |
1677 | 1676 |
1678 // Test navigating to a page (with the navigation initiated from the browser, | 1677 // Test navigating to a page (with the navigation initiated from the browser, |
(...skipping 1782 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3461 // An automatic navigation. | 3460 // An automatic navigation. |
3462 contents()->GetMainFrame()->SendNavigateWithModificationCallback( | 3461 contents()->GetMainFrame()->SendNavigateWithModificationCallback( |
3463 2, 0, true, GURL(url::kAboutBlankURL), base::Bind(SetAsNonUserGesture)); | 3462 2, 0, true, GURL(url::kAboutBlankURL), base::Bind(SetAsNonUserGesture)); |
3464 | 3463 |
3465 EXPECT_EQ(1u, dialog_manager.reset_count()); | 3464 EXPECT_EQ(1u, dialog_manager.reset_count()); |
3466 | 3465 |
3467 contents()->SetJavaScriptDialogManagerForTesting(nullptr); | 3466 contents()->SetJavaScriptDialogManagerForTesting(nullptr); |
3468 } | 3467 } |
3469 | 3468 |
3470 } // namespace content | 3469 } // namespace content |
OLD | NEW |