Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(274)

Side by Side Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 8392041: Prerendered tabs use the same SessionStorage namespace as the tab that triggered the prerender. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix NetInternals browser test Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 switch (status) { 88 switch (status) {
89 case FINAL_STATUS_USED: 89 case FINAL_STATUS_USED:
90 case FINAL_STATUS_WINDOW_OPENER: 90 case FINAL_STATUS_WINDOW_OPENER:
91 case FINAL_STATUS_APP_TERMINATING: 91 case FINAL_STATUS_APP_TERMINATING:
92 case FINAL_STATUS_FRAGMENT_MISMATCH: 92 case FINAL_STATUS_FRAGMENT_MISMATCH:
93 case FINAL_STATUS_CACHE_OR_HISTORY_CLEARED: 93 case FINAL_STATUS_CACHE_OR_HISTORY_CLEARED:
94 // We'll crash the renderer after it's loaded. 94 // We'll crash the renderer after it's loaded.
95 case FINAL_STATUS_RENDERER_CRASHED: 95 case FINAL_STATUS_RENDERER_CRASHED:
96 case FINAL_STATUS_CANCELLED: 96 case FINAL_STATUS_CANCELLED:
97 case FINAL_STATUS_DEVTOOLS_ATTACHED: 97 case FINAL_STATUS_DEVTOOLS_ATTACHED:
98 case FINAL_STATUS_SESSION_STORAGE_NAMESPACE_MISMATCH:
98 return true; 99 return true;
99 default: 100 default:
100 return false; 101 return false;
101 } 102 }
102 } 103 }
103 104
104 // PrerenderContents that stops the UI message loop on DidStopLoading(). 105 // PrerenderContents that stops the UI message loop on DidStopLoading().
105 class TestPrerenderContents : public PrerenderContents { 106 class TestPrerenderContents : public PrerenderContents {
106 public: 107 public:
107 TestPrerenderContents( 108 TestPrerenderContents(
108 PrerenderManager* prerender_manager, 109 PrerenderManager* prerender_manager,
109 PrerenderTracker* prerender_tracker, 110 PrerenderTracker* prerender_tracker,
111 SessionStorageNamespace* session_storage_namespace,
110 Profile* profile, 112 Profile* profile,
111 const GURL& url, 113 const GURL& url,
112 const GURL& referrer, 114 const GURL& referrer,
113 int expected_number_of_loads, 115 int expected_number_of_loads,
114 FinalStatus expected_final_status) 116 FinalStatus expected_final_status)
115 : PrerenderContents(prerender_manager, prerender_tracker, profile, 117 : PrerenderContents(prerender_manager, prerender_tracker,
118 session_storage_namespace, profile,
116 url, referrer, ORIGIN_LINK_REL_PRERENDER, 119 url, referrer, ORIGIN_LINK_REL_PRERENDER,
117 PrerenderManager::kNoExperiment), 120 PrerenderManager::kNoExperiment),
118 number_of_loads_(0), 121 number_of_loads_(0),
119 expected_number_of_loads_(expected_number_of_loads), 122 expected_number_of_loads_(expected_number_of_loads),
120 expected_final_status_(expected_final_status), 123 expected_final_status_(expected_final_status),
121 new_render_view_host_(NULL), 124 new_render_view_host_(NULL),
122 was_hidden_(false), 125 was_hidden_(false),
123 was_shown_(false), 126 was_shown_(false),
124 should_be_shown_(expected_final_status == FINAL_STATUS_USED), 127 should_be_shown_(expected_final_status == FINAL_STATUS_USED),
125 quit_message_loop_on_destruction_( 128 quit_message_loop_on_destruction_(
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 const std::deque<FinalStatus>& expected_final_status_queue) 291 const std::deque<FinalStatus>& expected_final_status_queue)
289 : expected_number_of_loads_(expected_number_of_loads), 292 : expected_number_of_loads_(expected_number_of_loads),
290 expected_final_status_queue_(expected_final_status_queue) { 293 expected_final_status_queue_(expected_final_status_queue) {
291 VLOG(1) << "Factory created with queue length " << 294 VLOG(1) << "Factory created with queue length " <<
292 expected_final_status_queue_.size(); 295 expected_final_status_queue_.size();
293 } 296 }
294 297
295 virtual PrerenderContents* CreatePrerenderContents( 298 virtual PrerenderContents* CreatePrerenderContents(
296 PrerenderManager* prerender_manager, 299 PrerenderManager* prerender_manager,
297 PrerenderTracker* prerender_tracker, 300 PrerenderTracker* prerender_tracker,
301 SessionStorageNamespace* session_storage_namespace,
298 Profile* profile, 302 Profile* profile,
299 const GURL& url, 303 const GURL& url,
300 const GURL& referrer, 304 const GURL& referrer,
301 Origin origin, 305 Origin origin,
302 uint8 experiment_id) OVERRIDE { 306 uint8 experiment_id) OVERRIDE {
303 CHECK(!expected_final_status_queue_.empty()) << 307 CHECK(!expected_final_status_queue_.empty()) <<
304 "Creating prerender contents for " << url.path() << 308 "Creating prerender contents for " << url.path() <<
305 " with no expected final status"; 309 " with no expected final status";
306 FinalStatus expected_final_status = expected_final_status_queue_.front(); 310 FinalStatus expected_final_status = expected_final_status_queue_.front();
307 expected_final_status_queue_.pop_front(); 311 expected_final_status_queue_.pop_front();
308 VLOG(1) << "Creating prerender contents for " << url.path() << 312 VLOG(1) << "Creating prerender contents for " << url.path() <<
309 " with expected final status " << expected_final_status; 313 " with expected final status " << expected_final_status;
310 VLOG(1) << expected_final_status_queue_.size() << " left in the queue."; 314 VLOG(1) << expected_final_status_queue_.size() << " left in the queue.";
311 return new TestPrerenderContents(prerender_manager, prerender_tracker, 315 return new TestPrerenderContents(prerender_manager, prerender_tracker,
316 session_storage_namespace,
312 profile, url, 317 profile, url,
313 referrer, expected_number_of_loads_, 318 referrer, expected_number_of_loads_,
314 expected_final_status); 319 expected_final_status);
315 } 320 }
316 321
317 private: 322 private:
318 int expected_number_of_loads_; 323 int expected_number_of_loads_;
319 std::deque<FinalStatus> expected_final_status_queue_; 324 std::deque<FinalStatus> expected_final_status_queue_;
320 }; 325 };
321 326
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 browser->GoBack(CURRENT_TAB); 557 browser->GoBack(CURRENT_TAB);
553 back_nav_observer.Wait(); 558 back_nav_observer.Wait();
554 bool original_prerender_page = false; 559 bool original_prerender_page = false;
555 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( 560 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool(
556 browser->GetSelectedTabContents()->render_view_host(), L"", 561 browser->GetSelectedTabContents()->render_view_host(), L"",
557 L"window.domAutomationController.send(IsOriginalPrerenderPage())", 562 L"window.domAutomationController.send(IsOriginalPrerenderPage())",
558 &original_prerender_page)); 563 &original_prerender_page));
559 EXPECT_TRUE(original_prerender_page); 564 EXPECT_TRUE(original_prerender_page);
560 } 565 }
561 566
567 // Goes back to the page that was active before the prerender was swapped
568 // in. This must be called when the prerendered page is the current page
569 // in the active tab.
570 void GoBackToPageBeforePrerender(Browser* browser) {
571 ui_test_utils::WindowedNotificationObserver back_nav_observer(
572 content::NOTIFICATION_NAV_ENTRY_COMMITTED,
573 content::NotificationService::AllSources());
574 browser->GoBack(CURRENT_TAB);
575 back_nav_observer.Wait();
576 bool js_result;
577 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool(
578 browser->GetSelectedTabContents()->render_view_host(), L"",
579 L"window.domAutomationController.send(DidBackToOriginalPagePass())",
580 &js_result));
581 EXPECT_TRUE(js_result);
582 }
583
562 // Should be const but test_server()->GetURL(...) is not const. 584 // Should be const but test_server()->GetURL(...) is not const.
563 void NavigateToURL(const std::string& dest_html_file) { 585 void NavigateToURL(const std::string& dest_html_file) {
564 GURL dest_url = test_server()->GetURL(dest_html_file); 586 GURL dest_url = test_server()->GetURL(dest_html_file);
565 NavigateToURLImpl(dest_url, CURRENT_TAB); 587 NavigateToURLImpl(dest_url, CURRENT_TAB);
566 } 588 }
567 589
568 bool UrlIsInPrerenderManager(const std::string& html_file) { 590 bool UrlIsInPrerenderManager(const std::string& html_file) {
569 GURL dest_url = test_server()->GetURL(html_file); 591 GURL dest_url = test_server()->GetURL(html_file);
570 return (prerender_manager()->FindEntry(dest_url) != NULL); 592 return (prerender_manager()->FindEntry(dest_url) != NULL);
571 } 593 }
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
801 } 823 }
802 824
803 // Checks that the visibility API works when the prerender is quickly opened 825 // Checks that the visibility API works when the prerender is quickly opened
804 // in a new tab before it stops loading. 826 // in a new tab before it stops loading.
805 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderVisibilityQuickSwitch) { 827 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderVisibilityQuickSwitch) {
806 PrerenderTestURL("files/prerender/prerender_visibility_quick.html", 828 PrerenderTestURL("files/prerender/prerender_visibility_quick.html",
807 FINAL_STATUS_USED, 0); 829 FINAL_STATUS_USED, 0);
808 NavigateToDestURL(); 830 NavigateToDestURL();
809 } 831 }
810 832
811 // Checks that the visibility API works when opening a page in a new hidden
812 // tab.
813 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderVisibilityBackgroundTab) {
814 PrerenderTestURL("files/prerender/prerender_visibility_hidden.html",
mmenke 2011/11/02 02:27:55 nit: The file this references is no longer needed
cbentzel 2011/11/02 15:57:08 Done.
815 FINAL_STATUS_USED,
816 1);
817 NavigateToDestURLWithDisposition(NEW_BACKGROUND_TAB);
818 }
819
820 // Checks that the visibility API works when opening a page in a new hidden
821 // tab, which is switched to before it stops loading.
822 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
823 PrerenderVisibilityBackgroundTabQuickSwitch) {
824 PrerenderTestURL("files/prerender/prerender_visibility_hidden_quick.html",
mmenke 2011/11/02 02:27:55 nit: The file this references is no longer needed
cbentzel 2011/11/02 15:57:08 Done.
825 FINAL_STATUS_USED, 0);
826 NavigateToDestURLWithDisposition(NEW_BACKGROUND_TAB);
827 }
828
829 // Checks that the visibility API works when opening a page in a new foreground
830 // tab.
831 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderVisibilityForegroundTab) {
832 PrerenderTestURL("files/prerender/prerender_visibility.html",
833 FINAL_STATUS_USED,
834 1);
835 NavigateToDestURLWithDisposition(NEW_FOREGROUND_TAB);
836 }
837
838 // Checks that the visibility API works when the prerender is quickly opened
839 // in a new tab foreground before it stops loading.
840 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
841 PrerenderVisibilityForegroundTabQuickSwitch) {
842 PrerenderTestURL("files/prerender/prerender_visibility_quick.html",
843 FINAL_STATUS_USED, 0);
844 NavigateToDestURL();
845 }
846
847 // Checks that the prerendering of a page is canceled correctly when a 833 // Checks that the prerendering of a page is canceled correctly when a
848 // Javascript alert is called. 834 // Javascript alert is called.
849 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderAlertBeforeOnload) { 835 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderAlertBeforeOnload) {
850 PrerenderTestURL("files/prerender/prerender_alert_before_onload.html", 836 PrerenderTestURL("files/prerender/prerender_alert_before_onload.html",
851 FINAL_STATUS_JAVASCRIPT_ALERT, 837 FINAL_STATUS_JAVASCRIPT_ALERT,
852 1); 838 1);
853 } 839 }
854 840
855 // Checks that the prerendering of a page is canceled correctly when a 841 // Checks that the prerendering of a page is canceled correctly when a
856 // Javascript alert is called. 842 // Javascript alert is called.
(...skipping 684 matching lines...) Expand 10 before | Expand all | Expand 10 after
1541 // Checks that if a page is opened due to click on a href with target="_blank" 1527 // Checks that if a page is opened due to click on a href with target="_blank"
1542 // and both pages are in the same domain the prerendered page is not used. 1528 // and both pages are in the same domain the prerendered page is not used.
1543 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, 1529 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
1544 PrerenderSameDomainWindowOpenerClickTarget) { 1530 PrerenderSameDomainWindowOpenerClickTarget) {
1545 PrerenderTestURL("files/prerender/prerender_page.html", 1531 PrerenderTestURL("files/prerender/prerender_page.html",
1546 FINAL_STATUS_WINDOW_OPENER, 1532 FINAL_STATUS_WINDOW_OPENER,
1547 1); 1533 1);
1548 OpenDestURLViaClickTarget(); 1534 OpenDestURLViaClickTarget();
1549 } 1535 }
1550 1536
1551 // Checks that if a page is opened in a new window by javascript and both the
1552 // pages are in different domains, the prerendered page is used.
1553 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
1554 PrerenderCrossDomainWindowOpenerWindowOpen) {
1555 PrerenderTestURL(
1556 GetCrossDomainTestUrl("files/prerender/prerender_page.html"),
1557 FINAL_STATUS_USED,
1558 1);
1559 OpenDestURLViaWindowOpen();
1560 }
1561
1562 // Checks that if a page is opened due to click on a href with target="_blank"
1563 // and both pages are in different domains, the prerendered page is used.
1564 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
1565 PrerenderCrossDomainWindowOpenerClickTarget) {
1566 PrerenderTestURL(
1567 GetCrossDomainTestUrl("files/prerender/prerender_page.html"),
1568 FINAL_STATUS_USED,
1569 1);
1570 OpenDestURLViaClickTarget();
1571 }
1572
1573 // TODO(shishir): Add a test for the case when the page having the
1574 // prerendering link already has an opener set.
1575
1576 // Checks that a top-level page which would normally request an SSL client 1537 // Checks that a top-level page which would normally request an SSL client
1577 // certificate will never be seen since it's an https top-level resource. 1538 // certificate will never be seen since it's an https top-level resource.
1578 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertTopLevel) { 1539 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertTopLevel) {
1579 net::TestServer::HTTPSOptions https_options; 1540 net::TestServer::HTTPSOptions https_options;
1580 https_options.request_client_certificate = true; 1541 https_options.request_client_certificate = true;
1581 net::TestServer https_server(https_options, 1542 net::TestServer https_server(https_options,
1582 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); 1543 FilePath(FILE_PATH_LITERAL("chrome/test/data")));
1583 ASSERT_TRUE(https_server.Start()); 1544 ASSERT_TRUE(https_server.Start());
1584 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); 1545 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html");
1585 PrerenderTestURL(https_url, FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED, 1); 1546 PrerenderTestURL(https_url, FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED, 1);
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
1832 1793
1833 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNavigateGoBack) { 1794 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNavigateGoBack) {
1834 PrerenderTestURL("files/prerender/prerender_page_with_link.html", 1795 PrerenderTestURL("files/prerender/prerender_page_with_link.html",
1835 FINAL_STATUS_USED, 1796 FINAL_STATUS_USED,
1836 1); 1797 1);
1837 OpenDestURLViaClick(); 1798 OpenDestURLViaClick();
1838 NavigateToNextPageAfterPrerender(browser()); 1799 NavigateToNextPageAfterPrerender(browser());
1839 GoBackToPrerender(browser()); 1800 GoBackToPrerender(browser());
1840 } 1801 }
1841 1802
1842 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, 1803 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNewWindow) {
1843 PrerenderClickNewWindowClickGoBack) {
1844 PrerenderTestURL("files/prerender/prerender_page_with_link.html", 1804 PrerenderTestURL("files/prerender/prerender_page_with_link.html",
1845 FINAL_STATUS_USED, 1805 FINAL_STATUS_SESSION_STORAGE_NAMESPACE_MISMATCH,
1846 1); 1806 1);
1847 OpenDestURLViaClickNewWindow(); 1807 OpenDestURLViaClickNewWindow();
1848 Browser* new_browser = BrowserList::GetLastActive(); 1808 }
1849 NavigateToNextPageAfterPrerender(new_browser); 1809
1850 GoBackToPrerender(new_browser); 1810 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNewForegroundTab) {
1811 PrerenderTestURL("files/prerender/prerender_page_with_link.html",
1812 FINAL_STATUS_SESSION_STORAGE_NAMESPACE_MISMATCH,
1813 1);
1814 OpenDestURLViaClickNewForegroundTab();
1815 }
1816
1817 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNewBackgroundTab) {
1818 PrerenderTestURL("files/prerender/prerender_page_with_link.html",
1819 FINAL_STATUS_SESSION_STORAGE_NAMESPACE_MISMATCH,
1820 1);
1821 OpenDestURLViaClickNewBackgroundTab();
1851 } 1822 }
1852 1823
1853 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, 1824 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
1854 PrerenderClickNewWindowNavigateGoBack) {
1855 PrerenderTestURL("files/prerender/prerender_page_with_link.html",
1856 FINAL_STATUS_USED,
1857 1);
1858 OpenDestURLViaClickNewWindow();
1859 Browser* new_browser = BrowserList::GetLastActive();
1860 ClickToNextPageAfterPrerender(new_browser);
1861 GoBackToPrerender(new_browser);
1862 }
1863
1864 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
1865 PrerenderClickNewForegroundTabClickGoBack) {
1866 PrerenderTestURL("files/prerender/prerender_page_with_link.html",
1867 FINAL_STATUS_USED,
1868 1);
1869 OpenDestURLViaClickNewForegroundTab();
1870 NavigateToNextPageAfterPrerender(browser());
1871 GoBackToPrerender(browser());
1872 }
1873
1874 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
1875 PrerenderClickNewForegroundTabNavigateGoBack) {
1876 PrerenderTestURL("files/prerender/prerender_page_with_link.html",
1877 FINAL_STATUS_USED,
1878 1);
1879 OpenDestURLViaClickNewForegroundTab();
1880 ClickToNextPageAfterPrerender(browser());
1881 GoBackToPrerender(browser());
1882 }
1883
1884 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
1885 PrerenderClickNewBackgroundTabClickGoBack) {
1886 PrerenderTestURL("files/prerender/prerender_page_with_link.html",
1887 FINAL_STATUS_USED,
1888 1);
1889 OpenDestURLViaClickNewBackgroundTab();
1890 // SelectNextTab completes synchronously, in terms of
1891 // updating the active index.
1892 browser()->SelectNextTab();
1893 NavigateToNextPageAfterPrerender(browser());
1894 GoBackToPrerender(browser());
1895 }
1896
1897 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
1898 PrerenderClickNewBackgroundTabNavigateGoBack) {
1899 PrerenderTestURL("files/prerender/prerender_page_with_link.html",
1900 FINAL_STATUS_USED,
1901 1);
1902 OpenDestURLViaClickNewBackgroundTab();
1903 // SelectNextTab completes synchronously, in terms of
1904 // updating the active index.
1905 browser()->SelectNextTab();
1906 ClickToNextPageAfterPrerender(browser());
1907 GoBackToPrerender(browser());
1908 }
1909
1910 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
1911 NavigateToPrerenderedPageWhenDevToolsAttached) { 1825 NavigateToPrerenderedPageWhenDevToolsAttached) {
1912 DisableJavascriptCalls(); 1826 DisableJavascriptCalls();
1913 TabContents* tab_contents = browser()->GetSelectedTabContents(); 1827 TabContents* tab_contents = browser()->GetSelectedTabContents();
1914 RenderViewHost* inspected_rvh = tab_contents->render_view_host(); 1828 RenderViewHost* inspected_rvh = tab_contents->render_view_host();
1915 DevToolsManager* manager = DevToolsManager::GetInstance(); 1829 DevToolsManager* manager = DevToolsManager::GetInstance();
1916 FakeDevToolsClientHost client_host; 1830 FakeDevToolsClientHost client_host;
1917 manager->RegisterDevToolsClientHostFor(inspected_rvh, &client_host); 1831 manager->RegisterDevToolsClientHostFor(inspected_rvh, &client_host);
1918 const char* url = "files/prerender/prerender_page.html"; 1832 const char* url = "files/prerender/prerender_page.html";
1919 PrerenderTestURL(url, FINAL_STATUS_DEVTOOLS_ATTACHED, 1); 1833 PrerenderTestURL(url, FINAL_STATUS_DEVTOOLS_ATTACHED, 1);
1920 NavigateToURL(url); 1834 NavigateToURL(url);
1921 } 1835 }
1922 1836
1837 // Validate that the sessionStorage namespace remains the same when swapping
1838 // in a prerendered page.
1839 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSessionStorage) {
1840 set_loader_path("files/prerender/prerender_loader_with_session_storage.html");
1841 PrerenderTestURL(GetCrossDomainTestUrl("files/prerender/prerender_page.html"),
1842 FINAL_STATUS_USED,
1843 1);
1844 NavigateToDestURL();
1845 GoBackToPageBeforePrerender(browser());
1846 }
1847
1923 } // namespace prerender 1848 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698