| Index: chrome/browser/background/background_mode_manager_gtk.cc
|
| diff --git a/chrome/browser/background/background_mode_manager_gtk.cc b/chrome/browser/background/background_mode_manager_gtk.cc
|
| index e9d193e5d7fb6abb38de70ddb3ecc435a1a8cb28..27923fc35c95f55e9f7b83e8d22c741d3d07cb82 100644
|
| --- a/chrome/browser/background/background_mode_manager_gtk.cc
|
| +++ b/chrome/browser/background/background_mode_manager_gtk.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include <unistd.h>
|
|
|
| +#include "base/bind.h"
|
| #include "base/command_line.h"
|
| #include "base/environment.h"
|
| #include "base/file_path.h"
|
| @@ -25,40 +26,8 @@ using content::BrowserThread;
|
|
|
| namespace {
|
|
|
| -class DisableLaunchOnStartupTask : public Task {
|
| - public:
|
| - virtual void Run();
|
| -};
|
| -
|
| -class EnableLaunchOnStartupTask : public Task {
|
| - public:
|
| - virtual void Run();
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -void BackgroundModeManager::EnableLaunchOnStartup(bool should_launch) {
|
| - // This functionality is only defined for default profile, currently.
|
| - if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kUserDataDir))
|
| - return;
|
| - if (should_launch) {
|
| - BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
|
| - new EnableLaunchOnStartupTask());
|
| - } else {
|
| - BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
|
| - new DisableLaunchOnStartupTask());
|
| - }
|
| -}
|
| -
|
| -void DisableLaunchOnStartupTask::Run() {
|
| - scoped_ptr<base::Environment> environment(base::Environment::Create());
|
| - if (!AutoStart::Remove(ShellIntegration::GetDesktopName(environment.get()))) {
|
| - NOTREACHED() << "Failed to deregister launch on login.";
|
| - }
|
| -}
|
| -
|
| // TODO(rickcam): Bug 56280: Share implementation with ShellIntegration
|
| -void EnableLaunchOnStartupTask::Run() {
|
| +void EnableLaunchOnStartupCallback() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
|
| scoped_ptr<base::Environment> environment(base::Environment::Create());
|
| scoped_ptr<chrome::VersionInfo> version_info(new chrome::VersionInfo());
|
| @@ -80,6 +49,28 @@ void EnableLaunchOnStartupTask::Run() {
|
| }
|
| }
|
|
|
| +void DisableLaunchOnStartupCallback() {
|
| + scoped_ptr<base::Environment> environment(base::Environment::Create());
|
| + if (!AutoStart::Remove(ShellIntegration::GetDesktopName(environment.get()))) {
|
| + NOTREACHED() << "Failed to deregister launch on login.";
|
| + }
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +void BackgroundModeManager::EnableLaunchOnStartup(bool should_launch) {
|
| + // This functionality is only defined for default profile, currently.
|
| + if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kUserDataDir))
|
| + return;
|
| + if (should_launch) {
|
| + BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
|
| + base::Bind(EnableLaunchOnStartupCallback));
|
| + } else {
|
| + BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
|
| + base::Bind(DisableLaunchOnStartupCallback));
|
| + }
|
| +}
|
| +
|
| void BackgroundModeManager::DisplayAppInstalledNotification(
|
| const Extension* extension) {
|
| // TODO(atwilson): Display a platform-appropriate notification here.
|
|
|