Chromium Code Reviews| 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 "content/browser/site_per_process_browsertest.h" | 5 #include "content/browser/site_per_process_browsertest.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 306 return visualizer_.DepictFrameTree(node); | 306 return visualizer_.DepictFrameTree(node); |
| 307 } | 307 } |
| 308 | 308 |
| 309 void SitePerProcessBrowserTest::SetUpCommandLine( | 309 void SitePerProcessBrowserTest::SetUpCommandLine( |
| 310 base::CommandLine* command_line) { | 310 base::CommandLine* command_line) { |
| 311 IsolateAllSitesForTesting(command_line); | 311 IsolateAllSitesForTesting(command_line); |
| 312 }; | 312 }; |
| 313 | 313 |
| 314 void SitePerProcessBrowserTest::SetUpOnMainThread() { | 314 void SitePerProcessBrowserTest::SetUpOnMainThread() { |
| 315 host_resolver()->AddRule("*", "127.0.0.1"); | 315 host_resolver()->AddRule("*", "127.0.0.1"); |
| 316 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 316 ASSERT_TRUE(embedded_test_server()->Start()); |
| 317 SetupCrossSiteRedirector(embedded_test_server()); | 317 SetupCrossSiteRedirector(embedded_test_server()); |
| 318 } | 318 } |
| 319 | 319 |
| 320 // Ensure that navigating subframes in --site-per-process mode works and the | 320 // Ensure that navigating subframes in --site-per-process mode works and the |
| 321 // correct documents are committed. | 321 // correct documents are committed. |
| 322 IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, CrossSiteIframe) { | 322 IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, CrossSiteIframe) { |
| 323 GURL main_url(embedded_test_server()->GetURL( | 323 GURL main_url(embedded_test_server()->GetURL( |
| 324 "a.com", "/cross_site_iframe_factory.html?a(a,a(a,a(a)))")); | 324 "a.com", "/cross_site_iframe_factory.html?a(a,a(a,a(a)))")); |
| 325 NavigateToURL(shell(), main_url); | 325 NavigateToURL(shell(), main_url); |
| 326 | 326 |
| (...skipping 1160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1487 " Site A ------------ proxies for B\n" | 1487 " Site A ------------ proxies for B\n" |
| 1488 " |--Site B ------- proxies for A\n" | 1488 " |--Site B ------- proxies for A\n" |
| 1489 " +--Site A ------- proxies for B\n" | 1489 " +--Site A ------- proxies for B\n" |
| 1490 "Where A = http://b.com/\n" | 1490 "Where A = http://b.com/\n" |
| 1491 " B = http://baz.com/", | 1491 " B = http://baz.com/", |
| 1492 DepictFrameTree(root)); | 1492 DepictFrameTree(root)); |
| 1493 } | 1493 } |
| 1494 | 1494 |
| 1495 // TODO(nasko): Disable this test until out-of-process iframes is ready and the | 1495 // TODO(nasko): Disable this test until out-of-process iframes is ready and the |
| 1496 // security checks are back in place. | 1496 // security checks are back in place. |
| 1497 // TODO(creis): Replace SpawnedTestServer with host_resolver to get test to run | |
| 1498 // on Android (http://crbug.com/187570). | |
| 1499 IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, | 1497 IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, |
| 1500 DISABLED_CrossSiteIframeRedirectOnce) { | 1498 DISABLED_CrossSiteIframeRedirectOnce) { |
| 1501 ASSERT_TRUE(test_server()->Start()); | 1499 ASSERT_TRUE(embedded_test_server()->Start()); |
|
mmenke
2015/11/03 19:12:57
Not needed - it's already started.
svaldez
2015/11/03 19:33:16
Done.
| |
| 1502 net::SpawnedTestServer https_server( | 1500 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); |
| 1503 net::SpawnedTestServer::TYPE_HTTPS, | 1501 https_server.ServeFilesFromSourceDirectory("content/test/data"); |
| 1504 net::SpawnedTestServer::kLocalhost, | |
| 1505 base::FilePath(FILE_PATH_LITERAL("content/test/data"))); | |
| 1506 ASSERT_TRUE(https_server.Start()); | 1502 ASSERT_TRUE(https_server.Start()); |
| 1507 | 1503 |
| 1508 GURL main_url(test_server()->GetURL("files/site_per_process_main.html")); | 1504 GURL main_url(embedded_test_server()->GetURL("/site_per_process_main.html")); |
| 1509 GURL http_url(test_server()->GetURL("files/title1.html")); | 1505 GURL http_url(embedded_test_server()->GetURL("/title1.html")); |
| 1510 GURL https_url(https_server.GetURL("files/title1.html")); | 1506 GURL https_url(https_server.GetURL("/title1.html")); |
| 1511 | 1507 |
| 1512 NavigateToURL(shell(), main_url); | 1508 NavigateToURL(shell(), main_url); |
| 1513 | 1509 |
| 1514 TestNavigationObserver observer(shell()->web_contents()); | 1510 TestNavigationObserver observer(shell()->web_contents()); |
| 1515 { | 1511 { |
| 1516 // Load cross-site client-redirect page into Iframe. | 1512 // Load cross-site client-redirect page into Iframe. |
| 1517 // Should be blocked. | 1513 // Should be blocked. |
| 1518 GURL client_redirect_https_url(https_server.GetURL( | 1514 GURL client_redirect_https_url( |
| 1519 "client-redirect?files/title1.html")); | 1515 https_server.GetURL("/client-redirect?/title1.html")); |
| 1520 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", | 1516 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", |
| 1521 client_redirect_https_url)); | 1517 client_redirect_https_url)); |
| 1522 // DidFailProvisionalLoad when navigating to client_redirect_https_url. | 1518 // DidFailProvisionalLoad when navigating to client_redirect_https_url. |
| 1523 EXPECT_EQ(observer.last_navigation_url(), client_redirect_https_url); | 1519 EXPECT_EQ(observer.last_navigation_url(), client_redirect_https_url); |
| 1524 EXPECT_FALSE(observer.last_navigation_succeeded()); | 1520 EXPECT_FALSE(observer.last_navigation_succeeded()); |
| 1525 } | 1521 } |
| 1526 | 1522 |
| 1527 { | 1523 { |
| 1528 // Load cross-site server-redirect page into Iframe, | 1524 // Load cross-site server-redirect page into Iframe, |
| 1529 // which redirects to same-site page. | 1525 // which redirects to same-site page. |
| 1530 GURL server_redirect_http_url(https_server.GetURL( | 1526 GURL server_redirect_http_url( |
| 1531 "server-redirect?" + http_url.spec())); | 1527 https_server.GetURL("/server-redirect?" + http_url.spec())); |
| 1532 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", | 1528 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", |
| 1533 server_redirect_http_url)); | 1529 server_redirect_http_url)); |
| 1534 EXPECT_EQ(observer.last_navigation_url(), http_url); | 1530 EXPECT_EQ(observer.last_navigation_url(), http_url); |
| 1535 EXPECT_TRUE(observer.last_navigation_succeeded()); | 1531 EXPECT_TRUE(observer.last_navigation_succeeded()); |
| 1536 } | 1532 } |
| 1537 | 1533 |
| 1538 { | 1534 { |
| 1539 // Load cross-site server-redirect page into Iframe, | 1535 // Load cross-site server-redirect page into Iframe, |
| 1540 // which redirects to cross-site page. | 1536 // which redirects to cross-site page. |
| 1541 GURL server_redirect_http_url(https_server.GetURL( | 1537 GURL server_redirect_http_url( |
| 1542 "server-redirect?files/title1.html")); | 1538 https_server.GetURL("/server-redirect?/title1.html")); |
| 1543 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", | 1539 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", |
| 1544 server_redirect_http_url)); | 1540 server_redirect_http_url)); |
| 1545 // DidFailProvisionalLoad when navigating to https_url. | 1541 // DidFailProvisionalLoad when navigating to https_url. |
| 1546 EXPECT_EQ(observer.last_navigation_url(), https_url); | 1542 EXPECT_EQ(observer.last_navigation_url(), https_url); |
| 1547 EXPECT_FALSE(observer.last_navigation_succeeded()); | 1543 EXPECT_FALSE(observer.last_navigation_succeeded()); |
| 1548 } | 1544 } |
| 1549 | 1545 |
| 1550 { | 1546 { |
| 1551 // Load same-site server-redirect page into Iframe, | 1547 // Load same-site server-redirect page into Iframe, |
| 1552 // which redirects to cross-site page. | 1548 // which redirects to cross-site page. |
| 1553 GURL server_redirect_http_url(test_server()->GetURL( | 1549 GURL server_redirect_http_url( |
| 1554 "server-redirect?" + https_url.spec())); | 1550 embedded_test_server()->GetURL("/server-redirect?" + https_url.spec())); |
| 1555 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", | 1551 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", |
| 1556 server_redirect_http_url)); | 1552 server_redirect_http_url)); |
| 1557 | 1553 |
| 1558 EXPECT_EQ(observer.last_navigation_url(), https_url); | 1554 EXPECT_EQ(observer.last_navigation_url(), https_url); |
| 1559 EXPECT_FALSE(observer.last_navigation_succeeded()); | 1555 EXPECT_FALSE(observer.last_navigation_succeeded()); |
| 1560 } | 1556 } |
| 1561 | 1557 |
| 1562 { | 1558 { |
| 1563 // Load same-site client-redirect page into Iframe, | 1559 // Load same-site client-redirect page into Iframe, |
| 1564 // which redirects to cross-site page. | 1560 // which redirects to cross-site page. |
| 1565 GURL client_redirect_http_url(test_server()->GetURL( | 1561 GURL client_redirect_http_url( |
| 1566 "client-redirect?" + https_url.spec())); | 1562 embedded_test_server()->GetURL("/client-redirect?" + https_url.spec())); |
| 1567 | 1563 |
| 1568 RedirectNotificationObserver load_observer2( | 1564 RedirectNotificationObserver load_observer2( |
| 1569 NOTIFICATION_LOAD_STOP, | 1565 NOTIFICATION_LOAD_STOP, |
| 1570 Source<NavigationController>( | 1566 Source<NavigationController>( |
| 1571 &shell()->web_contents()->GetController())); | 1567 &shell()->web_contents()->GetController())); |
| 1572 | 1568 |
| 1573 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", | 1569 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", |
| 1574 client_redirect_http_url)); | 1570 client_redirect_http_url)); |
| 1575 | 1571 |
| 1576 // Same-site Client-Redirect Page should be loaded successfully. | 1572 // Same-site Client-Redirect Page should be loaded successfully. |
| 1577 EXPECT_EQ(observer.last_navigation_url(), client_redirect_http_url); | 1573 EXPECT_EQ(observer.last_navigation_url(), client_redirect_http_url); |
| 1578 EXPECT_TRUE(observer.last_navigation_succeeded()); | 1574 EXPECT_TRUE(observer.last_navigation_succeeded()); |
| 1579 | 1575 |
| 1580 // Redirecting to Cross-site Page should be blocked. | 1576 // Redirecting to Cross-site Page should be blocked. |
| 1581 load_observer2.Wait(); | 1577 load_observer2.Wait(); |
| 1582 EXPECT_EQ(observer.last_navigation_url(), https_url); | 1578 EXPECT_EQ(observer.last_navigation_url(), https_url); |
| 1583 EXPECT_FALSE(observer.last_navigation_succeeded()); | 1579 EXPECT_FALSE(observer.last_navigation_succeeded()); |
| 1584 } | 1580 } |
| 1585 | 1581 |
| 1586 { | 1582 { |
| 1587 // Load same-site server-redirect page into Iframe, | 1583 // Load same-site server-redirect page into Iframe, |
| 1588 // which redirects to same-site page. | 1584 // which redirects to same-site page. |
| 1589 GURL server_redirect_http_url(test_server()->GetURL( | 1585 GURL server_redirect_http_url( |
| 1590 "server-redirect?files/title1.html")); | 1586 embedded_test_server()->GetURL("/server-redirect?/title1.html")); |
| 1591 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", | 1587 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", |
| 1592 server_redirect_http_url)); | 1588 server_redirect_http_url)); |
| 1593 EXPECT_EQ(observer.last_navigation_url(), http_url); | 1589 EXPECT_EQ(observer.last_navigation_url(), http_url); |
| 1594 EXPECT_TRUE(observer.last_navigation_succeeded()); | 1590 EXPECT_TRUE(observer.last_navigation_succeeded()); |
| 1595 } | 1591 } |
| 1596 | 1592 |
| 1597 { | 1593 { |
| 1598 // Load same-site client-redirect page into Iframe, | 1594 // Load same-site client-redirect page into Iframe, |
| 1599 // which redirects to same-site page. | 1595 // which redirects to same-site page. |
| 1600 GURL client_redirect_http_url(test_server()->GetURL( | 1596 GURL client_redirect_http_url( |
| 1601 "client-redirect?" + http_url.spec())); | 1597 embedded_test_server()->GetURL("/client-redirect?" + http_url.spec())); |
| 1602 RedirectNotificationObserver load_observer2( | 1598 RedirectNotificationObserver load_observer2( |
| 1603 NOTIFICATION_LOAD_STOP, | 1599 NOTIFICATION_LOAD_STOP, |
| 1604 Source<NavigationController>( | 1600 Source<NavigationController>( |
| 1605 &shell()->web_contents()->GetController())); | 1601 &shell()->web_contents()->GetController())); |
| 1606 | 1602 |
| 1607 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", | 1603 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", |
| 1608 client_redirect_http_url)); | 1604 client_redirect_http_url)); |
| 1609 | 1605 |
| 1610 // Same-site Client-Redirect Page should be loaded successfully. | 1606 // Same-site Client-Redirect Page should be loaded successfully. |
| 1611 EXPECT_EQ(observer.last_navigation_url(), client_redirect_http_url); | 1607 EXPECT_EQ(observer.last_navigation_url(), client_redirect_http_url); |
| 1612 EXPECT_TRUE(observer.last_navigation_succeeded()); | 1608 EXPECT_TRUE(observer.last_navigation_succeeded()); |
| 1613 | 1609 |
| 1614 // Redirecting to Same-site Page should be loaded successfully. | 1610 // Redirecting to Same-site Page should be loaded successfully. |
| 1615 load_observer2.Wait(); | 1611 load_observer2.Wait(); |
| 1616 EXPECT_EQ(observer.last_navigation_url(), http_url); | 1612 EXPECT_EQ(observer.last_navigation_url(), http_url); |
| 1617 EXPECT_TRUE(observer.last_navigation_succeeded()); | 1613 EXPECT_TRUE(observer.last_navigation_succeeded()); |
| 1618 } | 1614 } |
| 1619 } | 1615 } |
| 1620 | 1616 |
| 1621 // TODO(nasko): Disable this test until out-of-process iframes is ready and the | 1617 // TODO(nasko): Disable this test until out-of-process iframes is ready and the |
| 1622 // security checks are back in place. | 1618 // security checks are back in place. |
| 1623 // TODO(creis): Replace SpawnedTestServer with host_resolver to get test to run | |
| 1624 // on Android (http://crbug.com/187570). | |
| 1625 IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, | 1619 IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, |
| 1626 DISABLED_CrossSiteIframeRedirectTwice) { | 1620 DISABLED_CrossSiteIframeRedirectTwice) { |
| 1627 ASSERT_TRUE(test_server()->Start()); | 1621 ASSERT_TRUE(embedded_test_server()->Start()); |
|
mmenke
2015/11/03 19:12:57
Not needed.
svaldez
2015/11/03 19:33:16
Done.
| |
| 1628 net::SpawnedTestServer https_server( | 1622 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); |
| 1629 net::SpawnedTestServer::TYPE_HTTPS, | 1623 https_server.ServeFilesFromSourceDirectory("content/test/data"); |
| 1630 net::SpawnedTestServer::kLocalhost, | |
| 1631 base::FilePath(FILE_PATH_LITERAL("content/test/data"))); | |
| 1632 ASSERT_TRUE(https_server.Start()); | 1624 ASSERT_TRUE(https_server.Start()); |
| 1633 | 1625 |
| 1634 GURL main_url(test_server()->GetURL("files/site_per_process_main.html")); | 1626 GURL main_url(embedded_test_server()->GetURL("/site_per_process_main.html")); |
| 1635 GURL http_url(test_server()->GetURL("files/title1.html")); | 1627 GURL http_url(embedded_test_server()->GetURL("/title1.html")); |
| 1636 GURL https_url(https_server.GetURL("files/title1.html")); | 1628 GURL https_url(https_server.GetURL("/title1.html")); |
| 1637 | 1629 |
| 1638 NavigateToURL(shell(), main_url); | 1630 NavigateToURL(shell(), main_url); |
| 1639 | 1631 |
| 1640 TestNavigationObserver observer(shell()->web_contents()); | 1632 TestNavigationObserver observer(shell()->web_contents()); |
| 1641 { | 1633 { |
| 1642 // Load client-redirect page pointing to a cross-site client-redirect page, | 1634 // Load client-redirect page pointing to a cross-site client-redirect page, |
| 1643 // which eventually redirects back to same-site page. | 1635 // which eventually redirects back to same-site page. |
| 1644 GURL client_redirect_https_url(https_server.GetURL( | 1636 GURL client_redirect_https_url( |
| 1645 "client-redirect?" + http_url.spec())); | 1637 https_server.GetURL("/client-redirect?" + http_url.spec())); |
| 1646 GURL client_redirect_http_url(test_server()->GetURL( | 1638 GURL client_redirect_http_url(embedded_test_server()->GetURL( |
| 1647 "client-redirect?" + client_redirect_https_url.spec())); | 1639 "/client-redirect?" + client_redirect_https_url.spec())); |
| 1648 | 1640 |
| 1649 // We should wait until second client redirect get cancelled. | 1641 // We should wait until second client redirect get cancelled. |
| 1650 RedirectNotificationObserver load_observer2( | 1642 RedirectNotificationObserver load_observer2( |
| 1651 NOTIFICATION_LOAD_STOP, | 1643 NOTIFICATION_LOAD_STOP, |
| 1652 Source<NavigationController>( | 1644 Source<NavigationController>( |
| 1653 &shell()->web_contents()->GetController())); | 1645 &shell()->web_contents()->GetController())); |
| 1654 | 1646 |
| 1655 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", | 1647 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", |
| 1656 client_redirect_http_url)); | 1648 client_redirect_http_url)); |
| 1657 | 1649 |
| 1658 // DidFailProvisionalLoad when navigating to client_redirect_https_url. | 1650 // DidFailProvisionalLoad when navigating to client_redirect_https_url. |
| 1659 load_observer2.Wait(); | 1651 load_observer2.Wait(); |
| 1660 EXPECT_EQ(observer.last_navigation_url(), client_redirect_https_url); | 1652 EXPECT_EQ(observer.last_navigation_url(), client_redirect_https_url); |
| 1661 EXPECT_FALSE(observer.last_navigation_succeeded()); | 1653 EXPECT_FALSE(observer.last_navigation_succeeded()); |
| 1662 } | 1654 } |
| 1663 | 1655 |
| 1664 { | 1656 { |
| 1665 // Load server-redirect page pointing to a cross-site server-redirect page, | 1657 // Load server-redirect page pointing to a cross-site server-redirect page, |
| 1666 // which eventually redirect back to same-site page. | 1658 // which eventually redirect back to same-site page. |
| 1667 GURL server_redirect_https_url(https_server.GetURL( | 1659 GURL server_redirect_https_url( |
| 1668 "server-redirect?" + http_url.spec())); | 1660 https_server.GetURL("/server-redirect?" + http_url.spec())); |
| 1669 GURL server_redirect_http_url(test_server()->GetURL( | 1661 GURL server_redirect_http_url(embedded_test_server()->GetURL( |
| 1670 "server-redirect?" + server_redirect_https_url.spec())); | 1662 "/server-redirect?" + server_redirect_https_url.spec())); |
| 1671 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", | 1663 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", |
| 1672 server_redirect_http_url)); | 1664 server_redirect_http_url)); |
| 1673 EXPECT_EQ(observer.last_navigation_url(), http_url); | 1665 EXPECT_EQ(observer.last_navigation_url(), http_url); |
| 1674 EXPECT_TRUE(observer.last_navigation_succeeded()); | 1666 EXPECT_TRUE(observer.last_navigation_succeeded()); |
| 1675 } | 1667 } |
| 1676 | 1668 |
| 1677 { | 1669 { |
| 1678 // Load server-redirect page pointing to a cross-site server-redirect page, | 1670 // Load server-redirect page pointing to a cross-site server-redirect page, |
| 1679 // which eventually redirects back to cross-site page. | 1671 // which eventually redirects back to cross-site page. |
| 1680 GURL server_redirect_https_url(https_server.GetURL( | 1672 GURL server_redirect_https_url( |
| 1681 "server-redirect?" + https_url.spec())); | 1673 https_server.GetURL("/server-redirect?" + https_url.spec())); |
| 1682 GURL server_redirect_http_url(test_server()->GetURL( | 1674 GURL server_redirect_http_url(embedded_test_server()->GetURL( |
| 1683 "server-redirect?" + server_redirect_https_url.spec())); | 1675 "/server-redirect?" + server_redirect_https_url.spec())); |
| 1684 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", | 1676 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", |
| 1685 server_redirect_http_url)); | 1677 server_redirect_http_url)); |
| 1686 | 1678 |
| 1687 // DidFailProvisionalLoad when navigating to https_url. | 1679 // DidFailProvisionalLoad when navigating to https_url. |
| 1688 EXPECT_EQ(observer.last_navigation_url(), https_url); | 1680 EXPECT_EQ(observer.last_navigation_url(), https_url); |
| 1689 EXPECT_FALSE(observer.last_navigation_succeeded()); | 1681 EXPECT_FALSE(observer.last_navigation_succeeded()); |
| 1690 } | 1682 } |
| 1691 | 1683 |
| 1692 { | 1684 { |
| 1693 // Load server-redirect page pointing to a cross-site client-redirect page, | 1685 // Load server-redirect page pointing to a cross-site client-redirect page, |
| 1694 // which eventually redirects back to same-site page. | 1686 // which eventually redirects back to same-site page. |
| 1695 GURL client_redirect_http_url(https_server.GetURL( | 1687 GURL client_redirect_http_url( |
| 1696 "client-redirect?" + http_url.spec())); | 1688 https_server.GetURL("/client-redirect?" + http_url.spec())); |
| 1697 GURL server_redirect_http_url(test_server()->GetURL( | 1689 GURL server_redirect_http_url(embedded_test_server()->GetURL( |
| 1698 "server-redirect?" + client_redirect_http_url.spec())); | 1690 "/server-redirect?" + client_redirect_http_url.spec())); |
| 1699 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", | 1691 EXPECT_TRUE(NavigateIframeToURL(shell()->web_contents(), "test", |
| 1700 server_redirect_http_url)); | 1692 server_redirect_http_url)); |
| 1701 | 1693 |
| 1702 // DidFailProvisionalLoad when navigating to client_redirect_http_url. | 1694 // DidFailProvisionalLoad when navigating to client_redirect_http_url. |
| 1703 EXPECT_EQ(observer.last_navigation_url(), client_redirect_http_url); | 1695 EXPECT_EQ(observer.last_navigation_url(), client_redirect_http_url); |
| 1704 EXPECT_FALSE(observer.last_navigation_succeeded()); | 1696 EXPECT_FALSE(observer.last_navigation_succeeded()); |
| 1705 } | 1697 } |
| 1706 } | 1698 } |
| 1707 | 1699 |
| 1708 // Ensure that when navigating a frame cross-process RenderFrameProxyHosts are | 1700 // Ensure that when navigating a frame cross-process RenderFrameProxyHosts are |
| (...skipping 1911 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3620 | 3612 |
| 3621 // Use new window to navigate main window. | 3613 // Use new window to navigate main window. |
| 3622 std::string script = | 3614 std::string script = |
| 3623 "window.opener.location.href = '" + cross_url.spec() + "'"; | 3615 "window.opener.location.href = '" + cross_url.spec() + "'"; |
| 3624 EXPECT_TRUE(ExecuteScript(popup->web_contents(), script)); | 3616 EXPECT_TRUE(ExecuteScript(popup->web_contents(), script)); |
| 3625 EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); | 3617 EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); |
| 3626 EXPECT_EQ(shell()->web_contents()->GetLastCommittedURL(), cross_url); | 3618 EXPECT_EQ(shell()->web_contents()->GetLastCommittedURL(), cross_url); |
| 3627 } | 3619 } |
| 3628 | 3620 |
| 3629 } // namespace content | 3621 } // namespace content |
| OLD | NEW |