Chromium Code Reviews| Index: chrome/browser/ui/webui/options/browser_options_handler.cc |
| =================================================================== |
| --- chrome/browser/ui/webui/options/browser_options_handler.cc (revision 120769) |
| +++ chrome/browser/ui/webui/options/browser_options_handler.cc (working copy) |
| @@ -7,6 +7,7 @@ |
| #include "base/basictypes.h" |
| #include "base/bind.h" |
| #include "base/bind_helpers.h" |
| +#include "base/command_line.h" |
| #include "base/memory/singleton.h" |
| #include "base/path_service.h" |
| #include "base/string_number_conversions.h" |
| @@ -28,7 +29,9 @@ |
| #include "chrome/browser/search_engines/template_url_service.h" |
| #include "chrome/browser/search_engines/template_url_service_factory.h" |
| #include "chrome/browser/ui/webui/favicon_source.h" |
| +#include "chrome/common/chrome_constants.h" |
| #include "chrome/common/chrome_notification_types.h" |
| +#include "chrome/common/chrome_switches.h" |
| #include "chrome/common/pref_names.h" |
| #include "chrome/common/url_constants.h" |
| #include "content/public/browser/browser_thread.h" |
| @@ -170,26 +173,38 @@ |
| autocomplete_controller_.reset(new AutocompleteController(profile, this)); |
| #if defined(OS_WIN) |
| - BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, |
| - base::Bind(&BrowserOptionsHandler::CheckAutoLaunch, |
| - weak_ptr_factory_for_ui_.GetWeakPtr(), |
| - weak_ptr_factory_for_file_.GetWeakPtr())); |
| - weak_ptr_factory_for_ui_.DetachFromThread(); |
| + const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
| + if (!command_line.HasSwitch(switches::kChromeFrame) && |
| + !command_line.HasSwitch(switches::kUserDataDir)) { |
| + BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, |
| + base::Bind(&BrowserOptionsHandler::CheckAutoLaunch, |
| + weak_ptr_factory_for_ui_.GetWeakPtr(), |
| + weak_ptr_factory_for_file_.GetWeakPtr(), |
| + profile->GetPath())); |
| + weak_ptr_factory_for_ui_.DetachFromThread(); |
| + } |
| #endif |
| } |
| void BrowserOptionsHandler::CheckAutoLaunch( |
| - base::WeakPtr<BrowserOptionsHandler> weak_this) { |
| + base::WeakPtr<BrowserOptionsHandler> weak_this, |
| + const FilePath& profile_path) { |
| #if defined(OS_WIN) |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| + // We don't support this for secondary profiles yet. |
|
James Hawkins
2012/02/09 18:32:54
Optional, recommended nit: Don't use pronouns (We,
|
| + if (profile_path.BaseName().value() != ASCIIToUTF16(chrome::kInitialProfile)) |
| + return; |
| + |
| // Pass in weak pointer to this to avoid race if BrowserOptionsHandler is |
| // deleted. |
| BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
| base::Bind(&BrowserOptionsHandler::CheckAutoLaunchCallback, |
| weak_this, |
| auto_launch_trial::IsInAutoLaunchGroup(), |
| - auto_launch_util::WillLaunchAtLogin(FilePath()))); |
| + auto_launch_util::WillLaunchAtLogin( |
| + FilePath(), |
| + profile_path.BaseName().value()))); |
| #endif |
| } |
| @@ -206,7 +221,7 @@ |
| base::FundamentalValue enabled(will_launch_at_login); |
| web_ui()->CallJavascriptFunction("BrowserOptions.updateAutoLaunchState", |
| - enabled); |
| + enabled); |
| } |
| #endif |
| } |
| @@ -530,9 +545,11 @@ |
| // Make sure we keep track of how many disable and how many enable. |
| auto_launch_trial::UpdateToggleAutoLaunchMetric(enable); |
| + Profile* profile = Profile::FromWebUI(web_ui()); |
| content::BrowserThread::PostTask( |
| content::BrowserThread::FILE, FROM_HERE, |
| - base::Bind(&auto_launch_util::SetWillLaunchAtLogin, enable, FilePath())); |
| + base::Bind(&auto_launch_util::SetWillLaunchAtLogin, enable, |
| + FilePath(), profile->GetPath().BaseName().value())); |
| #endif // OS_WIN |
| } |