diff options
71 files changed, 232 insertions, 130 deletions
diff --git a/chrome/browser/automation/testing_automation_provider.cc b/chrome/browser/automation/testing_automation_provider.cc index 5aee9ee..96c52ec 100644 --- a/chrome/browser/automation/testing_automation_provider.cc +++ b/chrome/browser/automation/testing_automation_provider.cc @@ -1829,7 +1829,7 @@ void TestingAutomationProvider::SetBooleanPreference(int handle, void TestingAutomationProvider::GetShowingAppModalDialog(bool* showing_dialog, int* dialog_button) { AppModalDialog* active_dialog = - Singleton<AppModalDialogQueue>()->active_dialog(); + AppModalDialogQueue::GetInstance()->active_dialog(); if (!active_dialog) { *showing_dialog = false; *dialog_button = MessageBoxFlags::DIALOGBUTTON_NONE; @@ -1848,7 +1848,7 @@ void TestingAutomationProvider::ClickAppModalDialogButton(int button, *success = false; NativeAppModalDialog* native_dialog = - Singleton<AppModalDialogQueue>()->active_dialog()->native_dialog(); + AppModalDialogQueue::GetInstance()->active_dialog()->native_dialog(); if (native_dialog && (native_dialog->GetAppModalDialogButtons() & button) == button) { if ((button & MessageBoxFlags::DIALOGBUTTON_OK) == @@ -1880,7 +1880,7 @@ void TestingAutomationProvider::WaitForBrowserWindowCountToBecome( void TestingAutomationProvider::WaitForAppModalDialogToBeShown( IPC::Message* reply_message) { - if (Singleton<AppModalDialogQueue>()->HasActiveDialog()) { + if (AppModalDialogQueue::GetInstance()->HasActiveDialog()) { AutomationMsg_WaitForAppModalDialogToBeShown::WriteReplyParams( reply_message, true); Send(reply_message); diff --git a/chrome/browser/browser_about_handler.cc b/chrome/browser/browser_about_handler.cc index de02f04..d37a100 100644 --- a/chrome/browser/browser_about_handler.cc +++ b/chrome/browser/browser_about_handler.cc @@ -17,6 +17,7 @@ #include "base/metrics/stats_table.h" #include "base/path_service.h" #include "base/platform_thread.h" +#include "base/singleton.h" #include "base/stringprintf.h" #include "base/string_number_conversions.h" #include "base/string_piece.h" @@ -88,9 +89,14 @@ using base::Time; using base::TimeDelta; #if defined(USE_TCMALLOC) +// static +AboutTcmallocOutputs* AboutTcmallocOutputs::GetInstance() { + return Singleton<AboutTcmallocOutputs>::get(); +} + // Glue between the callback task and the method in the singleton. void AboutTcmallocRendererCallback(base::ProcessId pid, std::string output) { - Singleton<AboutTcmallocOutputs>::get()->RendererCallback(pid, output); + AboutTcmallocOutputs::GetInstance()->RendererCallback(pid, output); } #endif @@ -364,7 +370,7 @@ class AboutDnsHandler : public base::RefCountedThreadSafe<AboutDnsHandler> { std::string AboutTcmalloc(const std::string& query) { std::string data; AboutTcmallocOutputsType* outputs = - Singleton<AboutTcmallocOutputs>::get()->outputs(); + AboutTcmallocOutputs::GetInstance()->outputs(); // Display any stats for which we sent off requests the last time. data.append("<html><head><title>About tcmalloc</title></head><body>\n"); @@ -392,7 +398,7 @@ std::string AboutTcmalloc(const std::string& query) { char buffer[1024 * 32]; MallocExtension::instance()->GetStats(buffer, sizeof(buffer)); std::string browser("Browser"); - Singleton<AboutTcmallocOutputs>::get()->SetOutput(browser, buffer); + AboutTcmallocOutputs::GetInstance()->SetOutput(browser, buffer); RenderProcessHost::iterator it(RenderProcessHost::AllHostsIterator()); while (!it.IsAtEnd()) { it.GetCurrentValue()->Send(new ViewMsg_GetRendererTcmalloc); @@ -590,7 +596,7 @@ std::string AboutSandbox() { data.append(l10n_util::GetStringUTF8(IDS_ABOUT_SANDBOX_TITLE)); data.append("</h1>"); - const int status = Singleton<ZygoteHost>()->sandbox_status(); + const int status = ZygoteHost::GetInstance()->sandbox_status(); data.append("<table>"); @@ -831,7 +837,7 @@ AboutSource::AboutSource() BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(this))); } diff --git a/chrome/browser/browser_about_handler.h b/chrome/browser/browser_about_handler.h index de8f1bf..e0a0dbf 100644 --- a/chrome/browser/browser_about_handler.h +++ b/chrome/browser/browser_about_handler.h @@ -12,9 +12,9 @@ #include <string> #include "base/process.h" -#include "base/singleton.h" #include "base/string_util.h" +template <typename T> struct DefaultSingletonTraits; class GURL; class Profile; @@ -38,7 +38,8 @@ typedef std::map<std::string, std::string> AboutTcmallocOutputsType; class AboutTcmallocOutputs { public: - AboutTcmallocOutputs() {} + // Returns the singleton instance. + static AboutTcmallocOutputs* GetInstance(); AboutTcmallocOutputsType* outputs() { return &outputs_; } @@ -55,6 +56,8 @@ class AboutTcmallocOutputs { } private: + AboutTcmallocOutputs() {} + AboutTcmallocOutputsType outputs_; friend struct DefaultSingletonTraits<AboutTcmallocOutputs>; diff --git a/chrome/browser/browser_child_process_host.cc b/chrome/browser/browser_child_process_host.cc index 5cfd536..6ad0c44 100644 --- a/chrome/browser/browser_child_process_host.cc +++ b/chrome/browser/browser_child_process_host.cc @@ -6,11 +6,11 @@ #include "base/command_line.h" #include "base/file_path.h" +#include "base/lazy_instance.h" #include "base/logging.h" #include "base/metrics/histogram.h" #include "base/path_service.h" #include "base/process_util.h" -#include "base/singleton.h" #include "base/stl_util-inl.h" #include "base/string_util.h" #include "chrome/app/breakpad_mac.h" @@ -34,6 +34,8 @@ namespace { typedef std::list<BrowserChildProcessHost*> ChildProcessList; +static base::LazyInstance<ChildProcessList> g_child_process_list( + base::LINKER_INITIALIZED); // The NotificationTask is used to notify about plugin process connection/ // disconnection. It is needed because the notifications in the @@ -63,12 +65,12 @@ BrowserChildProcessHost::BrowserChildProcessHost( : Receiver(type, -1), ALLOW_THIS_IN_INITIALIZER_LIST(client_(this)), resource_dispatcher_host_(resource_dispatcher_host) { - Singleton<ChildProcessList>::get()->push_back(this); + g_child_process_list.Get().push_back(this); } BrowserChildProcessHost::~BrowserChildProcessHost() { - Singleton<ChildProcessList>::get()->remove(this); + g_child_process_list.Get().remove(this); if (resource_dispatcher_host_) resource_dispatcher_host_->CancelRequestsForProcess(id()); @@ -93,7 +95,7 @@ void BrowserChildProcessHost::SetCrashReporterCommandLine( // static void BrowserChildProcessHost::TerminateAll() { // Make a copy since the ChildProcessHost dtor mutates the original list. - ChildProcessList copy = *(Singleton<ChildProcessList>::get()); + ChildProcessList copy = g_child_process_list.Get(); STLDeleteElements(©); } @@ -130,7 +132,7 @@ bool BrowserChildProcessHost::Send(IPC::Message* msg) { } void BrowserChildProcessHost::ForceShutdown() { - Singleton<ChildProcessList>::get()->remove(this); + g_child_process_list.Get().remove(this); ChildProcessHost::ForceShutdown(); } @@ -169,7 +171,7 @@ bool BrowserChildProcessHost::InterceptMessageFromChild( if (!handled && (msg.type() == PluginProcessHostMsg_ShutdownRequest::ID)) { // Must remove the process from the list now, in case it gets used for a // new instance before our watcher tells us that the process terminated. - Singleton<ChildProcessList>::get()->remove(this); + g_child_process_list.Get().remove(this); } if (!msg_is_ok) base::KillProcess(handle(), ResultCodes::KILLED_BAD_MESSAGE, false); @@ -193,14 +195,14 @@ BrowserChildProcessHost::Iterator::Iterator() : all_(true), type_(UNKNOWN_PROCESS) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)) << "ChildProcessInfo::Iterator must be used on the IO thread."; - iterator_ = Singleton<ChildProcessList>::get()->begin(); + iterator_ = g_child_process_list.Get().begin(); } BrowserChildProcessHost::Iterator::Iterator(ProcessType type) : all_(false), type_(type) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)) << "ChildProcessInfo::Iterator must be used on the IO thread."; - iterator_ = Singleton<ChildProcessList>::get()->begin(); + iterator_ = g_child_process_list.Get().begin(); if (!Done() && (*iterator_)->type() != type_) ++(*this); } @@ -221,5 +223,5 @@ BrowserChildProcessHost* BrowserChildProcessHost::Iterator::operator++() { } bool BrowserChildProcessHost::Iterator::Done() { - return iterator_ == Singleton<ChildProcessList>::get()->end(); + return iterator_ == g_child_process_list.Get().end(); } diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc index 78173b4..a0bec57 100644 --- a/chrome/browser/browser_main.cc +++ b/chrome/browser/browser_main.cc @@ -1390,7 +1390,7 @@ int BrowserMain(const MainFunctionParams& parameters) { return ResultCodes::MACHINE_LEVEL_INSTALL_EXISTS; // Create the TranslateManager singleton. - Singleton<TranslateManager>::get(); + TranslateManager::GetInstance(); #if defined(OS_MACOSX) if (!parsed_command_line.HasSwitch(switches::kNoFirstRun)) { diff --git a/chrome/browser/browser_main_gtk.cc b/chrome/browser/browser_main_gtk.cc index 924bffd..ec73aaf 100644 --- a/chrome/browser/browser_main_gtk.cc +++ b/chrome/browser/browser_main_gtk.cc @@ -86,9 +86,9 @@ void BrowserMainPartsGtk::SetupSandbox() { sandbox_cmd = sandbox_binary; // Tickle the sandbox host and zygote host so they fork now. - RenderSandboxHostLinux* shost = Singleton<RenderSandboxHostLinux>::get(); + RenderSandboxHostLinux* shost = RenderSandboxHostLinux::GetInstance(); shost->Init(sandbox_cmd); - ZygoteHost* zhost = Singleton<ZygoteHost>::get(); + ZygoteHost* zhost = ZygoteHost::GetInstance(); zhost->Init(sandbox_cmd); } diff --git a/chrome/browser/browser_signin.cc b/chrome/browser/browser_signin.cc index e842eff..535dcd5 100644 --- a/chrome/browser/browser_signin.cc +++ b/chrome/browser/browser_signin.cc @@ -218,7 +218,7 @@ BrowserSignin::BrowserSignin(Profile* profile) BrowserSigninResourcesSource* source = new BrowserSigninResourcesSource(); BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - NewRunnableMethod(Singleton<ChromeURLDataManager>::get(), + NewRunnableMethod(ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(source))); } diff --git a/chrome/browser/child_process_launcher.cc b/chrome/browser/child_process_launcher.cc index f215084..2586826 100644 --- a/chrome/browser/child_process_launcher.cc +++ b/chrome/browser/child_process_launcher.cc @@ -115,12 +115,13 @@ class ChildProcessLauncher::Context base::GlobalDescriptors::Mapping mapping; mapping.push_back(std::pair<uint32_t, int>(kPrimaryIPCChannel, ipcfd)); const int crash_signal_fd = - Singleton<RendererCrashHandlerHostLinux>()->GetDeathSignalSocket(); + RendererCrashHandlerHostLinux::GetInstance()->GetDeathSignalSocket(); if (crash_signal_fd >= 0) { mapping.push_back(std::pair<uint32_t, int>(kCrashDumpSignal, crash_signal_fd)); } - handle = Singleton<ZygoteHost>()->ForkRenderer(cmd_line->argv(), mapping); + handle = ZygoteHost::GetInstance()->ForkRenderer(cmd_line->argv(), + mapping); } else // Fall through to the normal posix case below when we're not zygoting. #endif @@ -143,10 +144,10 @@ class ChildProcessLauncher::Context if (is_renderer || is_plugin) { int crash_signal_fd; if (is_renderer) { - crash_signal_fd = Singleton<RendererCrashHandlerHostLinux>()-> + crash_signal_fd = RendererCrashHandlerHostLinux::GetInstance()-> GetDeathSignalSocket(); } else { - crash_signal_fd = Singleton<PluginCrashHandlerHostLinux>()-> + crash_signal_fd = PluginCrashHandlerHostLinux::GetInstance()-> GetDeathSignalSocket(); } if (crash_signal_fd >= 0) { @@ -157,7 +158,7 @@ class ChildProcessLauncher::Context } if (is_renderer) { const int sandbox_fd = - Singleton<RenderSandboxHostLinux>()->GetRendererSocket(); + RenderSandboxHostLinux::GetInstance()->GetRendererSocket(); fds_to_map.push_back(std::make_pair( sandbox_fd, kSandboxIPCChannel + base::GlobalDescriptors::kBaseDescriptor)); @@ -253,7 +254,7 @@ class ChildProcessLauncher::Context if (zygote) { // If the renderer was created via a zygote, we have to proxy the reaping // through the zygote process. - Singleton<ZygoteHost>()->EnsureProcessTerminated(handle); + ZygoteHost::GetInstance()->EnsureProcessTerminated(handle); } else #endif // OS_LINUX { @@ -315,7 +316,8 @@ bool ChildProcessLauncher::DidProcessCrash() { base::ProcessHandle handle = context_->process_.handle(); #if defined(OS_LINUX) if (context_->zygote_) { - did_crash = Singleton<ZygoteHost>()->DidProcessCrash(handle, &child_exited); + did_crash = ZygoteHost::GetInstance()->DidProcessCrash(handle, + &child_exited); } else #endif { diff --git a/chrome/browser/chromeos/dom_ui/imageburner_ui.cc b/chrome/browser/chromeos/dom_ui/imageburner_ui.cc index 2dbb11e..c285163 100644 --- a/chrome/browser/chromeos/dom_ui/imageburner_ui.cc +++ b/chrome/browser/chromeos/dom_ui/imageburner_ui.cc @@ -610,7 +610,7 @@ ImageBurnUI::ImageBurnUI(TabContents* contents) : DOMUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/chromeos/dom_ui/keyboard_overlay_ui.cc b/chrome/browser/chromeos/dom_ui/keyboard_overlay_ui.cc index e2477aa9..6944195 100644 --- a/chrome/browser/chromeos/dom_ui/keyboard_overlay_ui.cc +++ b/chrome/browser/chromeos/dom_ui/keyboard_overlay_ui.cc @@ -295,7 +295,7 @@ KeyboardOverlayUI::KeyboardOverlayUI(TabContents* contents) BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/chromeos/dom_ui/login/login_ui.cc b/chrome/browser/chromeos/dom_ui/login/login_ui.cc index 50f81b4..f648edc 100644 --- a/chrome/browser/chromeos/dom_ui/login/login_ui.cc +++ b/chrome/browser/chromeos/dom_ui/login/login_ui.cc @@ -139,7 +139,7 @@ LoginUI::LoginUI(TabContents* contents) BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/chromeos/dom_ui/menu_ui.cc b/chrome/browser/chromeos/dom_ui/menu_ui.cc index f4f5036..298a8ed 100644 --- a/chrome/browser/chromeos/dom_ui/menu_ui.cc +++ b/chrome/browser/chromeos/dom_ui/menu_ui.cc @@ -535,7 +535,7 @@ MenuUI::MenuUI(TabContents* contents) : DOMUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(CreateDataSource()))); } @@ -548,7 +548,7 @@ MenuUI::MenuUI(TabContents* contents, ChromeURLDataManager::DataSource* source) BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(source))); } diff --git a/chrome/browser/chromeos/dom_ui/mobile_setup_ui.cc b/chrome/browser/chromeos/dom_ui/mobile_setup_ui.cc index bea45b1..f1e980d 100644 --- a/chrome/browser/chromeos/dom_ui/mobile_setup_ui.cc +++ b/chrome/browser/chromeos/dom_ui/mobile_setup_ui.cc @@ -1035,7 +1035,7 @@ MobileSetupUI::MobileSetupUI(TabContents* contents) : DOMUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/chromeos/dom_ui/network_menu_ui.cc b/chrome/browser/chromeos/dom_ui/network_menu_ui.cc index a9aa9c4..2973432 100644 --- a/chrome/browser/chromeos/dom_ui/network_menu_ui.cc +++ b/chrome/browser/chromeos/dom_ui/network_menu_ui.cc @@ -121,7 +121,7 @@ NetworkMenuUI::NetworkMenuUI(TabContents* contents) BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(theme))); } diff --git a/chrome/browser/chromeos/dom_ui/register_page_ui.cc b/chrome/browser/chromeos/dom_ui/register_page_ui.cc index 8357fbc..1778490 100644 --- a/chrome/browser/chromeos/dom_ui/register_page_ui.cc +++ b/chrome/browser/chromeos/dom_ui/register_page_ui.cc @@ -326,7 +326,7 @@ RegisterPageUI::RegisterPageUI(TabContents* contents) : DOMUI(contents){ BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/chromeos/dom_ui/system_info_ui.cc b/chrome/browser/chromeos/dom_ui/system_info_ui.cc index d9a70da..857c560 100644 --- a/chrome/browser/chromeos/dom_ui/system_info_ui.cc +++ b/chrome/browser/chromeos/dom_ui/system_info_ui.cc @@ -182,7 +182,7 @@ SystemInfoUI::SystemInfoUI(TabContents* contents) : DOMUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/crash_handler_host_linux.cc b/chrome/browser/crash_handler_host_linux.cc index 5474a47..196352a 100644 --- a/chrome/browser/crash_handler_host_linux.cc +++ b/chrome/browser/crash_handler_host_linux.cc @@ -19,6 +19,7 @@ #include "base/message_loop.h" #include "base/path_service.h" #include "base/rand_util.h" +#include "base/singleton.h" #include "base/string_util.h" #include "base/task.h" #include "base/thread.h" @@ -364,6 +365,11 @@ void PluginCrashHandlerHostLinux::SetProcessType() { process_type_ = "plugin"; } +// static +PluginCrashHandlerHostLinux* PluginCrashHandlerHostLinux::GetInstance() { + return Singleton<PluginCrashHandlerHostLinux>::get(); +} + RendererCrashHandlerHostLinux::RendererCrashHandlerHostLinux() { InitCrashUploaderThread(); } @@ -374,3 +380,8 @@ RendererCrashHandlerHostLinux::~RendererCrashHandlerHostLinux() { void RendererCrashHandlerHostLinux::SetProcessType() { process_type_ = "renderer"; } + +// static +RendererCrashHandlerHostLinux* RendererCrashHandlerHostLinux::GetInstance() { + return Singleton<RendererCrashHandlerHostLinux>::get(); +} diff --git a/chrome/browser/crash_handler_host_linux.h b/chrome/browser/crash_handler_host_linux.h index bc2214b..9ff5333 100644 --- a/chrome/browser/crash_handler_host_linux.h +++ b/chrome/browser/crash_handler_host_linux.h @@ -10,7 +10,8 @@ #include "base/message_loop.h" #include "base/scoped_ptr.h" -#include "base/singleton.h" + +template <typename T> struct DefaultSingletonTraits; namespace base { class Thread; @@ -79,6 +80,10 @@ class CrashHandlerHostLinux : public MessageLoopForIO::Watcher, }; class PluginCrashHandlerHostLinux : public CrashHandlerHostLinux { + public: + // Returns the singleton instance. + static PluginCrashHandlerHostLinux* GetInstance(); + private: friend struct DefaultSingletonTraits<PluginCrashHandlerHostLinux>; PluginCrashHandlerHostLinux(); @@ -92,6 +97,10 @@ class PluginCrashHandlerHostLinux : public CrashHandlerHostLinux { }; class RendererCrashHandlerHostLinux : public CrashHandlerHostLinux { + public: + // Returns the singleton instance. + static RendererCrashHandlerHostLinux* GetInstance(); + private: friend struct DefaultSingletonTraits<RendererCrashHandlerHostLinux>; RendererCrashHandlerHostLinux(); diff --git a/chrome/browser/crash_handler_host_linux_stub.cc b/chrome/browser/crash_handler_host_linux_stub.cc index 6835bc2..157d772 100644 --- a/chrome/browser/crash_handler_host_linux_stub.cc +++ b/chrome/browser/crash_handler_host_linux_stub.cc @@ -7,6 +7,8 @@ #include "chrome/browser/crash_handler_host_linux.h" +#include "base/singleton.h" + CrashHandlerHostLinux::CrashHandlerHostLinux() : process_socket_(-1), browser_socket_(-1) { @@ -30,8 +32,18 @@ PluginCrashHandlerHostLinux::PluginCrashHandlerHostLinux() { PluginCrashHandlerHostLinux::~PluginCrashHandlerHostLinux() { } +// static +PluginCrashHandlerHostLinux* PluginCrashHandlerHostLinux::GetInstance() { + return Singleton<PluginCrashHandlerHostLinux>::get(); +} + RendererCrashHandlerHostLinux::RendererCrashHandlerHostLinux() { } RendererCrashHandlerHostLinux::~RendererCrashHandlerHostLinux() { } + +// static +RendererCrashHandlerHostLinux* RendererCrashHandlerHostLinux::GetInstance() { + return Singleton<RendererCrashHandlerHostLinux>::get(); +} diff --git a/chrome/browser/cross_site_request_manager.cc b/chrome/browser/cross_site_request_manager.cc index 4104398..d12e9a4 100644 --- a/chrome/browser/cross_site_request_manager.cc +++ b/chrome/browser/cross_site_request_manager.cc @@ -4,6 +4,8 @@ #include "chrome/browser/cross_site_request_manager.h" +#include "base/singleton.h" + bool CrossSiteRequestManager::HasPendingCrossSiteRequest(int renderer_id, int render_view_id) { AutoLock lock(lock_); @@ -29,3 +31,8 @@ void CrossSiteRequestManager::SetHasPendingCrossSiteRequest(int renderer_id, CrossSiteRequestManager::CrossSiteRequestManager() {} CrossSiteRequestManager::~CrossSiteRequestManager() {} + +// static +CrossSiteRequestManager* CrossSiteRequestManager::GetInstance() { + return Singleton<CrossSiteRequestManager>::get(); +} diff --git a/chrome/browser/cross_site_request_manager.h b/chrome/browser/cross_site_request_manager.h index 84d07e9..6c90b24 100644 --- a/chrome/browser/cross_site_request_manager.h +++ b/chrome/browser/cross_site_request_manager.h @@ -11,7 +11,8 @@ #include "base/basictypes.h" #include "base/lock.h" -#include "base/singleton.h" + +template <typename T> struct DefaultSingletonTraits; // CrossSiteRequestManager is used to handle bookkeeping for cross-site // requests and responses between the UI and IO threads. Such requests involve @@ -22,6 +23,9 @@ // class CrossSiteRequestManager { public: + // Returns the singleton instance. + static CrossSiteRequestManager* GetInstance(); + // Returns whether the RenderViewHost specified by the given IDs currently // has a pending cross-site request. If so, we will have to delay the // response until the previous RenderViewHost runs its onunload handler. @@ -38,8 +42,6 @@ class CrossSiteRequestManager { friend struct DefaultSingletonTraits<CrossSiteRequestManager>; typedef std::set<std::pair<int, int> > RenderViewSet; - // Obtain an instance of CrossSiteRequestManager via - // Singleton<CrossSiteRequestManager>(). CrossSiteRequestManager(); ~CrossSiteRequestManager(); diff --git a/chrome/browser/dom_ui/bookmarks_ui.cc b/chrome/browser/dom_ui/bookmarks_ui.cc index c824f67..1875d45 100644 --- a/chrome/browser/dom_ui/bookmarks_ui.cc +++ b/chrome/browser/dom_ui/bookmarks_ui.cc @@ -51,7 +51,7 @@ BookmarksUI::BookmarksUI(TabContents* contents) : DOMUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/dom_ui/bug_report_ui.cc b/chrome/browser/dom_ui/bug_report_ui.cc index 74ac629..4d8bc83 100644 --- a/chrome/browser/dom_ui/bug_report_ui.cc +++ b/chrome/browser/dom_ui/bug_report_ui.cc @@ -511,7 +511,7 @@ void BugReportHandler::ClobberScreenshotsSource() { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(new DOMUIScreenshotSource(NULL)))); @@ -530,7 +530,7 @@ void BugReportHandler::SetupScreenshotsSource() { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(screenshot_source_))); } @@ -803,7 +803,7 @@ BugReportUI::BugReportUI(TabContents* tab) : HtmlDialogUI(tab) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/dom_ui/chrome_url_data_manager.cc b/chrome/browser/dom_ui/chrome_url_data_manager.cc index 2e6cec9..6153458 100644 --- a/chrome/browser/dom_ui/chrome_url_data_manager.cc +++ b/chrome/browser/dom_ui/chrome_url_data_manager.cc @@ -96,7 +96,7 @@ class URLRequestChromeFileJob : public URLRequestFileJob { void RegisterURLRequestChromeJob() { FilePath inspector_dir; if (PathService::Get(chrome::DIR_INSPECTOR, &inspector_dir)) { - Singleton<ChromeURLDataManager>()->AddFileSource( + ChromeURLDataManager::GetInstance()->AddFileSource( chrome::kChromeUIDevToolsHost, inspector_dir); } @@ -110,7 +110,7 @@ void RegisterURLRequestChromeJob() { void UnregisterURLRequestChromeJob() { FilePath inspector_dir; if (PathService::Get(chrome::DIR_INSPECTOR, &inspector_dir)) { - Singleton<ChromeURLDataManager>()->RemoveFileSource( + ChromeURLDataManager::GetInstance()->RemoveFileSource( chrome::kChromeUIDevToolsHost); } } @@ -158,8 +158,8 @@ bool ChromeURLDataManager::URLToFilePath(const GURL& url, URLToRequest(stripped_url, &source_name, &relative_path); FileSourceMap::const_iterator i( - Singleton<ChromeURLDataManager>()->file_sources_.find(source_name)); - if (i == Singleton<ChromeURLDataManager>()->file_sources_.end()) + ChromeURLDataManager::GetInstance()->file_sources_.find(source_name)); + if (i == ChromeURLDataManager::GetInstance()->file_sources_.end()) return false; // Check that |relative_path| is not an absolute path (otherwise AppendASCII() @@ -178,6 +178,11 @@ ChromeURLDataManager::ChromeURLDataManager() : next_request_id_(0) { } ChromeURLDataManager::~ChromeURLDataManager() { } +// static +ChromeURLDataManager* ChromeURLDataManager::GetInstance() { + return Singleton<ChromeURLDataManager>::get(); +} + void ChromeURLDataManager::AddDataSource(scoped_refptr<DataSource> source) { // TODO(jackson): A new data source with same name should not clobber the // existing one. @@ -287,7 +292,7 @@ void ChromeURLDataManager::DataSource::SendResponse( RefCountedMemory* bytes) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - NewRunnableMethod(Singleton<ChromeURLDataManager>::get(), + NewRunnableMethod(ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::DataAvailable, request_id, scoped_refptr<RefCountedMemory>(bytes))); } @@ -347,7 +352,7 @@ URLRequestChromeJob::URLRequestChromeJob(net::URLRequest* request) } URLRequestChromeJob::~URLRequestChromeJob() { - CHECK(!Singleton<ChromeURLDataManager>()->HasPendingJob(this)); + CHECK(!ChromeURLDataManager::GetInstance()->HasPendingJob(this)); } void URLRequestChromeJob::Start() { @@ -358,7 +363,7 @@ void URLRequestChromeJob::Start() { } void URLRequestChromeJob::Kill() { - Singleton<ChromeURLDataManager>()->RemoveRequest(this); + ChromeURLDataManager::GetInstance()->RemoveRequest(this); } bool URLRequestChromeJob::GetMimeType(std::string* mime_type) const { @@ -418,7 +423,8 @@ void URLRequestChromeJob::StartAsync() { if (!request_) return; - if (Singleton<ChromeURLDataManager>()->StartRequest(request_->url(), this)) { + if (ChromeURLDataManager::GetInstance()->StartRequest(request_->url(), + this)) { NotifyHeadersComplete(); } else { NotifyStartError(URLRequestStatus(URLRequestStatus::FAILED, diff --git a/chrome/browser/dom_ui/chrome_url_data_manager.h b/chrome/browser/dom_ui/chrome_url_data_manager.h index c6b6e76..709cdcb 100644 --- a/chrome/browser/dom_ui/chrome_url_data_manager.h +++ b/chrome/browser/dom_ui/chrome_url_data_manager.h @@ -9,6 +9,7 @@ #include <map> #include <string> +#include "base/singleton.h" #include "base/task.h" #include "base/ref_counted.h" @@ -32,8 +33,8 @@ class URLRequestJob; // it from the UI thread needs to go through an InvokeLater. class ChromeURLDataManager { public: - ChromeURLDataManager(); - ~ChromeURLDataManager(); + // Returns the singleton instance. + static ChromeURLDataManager* GetInstance(); typedef int RequestID; @@ -122,6 +123,10 @@ class ChromeURLDataManager { private: friend class URLRequestChromeJob; + friend struct DefaultSingletonTraits<ChromeURLDataManager>; + + ChromeURLDataManager(); + ~ChromeURLDataManager(); // Parse a URL into the components used to resolve its request. static void URLToRequest(const GURL& url, diff --git a/chrome/browser/dom_ui/conflicts_ui.cc b/chrome/browser/dom_ui/conflicts_ui.cc index f1e6261..8e2bcae 100644 --- a/chrome/browser/dom_ui/conflicts_ui.cc +++ b/chrome/browser/dom_ui/conflicts_ui.cc @@ -204,9 +204,9 @@ ConflictsUI::ConflictsUI(TabContents* contents) : DOMUI(contents) { // Set up the about:conflicts source. BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - NewRunnableMethod(Singleton<ChromeURLDataManager>::get(), - &ChromeURLDataManager::AddDataSource, - make_scoped_refptr(html_source))); + NewRunnableMethod(ChromeURLDataManager::GetInstance(), + &ChromeURLDataManager::AddDataSource, + make_scoped_refptr(html_source))); } // static diff --git a/chrome/browser/dom_ui/downloads_dom_handler.cc b/chrome/browser/dom_ui/downloads_dom_handler.cc index 919497b..a825c39 100644 --- a/chrome/browser/dom_ui/downloads_dom_handler.cc +++ b/chrome/browser/dom_ui/downloads_dom_handler.cc @@ -52,7 +52,7 @@ DownloadsDOMHandler::DownloadsDOMHandler(DownloadManager* dlm) BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(new FileIconSource()))); } diff --git a/chrome/browser/dom_ui/downloads_ui.cc b/chrome/browser/dom_ui/downloads_ui.cc index 3ce665a..9c033ea 100644 --- a/chrome/browser/dom_ui/downloads_ui.cc +++ b/chrome/browser/dom_ui/downloads_ui.cc @@ -136,9 +136,9 @@ DownloadsUI::DownloadsUI(TabContents* contents) : DOMUI(contents) { // Set up the chrome://downloads/ source. BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - NewRunnableMethod(Singleton<ChromeURLDataManager>::get(), - &ChromeURLDataManager::AddDataSource, - make_scoped_refptr(html_source))); + NewRunnableMethod(ChromeURLDataManager::GetInstance(), + &ChromeURLDataManager::AddDataSource, + make_scoped_refptr(html_source))); } // static diff --git a/chrome/browser/dom_ui/filebrowse_ui.cc b/chrome/browser/dom_ui/filebrowse_ui.cc index 6b7401b..764b310 100644 --- a/chrome/browser/dom_ui/filebrowse_ui.cc +++ b/chrome/browser/dom_ui/filebrowse_ui.cc @@ -422,7 +422,7 @@ DOMMessageHandler* FilebrowseHandler::Attach(DOMUI* dom_ui) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(new DOMUIFavIconSource(dom_ui->GetProfile())))); profile_ = dom_ui->GetProfile(); @@ -1129,7 +1129,7 @@ FileBrowseUI::FileBrowseUI(TabContents* contents) : HtmlDialogUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/dom_ui/flags_ui.cc b/chrome/browser/dom_ui/flags_ui.cc index 8198bbb..76d4bdd 100644 --- a/chrome/browser/dom_ui/flags_ui.cc +++ b/chrome/browser/dom_ui/flags_ui.cc @@ -183,9 +183,9 @@ FlagsUI::FlagsUI(TabContents* contents) : DOMUI(contents) { // Set up the about:flags source. BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - NewRunnableMethod(Singleton<ChromeURLDataManager>::get(), - &ChromeURLDataManager::AddDataSource, - make_scoped_refptr(html_source))); + NewRunnableMethod(ChromeURLDataManager::GetInstance(), + &ChromeURLDataManager::AddDataSource, + make_scoped_refptr(html_source))); } // static diff --git a/chrome/browser/dom_ui/history2_ui.cc b/chrome/browser/dom_ui/history2_ui.cc index 4f6867b..3e9f67e 100644 --- a/chrome/browser/dom_ui/history2_ui.cc +++ b/chrome/browser/dom_ui/history2_ui.cc @@ -126,7 +126,7 @@ DOMMessageHandler* BrowsingHistoryHandler2::Attach(DOMUI* dom_ui) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(new DOMUIFavIconSource(dom_ui->GetProfile())))); @@ -398,7 +398,7 @@ HistoryUI2::HistoryUI2(TabContents* contents) : DOMUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/dom_ui/history_ui.cc b/chrome/browser/dom_ui/history_ui.cc index e01accf..a90fcfc 100644 --- a/chrome/browser/dom_ui/history_ui.cc +++ b/chrome/browser/dom_ui/history_ui.cc @@ -126,7 +126,7 @@ DOMMessageHandler* BrowsingHistoryHandler::Attach(DOMUI* dom_ui) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(new DOMUIFavIconSource(dom_ui->GetProfile())))); @@ -386,7 +386,7 @@ HistoryUI::HistoryUI(TabContents* contents) : DOMUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/dom_ui/keyboard_ui.cc b/chrome/browser/dom_ui/keyboard_ui.cc index a935c84..3fba150 100644 --- a/chrome/browser/dom_ui/keyboard_ui.cc +++ b/chrome/browser/dom_ui/keyboard_ui.cc @@ -23,7 +23,7 @@ KeyboardUI::KeyboardUI(TabContents* contents) BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/dom_ui/mediaplayer_ui.cc b/chrome/browser/dom_ui/mediaplayer_ui.cc index 7a26000..2fb141c 100644 --- a/chrome/browser/dom_ui/mediaplayer_ui.cc +++ b/chrome/browser/dom_ui/mediaplayer_ui.cc @@ -212,7 +212,7 @@ DOMMessageHandler* MediaplayerHandler::Attach(DOMUI* dom_ui) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(new DOMUIFavIconSource(dom_ui->GetProfile())))); @@ -610,7 +610,7 @@ MediaplayerUI::MediaplayerUI(TabContents* contents) : DOMUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/dom_ui/most_visited_handler.cc b/chrome/browser/dom_ui/most_visited_handler.cc index fd27902..798a600 100644 --- a/chrome/browser/dom_ui/most_visited_handler.cc +++ b/chrome/browser/dom_ui/most_visited_handler.cc @@ -75,7 +75,7 @@ DOMMessageHandler* MostVisitedHandler::Attach(DOMUI* dom_ui) { new DOMUIThumbnailSource(dom_ui->GetProfile()); BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - NewRunnableMethod(Singleton<ChromeURLDataManager>::get(), + NewRunnableMethod(ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(thumbnail_src))); @@ -83,7 +83,7 @@ DOMMessageHandler* MostVisitedHandler::Attach(DOMUI* dom_ui) { new DOMUIFavIconSource(dom_ui->GetProfile()); BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - NewRunnableMethod(Singleton<ChromeURLDataManager>::get(), + NewRunnableMethod(ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(favicon_src))); diff --git a/chrome/browser/dom_ui/net_internals_ui.cc b/chrome/browser/dom_ui/net_internals_ui.cc index 35d1a44..8fa9e9b8 100644 --- a/chrome/browser/dom_ui/net_internals_ui.cc +++ b/chrome/browser/dom_ui/net_internals_ui.cc @@ -1027,7 +1027,7 @@ NetInternalsUI::NetInternalsUI(TabContents* contents) : DOMUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/dom_ui/new_tab_ui.cc b/chrome/browser/dom_ui/new_tab_ui.cc index f2f0196..3ac44e4 100644 --- a/chrome/browser/dom_ui/new_tab_ui.cc +++ b/chrome/browser/dom_ui/new_tab_ui.cc @@ -395,7 +395,7 @@ NewTabUI::NewTabUI(TabContents* contents) BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); @@ -442,7 +442,7 @@ void NewTabUI::InitializeCSSCaches() { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(theme))); } diff --git a/chrome/browser/dom_ui/options/browser_options_handler.cc b/chrome/browser/dom_ui/options/browser_options_handler.cc index c8e7b18..483e640 100644 --- a/chrome/browser/dom_ui/options/browser_options_handler.cc +++ b/chrome/browser/dom_ui/options/browser_options_handler.cc @@ -115,7 +115,7 @@ void BrowserOptionsHandler::Initialize() { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(new DOMUIFavIconSource(dom_ui_->GetProfile())))); diff --git a/chrome/browser/dom_ui/options/options_ui.cc b/chrome/browser/dom_ui/options/options_ui.cc index 82e9cb1..5a38d84 100644 --- a/chrome/browser/dom_ui/options/options_ui.cc +++ b/chrome/browser/dom_ui/options/options_ui.cc @@ -192,7 +192,7 @@ OptionsUI::OptionsUI(TabContents* contents) : DOMUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); @@ -201,7 +201,7 @@ OptionsUI::OptionsUI(TabContents* contents) : DOMUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(theme))); } diff --git a/chrome/browser/dom_ui/plugins_ui.cc b/chrome/browser/dom_ui/plugins_ui.cc index 8c37602..94e12b1 100644 --- a/chrome/browser/dom_ui/plugins_ui.cc +++ b/chrome/browser/dom_ui/plugins_ui.cc @@ -316,9 +316,9 @@ PluginsUI::PluginsUI(TabContents* contents) : DOMUI(contents) { // Set up the chrome://plugins/ source. BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - NewRunnableMethod(Singleton<ChromeURLDataManager>::get(), - &ChromeURLDataManager::AddDataSource, - make_scoped_refptr(html_source))); + NewRunnableMethod(ChromeURLDataManager::GetInstance(), + &ChromeURLDataManager::AddDataSource, + make_scoped_refptr(html_source))); } diff --git a/chrome/browser/dom_ui/print_preview_ui.cc b/chrome/browser/dom_ui/print_preview_ui.cc index 91032a7..f0f7656 100644 --- a/chrome/browser/dom_ui/print_preview_ui.cc +++ b/chrome/browser/dom_ui/print_preview_ui.cc @@ -140,7 +140,7 @@ PrintPreviewUI::PrintPreviewUI(TabContents* contents) : DOMUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(new PrintPreviewUIHTMLSource()))); } diff --git a/chrome/browser/dom_ui/remoting_ui.cc b/chrome/browser/dom_ui/remoting_ui.cc index 90ceb52..0bdb717 100644 --- a/chrome/browser/dom_ui/remoting_ui.cc +++ b/chrome/browser/dom_ui/remoting_ui.cc @@ -66,9 +66,9 @@ RemotingUI::RemotingUI(TabContents* contents) : DOMUI(contents) { // Set up the chrome://remoting source. BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - NewRunnableMethod(Singleton<ChromeURLDataManager>::get(), - &ChromeURLDataManager::AddDataSource, - make_scoped_refptr(html_source))); + NewRunnableMethod(ChromeURLDataManager::GetInstance(), + &ChromeURLDataManager::AddDataSource, + make_scoped_refptr(html_source))); } diff --git a/chrome/browser/dom_ui/shared_resources_data_source.cc b/chrome/browser/dom_ui/shared_resources_data_source.cc index 25a45cb..6ff8343 100644 --- a/chrome/browser/dom_ui/shared_resources_data_source.cc +++ b/chrome/browser/dom_ui/shared_resources_data_source.cc @@ -57,7 +57,7 @@ void SharedResourcesDataSource::Register() { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(source))); } diff --git a/chrome/browser/dom_ui/slideshow_ui.cc b/chrome/browser/dom_ui/slideshow_ui.cc index 5c66e0e..da8a807 100644 --- a/chrome/browser/dom_ui/slideshow_ui.cc +++ b/chrome/browser/dom_ui/slideshow_ui.cc @@ -153,7 +153,7 @@ DOMMessageHandler* SlideshowHandler::Attach(DOMUI* dom_ui) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(new DOMUIFavIconSource(dom_ui->GetProfile())))); profile_ = dom_ui->GetProfile(); @@ -288,7 +288,7 @@ SlideshowUI::SlideshowUI(TabContents* contents) : DOMUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/dom_ui/textfields_ui.cc b/chrome/browser/dom_ui/textfields_ui.cc index db4fb0c..a74f10d 100644 --- a/chrome/browser/dom_ui/textfields_ui.cc +++ b/chrome/browser/dom_ui/textfields_ui.cc @@ -70,7 +70,7 @@ TextfieldsUI::TextfieldsUI(TabContents* contents) : DOMUI(contents) { // Set up the chrome://textfields/ source. BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - NewRunnableMethod(Singleton<ChromeURLDataManager>::get(), - &ChromeURLDataManager::AddDataSource, - make_scoped_refptr(html_source))); + NewRunnableMethod(ChromeURLDataManager::GetInstance(), + &ChromeURLDataManager::AddDataSource, + make_scoped_refptr(html_source))); } diff --git a/chrome/browser/extensions/extension_function_dispatcher.cc b/chrome/browser/extensions/extension_function_dispatcher.cc index 1021c74..ec4b9d5 100644 --- a/chrome/browser/extensions/extension_function_dispatcher.cc +++ b/chrome/browser/extensions/extension_function_dispatcher.cc @@ -387,7 +387,7 @@ ExtensionFunctionDispatcher::ExtensionFunctionDispatcher( DOMUIFavIconSource* favicon_source = new DOMUIFavIconSource(profile_); BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - NewRunnableMethod(Singleton<ChromeURLDataManager>::get(), + NewRunnableMethod(ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(favicon_source))); } diff --git a/chrome/browser/extensions/extensions_ui.cc b/chrome/browser/extensions/extensions_ui.cc index 06f6c6c..990e093 100644 --- a/chrome/browser/extensions/extensions_ui.cc +++ b/chrome/browser/extensions/extensions_ui.cc @@ -943,7 +943,7 @@ ExtensionsUI::ExtensionsUI(TabContents* contents) : DOMUI(contents) { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, NewRunnableMethod( - Singleton<ChromeURLDataManager>::get(), + ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(html_source))); } diff --git a/chrome/browser/gpu_process_host.cc b/chrome/browser/gpu_process_host.cc index dd40b005..4f3958b 100644 --- a/chrome/browser/gpu_process_host.cc +++ b/chrome/browser/gpu_process_host.cc @@ -237,7 +237,7 @@ void GetViewXIDDispatcher(gfx::NativeViewId id, IPC::Message* reply_msg) { } void ReleaseXIDDispatcher(unsigned long xid) { - GtkNativeViewManager* manager = Singleton<GtkNativeViewManager>::get(); + GtkNativeViewManager* manager = GtkNativeViewManager::GetInstance(); manager->ReleasePermanentXID(xid); } diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc index 4f26fbd..f0462e5 100644 --- a/chrome/browser/gtk/browser_window_gtk.cc +++ b/chrome/browser/gtk/browser_window_gtk.cc @@ -1204,8 +1204,8 @@ void BrowserWindowGtk::ActiveWindowChanged(GdkWindow* active_window) { if (is_active && changed) { // If there's an app modal dialog (e.g., JS alert), try to redirect // the user's attention to the window owning the dialog. - if (Singleton<AppModalDialogQueue>()->HasActiveDialog()) { - Singleton<AppModalDialogQueue>()->ActivateModalDialog(); + if (AppModalDialogQueue::GetInstance()->HasActiveDialog()) { + AppModalDialogQueue::GetInstance()->ActivateModalDialog(); return; } } diff --git a/chrome/browser/memory_details.cc b/chrome/browser/memory_details.cc index b728543..cd72b25 100644 --- a/chrome/browser/memory_details.cc +++ b/chrome/browser/memory_details.cc @@ -102,8 +102,8 @@ void MemoryDetails::CollectChildInfoOnUIThread() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); #if defined(OS_LINUX) - const pid_t zygote_pid = Singleton<ZygoteHost>()->pid(); - const pid_t sandbox_helper_pid = Singleton<RenderSandboxHostLinux>()->pid(); + const pid_t zygote_pid = ZygoteHost::GetInstance()->pid(); + const pid_t sandbox_helper_pid = RenderSandboxHostLinux::GetInstance()->pid(); #endif ProcessData* const chrome_browser = ChromeBrowser(); diff --git a/chrome/browser/memory_details_linux.cc b/chrome/browser/memory_details_linux.cc index 92b80cb..776459a 100644 --- a/chrome/browser/memory_details_linux.cc +++ b/chrome/browser/memory_details_linux.cc @@ -234,7 +234,7 @@ void MemoryDetails::CollectProcessData( } std::vector<pid_t> current_browser_processes; - const pid_t zygote = Singleton<ZygoteHost>()->pid(); + const pid_t zygote = ZygoteHost::GetInstance()->pid(); GetAllChildren(processes, getpid(), zygote, ¤t_browser_processes); ProcessData current_browser; GetProcessDataMemoryInformation(current_browser_processes, ¤t_browser); diff --git a/chrome/browser/oom_priority_manager.cc b/chrome/browser/oom_priority_manager.cc index 160f511..bb8ba7e 100644 --- a/chrome/browser/oom_priority_manager.cc +++ b/chrome/browser/oom_priority_manager.cc @@ -166,7 +166,7 @@ void OomPriorityManager::DoAdjustOomPriorities(StatsList renderer_stats) { iterator != renderer_stats.end(); ++iterator) { if (already_seen.find(iterator->renderer_handle) == already_seen.end()) { already_seen.insert(iterator->renderer_handle); - Singleton<ZygoteHost>::get()->AdjustRendererOOMScore( + ZygoteHost::GetInstance()->AdjustRendererOOMScore( iterator->renderer_handle, static_cast<int>(priority + 0.5f)); priority += priority_increment; diff --git a/chrome/browser/printing/cloud_print/cloud_print_setup_flow.cc b/chrome/browser/printing/cloud_print/cloud_print_setup_flow.cc index 2889c20..fbd0dc6 100644 --- a/chrome/browser/printing/cloud_print/cloud_print_setup_flow.cc +++ b/chrome/browser/printing/cloud_print/cloud_print_setup_flow.cc @@ -102,7 +102,7 @@ CloudPrintSetupFlow::CloudPrintSetupFlow(const std::string& args, profile_ = profile; BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - NewRunnableMethod(Singleton<ChromeURLDataManager>::get(), + NewRunnableMethod(ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(new CloudPrintSetupSource()))); } diff --git a/chrome/browser/remoting/remoting_setup_flow.cc b/chrome/browser/remoting/remoting_setup_flow.cc index 72cf1c4..a517be3 100644 --- a/chrome/browser/remoting/remoting_setup_flow.cc +++ b/chrome/browser/remoting/remoting_setup_flow.cc @@ -102,7 +102,7 @@ RemotingSetupFlow::RemotingSetupFlow(const std::string& args, Profile* profile) // TODO(hclam): The data source should be added once. BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - NewRunnableMethod(Singleton<ChromeURLDataManager>::get(), + NewRunnableMethod(ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(new RemotingResourcesSource()))); } diff --git a/chrome/browser/renderer_host/render_sandbox_host_linux.cc b/chrome/browser/renderer_host/render_sandbox_host_linux.cc index 92105b4..51fa55b 100644 --- a/chrome/browser/renderer_host/render_sandbox_host_linux.cc +++ b/chrome/browser/renderer_host/render_sandbox_host_linux.cc @@ -23,6 +23,7 @@ #include "base/process_util.h" #include "base/scoped_ptr.h" #include "base/shared_memory.h" +#include "base/singleton.h" #include "base/string_number_conversions.h" #include "base/string_util.h" #include "base/unix_domain_socket_posix.h" @@ -643,6 +644,11 @@ RenderSandboxHostLinux::RenderSandboxHostLinux() pid_(0) { } +// static +RenderSandboxHostLinux* RenderSandboxHostLinux::GetInstance() { + return Singleton<RenderSandboxHostLinux>::get(); +} + void RenderSandboxHostLinux::Init(const std::string& sandbox_path) { DCHECK(!initialized_); initialized_ = true; diff --git a/chrome/browser/renderer_host/render_sandbox_host_linux.h b/chrome/browser/renderer_host/render_sandbox_host_linux.h index b0122e8..2cb0604 100644 --- a/chrome/browser/renderer_host/render_sandbox_host_linux.h +++ b/chrome/browser/renderer_host/render_sandbox_host_linux.h @@ -11,12 +11,16 @@ #include <string> #include "base/logging.h" -#include "base/singleton.h" + +template <typename T> struct DefaultSingletonTraits; // This is a singleton object which handles sandbox requests from the // renderers. class RenderSandboxHostLinux { public: + // Returns the singleton instance. + static RenderSandboxHostLinux* GetInstance(); + // Get the file descriptor which renderers should be given in order to signal // crashes to the browser. int GetRendererSocket() const { diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc index c9ae516..e319e36 100644 --- a/chrome/browser/renderer_host/render_view_host.cc +++ b/chrome/browser/renderer_host/render_view_host.cc @@ -153,7 +153,7 @@ RenderViewHost::~RenderViewHost() { delegate()->RenderViewDeleted(this); // Be sure to clean up any leftover state from cross-site requests. - Singleton<CrossSiteRequestManager>()->SetHasPendingCrossSiteRequest( + CrossSiteRequestManager::GetInstance()->SetHasPendingCrossSiteRequest( process()->id(), routing_id(), false); } @@ -368,7 +368,7 @@ void RenderViewHost::ClosePageIgnoringUnloadEvents() { void RenderViewHost::SetHasPendingCrossSiteRequest(bool has_pending_request, int request_id) { - Singleton<CrossSiteRequestManager>()->SetHasPendingCrossSiteRequest( + CrossSiteRequestManager::GetInstance()->SetHasPendingCrossSiteRequest( process()->id(), routing_id(), has_pending_request); pending_request_id_ = request_id; } diff --git a/chrome/browser/renderer_host/resource_dispatcher_host.cc b/chrome/browser/renderer_host/resource_dispatcher_host.cc index 9555ebc..4e6ecab 100644 --- a/chrome/browser/renderer_host/resource_dispatcher_host.cc +++ b/chrome/browser/renderer_host/resource_dispatcher_host.cc @@ -478,7 +478,7 @@ void ResourceDispatcherHost::BeginRequest( // not count as cross-site, otherwise it gets blocked indefinitely. if (request_data.resource_type == ResourceType::MAIN_FRAME && process_type == ChildProcessInfo::RENDER_PROCESS && - Singleton<CrossSiteRequestManager>::get()-> + CrossSiteRequestManager::GetInstance()-> HasPendingCrossSiteRequest(child_id, route_id)) { // Wrap the event handler to be sure the current page's onunload handler // has a chance to run before we render the new page. diff --git a/chrome/browser/sync/sync_setup_wizard.cc b/chrome/browser/sync/sync_setup_wizard.cc index fc6f504..e80afe0 100644 --- a/chrome/browser/sync/sync_setup_wizard.cc +++ b/chrome/browser/sync/sync_setup_wizard.cc @@ -215,7 +215,7 @@ SyncSetupWizard::SyncSetupWizard(ProfileSyncService* service) SyncResourcesSource* sync_source = new SyncResourcesSource(); BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - NewRunnableMethod(Singleton<ChromeURLDataManager>::get(), + NewRunnableMethod(ChromeURLDataManager::GetInstance(), &ChromeURLDataManager::AddDataSource, make_scoped_refptr(sync_source))); } diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc index 79325e8..261a762 100644 --- a/chrome/browser/tab_contents/render_view_context_menu.cc +++ b/chrome/browser/tab_contents/render_view_context_menu.cc @@ -1246,7 +1246,7 @@ void RenderViewContextMenu::ExecuteCommand(int id) { TranslatePrefs prefs(profile_->GetPrefs()); prefs.RemoveLanguageFromBlacklist(original_lang); prefs.RemoveSiteFromBlacklist(params_.page_url.HostNoBrackets()); - Singleton<TranslateManager>::get()->TranslatePage( + TranslateManager::GetInstance()->TranslatePage( source_tab_contents_, original_lang, target_lang); break; } diff --git a/chrome/browser/translate/translate_infobar_delegate.cc b/chrome/browser/translate/translate_infobar_delegate.cc index 7cb4d66..356975d 100644 --- a/chrome/browser/translate/translate_infobar_delegate.cc +++ b/chrome/browser/translate/translate_infobar_delegate.cc @@ -157,19 +157,19 @@ void TranslateInfoBarDelegate::Translate() { prefs_.IncrementTranslationAcceptedCount(original_language_code); } - Singleton<TranslateManager>::get()->TranslatePage( + TranslateManager::GetInstance()->TranslatePage( tab_contents_, GetLanguageCodeAt(original_language_index()), GetLanguageCodeAt(target_language_index())); } void TranslateInfoBarDelegate::RevertTranslation() { - Singleton<TranslateManager>::get()->RevertTranslation(tab_contents_); + TranslateManager::GetInstance()->RevertTranslation(tab_contents_); tab_contents_->RemoveInfoBar(this); } void TranslateInfoBarDelegate::ReportLanguageDetectionError() { - Singleton<TranslateManager>::get()-> + TranslateManager::GetInstance()-> ReportLanguageDetectionError(tab_contents_); } @@ -339,7 +339,7 @@ void TranslateInfoBarDelegate::MessageInfoBarButtonPressed() { return; } // This is the "Try again..." case. - Singleton<TranslateManager>::get()->TranslatePage( + TranslateManager::GetInstance()->TranslatePage( tab_contents_, GetOriginalLanguageCode(), GetTargetLanguageCode()); } diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc index a415749..cf560c0 100644 --- a/chrome/browser/translate/translate_manager.cc +++ b/chrome/browser/translate/translate_manager.cc @@ -8,6 +8,7 @@ #include "base/command_line.h" #include "base/compiler_specific.h" #include "base/metrics/histogram.h" +#include "base/singleton.h" #include "base/string_split.h" #include "base/string_util.h" #include "chrome/browser/browser_list.h" @@ -145,6 +146,11 @@ TranslateManager::~TranslateManager() { } // static +TranslateManager* TranslateManager::GetInstance() { + return Singleton<TranslateManager>::get(); +} + +// static bool TranslateManager::IsTranslatableURL(const GURL& url) { return !url.SchemeIs("chrome") && !url.SchemeIs("ftp"); } diff --git a/chrome/browser/translate/translate_manager.h b/chrome/browser/translate/translate_manager.h index 7050484..f0db3c4 100644 --- a/chrome/browser/translate/translate_manager.h +++ b/chrome/browser/translate/translate_manager.h @@ -12,7 +12,6 @@ #include <vector> #include "base/lazy_instance.h" -#include "base/singleton.h" #include "base/task.h" #include "chrome/browser/prefs/pref_change_registrar.h" #include "chrome/common/net/url_fetcher.h" @@ -20,6 +19,7 @@ #include "chrome/common/notification_registrar.h" #include "chrome/common/translate_errors.h" +template <typename T> struct DefaultSingletonTraits; class GURL; struct PageTranslatedDetails; class PrefService; @@ -34,6 +34,9 @@ class TranslateInfoBarDelegate; class TranslateManager : public NotificationObserver, public URLFetcher::Delegate { public: + // Returns the singleton instance. + static TranslateManager* GetInstance(); + virtual ~TranslateManager(); // Translates the page contents from |source_lang| to |target_lang|. diff --git a/chrome/browser/translate/translate_manager_unittest.cc b/chrome/browser/translate/translate_manager_unittest.cc index 3055ed6..080c7c1 100644 --- a/chrome/browser/translate/translate_manager_unittest.cc +++ b/chrome/browser/translate/translate_manager_unittest.cc @@ -121,8 +121,7 @@ class TranslateManagerTest : public RenderViewHostTestHarness, } void ExpireTranslateScriptImmediately() { - Singleton<TranslateManager>::get()-> - set_translate_script_expiration_delay(0); + TranslateManager::GetInstance()->set_translate_script_expiration_delay(0); } // If there is 1 infobar and it is a translate infobar, deny translation and @@ -155,8 +154,8 @@ class TranslateManagerTest : public RenderViewHostTestHarness, // Also clears the translate script so it is fetched everytime and sets the // expiration delay to a large value by default (in case it was zeroed in // a previous test). - Singleton<TranslateManager>::get()->ClearTranslateScript(); - Singleton<TranslateManager>::get()-> + TranslateManager::GetInstance()->ClearTranslateScript(); + TranslateManager::GetInstance()-> set_translate_script_expiration_delay(60 * 60 * 1000); RenderViewHostTestHarness::SetUp(); diff --git a/chrome/browser/ui/app_modal_dialogs/app_modal_dialog.cc b/chrome/browser/ui/app_modal_dialogs/app_modal_dialog.cc index 1a35cd8..746140c 100644 --- a/chrome/browser/ui/app_modal_dialogs/app_modal_dialog.cc +++ b/chrome/browser/ui/app_modal_dialogs/app_modal_dialog.cc @@ -49,5 +49,5 @@ void AppModalDialog::CloseModalDialog() { } void AppModalDialog::CompleteDialog() { - Singleton<AppModalDialogQueue>()->ShowNextDialog(); + AppModalDialogQueue::GetInstance()->ShowNextDialog(); } diff --git a/chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.cc b/chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.cc index c29abe0..e70285c 100644 --- a/chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.cc +++ b/chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.cc @@ -4,6 +4,8 @@ #include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h" +#include "base/singleton.h" + void AppModalDialogQueue::AddDialog(AppModalDialog* dialog) { if (!active_dialog_) { ShowModalDialog(dialog); @@ -38,6 +40,11 @@ AppModalDialogQueue::AppModalDialogQueue() AppModalDialogQueue::~AppModalDialogQueue() {} +// static +AppModalDialogQueue* AppModalDialogQueue::GetInstance() { + return Singleton<AppModalDialogQueue>::get(); +} + void AppModalDialogQueue::ShowModalDialog(AppModalDialog* dialog) { // Be sure and set the active_dialog_ field first, otherwise if // ShowModalDialog triggers a call back to the queue they'll get the old diff --git a/chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h b/chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h index b1b221bb..be24a74 100644 --- a/chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h +++ b/chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h @@ -8,14 +8,18 @@ #include <queue> -#include "base/singleton.h" #include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog.h" +template <typename T> struct DefaultSingletonTraits; + // Keeps a queue of AppModalDialogs, making sure only one app modal // dialog is shown at a time. // This class is a singleton. class AppModalDialogQueue { public: + // Returns the singleton instance. + static AppModalDialogQueue* GetInstance(); + // Adds a modal dialog to the queue, if there are no other dialogs in the // queue, the dialog will be shown immediately. Once it is shown, the // most recently active browser window (or whichever is currently active) diff --git a/chrome/browser/ui/app_modal_dialogs/message_box_handler.cc b/chrome/browser/ui/app_modal_dialogs/message_box_handler.cc index 490117c..0aba84b 100644 --- a/chrome/browser/ui/app_modal_dialogs/message_box_handler.cc +++ b/chrome/browser/ui/app_modal_dialogs/message_box_handler.cc @@ -70,7 +70,7 @@ void RunJavascriptMessageBox(Profile* profile, IPC::Message* reply_msg) { bool is_alert = dialog_flags == MessageBoxFlags::kIsJavascriptAlert; std::wstring title = GetTitle(profile, is_alert, frame_url); - Singleton<AppModalDialogQueue>()->AddDialog(new JavaScriptAppModalDialog( + AppModalDialogQueue::GetInstance()->AddDialog(new JavaScriptAppModalDialog( delegate, title, dialog_flags, message_text, default_prompt_text, display_suppress_checkbox, false, reply_msg)); } @@ -81,7 +81,7 @@ void RunBeforeUnloadDialog(TabContents* tab_contents, std::wstring full_message = message_text + L"\n\n" + l10n_util::GetString(IDS_BEFOREUNLOAD_MESSAGEBOX_FOOTER); - Singleton<AppModalDialogQueue>()->AddDialog(new JavaScriptAppModalDialog( + AppModalDialogQueue::GetInstance()->AddDialog(new JavaScriptAppModalDialog( tab_contents, l10n_util::GetString(IDS_BEFOREUNLOAD_MESSAGEBOX_TITLE), MessageBoxFlags::kIsJavascriptConfirm, message_text, std::wstring(), false, true, reply_msg)); diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index 26a7a7b..4cbd7e2 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc @@ -644,13 +644,13 @@ bool BrowserView::GetAccelerator(int cmd_id, menus::Accelerator* accelerator) { bool BrowserView::ActivateAppModalDialog() const { // If another browser is app modal, flash and activate the modal browser. - if (Singleton<AppModalDialogQueue>()->HasActiveDialog()) { + if (AppModalDialogQueue::GetInstance()->HasActiveDialog()) { Browser* active_browser = BrowserList::GetLastActive(); if (active_browser && (browser_ != active_browser)) { active_browser->window()->FlashFrame(); active_browser->window()->Activate(); } - Singleton<AppModalDialogQueue>()->ActivateModalDialog(); + AppModalDialogQueue::GetInstance()->ActivateModalDialog(); return true; } return false; diff --git a/chrome/browser/zygote_host_linux.cc b/chrome/browser/zygote_host_linux.cc index b6115f1..74b6852 100644 --- a/chrome/browser/zygote_host_linux.cc +++ b/chrome/browser/zygote_host_linux.cc @@ -66,6 +66,11 @@ ZygoteHost::~ZygoteHost() { close(control_fd_); } +// static +ZygoteHost* ZygoteHost::GetInstance() { + return Singleton<ZygoteHost>::get(); +} + void ZygoteHost::Init(const std::string& sandbox_cmd) { DCHECK(!init_); init_ = true; @@ -129,7 +134,7 @@ void ZygoteHost::Init(const std::string& sandbox_cmd) { // Start up the sandbox host process and get the file descriptor for the // renderers to talk to it. - const int sfd = Singleton<RenderSandboxHostLinux>()->GetRendererSocket(); + const int sfd = RenderSandboxHostLinux::GetInstance()->GetRendererSocket(); fds_to_map.push_back(std::make_pair(sfd, 5)); int dummy_fd = -1; diff --git a/chrome/browser/zygote_host_linux.h b/chrome/browser/zygote_host_linux.h index ffb7964..01a6443 100644 --- a/chrome/browser/zygote_host_linux.h +++ b/chrome/browser/zygote_host_linux.h @@ -26,6 +26,9 @@ static const char kZygoteMagic[] = "ZYGOTE_OK"; // process. class ZygoteHost { public: + // Returns the singleton instance. + static ZygoteHost* GetInstance(); + void Init(const std::string& sandbox_cmd); // Tries to start a renderer process. Returns its pid on success, otherwise |