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

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

Issue 10260013: Style: move non-simple getters from hacker_style to CamelCase. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 months 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698