Index: chrome/browser/component_updater/component_updater_service.cc |
diff --git a/chrome/browser/component_updater/component_updater_service.cc b/chrome/browser/component_updater/component_updater_service.cc |
index c48b90fcfe7d9501c41d29b0931a85d6b21ddc1b..7e0333b40f6a8fbaab59cfce1be40285767454ce 100644 |
--- a/chrome/browser/component_updater/component_updater_service.cc |
+++ b/chrome/browser/component_updater/component_updater_service.cc |
@@ -8,6 +8,7 @@ |
#include <vector> |
#include "base/at_exit.h" |
+#include "base/bind.h" |
#include "base/file_path.h" |
#include "base/file_util.h" |
#include "base/logging.h" |
@@ -33,6 +34,9 @@ |
using content::BrowserThread; |
+// The component updater is designed to live until process shutdown, so |
+// base::Bind() calls are not refcounted. |
+ |
namespace { |
// Extends an omaha compatible update check url |query| string. Does |
// not mutate the string if it would be longer than |limit| chars. |
@@ -323,10 +327,6 @@ class CrxUpdateService : public ComponentUpdateService { |
DISALLOW_COPY_AND_ASSIGN(CrxUpdateService); |
}; |
-// The component updater is designed to live until process shutdown, besides |
-// we can't be refcounted because we are a singleton. |
-DISABLE_RUNNABLE_METHOD_REFCOUNT(CrxUpdateService); |
- |
////////////////////////////////////////////////////////////////////////////// |
CrxUpdateService::CrxUpdateService( |
@@ -694,9 +694,10 @@ void CrxUpdateService::OnURLFetchComplete(const content::URLFetcher* source, |
content::NotificationService::NoDetails()); |
BrowserThread::PostDelayedTask(BrowserThread::FILE, FROM_HERE, |
- NewRunnableMethod(this, &CrxUpdateService::Install, |
- context, |
- temp_crx_path), |
+ base::Bind(&CrxUpdateService::Install, |
+ base::Unretained(this), |
asargent_no_longer_on_chrome
2011/11/21 18:00:16
optional suggestion: add comment near the base:Unr
|
+ context, |
+ temp_crx_path), |
config_->StepDelay()); |
} |
} |
@@ -715,8 +716,8 @@ void CrxUpdateService::Install(const CRXContext* context, |
NOTREACHED() << crx_path.value(); |
} |
BrowserThread::PostDelayedTask(BrowserThread::UI, FROM_HERE, |
- NewRunnableMethod(this, &CrxUpdateService::DoneInstalling, |
- context->id, unpacker.error()), |
+ base::Bind(&CrxUpdateService::DoneInstalling, base::Unretained(this), |
asargent_no_longer_on_chrome
2011/11/21 18:00:16
same suggestion here
|
+ context->id, unpacker.error()), |
config_->StepDelay()); |
delete context; |
} |