| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <deque> | 5 #include <deque> |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
| 9 #include "base/stringprintf.h" | 9 #include "base/stringprintf.h" |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| (...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 533 | 533 |
| 534 void OpenDestURLViaWindowOpen() const { | 534 void OpenDestURLViaWindowOpen() const { |
| 535 OpenDestURLWithJSImpl("WindowOpen()"); | 535 OpenDestURLWithJSImpl("WindowOpen()"); |
| 536 } | 536 } |
| 537 | 537 |
| 538 void ClickToNextPageAfterPrerender(Browser* browser) { | 538 void ClickToNextPageAfterPrerender(Browser* browser) { |
| 539 ui_test_utils::WindowedNotificationObserver new_page_observer( | 539 ui_test_utils::WindowedNotificationObserver new_page_observer( |
| 540 content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 540 content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
| 541 content::NotificationService::AllSources()); | 541 content::NotificationService::AllSources()); |
| 542 RenderViewHost* render_view_host = | 542 RenderViewHost* render_view_host = |
| 543 browser->GetSelectedTabContents()->GetRenderViewHost(); | 543 browser->GetSelectedWebContents()->GetRenderViewHost(); |
| 544 render_view_host->ExecuteJavascriptInWebFrame( | 544 render_view_host->ExecuteJavascriptInWebFrame( |
| 545 string16(), | 545 string16(), |
| 546 ASCIIToUTF16("ClickOpenLink()")); | 546 ASCIIToUTF16("ClickOpenLink()")); |
| 547 new_page_observer.Wait(); | 547 new_page_observer.Wait(); |
| 548 } | 548 } |
| 549 | 549 |
| 550 void NavigateToNextPageAfterPrerender(Browser* browser) { | 550 void NavigateToNextPageAfterPrerender(Browser* browser) { |
| 551 ui_test_utils::NavigateToURL( | 551 ui_test_utils::NavigateToURL( |
| 552 browser, | 552 browser, |
| 553 test_server()->GetURL("files/prerender/prerender_page.html")); | 553 test_server()->GetURL("files/prerender/prerender_page.html")); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 565 // Called after the prerendered page has been navigated to and then away from. | 565 // Called after the prerendered page has been navigated to and then away from. |
| 566 // Navigates back through the history to the prerendered page. | 566 // Navigates back through the history to the prerendered page. |
| 567 void GoBackToPrerender(Browser* browser) { | 567 void GoBackToPrerender(Browser* browser) { |
| 568 ui_test_utils::WindowedNotificationObserver back_nav_observer( | 568 ui_test_utils::WindowedNotificationObserver back_nav_observer( |
| 569 content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 569 content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
| 570 content::NotificationService::AllSources()); | 570 content::NotificationService::AllSources()); |
| 571 browser->GoBack(CURRENT_TAB); | 571 browser->GoBack(CURRENT_TAB); |
| 572 back_nav_observer.Wait(); | 572 back_nav_observer.Wait(); |
| 573 bool original_prerender_page = false; | 573 bool original_prerender_page = false; |
| 574 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 574 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
| 575 browser->GetSelectedTabContents()->GetRenderViewHost(), L"", | 575 browser->GetSelectedWebContents()->GetRenderViewHost(), L"", |
| 576 L"window.domAutomationController.send(IsOriginalPrerenderPage())", | 576 L"window.domAutomationController.send(IsOriginalPrerenderPage())", |
| 577 &original_prerender_page)); | 577 &original_prerender_page)); |
| 578 EXPECT_TRUE(original_prerender_page); | 578 EXPECT_TRUE(original_prerender_page); |
| 579 } | 579 } |
| 580 | 580 |
| 581 // Goes back to the page that was active before the prerender was swapped | 581 // Goes back to the page that was active before the prerender was swapped |
| 582 // in. This must be called when the prerendered page is the current page | 582 // in. This must be called when the prerendered page is the current page |
| 583 // in the active tab. | 583 // in the active tab. |
| 584 void GoBackToPageBeforePrerender(Browser* browser) { | 584 void GoBackToPageBeforePrerender(Browser* browser) { |
| 585 TabContents* tab = browser->GetSelectedTabContents(); | 585 WebContents* tab = browser->GetSelectedWebContents(); |
| 586 ASSERT_TRUE(tab); | 586 ASSERT_TRUE(tab); |
| 587 EXPECT_FALSE(tab->IsLoading()); | 587 EXPECT_FALSE(tab->IsLoading()); |
| 588 ui_test_utils::WindowedNotificationObserver back_nav_observer( | 588 ui_test_utils::WindowedNotificationObserver back_nav_observer( |
| 589 content::NOTIFICATION_LOAD_STOP, | 589 content::NOTIFICATION_LOAD_STOP, |
| 590 content::Source<NavigationController>(&tab->GetController())); | 590 content::Source<NavigationController>(&tab->GetController())); |
| 591 browser->GoBack(CURRENT_TAB); | 591 browser->GoBack(CURRENT_TAB); |
| 592 back_nav_observer.Wait(); | 592 back_nav_observer.Wait(); |
| 593 bool js_result; | 593 bool js_result; |
| 594 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 594 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
| 595 tab->GetRenderViewHost(), L"", | 595 tab->GetRenderViewHost(), L"", |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 800 | 800 |
| 801 // Opens the prerendered page using javascript functions in the | 801 // Opens the prerendered page using javascript functions in the |
| 802 // loader page. |javascript_function_name| should be a 0 argument function | 802 // loader page. |javascript_function_name| should be a 0 argument function |
| 803 // which is invoked. | 803 // which is invoked. |
| 804 void OpenDestURLWithJSImpl(const std::string& javascript_function_name) | 804 void OpenDestURLWithJSImpl(const std::string& javascript_function_name) |
| 805 const { | 805 const { |
| 806 TestPrerenderContents* prerender_contents = GetPrerenderContents(); | 806 TestPrerenderContents* prerender_contents = GetPrerenderContents(); |
| 807 ASSERT_TRUE(prerender_contents != NULL); | 807 ASSERT_TRUE(prerender_contents != NULL); |
| 808 | 808 |
| 809 RenderViewHost* render_view_host = | 809 RenderViewHost* render_view_host = |
| 810 browser()->GetSelectedTabContents()->GetRenderViewHost(); | 810 browser()->GetSelectedWebContents()->GetRenderViewHost(); |
| 811 render_view_host->ExecuteJavascriptInWebFrame( | 811 render_view_host->ExecuteJavascriptInWebFrame( |
| 812 string16(), | 812 string16(), |
| 813 ASCIIToUTF16(javascript_function_name)); | 813 ASCIIToUTF16(javascript_function_name)); |
| 814 | 814 |
| 815 // Run message loop until the prerender contents is destroyed. | 815 // Run message loop until the prerender contents is destroyed. |
| 816 ui_test_utils::RunMessageLoop(); | 816 ui_test_utils::RunMessageLoop(); |
| 817 } | 817 } |
| 818 | 818 |
| 819 WaitForLoadPrerenderContentsFactory* prerender_contents_factory_; | 819 WaitForLoadPrerenderContentsFactory* prerender_contents_factory_; |
| 820 #if defined(ENABLE_SAFE_BROWSING) | 820 #if defined(ENABLE_SAFE_BROWSING) |
| (...skipping 1055 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1876 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNewBackgroundTab) { | 1876 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNewBackgroundTab) { |
| 1877 PrerenderTestURL("files/prerender/prerender_page_with_link.html", | 1877 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
| 1878 FINAL_STATUS_SESSION_STORAGE_NAMESPACE_MISMATCH, | 1878 FINAL_STATUS_SESSION_STORAGE_NAMESPACE_MISMATCH, |
| 1879 1); | 1879 1); |
| 1880 OpenDestURLViaClickNewBackgroundTab(); | 1880 OpenDestURLViaClickNewBackgroundTab(); |
| 1881 } | 1881 } |
| 1882 | 1882 |
| 1883 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1883 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 1884 NavigateToPrerenderedPageWhenDevToolsAttached) { | 1884 NavigateToPrerenderedPageWhenDevToolsAttached) { |
| 1885 DisableJavascriptCalls(); | 1885 DisableJavascriptCalls(); |
| 1886 TabContents* tab_contents = browser()->GetSelectedTabContents(); | 1886 WebContents* web_contents = browser()->GetSelectedWebContents(); |
| 1887 DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost( | 1887 DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost( |
| 1888 tab_contents->GetRenderViewHost()); | 1888 web_contents->GetRenderViewHost()); |
| 1889 DevToolsManager* manager = DevToolsManager::GetInstance(); | 1889 DevToolsManager* manager = DevToolsManager::GetInstance(); |
| 1890 FakeDevToolsClientHost client_host; | 1890 FakeDevToolsClientHost client_host; |
| 1891 manager->RegisterDevToolsClientHostFor(agent, &client_host); | 1891 manager->RegisterDevToolsClientHostFor(agent, &client_host); |
| 1892 const char* url = "files/prerender/prerender_page.html"; | 1892 const char* url = "files/prerender/prerender_page.html"; |
| 1893 PrerenderTestURL(url, FINAL_STATUS_DEVTOOLS_ATTACHED, 1); | 1893 PrerenderTestURL(url, FINAL_STATUS_DEVTOOLS_ATTACHED, 1); |
| 1894 NavigateToURL(url); | 1894 NavigateToURL(url); |
| 1895 manager->ClientHostClosing(&client_host); | 1895 manager->ClientHostClosing(&client_host); |
| 1896 } | 1896 } |
| 1897 | 1897 |
| 1898 // Validate that the sessionStorage namespace remains the same when swapping | 1898 // Validate that the sessionStorage namespace remains the same when swapping |
| 1899 // in a prerendered page. | 1899 // in a prerendered page. |
| 1900 // http://crbug.com/103563 | 1900 // http://crbug.com/103563 |
| 1901 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, DISABLED_PrerenderSessionStorage) { | 1901 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, DISABLED_PrerenderSessionStorage) { |
| 1902 set_loader_path("files/prerender/prerender_loader_with_session_storage.html"); | 1902 set_loader_path("files/prerender/prerender_loader_with_session_storage.html"); |
| 1903 PrerenderTestURL(GetCrossDomainTestUrl("files/prerender/prerender_page.html"), | 1903 PrerenderTestURL(GetCrossDomainTestUrl("files/prerender/prerender_page.html"), |
| 1904 FINAL_STATUS_USED, | 1904 FINAL_STATUS_USED, |
| 1905 1); | 1905 1); |
| 1906 NavigateToDestURL(); | 1906 NavigateToDestURL(); |
| 1907 GoBackToPageBeforePrerender(browser()); | 1907 GoBackToPageBeforePrerender(browser()); |
| 1908 } | 1908 } |
| 1909 | 1909 |
| 1910 } // namespace prerender | 1910 } // namespace prerender |
| OLD | NEW |