summaryrefslogtreecommitdiffstats
path: root/chrome/browser/background
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-23 22:21:23 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-23 22:21:23 +0000
commitbd2262e1ed75af9c45fabe371aa66f83ee3831e5 (patch)
tree64ae7f5cea3bb32529f3600a0a4823d247ae706e /chrome/browser/background
parent0ad9ef8e4c41b13a5f889a485677f225d7e5a934 (diff)
downloadchromium_src-bd2262e1ed75af9c45fabe371aa66f83ee3831e5.zip
chromium_src-bd2262e1ed75af9c45fabe371aa66f83ee3831e5.tar.gz
chromium_src-bd2262e1ed75af9c45fabe371aa66f83ee3831e5.tar.bz2
base::Bind: Convert BackgroundModeManager Tasks.
BUG=none TEST=none R=groby@chromium.org Review URL: http://codereview.chromium.org/8680017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111424 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/background')
-rw-r--r--chrome/browser/background/background_mode_manager_gtk.cc57
-rw-r--r--chrome/browser/background/background_mode_manager_mac.mm28
-rw-r--r--chrome/browser/background/background_mode_manager_win.cc19
3 files changed, 36 insertions, 68 deletions
diff --git a/chrome/browser/background/background_mode_manager_gtk.cc b/chrome/browser/background/background_mode_manager_gtk.cc
index e9d193e..27923fc 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.
diff --git a/chrome/browser/background/background_mode_manager_mac.mm b/chrome/browser/background/background_mode_manager_mac.mm
index 120aa37..e0ff342 100644
--- a/chrome/browser/background/background_mode_manager_mac.mm
+++ b/chrome/browser/background/background_mode_manager_mac.mm
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/bind.h"
#include "base/command_line.h"
#include "base/mac/mac_util.h"
#include "chrome/browser/background/background_mode_manager.h"
@@ -17,22 +18,7 @@ using content::BrowserThread;
namespace {
-class DisableLaunchOnStartupTask : public Task {
- public:
- virtual void Run();
-};
-
-class EnableLaunchOnStartupTask : public Task {
- public:
- virtual void Run();
-};
-
-class SetUserCreatedLoginItemPrefTask : public Task {
- public:
- virtual void Run();
-};
-
-void DisableLaunchOnStartupTask::Run() {
+void DisableLaunchOnStartupCallback() {
// Check if Chrome is not a login Item, or is a Login Item but w/o 'hidden'
// flag - most likely user has modified the setting, don't override it.
bool is_hidden = false;
@@ -42,7 +28,7 @@ void DisableLaunchOnStartupTask::Run() {
base::mac::RemoveFromLoginItems();
}
-void EnableLaunchOnStartupTask::Run() {
+void EnableLaunchOnStartupCallback() {
// Return if Chrome is already a Login Item (avoid overriding user choice).
if (base::mac::CheckLoginItemStatus(NULL)) {
// Call back to the UI thread to set our preference so we don't delete the
@@ -51,14 +37,14 @@ void EnableLaunchOnStartupTask::Run() {
// is run, but the user can manually disable "Open At Login" via the dock if
// this happens.
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- new SetUserCreatedLoginItemPrefTask());
+ base::Bind(SetUserCreatedLoginItemPrefCallback));
return;
}
base::mac::AddToLoginItems(true); // Hide on startup.
}
-void SetUserCreatedLoginItemPrefTask::Run() {
+void SetUserCreatedLoginItemPrefCallback() {
PrefService* service = g_browser_process->local_state();
service->SetBoolean(prefs::kUserCreatedLoginItem, true);
}
@@ -72,7 +58,7 @@ void BackgroundModeManager::EnableLaunchOnStartup(bool should_launch) {
if (should_launch) {
BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
- new EnableLaunchOnStartupTask());
+ base::Bind(EnableLaunchOnStartupCallback));
} else {
PrefService* service = g_browser_process->local_state();
if (service->GetBoolean(prefs::kUserCreatedLoginItem)) {
@@ -83,7 +69,7 @@ void BackgroundModeManager::EnableLaunchOnStartup(bool should_launch) {
// Call to the File thread to remove the login item since it requires
// accessing the disk.
BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
- new DisableLaunchOnStartupTask());
+ base::Bind(DisableLaunchOnStartupCallback));
}
}
diff --git a/chrome/browser/background/background_mode_manager_win.cc b/chrome/browser/background/background_mode_manager_win.cc
index 1596a11..a27632a 100644
--- a/chrome/browser/background/background_mode_manager_win.cc
+++ b/chrome/browser/background/background_mode_manager_win.cc
@@ -3,6 +3,7 @@
// found in the LICENSE file.
#include "base/base_paths.h"
+#include "base/bind.h"
#include "base/command_line.h"
#include "base/file_path.h"
#include "base/logging.h"
@@ -22,22 +23,12 @@ using content::BrowserThread;
namespace {
-class DisableLaunchOnStartupTask : public Task {
- public:
- virtual void Run();
-};
-
-class EnableLaunchOnStartupTask : public Task {
- public:
- virtual void Run();
-};
-
const HKEY kBackgroundModeRegistryRootKey = HKEY_CURRENT_USER;
const wchar_t* kBackgroundModeRegistrySubkey =
L"Software\\Microsoft\\Windows\\CurrentVersion\\Run";
const wchar_t* kBackgroundModeRegistryKeyName = L"chromium";
-void DisableLaunchOnStartupTask::Run() {
+void DisableLaunchOnStartupCallback() {
const wchar_t* key_name = kBackgroundModeRegistryKeyName;
base::win::RegKey read_key(kBackgroundModeRegistryRootKey,
kBackgroundModeRegistrySubkey, KEY_READ);
@@ -50,7 +41,7 @@ void DisableLaunchOnStartupTask::Run() {
}
}
-void EnableLaunchOnStartupTask::Run() {
+void EnableLaunchOnStartupCallback() {
// TODO(rickcam): Bug 53597: Make RegKey mockable.
// TODO(rickcam): Bug 53600: Use distinct registry keys per flavor+profile.
const wchar_t* key_name = kBackgroundModeRegistryKeyName;
@@ -83,10 +74,10 @@ void BackgroundModeManager::EnableLaunchOnStartup(bool should_launch) {
return;
if (should_launch) {
BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
- new EnableLaunchOnStartupTask());
+ base::Bind(EnableLaunchOnStartupCallback));
} else {
BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
- new DisableLaunchOnStartupTask());
+ base::Bind(DisableLaunchOnStartupCallback));
}
}