diff options
Diffstat (limited to 'chrome/browser')
22 files changed, 179 insertions, 89 deletions
diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc index b69bcd8..694d214 100644 --- a/chrome/browser/browser_main.cc +++ b/chrome/browser/browser_main.cc @@ -479,27 +479,32 @@ void BrowserMainParts::PrefetchAndPrerenderFieldTrial() { trial_grp == yes_prefetch_grp); // There is currently no prerendering field trial. - PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_DISABLED); + prerender::PrerenderManager::SetMode( + prerender::PrerenderManager::PRERENDER_MODE_DISABLED); break; } case PRERENDER_OPTION_DISABLED: ResourceDispatcherHost::set_is_prefetch_enabled(false); - PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_DISABLED); + prerender::PrerenderManager::SetMode( + prerender::PrerenderManager::PRERENDER_MODE_DISABLED); break; case PRERENDER_OPTION_ENABLED: ResourceDispatcherHost::set_is_prefetch_enabled(true); - PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_ENABLED); + prerender::PrerenderManager::SetMode( + prerender::PrerenderManager::PRERENDER_MODE_ENABLED); break; case PRERENDER_OPTION_PREFETCH_ONLY: ResourceDispatcherHost::set_is_prefetch_enabled(true); - PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_DISABLED); + prerender::PrerenderManager::SetMode( + prerender::PrerenderManager::PRERENDER_MODE_DISABLED); break; default: NOTREACHED(); } - UMA_HISTOGRAM_ENUMERATION("Prerender.Sessions", PrerenderManager::GetMode(), - PrerenderManager::PRERENDER_MODE_MAX); + UMA_HISTOGRAM_ENUMERATION("Prerender.Sessions", + prerender::PrerenderManager::GetMode(), + prerender::PrerenderManager::PRERENDER_MODE_MAX); } // If neither --enable-connect-backup-jobs or --disable-connect-backup-jobs is diff --git a/chrome/browser/net/chrome_url_request_context.h b/chrome/browser/net/chrome_url_request_context.h index 494bf50..42760a1 100644 --- a/chrome/browser/net/chrome_url_request_context.h +++ b/chrome/browser/net/chrome_url_request_context.h @@ -99,7 +99,7 @@ class ChromeURLRequestContext : public net::URLRequestContext { return extension_io_event_router_; } - PrerenderManager* prerender_manager() { + prerender::PrerenderManager* prerender_manager() { return prerender_manager_.get(); } @@ -168,7 +168,7 @@ class ChromeURLRequestContext : public net::URLRequestContext { void set_extension_io_event_router(ExtensionIOEventRouter* router) { extension_io_event_router_ = router; } - void set_prerender_manager(PrerenderManager* prerender_manager) { + void set_prerender_manager(prerender::PrerenderManager* prerender_manager) { prerender_manager_ = prerender_manager; } @@ -193,7 +193,7 @@ class ChromeURLRequestContext : public net::URLRequestContext { // TODO(aa): This should use chrome/common/extensions/extension_set.h. scoped_refptr<ExtensionInfoMap> extension_info_map_; scoped_refptr<ExtensionIOEventRouter> extension_io_event_router_; - scoped_refptr<PrerenderManager> prerender_manager_; + scoped_refptr<prerender::PrerenderManager> prerender_manager_; scoped_ptr<ChromeURLDataManagerBackend> chrome_url_data_manager_backend_; bool is_off_the_record_; @@ -356,7 +356,7 @@ class ChromeURLRequestContextFactory { scoped_refptr<fileapi::FileSystemContext> file_system_context_; scoped_refptr<ExtensionInfoMap> extension_info_map_; scoped_refptr<ExtensionIOEventRouter> extension_io_event_router_; - scoped_refptr<PrerenderManager> prerender_manager_; + scoped_refptr<prerender::PrerenderManager> prerender_manager_; FilePath profile_dir_path_; diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc index c31817e..f946e03 100644 --- a/chrome/browser/prerender/prerender_browsertest.cc +++ b/chrome/browser/prerender/prerender_browsertest.cc @@ -26,6 +26,8 @@ // DidDisplayPass() is called, and returns true if the page behaved as it // should while being displayed. +namespace prerender { + namespace { // PrerenderContents that stops the UI message loop on DidStopLoading(). @@ -34,7 +36,7 @@ class TestPrerenderContents : public PrerenderContents { TestPrerenderContents( PrerenderManager* prerender_manager, Profile* profile, const GURL& url, const std::vector<GURL>& alias_urls, - PrerenderContents::FinalStatus expected_final_status) + FinalStatus expected_final_status) : PrerenderContents(prerender_manager, profile, url, alias_urls), did_finish_loading_(false), expected_final_status_(expected_final_status) { @@ -61,14 +63,14 @@ class TestPrerenderContents : public PrerenderContents { private: bool did_finish_loading_; - PrerenderContents::FinalStatus expected_final_status_; + FinalStatus expected_final_status_; }; // PrerenderManager that uses TestPrerenderContents. class WaitForLoadPrerenderContentsFactory : public PrerenderContents::Factory { public: explicit WaitForLoadPrerenderContentsFactory( - PrerenderContents::FinalStatus expected_final_status) + FinalStatus expected_final_status) : expected_final_status_(expected_final_status) { } @@ -80,7 +82,7 @@ class WaitForLoadPrerenderContentsFactory : public PrerenderContents::Factory { } private: - PrerenderContents::FinalStatus expected_final_status_; + FinalStatus expected_final_status_; }; } // namespace @@ -106,7 +108,7 @@ class PrerenderBrowserTest : public InProcessBrowserTest { } void PrerenderTestURL(const std::string& html_file, - PrerenderContents::FinalStatus expected_final_status, + FinalStatus expected_final_status, int total_navigations) { ASSERT_TRUE(test_server()->Start()); @@ -152,7 +154,7 @@ class PrerenderBrowserTest : public InProcessBrowserTest { } switch (expected_final_status) { - case PrerenderContents::FINAL_STATUS_USED: { + case FINAL_STATUS_USED: { ASSERT_TRUE(prerender_contents != NULL); ASSERT_TRUE(prerender_contents->did_finish_loading()); @@ -201,7 +203,7 @@ class PrerenderBrowserTest : public InProcessBrowserTest { // navigation. IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPage) { PrerenderTestURL("prerender_page.html", - PrerenderContents::FINAL_STATUS_USED, 1); + FINAL_STATUS_USED, 1); NavigateToDestURL(); } @@ -210,7 +212,7 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPage) { IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderAlertBeforeOnload) { PrerenderTestURL( "prerender_alert_before_onload.html", - PrerenderContents::FINAL_STATUS_JAVASCRIPT_ALERT, 1); + FINAL_STATUS_JAVASCRIPT_ALERT, 1); } // Checks that the prerendering of a page is canceled correctly when a @@ -218,14 +220,14 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderAlertBeforeOnload) { IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderAlertAfterOnload) { PrerenderTestURL( "prerender_alert_after_onload.html", - PrerenderContents::FINAL_STATUS_JAVASCRIPT_ALERT, 1); + FINAL_STATUS_JAVASCRIPT_ALERT, 1); } // Checks that plugins are not loaded while a page is being preloaded, but // are loaded when the page is displayed. IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderDelayLoadPlugin) { PrerenderTestURL("plugin_delay_load.html", - PrerenderContents::FINAL_STATUS_USED, 1); + FINAL_STATUS_USED, 1); NavigateToDestURL(); } @@ -234,19 +236,20 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderDelayLoadPlugin) { // prerender successfully. IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHttpAuthentication) { PrerenderTestURL("prerender_http_auth_container.html", - PrerenderContents::FINAL_STATUS_AUTH_NEEDED, 1); + FINAL_STATUS_AUTH_NEEDED, 1); } // Checks that redirects work with prerendering. IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderRedirect) { PrerenderTestURL("prerender_redirect.html", - PrerenderContents::FINAL_STATUS_USED, 2); + FINAL_STATUS_USED, 2); NavigateToDestURL(); } // Checks that popups on a prerendered page cause cancellation. IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPopup) { PrerenderTestURL("prerender_popup.html", - PrerenderContents::FINAL_STATUS_CREATE_NEW_WINDOW, 1); + FINAL_STATUS_CREATE_NEW_WINDOW, 1); } +} // namespace prerender diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc index ac7555f..badfcbe 100644 --- a/chrome/browser/prerender/prerender_contents.cc +++ b/chrome/browser/prerender/prerender_contents.cc @@ -4,10 +4,10 @@ #include "chrome/browser/prerender/prerender_contents.h" -#include "base/metrics/histogram.h" #include "base/utf_string_conversions.h" #include "chrome/browser/background_contents_service.h" #include "chrome/browser/browsing_instance.h" +#include "chrome/browser/prerender/prerender_final_status.h" #include "chrome/browser/prerender/prerender_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/renderer_host/render_view_host.h" @@ -22,6 +22,8 @@ #include "chrome/common/render_messages_params.h" #include "ui/gfx/rect.h" +namespace prerender { + class PrerenderContentsFactoryImpl : public PrerenderContents::Factory { public: virtual PrerenderContents* CreatePrerenderContents( @@ -98,15 +100,13 @@ void PrerenderContents::set_final_status(FinalStatus final_status) { final_status_ = final_status; } -PrerenderContents::FinalStatus PrerenderContents::final_status() const { +FinalStatus PrerenderContents::final_status() const { return final_status_; } PrerenderContents::~PrerenderContents() { DCHECK(final_status_ != FINAL_STATUS_MAX); - UMA_HISTOGRAM_ENUMERATION("Prerender.FinalStatus", - final_status_, - FINAL_STATUS_MAX); + RecordFinalStatus(final_status_); if (!render_view_host_) // Will be null for unit tests. return; @@ -346,3 +346,5 @@ void PrerenderContents::Destroy(FinalStatus final_status) { set_final_status(final_status); delete this; } + +} // namespace prerender diff --git a/chrome/browser/prerender/prerender_contents.h b/chrome/browser/prerender/prerender_contents.h index 40b34dc..06ea194 100644 --- a/chrome/browser/prerender/prerender_contents.h +++ b/chrome/browser/prerender/prerender_contents.h @@ -10,6 +10,7 @@ #include <vector> #include "base/time.h" +#include "chrome/browser/prerender/prerender_final_status.h" #include "chrome/browser/renderer_host/render_view_host_delegate.h" #include "chrome/browser/tab_contents/render_view_host_delegate_helper.h" #include "chrome/browser/ui/app_modal_dialogs/js_modal_dialog.h" @@ -19,7 +20,6 @@ #include "webkit/glue/window_open_disposition.h" class TabContents; -class PrerenderManager; struct WebPreferences; struct ViewHostMsg_FrameNavigate_Params; @@ -27,6 +27,10 @@ namespace gfx { class Rect; } +namespace prerender { + +class PrerenderManager; + // This class is a peer of TabContents. It can host a renderer, but does not // have any visible display. Its navigation is not managed by a // NavigationController because is has no facility for navigating (other than @@ -37,22 +41,6 @@ class PrerenderContents : public RenderViewHostDelegate, public NotificationObserver, public JavaScriptAppModalDialogDelegate { public: - // FinalStatus indicates whether |this| was used, or why it was cancelled. - // NOTE: New values need to be appended, since they are used in histograms. - enum FinalStatus { - FINAL_STATUS_USED, - FINAL_STATUS_TIMED_OUT, - FINAL_STATUS_EVICTED, - FINAL_STATUS_MANAGER_SHUTDOWN, - FINAL_STATUS_CLOSED, - FINAL_STATUS_CREATE_NEW_WINDOW, - FINAL_STATUS_PROFILE_DESTROYED, - FINAL_STATUS_APP_TERMINATING, - FINAL_STATUS_JAVASCRIPT_ALERT, - FINAL_STATUS_AUTH_NEEDED, - FINAL_STATUS_MAX, - }; - // PrerenderContents::Create uses the currently registered Factory to create // the PrerenderContents. Factory is intended for testing. class Factory { @@ -252,4 +240,6 @@ class PrerenderContents : public RenderViewHostDelegate, DISALLOW_COPY_AND_ASSIGN(PrerenderContents); }; +} // prerender + #endif // CHROME_BROWSER_PRERENDER_PRERENDER_CONTENTS_H_ diff --git a/chrome/browser/prerender/prerender_final_status.cc b/chrome/browser/prerender/prerender_final_status.cc new file mode 100644 index 0000000..52dcdad --- /dev/null +++ b/chrome/browser/prerender/prerender_final_status.cc @@ -0,0 +1,18 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/prerender/prerender_final_status.h" + +#include "base/metrics/histogram.h" + +namespace prerender { + +void RecordFinalStatus(FinalStatus final_status) { + DCHECK(final_status != FINAL_STATUS_MAX); + UMA_HISTOGRAM_ENUMERATION("Prerender.FinalStatus", + final_status, + FINAL_STATUS_MAX); +} + +} // namespace prerender diff --git a/chrome/browser/prerender/prerender_final_status.h b/chrome/browser/prerender/prerender_final_status.h new file mode 100644 index 0000000..ab90f03 --- /dev/null +++ b/chrome/browser/prerender/prerender_final_status.h @@ -0,0 +1,31 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_PRERENDER_PRERENDER_FINAL_STATUS_H_ +#define CHROME_BROWSER_PRERENDER_PRERENDER_FINAL_STATUS_H_ + +namespace prerender { + +// FinalStatus indicates whether |this| was used, or why it was cancelled. +// NOTE: New values need to be appended, since they are used in histograms. +enum FinalStatus { + FINAL_STATUS_USED, + FINAL_STATUS_TIMED_OUT, + FINAL_STATUS_EVICTED, + FINAL_STATUS_MANAGER_SHUTDOWN, + FINAL_STATUS_CLOSED, + FINAL_STATUS_CREATE_NEW_WINDOW, + FINAL_STATUS_PROFILE_DESTROYED, + FINAL_STATUS_APP_TERMINATING, + FINAL_STATUS_JAVASCRIPT_ALERT, + FINAL_STATUS_AUTH_NEEDED, + FINAL_STATUS_HTTPS, + FINAL_STATUS_MAX, +}; + +void RecordFinalStatus(FinalStatus final_status); + +} // namespace prerender + +#endif // CHROME_BROWSER_PRERENDER_PRERENDER_FINAL_STATUS_H_ diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc index 6e28a2c..1ce9f84 100644 --- a/chrome/browser/prerender/prerender_manager.cc +++ b/chrome/browser/prerender/prerender_manager.cc @@ -11,11 +11,14 @@ #include "chrome/browser/browser_thread.h" #include "chrome/browser/fav_icon_helper.h" #include "chrome/browser/prerender/prerender_contents.h" +#include "chrome/browser/prerender/prerender_final_status.h" #include "chrome/browser/renderer_host/render_view_host.h" #include "chrome/browser/tab_contents/tab_contents.h" #include "chrome/browser/tab_contents/render_view_host_manager.h" #include "chrome/common/render_messages.h" +namespace prerender { + // static base::TimeTicks PrerenderManager::last_prefetch_seen_time_; @@ -65,8 +68,7 @@ PrerenderManager::~PrerenderManager() { while (prerender_list_.size() > 0) { PrerenderContentsData data = prerender_list_.front(); prerender_list_.pop_front(); - data.contents_->set_final_status( - PrerenderContents::FINAL_STATUS_MANAGER_SHUTDOWN); + data.contents_->set_final_status(FINAL_STATUS_MANAGER_SHUTDOWN); delete data.contents_; } } @@ -94,7 +96,7 @@ void PrerenderManager::AddPreload(const GURL& url, while (prerender_list_.size() > max_elements_) { data = prerender_list_.front(); prerender_list_.pop_front(); - data.contents_->set_final_status(PrerenderContents::FINAL_STATUS_EVICTED); + data.contents_->set_final_status(FINAL_STATUS_EVICTED); delete data.contents_; } } @@ -105,7 +107,7 @@ void PrerenderManager::DeleteOldEntries() { if (IsPrerenderElementFresh(data.start_time_)) return; prerender_list_.pop_front(); - data.contents_->set_final_status(PrerenderContents::FINAL_STATUS_TIMED_OUT); + data.contents_->set_final_status(FINAL_STATUS_TIMED_OUT); delete data.contents_; } } @@ -134,7 +136,7 @@ bool PrerenderManager::MaybeUsePreloadedPage(TabContents* tc, const GURL& url) { if (!pc->load_start_time().is_null()) RecordTimeUntilUsed(base::TimeTicks::Now() - pc->load_start_time()); - pc->set_final_status(PrerenderContents::FINAL_STATUS_USED); + pc->set_final_status(FINAL_STATUS_USED); RenderViewHost* rvh = pc->render_view_host(); pc->set_render_view_host(NULL); @@ -259,3 +261,5 @@ bool PrerenderManager::ShouldRecordWindowedPPLT() const { base::TimeTicks::Now() - last_prefetch_seen_time_; return elapsed_time <= base::TimeDelta::FromSeconds(kWindowedPPLTSeconds); } + +} // namespace prerender diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h index 6a62915..268f484 100644 --- a/chrome/browser/prerender/prerender_manager.h +++ b/chrome/browser/prerender/prerender_manager.h @@ -18,6 +18,8 @@ class Profile; class TabContents; +namespace prerender { + // PrerenderManager is responsible for initiating and keeping prerendered // views of webpages. class PrerenderManager : public base::RefCounted<PrerenderManager> { @@ -132,4 +134,6 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { DISALLOW_COPY_AND_ASSIGN(PrerenderManager); }; +} // prerender + #endif // CHROME_BROWSER_PRERENDER_PRERENDER_MANAGER_H_ diff --git a/chrome/browser/prerender/prerender_manager_unittest.cc b/chrome/browser/prerender/prerender_manager_unittest.cc index 10f7a00..1e032fd 100644 --- a/chrome/browser/prerender/prerender_manager_unittest.cc +++ b/chrome/browser/prerender/prerender_manager_unittest.cc @@ -9,6 +9,8 @@ #include "googleurl/src/gurl.h" #include "testing/gtest/include/gtest/gtest.h" +namespace prerender { + namespace { class DummyPrerenderContents : public PrerenderContents { @@ -73,7 +75,7 @@ class TestPrerenderManager : public PrerenderManager { virtual ~TestPrerenderManager() { if (next_pc()) { next_pc()->set_final_status( - PrerenderContents::FINAL_STATUS_MANAGER_SHUTDOWN); + FINAL_STATUS_MANAGER_SHUTDOWN); } } @@ -119,12 +121,12 @@ TEST_F(PrerenderManagerTest, FoundTest) { DummyPrerenderContents* pc = new DummyPrerenderContents(prerender_manager_.get(), url, - PrerenderContents::FINAL_STATUS_USED); + FINAL_STATUS_USED); prerender_manager_->SetNextPrerenderContents(pc); prerender_manager_->AddSimplePreload(url); EXPECT_TRUE(pc->has_started()); EXPECT_EQ(pc, prerender_manager_->GetEntry(url)); - pc->set_final_status(PrerenderContents::FINAL_STATUS_USED); + pc->set_final_status(FINAL_STATUS_USED); delete pc; } @@ -134,7 +136,7 @@ TEST_F(PrerenderManagerTest, DropSecondRequestTest) { GURL url("http://www.google.com/"); DummyPrerenderContents* pc = new DummyPrerenderContents(prerender_manager_.get(), url, - PrerenderContents::FINAL_STATUS_USED); + FINAL_STATUS_USED); DummyPrerenderContents* null = NULL; prerender_manager_->SetNextPrerenderContents(pc); prerender_manager_->AddSimplePreload(url); @@ -143,13 +145,13 @@ TEST_F(PrerenderManagerTest, DropSecondRequestTest) { DummyPrerenderContents* pc1 = new DummyPrerenderContents( prerender_manager_.get(), url, - PrerenderContents::FINAL_STATUS_MANAGER_SHUTDOWN); + FINAL_STATUS_MANAGER_SHUTDOWN); prerender_manager_->SetNextPrerenderContents(pc1); prerender_manager_->AddSimplePreload(url); EXPECT_EQ(pc1, prerender_manager_->next_pc()); EXPECT_FALSE(pc1->has_started()); EXPECT_EQ(pc, prerender_manager_->GetEntry(url)); - pc->set_final_status(PrerenderContents::FINAL_STATUS_USED); + pc->set_final_status(FINAL_STATUS_USED); delete pc; } @@ -158,7 +160,7 @@ TEST_F(PrerenderManagerTest, ExpireTest) { GURL url("http://www.google.com/"); DummyPrerenderContents* pc = new DummyPrerenderContents(prerender_manager_.get(), url, - PrerenderContents::FINAL_STATUS_TIMED_OUT); + FINAL_STATUS_TIMED_OUT); DummyPrerenderContents* null = NULL; prerender_manager_->SetNextPrerenderContents(pc); prerender_manager_->AddSimplePreload(url); @@ -175,7 +177,7 @@ TEST_F(PrerenderManagerTest, DropOldestRequestTest) { GURL url("http://www.google.com/"); DummyPrerenderContents* pc = new DummyPrerenderContents(prerender_manager_.get(), url, - PrerenderContents::FINAL_STATUS_EVICTED); + FINAL_STATUS_EVICTED); DummyPrerenderContents* null = NULL; prerender_manager_->SetNextPrerenderContents(pc); prerender_manager_->AddSimplePreload(url); @@ -184,14 +186,14 @@ TEST_F(PrerenderManagerTest, DropOldestRequestTest) { GURL url1("http://news.google.com/"); DummyPrerenderContents* pc1 = new DummyPrerenderContents(prerender_manager_.get(), url1, - PrerenderContents::FINAL_STATUS_USED); + FINAL_STATUS_USED); prerender_manager_->SetNextPrerenderContents(pc1); prerender_manager_->AddSimplePreload(url1); EXPECT_EQ(null, prerender_manager_->next_pc()); EXPECT_TRUE(pc1->has_started()); EXPECT_EQ(null, prerender_manager_->GetEntry(url)); EXPECT_EQ(pc1, prerender_manager_->GetEntry(url1)); - pc1->set_final_status(PrerenderContents::FINAL_STATUS_USED); + pc1->set_final_status(FINAL_STATUS_USED); delete pc1; } @@ -202,7 +204,7 @@ TEST_F(PrerenderManagerTest, TwoElementPrerenderTest) { GURL url("http://www.google.com/"); DummyPrerenderContents* pc = new DummyPrerenderContents(prerender_manager_.get(), url, - PrerenderContents::FINAL_STATUS_EVICTED); + FINAL_STATUS_EVICTED); DummyPrerenderContents* null = NULL; prerender_manager_->SetNextPrerenderContents(pc); prerender_manager_->AddSimplePreload(url); @@ -211,7 +213,7 @@ TEST_F(PrerenderManagerTest, TwoElementPrerenderTest) { GURL url1("http://news.google.com/"); DummyPrerenderContents* pc1 = new DummyPrerenderContents(prerender_manager_.get(), url1, - PrerenderContents::FINAL_STATUS_USED); + FINAL_STATUS_USED); prerender_manager_->SetNextPrerenderContents(pc1); prerender_manager_->AddSimplePreload(url1); EXPECT_EQ(null, prerender_manager_->next_pc()); @@ -219,7 +221,7 @@ TEST_F(PrerenderManagerTest, TwoElementPrerenderTest) { GURL url2("http://images.google.com/"); DummyPrerenderContents* pc2 = new DummyPrerenderContents(prerender_manager_.get(), url2, - PrerenderContents::FINAL_STATUS_USED); + FINAL_STATUS_USED); prerender_manager_->SetNextPrerenderContents(pc2); prerender_manager_->AddSimplePreload(url2); EXPECT_EQ(null, prerender_manager_->next_pc()); @@ -227,9 +229,9 @@ TEST_F(PrerenderManagerTest, TwoElementPrerenderTest) { EXPECT_EQ(null, prerender_manager_->GetEntry(url)); EXPECT_EQ(pc1, prerender_manager_->GetEntry(url1)); EXPECT_EQ(pc2, prerender_manager_->GetEntry(url2)); - pc1->set_final_status(PrerenderContents::FINAL_STATUS_USED); + pc1->set_final_status(FINAL_STATUS_USED); delete pc1; - pc2->set_final_status(PrerenderContents::FINAL_STATUS_USED); + pc2->set_final_status(FINAL_STATUS_USED); delete pc2; } @@ -243,7 +245,7 @@ TEST_F(PrerenderManagerTest, AliasURLTest) { alias_urls.push_back(alias_url2); DummyPrerenderContents* pc = new DummyPrerenderContents(prerender_manager_.get(), url, alias_urls, - PrerenderContents::FINAL_STATUS_USED); + FINAL_STATUS_USED); prerender_manager_->SetNextPrerenderContents(pc); prerender_manager_->AddSimplePreload(url); EXPECT_EQ(NULL, prerender_manager_->GetEntry(not_an_alias_url)); @@ -254,6 +256,8 @@ TEST_F(PrerenderManagerTest, AliasURLTest) { prerender_manager_->SetNextPrerenderContents(pc); prerender_manager_->AddSimplePreload(url); EXPECT_EQ(pc, prerender_manager_->GetEntry(url)); - pc->set_final_status(PrerenderContents::FINAL_STATUS_USED); + pc->set_final_status(FINAL_STATUS_USED); delete pc; } + +} // naemspace prerender diff --git a/chrome/browser/prerender/prerender_plt_recorder.cc b/chrome/browser/prerender/prerender_plt_recorder.cc index 60b5da9..f13c664 100644 --- a/chrome/browser/prerender/prerender_plt_recorder.cc +++ b/chrome/browser/prerender/prerender_plt_recorder.cc @@ -10,6 +10,8 @@ #include "chrome/browser/tab_contents/tab_contents.h" #include "chrome/common/render_messages.h" +namespace prerender { + PrerenderPLTRecorder::PrerenderPLTRecorder(TabContents* tab_contents) : tab_contents_(tab_contents), pplt_load_start_() { @@ -45,3 +47,5 @@ void PrerenderPLTRecorder::DidStopLoading() { // Reset the PPLT metric. pplt_load_start_ = base::TimeTicks(); } + +} // namespace prerender diff --git a/chrome/browser/prerender/prerender_plt_recorder.h b/chrome/browser/prerender/prerender_plt_recorder.h index 206fdf1..34179c0 100644 --- a/chrome/browser/prerender/prerender_plt_recorder.h +++ b/chrome/browser/prerender/prerender_plt_recorder.h @@ -18,6 +18,8 @@ class PrerenderContents; class Profile; class TabContents; +namespace prerender { + // PrerenderPLTRecorder is responsible for recording perceived pageload times // to compare PLT's with prerendering enabled and disabled. class PrerenderPLTRecorder : public TabContentsObserver { @@ -45,4 +47,6 @@ class PrerenderPLTRecorder : public TabContentsObserver { DISALLOW_COPY_AND_ASSIGN(PrerenderPLTRecorder); }; +} // prerender + #endif // CHROME_BROWSER_PRERENDER_PRERENDER_PLT_RECORDER_H_ diff --git a/chrome/browser/prerender/prerender_resource_handler.cc b/chrome/browser/prerender/prerender_resource_handler.cc index 64b5184..8a5e209 100644 --- a/chrome/browser/prerender/prerender_resource_handler.cc +++ b/chrome/browser/prerender/prerender_resource_handler.cc @@ -10,6 +10,8 @@ #include "net/http/http_response_headers.h" #include "net/url_request/url_request.h" +namespace prerender { + namespace { bool ShouldPrerender(const GURL& url, const ResourceResponse* response) { @@ -151,3 +153,5 @@ void PrerenderResourceHandler::StartPrerender(const GURL& url, DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); prerender_manager_->AddPreload(url, alias_urls); } + +} // namespace prerender diff --git a/chrome/browser/prerender/prerender_resource_handler.h b/chrome/browser/prerender/prerender_resource_handler.h index b4f191e..1d9e17a 100644 --- a/chrome/browser/prerender/prerender_resource_handler.h +++ b/chrome/browser/prerender/prerender_resource_handler.h @@ -17,6 +17,8 @@ namespace net { class URLRequest; } +namespace prerender { + // The PrerenderResourceHandler initiates prerendering of web pages // under the following conditions: // - The profile which initiated the request allows prerendering. @@ -92,4 +94,6 @@ class PrerenderResourceHandler : public ResourceHandler { DISALLOW_COPY_AND_ASSIGN(PrerenderResourceHandler); }; +} // namespace prerender + #endif // CHROME_BROWSER_PRERENDER_PRERENDER_RESOURCE_HANDLER_H_ diff --git a/chrome/browser/prerender/prerender_resource_handler_unittest.cc b/chrome/browser/prerender/prerender_resource_handler_unittest.cc index 6bc4c13..02d2f2d 100644 --- a/chrome/browser/prerender/prerender_resource_handler_unittest.cc +++ b/chrome/browser/prerender/prerender_resource_handler_unittest.cc @@ -7,6 +7,8 @@ #include "net/http/http_response_headers.h" #include "testing/gtest/include/gtest/gtest.h" +namespace prerender { + namespace { class MockResourceHandler : public ResourceHandler { @@ -180,4 +182,6 @@ TEST_F(PrerenderResourceHandlerTest, PrerenderRedirect) { EXPECT_EQ(2, static_cast<int>(alias_urls_.size())); } -} +} // namespace + +} // namespace prerender diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc index 2f1fb97..9815e4f 100644 --- a/chrome/browser/profiles/profile.cc +++ b/chrome/browser/profiles/profile.cc @@ -653,7 +653,7 @@ class OffTheRecordProfileImpl : public Profile, return pref_proxy_config_tracker_; } - virtual PrerenderManager* GetPrerenderManager() { + virtual prerender::PrerenderManager* GetPrerenderManager() { // We do not allow prerendering in OTR profiles at this point. // TODO(tburkard): Figure out if we want to support this, and how, at some // point in the future. diff --git a/chrome/browser/profiles/profile.h b/chrome/browser/profiles/profile.h index b1b8817..04fcfb9 100644 --- a/chrome/browser/profiles/profile.h +++ b/chrome/browser/profiles/profile.h @@ -22,6 +22,11 @@ class ProxyConfigServiceImpl; } #endif +namespace fileapi { +class FileSystemContext; +class SandboxedFileSystemContext; +} + namespace history { class TopSites; } @@ -35,12 +40,12 @@ namespace policy { class ProfilePolicyContext; } -namespace webkit_database { -class DatabaseTracker; +namespace prerender { +class PrerenderManager; } -namespace fileapi { -class FileSystemContext; +namespace webkit_database { +class DatabaseTracker; } class AutocompleteClassifier; @@ -78,7 +83,6 @@ class PersonalDataManager; class PinnedTabService; class PrefProxyConfigTracker; class PrefService; -class PrerenderManager; class ProfileSyncFactory; class ProfileSyncService; class ProfileSyncService; @@ -531,7 +535,7 @@ class Profile { // Returns the PrerenderManager used to prerender entire webpages for this // profile. - virtual PrerenderManager* GetPrerenderManager() = 0; + virtual prerender::PrerenderManager* GetPrerenderManager() = 0; // Returns whether it is a guest session. static bool IsGuestSession(); diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc index 0fde233..402b628 100644 --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc @@ -1499,10 +1499,10 @@ PrefProxyConfigTracker* ProfileImpl::GetProxyConfigTracker() { return pref_proxy_config_tracker_; } -PrerenderManager* ProfileImpl::GetPrerenderManager() { - if (!PrerenderManager::IsPrerenderingEnabled()) +prerender::PrerenderManager* ProfileImpl::GetPrerenderManager() { + if (!prerender::PrerenderManager::IsPrerenderingEnabled()) return NULL; if (!prerender_manager_) - prerender_manager_ = new PrerenderManager(this); + prerender_manager_ = new prerender::PrerenderManager(this); return prerender_manager_; } diff --git a/chrome/browser/profiles/profile_impl.h b/chrome/browser/profiles/profile_impl.h index d2b20f2..923375b 100644 --- a/chrome/browser/profiles/profile_impl.h +++ b/chrome/browser/profiles/profile_impl.h @@ -140,7 +140,7 @@ class ProfileImpl : public Profile, #endif // defined(OS_CHROMEOS) virtual PrefProxyConfigTracker* GetProxyConfigTracker(); - virtual PrerenderManager* GetPrerenderManager(); + virtual prerender::PrerenderManager* GetPrerenderManager(); // NotificationObserver implementation. virtual void Observe(NotificationType type, @@ -305,7 +305,7 @@ class ProfileImpl : public Profile, scoped_refptr<PrefProxyConfigTracker> pref_proxy_config_tracker_; - scoped_refptr<PrerenderManager> prerender_manager_; + scoped_refptr<prerender::PrerenderManager> prerender_manager_; scoped_ptr<ChromeURLDataManager> chrome_url_data_manager_; diff --git a/chrome/browser/renderer_host/resource_dispatcher_host.cc b/chrome/browser/renderer_host/resource_dispatcher_host.cc index 25548aa..c049ba4 100644 --- a/chrome/browser/renderer_host/resource_dispatcher_host.cc +++ b/chrome/browser/renderer_host/resource_dispatcher_host.cc @@ -129,7 +129,7 @@ bool ShouldServiceRequest(ChildProcessInfo::ProcessType process_type, return true; if (request_data.resource_type == ResourceType::PREFETCH) { - PrerenderManager::RecordPrefetchTagObserved(); + prerender::PrerenderManager::RecordPrefetchTagObserved(); if (!ResourceDispatcherHost::is_prefetch_enabled()) return false; } @@ -463,8 +463,10 @@ void ResourceDispatcherHost::BeginRequest( // be prerendered. This should be in front of the [a]syncResourceHandler, // but after the BufferedResourceHandler since it depends on the MIME // sniffing capabilities in the BufferedResourceHandler. - PrerenderResourceHandler* pre_handler = PrerenderResourceHandler::MaybeCreate( - *request, context, handler); + prerender::PrerenderResourceHandler* pre_handler = + prerender::PrerenderResourceHandler::MaybeCreate(*request, + context, + handler); if (pre_handler) handler = pre_handler; diff --git a/chrome/browser/tab_contents/tab_contents.cc b/chrome/browser/tab_contents/tab_contents.cc index 6d5a881..7ce24b3 100644 --- a/chrome/browser/tab_contents/tab_contents.cc +++ b/chrome/browser/tab_contents/tab_contents.cc @@ -368,7 +368,7 @@ TabContents::TabContents(Profile* profile, AddObserver(autofill_manager_.get()); autocomplete_history_manager_.reset(new AutocompleteHistoryManager(this)); AddObserver(autocomplete_history_manager_.get()); - prerender_plt_recorder_.reset(new PrerenderPLTRecorder(this)); + prerender_plt_recorder_.reset(new prerender::PrerenderPLTRecorder(this)); AddObserver(prerender_plt_recorder_.get()); AddObserver(&fav_icon_helper_); AddObserver(printing_.get()); @@ -3130,7 +3130,7 @@ void TabContents::CreateViewAndSetSizeForRVH(RenderViewHost* rvh) { } bool TabContents::MaybeUsePreloadedPage(const GURL& url) { - PrerenderManager* pm = profile()->GetPrerenderManager(); + prerender::PrerenderManager* pm = profile()->GetPrerenderManager(); if (pm != NULL) { if (pm->MaybeUsePreloadedPage(this, url)) return true; diff --git a/chrome/browser/tab_contents/tab_contents.h b/chrome/browser/tab_contents/tab_contents.h index 5118fc8..36f7343 100644 --- a/chrome/browser/tab_contents/tab_contents.h +++ b/chrome/browser/tab_contents/tab_contents.h @@ -49,6 +49,11 @@ namespace history { class HistoryAddPageArgs; } +namespace prerender { +class PrerenderManager; +class PrerenderPLTRecorder; +} + namespace printing { class PrintPreviewMessageHandler; class PrintViewManager; @@ -67,8 +72,6 @@ class LoadNotificationDetails; class OmniboxSearchHint; class PluginObserver; class Profile; -class PrerenderManager; -class PrerenderPLTRecorder; class RenderViewHost; class SessionStorageNamespace; class SiteInstance; @@ -747,7 +750,7 @@ class TabContents : public PageNavigator, friend class ExternalTabContainer; // Used to access RVH Delegates. - friend class PrerenderManager; + friend class prerender::PrerenderManager; // Message handlers. void OnDidStartProvisionalLoadForFrame(int64 frame_id, @@ -1072,7 +1075,7 @@ class TabContents : public PageNavigator, scoped_ptr<PluginObserver> plugin_observer_; // Prerender PageLoadTime Recorder. - scoped_ptr<PrerenderPLTRecorder> prerender_plt_recorder_; + scoped_ptr<prerender::PrerenderPLTRecorder> prerender_plt_recorder_; // TabContentsSSLHelper, lazily created. scoped_ptr<TabContentsSSLHelper> ssl_helper_; |