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 <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/string_util.h" | 9 #include "base/string_util.h" |
| 10 #include "base/stringprintf.h" | 10 #include "base/stringprintf.h" |
| (...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 688 } | 688 } |
| 689 | 689 |
| 690 // Should be const but test_server()->GetURL(...) is not const. | 690 // Should be const but test_server()->GetURL(...) is not const. |
| 691 void NavigateToURL(const std::string& dest_html_file) { | 691 void NavigateToURL(const std::string& dest_html_file) { |
| 692 GURL dest_url = test_server()->GetURL(dest_html_file); | 692 GURL dest_url = test_server()->GetURL(dest_html_file); |
| 693 NavigateToURLImpl(dest_url, CURRENT_TAB); | 693 NavigateToURLImpl(dest_url, CURRENT_TAB); |
| 694 } | 694 } |
| 695 | 695 |
| 696 bool UrlIsInPrerenderManager(const std::string& html_file) { | 696 bool UrlIsInPrerenderManager(const std::string& html_file) { |
| 697 GURL dest_url = test_server()->GetURL(html_file); | 697 GURL dest_url = test_server()->GetURL(html_file); |
| 698 return (prerender_manager()->FindEntry(dest_url) != NULL); | 698 return (GetPrerenderManager()->FindEntry(dest_url) != NULL); |
| 699 } | 699 } |
| 700 | 700 |
| 701 bool UrlIsInPrerenderManager(const GURL& url) { | 701 bool UrlIsInPrerenderManager(const GURL& url) { |
| 702 return (prerender_manager()->FindEntry(url) != NULL); | 702 return (GetPrerenderManager()->FindEntry(url) != NULL); |
| 703 } | 703 } |
| 704 | 704 |
| 705 bool UrlIsPendingInPrerenderManager(const std::string& html_file) { | 705 bool UrlIsPendingInPrerenderManager(const std::string& html_file) { |
| 706 GURL dest_url = test_server()->GetURL(html_file); | 706 GURL dest_url = test_server()->GetURL(html_file); |
| 707 return prerender_manager()->IsPendingEntry(dest_url); | 707 return GetPrerenderManager()->IsPendingEntry(dest_url); |
| 708 } | 708 } |
| 709 | 709 |
| 710 void set_use_https_src(bool use_https_src_server) { | 710 void set_use_https_src(bool use_https_src_server) { |
| 711 use_https_src_server_ = use_https_src_server; | 711 use_https_src_server_ = use_https_src_server; |
| 712 } | 712 } |
| 713 | 713 |
| 714 void DisableJavascriptCalls() { | 714 void DisableJavascriptCalls() { |
| 715 call_javascript_ = false; | 715 call_javascript_ = false; |
| 716 } | 716 } |
| 717 | 717 |
| 718 TaskManagerModel* model() const { | 718 TaskManagerModel* GetModel() const { |
| 719 return TaskManager::GetInstance()->model(); | 719 return TaskManager::GetInstance()->model(); |
| 720 } | 720 } |
| 721 | 721 |
| 722 PrerenderManager* prerender_manager() const { | 722 PrerenderManager* GetPrerenderManager() const { |
| 723 Profile* profile = | 723 Profile* profile = |
| 724 current_browser()->GetSelectedTabContentsWrapper()->profile(); | 724 current_browser()->GetSelectedTabContentsWrapper()->profile(); |
| 725 PrerenderManager* prerender_manager = | 725 PrerenderManager* prerender_manager = |
| 726 PrerenderManagerFactory::GetForProfile(profile); | 726 PrerenderManagerFactory::GetForProfile(profile); |
| 727 return prerender_manager; | 727 return prerender_manager; |
| 728 } | 728 } |
| 729 | 729 |
| 730 // Returns length of |prerender_manager_|'s history, or -1 on failure. | 730 // Returns length of |prerender_manager_|'s history, or -1 on failure. |
| 731 int GetHistoryLength() const { | 731 int GetHistoryLength() const { |
| 732 scoped_ptr<DictionaryValue> prerender_dict( | 732 scoped_ptr<DictionaryValue> prerender_dict( |
| 733 static_cast<DictionaryValue*>(prerender_manager()->GetAsValue())); | 733 static_cast<DictionaryValue*>(GetPrerenderManager()->GetAsValue())); |
| 734 if (!prerender_dict.get()) | 734 if (!prerender_dict.get()) |
| 735 return -1; | 735 return -1; |
| 736 ListValue* history_list; | 736 ListValue* history_list; |
| 737 if (!prerender_dict->GetList("history", &history_list)) | 737 if (!prerender_dict->GetList("history", &history_list)) |
| 738 return -1; | 738 return -1; |
| 739 return static_cast<int>(history_list->GetSize()); | 739 return static_cast<int>(history_list->GetSize()); |
| 740 } | 740 } |
| 741 | 741 |
| 742 #if defined(ENABLE_SAFE_BROWSING) | 742 #if defined(ENABLE_SAFE_BROWSING) |
| 743 FakeSafeBrowsingService* GetSafeBrowsingService() { | 743 FakeSafeBrowsingService* GetSafeBrowsingService() { |
| 744 return safe_browsing_factory_->most_recent_service(); | 744 return safe_browsing_factory_->most_recent_service(); |
| 745 } | 745 } |
| 746 #endif | 746 #endif |
| 747 | 747 |
| 748 TestPrerenderContents* GetPrerenderContents() const { | 748 TestPrerenderContents* GetPrerenderContents() const { |
| 749 return static_cast<TestPrerenderContents*>( | 749 return static_cast<TestPrerenderContents*>( |
| 750 prerender_manager()->FindEntry(dest_url_)); | 750 GetPrerenderManager()->FindEntry(dest_url_)); |
| 751 } | 751 } |
| 752 | 752 |
| 753 void set_loader_path(const std::string& path) { | 753 void set_loader_path(const std::string& path) { |
| 754 loader_path_ = path; | 754 loader_path_ = path; |
| 755 } | 755 } |
| 756 | 756 |
| 757 GURL GetCrossDomainTestUrl(const std::string& path) { | 757 GURL GetCrossDomainTestUrl(const std::string& path) { |
| 758 static const std::string secondary_domain = "www.foo.com"; | 758 static const std::string secondary_domain = "www.foo.com"; |
| 759 host_resolver()->AddRule(secondary_domain, "127.0.0.1"); | 759 host_resolver()->AddRule(secondary_domain, "127.0.0.1"); |
| 760 std::string url_str(base::StringPrintf( | 760 std::string url_str(base::StringPrintf( |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 774 return explicitly_set_browser_; | 774 return explicitly_set_browser_; |
| 775 else | 775 else |
| 776 return browser(); | 776 return browser(); |
| 777 } | 777 } |
| 778 | 778 |
| 779 void IncreasePrerenderMemory() { | 779 void IncreasePrerenderMemory() { |
| 780 // Increase the memory allowed in a prerendered page above normal settings. | 780 // Increase the memory allowed in a prerendered page above normal settings. |
| 781 // Debug build bots occasionally run against the default limit, and tests | 781 // Debug build bots occasionally run against the default limit, and tests |
| 782 // were failing because the prerender was canceled due to memory exhaustion. | 782 // were failing because the prerender was canceled due to memory exhaustion. |
| 783 // http://crbug.com/93076 | 783 // http://crbug.com/93076 |
| 784 prerender_manager()->mutable_config().max_bytes = 1000 * 1024 * 1024; | 784 GetPrerenderManager()->mutable_config().max_bytes = 1000 * 1024 * 1024; |
| 785 } | 785 } |
| 786 | 786 |
| 787 private: | 787 private: |
| 788 void PrerenderTestURLImpl( | 788 void PrerenderTestURLImpl( |
| 789 const GURL& prerender_url, | 789 const GURL& prerender_url, |
| 790 const GURL& destination_url, | 790 const GURL& destination_url, |
| 791 const std::deque<FinalStatus>& expected_final_status_queue, | 791 const std::deque<FinalStatus>& expected_final_status_queue, |
| 792 int expected_number_of_loads, | 792 int expected_number_of_loads, |
| 793 bool prerender_should_wait_for_ready_title) { | 793 bool prerender_should_wait_for_ready_title) { |
| 794 dest_url_ = destination_url; | 794 dest_url_ = destination_url; |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 809 if (use_https_src_server_) { | 809 if (use_https_src_server_) { |
| 810 https_src_server.reset( | 810 https_src_server.reset( |
| 811 new net::TestServer(net::TestServer::TYPE_HTTPS, | 811 new net::TestServer(net::TestServer::TYPE_HTTPS, |
| 812 net::TestServer::kLocalhost, | 812 net::TestServer::kLocalhost, |
| 813 FilePath(FILE_PATH_LITERAL("chrome/test/data")))); | 813 FilePath(FILE_PATH_LITERAL("chrome/test/data")))); |
| 814 ASSERT_TRUE(https_src_server->Start()); | 814 ASSERT_TRUE(https_src_server->Start()); |
| 815 src_server = https_src_server.get(); | 815 src_server = https_src_server.get(); |
| 816 } | 816 } |
| 817 GURL src_url = src_server->GetURL(replacement_path); | 817 GURL src_url = src_server->GetURL(replacement_path); |
| 818 | 818 |
| 819 ASSERT_TRUE(prerender_manager()); | 819 ASSERT_TRUE(GetPrerenderManager()); |
|
dominich
2012/04/30 14:52:16
consider caching the result of GetPrerenderManager
| |
| 820 prerender_manager()->mutable_config().rate_limit_enabled = false; | 820 GetPrerenderManager()->mutable_config().rate_limit_enabled = false; |
| 821 prerender_manager()->mutable_config().https_allowed = true; | 821 GetPrerenderManager()->mutable_config().https_allowed = true; |
| 822 ASSERT_TRUE(prerender_contents_factory_ == NULL); | 822 ASSERT_TRUE(prerender_contents_factory_ == NULL); |
| 823 prerender_contents_factory_ = | 823 prerender_contents_factory_ = |
| 824 new WaitForLoadPrerenderContentsFactory( | 824 new WaitForLoadPrerenderContentsFactory( |
| 825 expected_number_of_loads, | 825 expected_number_of_loads, |
| 826 expected_final_status_queue, | 826 expected_final_status_queue, |
| 827 prerender_should_wait_for_ready_title); | 827 prerender_should_wait_for_ready_title); |
| 828 prerender_manager()->SetPrerenderContentsFactory( | 828 GetPrerenderManager()->SetPrerenderContentsFactory( |
| 829 prerender_contents_factory_); | 829 prerender_contents_factory_); |
| 830 FinalStatus expected_final_status = expected_final_status_queue.front(); | 830 FinalStatus expected_final_status = expected_final_status_queue.front(); |
| 831 | 831 |
| 832 // ui_test_utils::NavigateToURL uses its own observer and message loop. | 832 // ui_test_utils::NavigateToURL uses its own observer and message loop. |
| 833 // Since the test needs to wait until the prerendered page has stopped | 833 // Since the test needs to wait until the prerendered page has stopped |
| 834 // loading, rather than the page directly navigated to, need to | 834 // loading, rather than the page directly navigated to, need to |
| 835 // handle browser navigation directly. | 835 // handle browser navigation directly. |
| 836 current_browser()->OpenURL(OpenURLParams( | 836 current_browser()->OpenURL(OpenURLParams( |
| 837 src_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, | 837 src_url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, |
| 838 false)); | 838 false)); |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 862 // In the failure case, we should have removed |dest_url_| from the | 862 // In the failure case, we should have removed |dest_url_| from the |
| 863 // prerender_manager. We ignore dummy PrerenderContents (as indicated | 863 // prerender_manager. We ignore dummy PrerenderContents (as indicated |
| 864 // by not having started). | 864 // by not having started). |
| 865 EXPECT_TRUE(prerender_contents == NULL || | 865 EXPECT_TRUE(prerender_contents == NULL || |
| 866 !prerender_contents->prerendering_has_started()); | 866 !prerender_contents->prerendering_has_started()); |
| 867 } | 867 } |
| 868 } | 868 } |
| 869 | 869 |
| 870 void NavigateToURLImpl(const GURL& dest_url, | 870 void NavigateToURLImpl(const GURL& dest_url, |
| 871 WindowOpenDisposition disposition) const { | 871 WindowOpenDisposition disposition) const { |
| 872 ASSERT_TRUE(prerender_manager() != NULL); | 872 ASSERT_TRUE(GetPrerenderManager() != NULL); |
| 873 // Make sure in navigating we have a URL to use in the PrerenderManager. | 873 // Make sure in navigating we have a URL to use in the PrerenderManager. |
| 874 ASSERT_TRUE(GetPrerenderContents() != NULL); | 874 ASSERT_TRUE(GetPrerenderContents() != NULL); |
| 875 | 875 |
| 876 // If opening the page in a background tab, it won't be shown when swapped | 876 // If opening the page in a background tab, it won't be shown when swapped |
| 877 // in. | 877 // in. |
| 878 if (disposition == NEW_BACKGROUND_TAB) | 878 if (disposition == NEW_BACKGROUND_TAB) |
| 879 GetPrerenderContents()->set_should_be_shown(false); | 879 GetPrerenderContents()->set_should_be_shown(false); |
| 880 | 880 |
| 881 scoped_ptr<ui_test_utils::WindowedNotificationObserver> page_load_observer; | 881 scoped_ptr<ui_test_utils::WindowedNotificationObserver> page_load_observer; |
| 882 WebContents* web_contents = NULL; | 882 WebContents* web_contents = NULL; |
| (...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1325 | 1325 |
| 1326 // Checks that popups on a prerendered page cause cancellation. | 1326 // Checks that popups on a prerendered page cause cancellation. |
| 1327 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPopup) { | 1327 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPopup) { |
| 1328 PrerenderTestURL("files/prerender/prerender_popup.html", | 1328 PrerenderTestURL("files/prerender/prerender_popup.html", |
| 1329 FINAL_STATUS_CREATE_NEW_WINDOW, | 1329 FINAL_STATUS_CREATE_NEW_WINDOW, |
| 1330 1); | 1330 1); |
| 1331 } | 1331 } |
| 1332 | 1332 |
| 1333 // Checks that renderers using excessive memory will be terminated. | 1333 // Checks that renderers using excessive memory will be terminated. |
| 1334 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderExcessiveMemory) { | 1334 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderExcessiveMemory) { |
| 1335 ASSERT_TRUE(prerender_manager()); | 1335 ASSERT_TRUE(GetPrerenderManager()); |
| 1336 prerender_manager()->mutable_config().max_bytes = 30 * 1024 * 1024; | 1336 GetPrerenderManager()->mutable_config().max_bytes = 30 * 1024 * 1024; |
| 1337 PrerenderTestURL("files/prerender/prerender_excessive_memory.html", | 1337 PrerenderTestURL("files/prerender/prerender_excessive_memory.html", |
| 1338 FINAL_STATUS_MEMORY_LIMIT_EXCEEDED, | 1338 FINAL_STATUS_MEMORY_LIMIT_EXCEEDED, |
| 1339 1); | 1339 1); |
| 1340 } | 1340 } |
| 1341 | 1341 |
| 1342 // Checks shutdown code while a prerender is active. | 1342 // Checks shutdown code while a prerender is active. |
| 1343 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderQuickQuit) { | 1343 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderQuickQuit) { |
| 1344 PrerenderTestURL("files/prerender/prerender_page.html", | 1344 PrerenderTestURL("files/prerender/prerender_page.html", |
| 1345 FINAL_STATUS_APP_TERMINATING, | 1345 FINAL_STATUS_APP_TERMINATING, |
| 1346 0); | 1346 0); |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1421 // Start with two resources. | 1421 // Start with two resources. |
| 1422 PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1); | 1422 PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1); |
| 1423 | 1423 |
| 1424 // One of the resources that has a WebContents associated with it should have | 1424 // One of the resources that has a WebContents associated with it should have |
| 1425 // the Prerender prefix. | 1425 // the Prerender prefix. |
| 1426 const string16 prefix = | 1426 const string16 prefix = |
| 1427 l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_PRERENDER_PREFIX, string16()); | 1427 l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_PRERENDER_PREFIX, string16()); |
| 1428 string16 prerender_title; | 1428 string16 prerender_title; |
| 1429 int num_prerender_tabs = 0; | 1429 int num_prerender_tabs = 0; |
| 1430 | 1430 |
| 1431 for (int i = 0; i < model()->ResourceCount(); ++i) { | 1431 for (int i = 0; i < GetModel()->ResourceCount(); ++i) { |
|
dominich
2012/04/30 14:52:16
consider caching the result of GetModel in a local
| |
| 1432 if (model()->GetResourceTabContents(i)) { | 1432 if (GetModel()->GetResourceTabContents(i)) { |
| 1433 prerender_title = model()->GetResourceTitle(i); | 1433 prerender_title = GetModel()->GetResourceTitle(i); |
| 1434 if (StartsWith(prerender_title, prefix, true)) | 1434 if (StartsWith(prerender_title, prefix, true)) |
| 1435 ++num_prerender_tabs; | 1435 ++num_prerender_tabs; |
| 1436 } | 1436 } |
| 1437 } | 1437 } |
| 1438 EXPECT_EQ(1, num_prerender_tabs); | 1438 EXPECT_EQ(1, num_prerender_tabs); |
| 1439 const string16 prerender_page_title = prerender_title.substr(prefix.length()); | 1439 const string16 prerender_page_title = prerender_title.substr(prefix.length()); |
| 1440 | 1440 |
| 1441 NavigateToDestURL(); | 1441 NavigateToDestURL(); |
| 1442 | 1442 |
| 1443 // There should be no tabs with the Prerender prefix. | 1443 // There should be no tabs with the Prerender prefix. |
| 1444 const string16 tab_prefix = | 1444 const string16 tab_prefix = |
| 1445 l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_TAB_PREFIX, string16()); | 1445 l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_TAB_PREFIX, string16()); |
| 1446 num_prerender_tabs = 0; | 1446 num_prerender_tabs = 0; |
| 1447 int num_tabs_with_prerender_page_title = 0; | 1447 int num_tabs_with_prerender_page_title = 0; |
| 1448 for (int i = 0; i < model()->ResourceCount(); ++i) { | 1448 for (int i = 0; i < GetModel()->ResourceCount(); ++i) { |
| 1449 if (model()->GetResourceTabContents(i)) { | 1449 if (GetModel()->GetResourceTabContents(i)) { |
| 1450 string16 tab_title = model()->GetResourceTitle(i); | 1450 string16 tab_title = GetModel()->GetResourceTitle(i); |
| 1451 if (StartsWith(tab_title, prefix, true)) { | 1451 if (StartsWith(tab_title, prefix, true)) { |
| 1452 ++num_prerender_tabs; | 1452 ++num_prerender_tabs; |
| 1453 } else { | 1453 } else { |
| 1454 EXPECT_TRUE(StartsWith(tab_title, tab_prefix, true)); | 1454 EXPECT_TRUE(StartsWith(tab_title, tab_prefix, true)); |
| 1455 | 1455 |
| 1456 // The prerender tab should now be a normal tab but the title should be | 1456 // The prerender tab should now be a normal tab but the title should be |
| 1457 // the same. Depending on timing, there may be more than one of these. | 1457 // the same. Depending on timing, there may be more than one of these. |
| 1458 const string16 tab_page_title = tab_title.substr(tab_prefix.length()); | 1458 const string16 tab_page_title = tab_title.substr(tab_prefix.length()); |
| 1459 if (prerender_page_title.compare(tab_page_title) == 0) | 1459 if (prerender_page_title.compare(tab_page_title) == 0) |
| 1460 ++num_tabs_with_prerender_page_title; | 1460 ++num_tabs_with_prerender_page_title; |
| (...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1992 EXPECT_EQ(1, GetHistoryLength()); | 1992 EXPECT_EQ(1, GetHistoryLength()); |
| 1993 } | 1993 } |
| 1994 | 1994 |
| 1995 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderCancelAll) { | 1995 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderCancelAll) { |
| 1996 PrerenderTestURL("files/prerender/prerender_page.html", | 1996 PrerenderTestURL("files/prerender/prerender_page.html", |
| 1997 FINAL_STATUS_CANCELLED, | 1997 FINAL_STATUS_CANCELLED, |
| 1998 1); | 1998 1); |
| 1999 // Post a task to cancel all the prerenders. | 1999 // Post a task to cancel all the prerenders. |
| 2000 MessageLoop::current()->PostTask( | 2000 MessageLoop::current()->PostTask( |
| 2001 FROM_HERE, | 2001 FROM_HERE, |
| 2002 base::Bind(&CancelAllPrerenders, prerender_manager())); | 2002 base::Bind(&CancelAllPrerenders, GetPrerenderManager())); |
| 2003 ui_test_utils::RunMessageLoop(); | 2003 ui_test_utils::RunMessageLoop(); |
| 2004 EXPECT_TRUE(GetPrerenderContents() == NULL); | 2004 EXPECT_TRUE(GetPrerenderContents() == NULL); |
| 2005 } | 2005 } |
| 2006 | 2006 |
| 2007 // Prerendering and history tests. | 2007 // Prerendering and history tests. |
| 2008 // The prerendered page is navigated to in several ways [navigate via | 2008 // The prerendered page is navigated to in several ways [navigate via |
| 2009 // omnibox, click on link, key-modified click to open in background tab, etc], | 2009 // omnibox, click on link, key-modified click to open in background tab, etc], |
| 2010 // followed by a navigation to another page from the prerendered page, followed | 2010 // followed by a navigation to another page from the prerendered page, followed |
| 2011 // by a back navigation. | 2011 // by a back navigation. |
| 2012 | 2012 |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2147 WebContents* web_contents = browser()->GetSelectedWebContents(); | 2147 WebContents* web_contents = browser()->GetSelectedWebContents(); |
| 2148 bool display_test_result = false; | 2148 bool display_test_result = false; |
| 2149 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 2149 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
| 2150 web_contents->GetRenderViewHost(), L"", | 2150 web_contents->GetRenderViewHost(), L"", |
| 2151 L"DidDisplayReallyPass()", | 2151 L"DidDisplayReallyPass()", |
| 2152 &display_test_result)); | 2152 &display_test_result)); |
| 2153 ASSERT_TRUE(display_test_result); | 2153 ASSERT_TRUE(display_test_result); |
| 2154 } | 2154 } |
| 2155 | 2155 |
| 2156 } // namespace prerender | 2156 } // namespace prerender |
| OLD | NEW |