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" |
11 #include "base/test/test_timeouts.h" | 11 #include "base/test/test_timeouts.h" |
12 #include "base/utf_string_conversions.h" | 12 #include "base/utf_string_conversions.h" |
13 #include "base/values.h" | 13 #include "base/values.h" |
14 #include "chrome/browser/browsing_data_helper.h" | 14 #include "chrome/browser/browsing_data_helper.h" |
15 #include "chrome/browser/browsing_data_remover.h" | 15 #include "chrome/browser/browsing_data_remover.h" |
16 #include "chrome/browser/content_settings/host_content_settings_map.h" | 16 #include "chrome/browser/content_settings/host_content_settings_map.h" |
17 #include "chrome/browser/favicon/favicon_tab_helper.h" | 17 #include "chrome/browser/favicon/favicon_tab_helper.h" |
18 #include "chrome/browser/prefs/pref_service.h" | 18 #include "chrome/browser/prefs/pref_service.h" |
19 #include "chrome/browser/prerender/prerender_contents.h" | 19 #include "chrome/browser/prerender/prerender_contents.h" |
20 #include "chrome/browser/prerender/prerender_handle.h" | |
20 #include "chrome/browser/prerender/prerender_link_manager.h" | 21 #include "chrome/browser/prerender/prerender_link_manager.h" |
21 #include "chrome/browser/prerender/prerender_link_manager_factory.h" | 22 #include "chrome/browser/prerender/prerender_link_manager_factory.h" |
22 #include "chrome/browser/prerender/prerender_manager.h" | 23 #include "chrome/browser/prerender/prerender_manager.h" |
23 #include "chrome/browser/prerender/prerender_manager_factory.h" | 24 #include "chrome/browser/prerender/prerender_manager_factory.h" |
24 #include "chrome/browser/profiles/profile.h" | 25 #include "chrome/browser/profiles/profile.h" |
25 #include "chrome/browser/safe_browsing/safe_browsing_service.h" | 26 #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
26 #include "chrome/browser/task_manager/task_manager.h" | 27 #include "chrome/browser/task_manager/task_manager.h" |
27 #include "chrome/browser/task_manager/task_manager_browsertest_util.h" | 28 #include "chrome/browser/task_manager/task_manager_browsertest_util.h" |
28 #include "chrome/browser/ui/browser.h" | 29 #include "chrome/browser/ui/browser.h" |
29 #include "chrome/browser/ui/browser_commands.h" | 30 #include "chrome/browser/ui/browser_commands.h" |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
103 prerender_manager->CancelAllPrerenders(); | 104 prerender_manager->CancelAllPrerenders(); |
104 } | 105 } |
105 | 106 |
106 // Returns true if and only if the final status is one in which the prerendered | 107 // Returns true if and only if the final status is one in which the prerendered |
107 // page should prerender correctly. The page still may not be used. | 108 // page should prerender correctly. The page still may not be used. |
108 bool ShouldRenderPrerenderedPageCorrectly(FinalStatus status) { | 109 bool ShouldRenderPrerenderedPageCorrectly(FinalStatus status) { |
109 switch (status) { | 110 switch (status) { |
110 case FINAL_STATUS_USED: | 111 case FINAL_STATUS_USED: |
111 case FINAL_STATUS_WINDOW_OPENER: | 112 case FINAL_STATUS_WINDOW_OPENER: |
112 case FINAL_STATUS_APP_TERMINATING: | 113 case FINAL_STATUS_APP_TERMINATING: |
113 case FINAL_STATUS_FRAGMENT_MISMATCH: | |
114 case FINAL_STATUS_CACHE_OR_HISTORY_CLEARED: | 114 case FINAL_STATUS_CACHE_OR_HISTORY_CLEARED: |
115 // We'll crash the renderer after it's loaded. | 115 // We'll crash the renderer after it's loaded. |
116 case FINAL_STATUS_RENDERER_CRASHED: | 116 case FINAL_STATUS_RENDERER_CRASHED: |
117 case FINAL_STATUS_CANCELLED: | 117 case FINAL_STATUS_CANCELLED: |
118 case FINAL_STATUS_DEVTOOLS_ATTACHED: | 118 case FINAL_STATUS_DEVTOOLS_ATTACHED: |
119 case FINAL_STATUS_SESSION_STORAGE_NAMESPACE_MISMATCH: | |
120 return true; | 119 return true; |
121 default: | 120 default: |
122 return false; | 121 return false; |
123 } | 122 } |
124 } | 123 } |
125 | 124 |
126 // PrerenderContents that stops the UI message loop on DidStopLoading(). | 125 // PrerenderContents that stops the UI message loop on DidStopLoading(). |
127 class TestPrerenderContents : public PrerenderContents { | 126 class TestPrerenderContents : public PrerenderContents { |
128 public: | 127 public: |
128 using PrerenderContents::PendingPrerenderInfo; | |
dominich
2012/06/28 00:34:32
Do you really need these as a derived class of Pre
gavinp
2012/07/02 18:19:29
They are, but TestPrerenderManager calls them, and
| |
129 using PrerenderContents::PendingPrerenderList; | |
130 using PrerenderContents::pending_prerender_list; | |
131 | |
129 TestPrerenderContents( | 132 TestPrerenderContents( |
130 PrerenderManager* prerender_manager, | 133 PrerenderManager* prerender_manager, |
131 PrerenderTracker* prerender_tracker, | 134 PrerenderTracker* prerender_tracker, |
132 Profile* profile, | 135 Profile* profile, |
133 const GURL& url, | 136 const GURL& url, |
134 const content::Referrer& referrer, | 137 const content::Referrer& referrer, |
135 int expected_number_of_loads, | 138 int expected_number_of_loads, |
136 FinalStatus expected_final_status, | 139 FinalStatus expected_final_status, |
137 bool prerender_should_wait_for_ready_title) | 140 bool prerender_should_wait_for_ready_title) |
138 : PrerenderContents(prerender_manager, prerender_tracker, | 141 : PrerenderContents(prerender_manager, prerender_tracker, |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
219 | 222 |
220 virtual void DidStopLoading() OVERRIDE { | 223 virtual void DidStopLoading() OVERRIDE { |
221 PrerenderContents::DidStopLoading(); | 224 PrerenderContents::DidStopLoading(); |
222 ++number_of_loads_; | 225 ++number_of_loads_; |
223 if (ShouldRenderPrerenderedPageCorrectly(expected_final_status_) && | 226 if (ShouldRenderPrerenderedPageCorrectly(expected_final_status_) && |
224 number_of_loads_ == expected_number_of_loads_) { | 227 number_of_loads_ == expected_number_of_loads_) { |
225 MessageLoopForUI::current()->Quit(); | 228 MessageLoopForUI::current()->Quit(); |
226 } | 229 } |
227 } | 230 } |
228 | 231 |
229 virtual void AddPendingPrerender(const GURL& url, | 232 virtual PrerenderHandle AddPendingPrerender(const GURL& url, |
230 const content::Referrer& referrer, | 233 const content::Referrer& referrer, |
231 const gfx::Size& size) OVERRIDE { | 234 const gfx::Size& size) OVERRIDE { |
232 PrerenderContents::AddPendingPrerender(url, referrer, size); | 235 PrerenderHandle handle = |
236 PrerenderContents::AddPendingPrerender(url, referrer, size); | |
233 if (expected_pending_prerenders_ > 0 && | 237 if (expected_pending_prerenders_ > 0 && |
234 pending_prerender_list()->size() == expected_pending_prerenders_) { | 238 pending_prerender_list()->size() == expected_pending_prerenders_) { |
235 MessageLoop::current()->Quit(); | 239 MessageLoop::current()->Quit(); |
236 } | 240 } |
241 return handle; | |
237 } | 242 } |
238 | 243 |
239 virtual WebContents* CreateWebContents( | 244 virtual WebContents* CreateWebContents( |
240 content::SessionStorageNamespace* session_storage_namespace) OVERRIDE { | 245 content::SessionStorageNamespace* session_storage_namespace) OVERRIDE { |
241 WebContents* web_contents = PrerenderContents::CreateWebContents( | 246 WebContents* web_contents = PrerenderContents::CreateWebContents( |
242 session_storage_namespace); | 247 session_storage_namespace); |
243 string16 ready_title = ASCIIToUTF16(kReadyTitle); | 248 string16 ready_title = ASCIIToUTF16(kReadyTitle); |
244 if (prerender_should_wait_for_ready_title_) | 249 if (prerender_should_wait_for_ready_title_) |
245 ready_title_watcher_.reset(new ui_test_utils::TitleWatcher( | 250 ready_title_watcher_.reset(new ui_test_utils::TitleWatcher( |
246 web_contents, ready_title)); | 251 web_contents, ready_title)); |
(...skipping 19 matching lines...) Expand all Loading... | |
266 EXPECT_EQ(expected_pending_prerenders, pending_prerender_list()->size()); | 271 EXPECT_EQ(expected_pending_prerenders, pending_prerender_list()->size()); |
267 } | 272 } |
268 | 273 |
269 // For tests that open the prerender in a new background tab, the RenderView | 274 // For tests that open the prerender in a new background tab, the RenderView |
270 // will not have been made visible when the PrerenderContents is destroyed | 275 // will not have been made visible when the PrerenderContents is destroyed |
271 // even though it is used. | 276 // even though it is used. |
272 void set_should_be_shown(bool value) { should_be_shown_ = value; } | 277 void set_should_be_shown(bool value) { should_be_shown_ = value; } |
273 | 278 |
274 int number_of_loads() const { return number_of_loads_; } | 279 int number_of_loads() const { return number_of_loads_; } |
275 | 280 |
281 FinalStatus expected_final_status() const { return expected_final_status_; } | |
282 | |
276 private: | 283 private: |
277 virtual void OnRenderViewHostCreated( | 284 virtual void OnRenderViewHostCreated( |
278 RenderViewHost* new_render_view_host) OVERRIDE { | 285 RenderViewHost* new_render_view_host) OVERRIDE { |
279 // Used to make sure the RenderViewHost is hidden and, if used, | 286 // Used to make sure the RenderViewHost is hidden and, if used, |
280 // subsequently shown. | 287 // subsequently shown. |
281 notification_registrar().Add( | 288 notification_registrar().Add( |
282 this, | 289 this, |
283 content::NOTIFICATION_RENDER_WIDGET_VISIBILITY_CHANGED, | 290 content::NOTIFICATION_RENDER_WIDGET_VISIBILITY_CHANGED, |
284 content::Source<RenderWidgetHost>(new_render_view_host)); | 291 content::Source<RenderWidgetHost>(new_render_view_host)); |
285 | 292 |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
482 #endif | 489 #endif |
483 use_https_src_server_(false), | 490 use_https_src_server_(false), |
484 call_javascript_(true), | 491 call_javascript_(true), |
485 loader_path_("files/prerender/prerender_loader.html"), | 492 loader_path_("files/prerender/prerender_loader.html"), |
486 explicitly_set_browser_(NULL) { | 493 explicitly_set_browser_(NULL) { |
487 EnableDOMAutomation(); | 494 EnableDOMAutomation(); |
488 } | 495 } |
489 | 496 |
490 virtual ~PrerenderBrowserTest() {} | 497 virtual ~PrerenderBrowserTest() {} |
491 | 498 |
499 content::SessionStorageNamespace* GetSessionStorageNamespace() const { | |
500 return current_browser()->GetActiveTabContents()->web_contents()-> | |
501 GetRenderViewHost()->GetSessionStorageNamespace(); | |
502 } | |
503 | |
492 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { | 504 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { |
493 #if defined(ENABLE_SAFE_BROWSING) | 505 #if defined(ENABLE_SAFE_BROWSING) |
494 SafeBrowsingService::RegisterFactory(safe_browsing_factory_.get()); | 506 SafeBrowsingService::RegisterFactory(safe_browsing_factory_.get()); |
495 #endif | 507 #endif |
496 } | 508 } |
497 | 509 |
498 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 510 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { |
499 command_line->AppendSwitchASCII(switches::kPrerenderMode, | 511 command_line->AppendSwitchASCII(switches::kPrerenderMode, |
500 switches::kPrerenderModeSwitchValueEnabled); | 512 switches::kPrerenderModeSwitchValueEnabled); |
501 #if defined(OS_MACOSX) | 513 #if defined(OS_MACOSX) |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
695 &js_result)); | 707 &js_result)); |
696 EXPECT_TRUE(js_result); | 708 EXPECT_TRUE(js_result); |
697 } | 709 } |
698 | 710 |
699 void NavigateToURL(const std::string& dest_html_file) const { | 711 void NavigateToURL(const std::string& dest_html_file) const { |
700 GURL dest_url = test_server()->GetURL(dest_html_file); | 712 GURL dest_url = test_server()->GetURL(dest_html_file); |
701 NavigateToURLImpl(dest_url, CURRENT_TAB); | 713 NavigateToURLImpl(dest_url, CURRENT_TAB); |
702 } | 714 } |
703 | 715 |
704 bool UrlIsInPrerenderManager(const std::string& html_file) const { | 716 bool UrlIsInPrerenderManager(const std::string& html_file) const { |
705 GURL dest_url = test_server()->GetURL(html_file); | 717 return UrlIsInPrerenderManager(test_server()->GetURL(html_file)); |
706 return (GetPrerenderManager()->FindEntry(dest_url) != NULL); | |
707 } | 718 } |
708 | 719 |
709 bool UrlIsInPrerenderManager(const GURL& url) { | 720 bool UrlIsInPrerenderManager(const GURL& url) const { |
710 return (GetPrerenderManager()->FindEntry(url) != NULL); | 721 return |
dominich
2012/06/28 00:34:32
nit:
return GetPrerenderManager()->FindEntry(
| |
722 GetPrerenderManager()->FindEntry(url, | |
723 GetSessionStorageNamespace()) != NULL; | |
711 } | 724 } |
712 | 725 |
713 bool UrlIsPendingInPrerenderManager(const std::string& html_file) const { | 726 bool UrlIsPendingInPrerenderManager(const std::string& html_file) const { |
727 TestPrerenderContents* test_prerender_contents = GetPrerenderContents(); | |
728 if (!test_prerender_contents) | |
729 return false; | |
714 GURL dest_url = test_server()->GetURL(html_file); | 730 GURL dest_url = test_server()->GetURL(html_file); |
715 return GetPrerenderManager()->IsPendingEntry(dest_url); | 731 for (TestPrerenderContents::PendingPrerenderList::const_iterator |
732 it = test_prerender_contents->pending_prerender_list()->begin(), | |
733 end = test_prerender_contents->pending_prerender_list()->end(); | |
734 it != end; | |
735 ++it) { | |
736 if (it->url == dest_url) { | |
737 EXPECT_FALSE(GetPrerenderManager()->FindHandle( | |
738 dest_url, GetSessionStorageNamespace())); | |
739 EXPECT_TRUE(test_prerender_contents->IsPendingEntry( | |
740 it->prerender_handle_impl->AsWeakPtr())); | |
741 EXPECT_TRUE(it->prerender_handle_impl->IsPending()); | |
742 return true; | |
743 } | |
744 } | |
745 return false; | |
716 } | 746 } |
717 | 747 |
718 void set_use_https_src(bool use_https_src_server) { | 748 void set_use_https_src(bool use_https_src_server) { |
719 use_https_src_server_ = use_https_src_server; | 749 use_https_src_server_ = use_https_src_server; |
720 } | 750 } |
721 | 751 |
722 void DisableJavascriptCalls() { | 752 void DisableJavascriptCalls() { |
723 call_javascript_ = false; | 753 call_javascript_ = false; |
724 } | 754 } |
725 | 755 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
758 } | 788 } |
759 | 789 |
760 #if defined(ENABLE_SAFE_BROWSING) | 790 #if defined(ENABLE_SAFE_BROWSING) |
761 FakeSafeBrowsingService* GetSafeBrowsingService() { | 791 FakeSafeBrowsingService* GetSafeBrowsingService() { |
762 return safe_browsing_factory_->most_recent_service(); | 792 return safe_browsing_factory_->most_recent_service(); |
763 } | 793 } |
764 #endif | 794 #endif |
765 | 795 |
766 TestPrerenderContents* GetPrerenderContents() const { | 796 TestPrerenderContents* GetPrerenderContents() const { |
767 return static_cast<TestPrerenderContents*>( | 797 return static_cast<TestPrerenderContents*>( |
768 GetPrerenderManager()->FindEntry(dest_url_)); | 798 GetPrerenderManager()->FindEntry(dest_url_, |
799 GetSessionStorageNamespace())); | |
769 } | 800 } |
770 | 801 |
771 void set_loader_path(const std::string& path) { | 802 void set_loader_path(const std::string& path) { |
772 loader_path_ = path; | 803 loader_path_ = path; |
773 } | 804 } |
774 | 805 |
775 void set_loader_query_and_fragment(const std::string& query_and_fragment) { | 806 void set_loader_query_and_fragment(const std::string& query_and_fragment) { |
776 loader_query_and_fragment_ = query_and_fragment; | 807 loader_query_and_fragment_ = query_and_fragment; |
777 } | 808 } |
778 | 809 |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
875 bool prerender_test_result = false; | 906 bool prerender_test_result = false; |
876 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 907 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
877 prerender_contents->GetRenderViewHostMutable(), L"", | 908 prerender_contents->GetRenderViewHostMutable(), L"", |
878 L"window.domAutomationController.send(DidPrerenderPass())", | 909 L"window.domAutomationController.send(DidPrerenderPass())", |
879 &prerender_test_result)); | 910 &prerender_test_result)); |
880 EXPECT_TRUE(prerender_test_result); | 911 EXPECT_TRUE(prerender_test_result); |
881 } | 912 } |
882 } else { | 913 } else { |
883 // In the failure case, we should have removed |dest_url_| from the | 914 // In the failure case, we should have removed |dest_url_| from the |
884 // prerender_manager. We ignore dummy PrerenderContents (as indicated | 915 // prerender_manager. We ignore dummy PrerenderContents (as indicated |
885 // by not having started). | 916 // by not having started), and PrerenderContents that are expected to |
917 // be left in the manager until the test finishes. | |
886 EXPECT_TRUE(prerender_contents == NULL || | 918 EXPECT_TRUE(prerender_contents == NULL || |
887 !prerender_contents->prerendering_has_started()); | 919 !prerender_contents->prerendering_has_started() || |
920 prerender_contents->expected_final_status() == | |
921 FINAL_STATUS_MANAGER_SHUTDOWN); | |
888 } | 922 } |
889 } | 923 } |
890 | 924 |
891 void NavigateToURLImpl(const GURL& dest_url, | 925 void NavigateToURLImpl(const GURL& dest_url, |
892 WindowOpenDisposition disposition) const { | 926 WindowOpenDisposition disposition) const { |
893 ASSERT_TRUE(GetPrerenderManager() != NULL); | 927 ASSERT_TRUE(GetPrerenderManager() != NULL); |
894 // Make sure in navigating we have a URL to use in the PrerenderManager. | 928 // Make sure in navigating we have a URL to use in the PrerenderManager. |
895 ASSERT_TRUE(GetPrerenderContents() != NULL); | 929 ASSERT_TRUE(GetPrerenderContents() != NULL); |
896 | 930 |
897 // If opening the page in a background tab, it won't be shown when swapped | 931 // If opening the page in a background tab, it won't be shown when swapped |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
946 const { | 980 const { |
947 TestPrerenderContents* prerender_contents = GetPrerenderContents(); | 981 TestPrerenderContents* prerender_contents = GetPrerenderContents(); |
948 ASSERT_TRUE(prerender_contents != NULL); | 982 ASSERT_TRUE(prerender_contents != NULL); |
949 | 983 |
950 RenderViewHost* render_view_host = | 984 RenderViewHost* render_view_host = |
951 current_browser()->GetActiveWebContents()->GetRenderViewHost(); | 985 current_browser()->GetActiveWebContents()->GetRenderViewHost(); |
952 render_view_host->ExecuteJavascriptInWebFrame( | 986 render_view_host->ExecuteJavascriptInWebFrame( |
953 string16(), | 987 string16(), |
954 ASCIIToUTF16(javascript_function_name)); | 988 ASCIIToUTF16(javascript_function_name)); |
955 | 989 |
956 // Run message loop until the prerender contents is destroyed. | 990 if (prerender_contents->expected_final_status() != |
957 ui_test_utils::RunMessageLoop(); | 991 FINAL_STATUS_APP_TERMINATING) { |
992 // Run message loop until the prerender contents is destroyed. | |
993 ui_test_utils::RunMessageLoop(); | |
994 } | |
958 } | 995 } |
959 | 996 |
960 WaitForLoadPrerenderContentsFactory* prerender_contents_factory_; | 997 WaitForLoadPrerenderContentsFactory* prerender_contents_factory_; |
961 #if defined(ENABLE_SAFE_BROWSING) | 998 #if defined(ENABLE_SAFE_BROWSING) |
962 scoped_ptr<TestSafeBrowsingServiceFactory> safe_browsing_factory_; | 999 scoped_ptr<TestSafeBrowsingServiceFactory> safe_browsing_factory_; |
963 #endif | 1000 #endif |
964 GURL dest_url_; | 1001 GURL dest_url_; |
965 bool use_https_src_server_; | 1002 bool use_https_src_server_; |
966 bool call_javascript_; | 1003 bool call_javascript_; |
967 std::string loader_path_; | 1004 std::string loader_path_; |
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1627 LoadURL( | 1664 LoadURL( |
1628 GURL(chrome::kChromeUICrashURL), | 1665 GURL(chrome::kChromeUICrashURL), |
1629 content::Referrer(), | 1666 content::Referrer(), |
1630 content::PAGE_TRANSITION_TYPED, | 1667 content::PAGE_TRANSITION_TYPED, |
1631 std::string()); | 1668 std::string()); |
1632 ui_test_utils::RunMessageLoop(); | 1669 ui_test_utils::RunMessageLoop(); |
1633 } | 1670 } |
1634 | 1671 |
1635 // Checks that we correctly use a prerendered page when navigating to a | 1672 // Checks that we correctly use a prerendered page when navigating to a |
1636 // fragment. | 1673 // fragment. |
1637 // DISABLED: http://crbug.com/84154 | 1674 // DISABLED: http://crbug.com/84154 |
dominich
2012/06/28 00:34:32
shouldn't be disabled any more?
| |
1638 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1675 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
1639 DISABLED_PrerenderPageNavigateFragment) { | 1676 DISABLED_PrerenderPageNavigateFragment) { |
1640 PrerenderTestURL("files/prerender/prerender_fragment.html", | 1677 PrerenderTestURL("files/prerender/prerender_fragment.html", |
1641 FINAL_STATUS_FRAGMENT_MISMATCH, | 1678 FINAL_STATUS_APP_TERMINATING, |
1642 1); | 1679 1); |
1643 NavigateToURL("files/prerender/prerender_fragment.html#fragment"); | 1680 NavigateToURL("files/prerender/prerender_fragment.html#fragment"); |
1644 } | 1681 } |
1645 | 1682 |
1646 // Checks that we correctly use a prerendered page when we prerender a fragment | 1683 // Checks that we correctly use a prerendered page when we prerender a fragment |
1647 // but navigate to the main page. | 1684 // but navigate to the main page. |
1648 // http://crbug.com/83901 | 1685 // http://crbug.com/83901 |
1649 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1686 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
dominich
2012/06/28 00:34:32
shouldn't be disabled any more?
| |
1650 DISABLED_PrerenderFragmentNavigatePage) { | 1687 DISABLED_PrerenderFragmentNavigatePage) { |
1651 PrerenderTestURL("files/prerender/prerender_fragment.html#fragment", | 1688 PrerenderTestURL("files/prerender/prerender_fragment.html#fragment", |
1652 FINAL_STATUS_FRAGMENT_MISMATCH, | 1689 FINAL_STATUS_APP_TERMINATING, |
1653 1); | 1690 1); |
1654 NavigateToURL("files/prerender/prerender_fragment.html"); | 1691 NavigateToURL("files/prerender/prerender_fragment.html"); |
1655 } | 1692 } |
1656 | 1693 |
1657 // Checks that we correctly use a prerendered page when we prerender a fragment | 1694 // Checks that we correctly use a prerendered page when we prerender a fragment |
1658 // but navigate to a different fragment on the same page. | 1695 // but navigate to a different fragment on the same page. |
1659 // DISABLED: http://crbug.com/84154 | 1696 // DISABLED: http://crbug.com/84154 |
1660 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1697 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
dominich
2012/06/28 00:34:32
shouldn't be disabled any more?
| |
1661 DISABLED_PrerenderFragmentNavigateFragment) { | 1698 DISABLED_PrerenderFragmentNavigateFragment) { |
1662 PrerenderTestURL("files/prerender/prerender_fragment.html#other_fragment", | 1699 PrerenderTestURL("files/prerender/prerender_fragment.html#other_fragment", |
1663 FINAL_STATUS_FRAGMENT_MISMATCH, | 1700 FINAL_STATUS_APP_TERMINATING, |
1664 1); | 1701 1); |
1665 NavigateToURL("files/prerender/prerender_fragment.html#fragment"); | 1702 NavigateToURL("files/prerender/prerender_fragment.html#fragment"); |
1666 } | 1703 } |
1667 | 1704 |
1668 // Checks that we correctly use a prerendered page when the page uses a client | 1705 // Checks that we correctly use a prerendered page when the page uses a client |
1669 // redirect to refresh from a fragment on the same page. | 1706 // redirect to refresh from a fragment on the same page. |
1670 // http://crbug.com/83901 | 1707 // http://crbug.com/83901 |
1671 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1708 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
dominich
2012/06/28 00:34:32
shouldn't be disabled any more?
| |
1672 DISABLED_PrerenderClientRedirectFromFragment) { | 1709 DISABLED_PrerenderClientRedirectFromFragment) { |
1673 PrerenderTestURL( | 1710 PrerenderTestURL( |
1674 CreateClientRedirect("files/prerender/prerender_fragment.html#fragment"), | 1711 CreateClientRedirect("files/prerender/prerender_fragment.html#fragment"), |
1675 FINAL_STATUS_FRAGMENT_MISMATCH, | 1712 FINAL_STATUS_APP_TERMINATING, |
1676 2); | 1713 2); |
1677 NavigateToURL("files/prerender/prerender_fragment.html"); | 1714 NavigateToURL("files/prerender/prerender_fragment.html"); |
1678 } | 1715 } |
1679 | 1716 |
1680 // Checks that we correctly use a prerendered page when the page uses a client | 1717 // Checks that we correctly use a prerendered page when the page uses a client |
1681 // redirect to refresh to a fragment on the same page. | 1718 // redirect to refresh to a fragment on the same page. |
1682 // DISABLED: http://crbug.com/84154 | 1719 // DISABLED: http://crbug.com/84154 |
1683 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1720 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
dominich
2012/06/28 00:34:32
shouldn't be disabled any more?
| |
1684 DISABLED_PrerenderClientRedirectToFragment) { | 1721 DISABLED_PrerenderClientRedirectToFragment) { |
1685 PrerenderTestURL( | 1722 PrerenderTestURL( |
1686 CreateClientRedirect("files/prerender/prerender_fragment.html"), | 1723 CreateClientRedirect("files/prerender/prerender_fragment.html"), |
1687 FINAL_STATUS_FRAGMENT_MISMATCH, | 1724 FINAL_STATUS_APP_TERMINATING, |
1688 2); | 1725 2); |
1689 NavigateToURL("files/prerender/prerender_fragment.html#fragment"); | 1726 NavigateToURL("files/prerender/prerender_fragment.html#fragment"); |
1690 } | 1727 } |
1691 | 1728 |
1692 // Checks that we correctly use a prerendered page when the page uses JS to set | 1729 // Checks that we correctly use a prerendered page when the page uses JS to set |
1693 // the window.location.hash to a fragment on the same page. | 1730 // the window.location.hash to a fragment on the same page. |
1694 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1731 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
1695 PrerenderPageChangeFragmentLocationHash) { | 1732 PrerenderPageChangeFragmentLocationHash) { |
1696 PrerenderTestURL("files/prerender/prerender_fragment_location_hash.html", | 1733 PrerenderTestURL("files/prerender/prerender_fragment_location_hash.html", |
1697 FINAL_STATUS_USED, | 1734 FINAL_STATUS_USED, |
1698 1); | 1735 1); |
1699 NavigateToURL("files/prerender/prerender_fragment_location_hash.html"); | 1736 NavigateToURL("files/prerender/prerender_fragment_location_hash.html"); |
1700 } | 1737 } |
1701 | 1738 |
1702 // Checks that prerendering a PNG works correctly. | 1739 // Checks that preren a PNG works correctly. |
dominich
2012/06/28 00:34:32
an accidental s/dering//g ?
| |
1703 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderImagePng) { | 1740 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderImagePng) { |
1704 DisableJavascriptCalls(); | 1741 DisableJavascriptCalls(); |
1705 PrerenderTestURL("files/prerender/image.png", FINAL_STATUS_USED, 1); | 1742 PrerenderTestURL("files/prerender/image.png", FINAL_STATUS_USED, 1); |
1706 NavigateToDestURL(); | 1743 NavigateToDestURL(); |
1707 } | 1744 } |
1708 | 1745 |
1709 // Checks that prerendering a JPG works correctly. | 1746 // Checks that prerendering a JPG works correctly. |
1710 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderImageJpeg) { | 1747 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderImageJpeg) { |
1711 DisableJavascriptCalls(); | 1748 DisableJavascriptCalls(); |
1712 PrerenderTestURL("files/prerender/image.jpeg", FINAL_STATUS_USED, 1); | 1749 PrerenderTestURL("files/prerender/image.jpeg", FINAL_STATUS_USED, 1); |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1839 PrerenderTestURL("files/prerender/prerender_print.html", | 1876 PrerenderTestURL("files/prerender/prerender_print.html", |
1840 FINAL_STATUS_WINDOW_PRINT, | 1877 FINAL_STATUS_WINDOW_PRINT, |
1841 1); | 1878 1); |
1842 } | 1879 } |
1843 | 1880 |
1844 // Checks that if a page is opened in a new window by javascript and both the | 1881 // Checks that if a page is opened in a new window by javascript and both the |
1845 // pages are in the same domain, the prerendered page is not used. | 1882 // pages are in the same domain, the prerendered page is not used. |
1846 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1883 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
1847 PrerenderSameDomainWindowOpenerWindowOpen) { | 1884 PrerenderSameDomainWindowOpenerWindowOpen) { |
1848 PrerenderTestURL("files/prerender/prerender_page.html", | 1885 PrerenderTestURL("files/prerender/prerender_page.html", |
1849 FINAL_STATUS_WINDOW_OPENER, | 1886 FINAL_STATUS_APP_TERMINATING, |
dominich
2012/06/28 00:34:32
this is surprising. we still want to cancel on WIN
| |
1850 1); | 1887 1); |
1851 OpenDestURLViaWindowOpen(); | 1888 OpenDestURLViaWindowOpen(); |
1852 } | 1889 } |
1853 | 1890 |
1854 // Checks that if a page is opened due to click on a href with target="_blank" | 1891 // Checks that if a page is opened due to click on a href with target="_blank" |
1855 // and both pages are in the same domain the prerendered page is not used. | 1892 // and both pages are in the same domain the prerendered page is not used. |
1856 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1893 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
1857 PrerenderSameDomainWindowOpenerClickTarget) { | 1894 PrerenderSameDomainWindowOpenerClickTarget) { |
1858 PrerenderTestURL("files/prerender/prerender_page.html", | 1895 PrerenderTestURL("files/prerender/prerender_page.html", |
1859 FINAL_STATUS_WINDOW_OPENER, | 1896 FINAL_STATUS_APP_TERMINATING, |
dominich
2012/06/28 00:34:32
ditto
| |
1860 1); | 1897 1); |
1861 OpenDestURLViaClickTarget(); | 1898 OpenDestURLViaClickTarget(); |
1862 } | 1899 } |
1863 | 1900 |
1864 // Checks that a top-level page which would normally request an SSL client | 1901 // Checks that a top-level page which would normally request an SSL client |
1865 // certificate will never be seen since it's an https top-level resource. | 1902 // certificate will never be seen since it's an https top-level resource. |
1866 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertTopLevel) { | 1903 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertTopLevel) { |
1867 net::TestServer::HTTPSOptions https_options; | 1904 net::TestServer::HTTPSOptions https_options; |
1868 https_options.request_client_certificate = true; | 1905 https_options.request_client_certificate = true; |
1869 net::TestServer https_server(https_options, | 1906 net::TestServer https_server(https_options, |
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2132 PrerenderTestURL("files/prerender/prerender_page_with_link.html", | 2169 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
2133 FINAL_STATUS_USED, | 2170 FINAL_STATUS_USED, |
2134 1); | 2171 1); |
2135 OpenDestURLViaClick(); | 2172 OpenDestURLViaClick(); |
2136 NavigateToNextPageAfterPrerender(); | 2173 NavigateToNextPageAfterPrerender(); |
2137 GoBackToPrerender(); | 2174 GoBackToPrerender(); |
2138 } | 2175 } |
2139 | 2176 |
2140 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNewWindow) { | 2177 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNewWindow) { |
2141 PrerenderTestURL("files/prerender/prerender_page_with_link.html", | 2178 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
2142 FINAL_STATUS_SESSION_STORAGE_NAMESPACE_MISMATCH, | 2179 FINAL_STATUS_APP_TERMINATING, |
2143 1); | 2180 1); |
2144 OpenDestURLViaClickNewWindow(); | 2181 OpenDestURLViaClickNewWindow(); |
2145 } | 2182 } |
2146 | 2183 |
2147 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNewForegroundTab) { | 2184 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNewForegroundTab) { |
2148 PrerenderTestURL("files/prerender/prerender_page_with_link.html", | 2185 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
2149 FINAL_STATUS_SESSION_STORAGE_NAMESPACE_MISMATCH, | 2186 FINAL_STATUS_APP_TERMINATING, |
2150 1); | 2187 1); |
2151 OpenDestURLViaClickNewForegroundTab(); | 2188 OpenDestURLViaClickNewForegroundTab(); |
2152 } | 2189 } |
2153 | 2190 |
2154 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNewBackgroundTab) { | 2191 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClickNewBackgroundTab) { |
2155 PrerenderTestURL("files/prerender/prerender_page_with_link.html", | 2192 PrerenderTestURL("files/prerender/prerender_page_with_link.html", |
2156 FINAL_STATUS_SESSION_STORAGE_NAMESPACE_MISMATCH, | 2193 FINAL_STATUS_APP_TERMINATING, |
2157 1); | 2194 1); |
2158 OpenDestURLViaClickNewBackgroundTab(); | 2195 OpenDestURLViaClickNewBackgroundTab(); |
2159 } | 2196 } |
2160 | 2197 |
2161 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 2198 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
2162 NavigateToPrerenderedPageWhenDevToolsAttached) { | 2199 NavigateToPrerenderedPageWhenDevToolsAttached) { |
2163 DisableJavascriptCalls(); | 2200 DisableJavascriptCalls(); |
2164 WebContents* web_contents = current_browser()->GetActiveWebContents(); | 2201 WebContents* web_contents = current_browser()->GetActiveWebContents(); |
2165 DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost( | 2202 DevToolsAgentHost* agent = DevToolsAgentHostRegistry::GetDevToolsAgentHost( |
2166 web_contents->GetRenderViewHost()); | 2203 web_contents->GetRenderViewHost()); |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2251 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLReferrerPolicy) { | 2288 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLReferrerPolicy) { |
2252 set_use_https_src(true); | 2289 set_use_https_src(true); |
2253 set_loader_path("files/prerender/prerender_loader_with_referrer_policy.html"); | 2290 set_loader_path("files/prerender/prerender_loader_with_referrer_policy.html"); |
2254 PrerenderTestURL("files/prerender/prerender_referrer_policy.html", | 2291 PrerenderTestURL("files/prerender/prerender_referrer_policy.html", |
2255 FINAL_STATUS_USED, | 2292 FINAL_STATUS_USED, |
2256 1); | 2293 1); |
2257 NavigateToDestURL(); | 2294 NavigateToDestURL(); |
2258 } | 2295 } |
2259 | 2296 |
2260 } // namespace prerender | 2297 } // namespace prerender |
OLD | NEW |