summaryrefslogtreecommitdiffstats
path: root/components/component_updater/default_component_installer.cc
diff options
context:
space:
mode:
authorbauerb <bauerb@chromium.org>2015-02-04 17:09:10 -0800
committerCommit bot <commit-bot@chromium.org>2015-02-05 01:09:55 +0000
commit810e60f487982e8edc208b78b0b4b2b2a12a77a0 (patch)
treef76a8cb2498a8e32804fd0a9eb04703ed7a84127 /components/component_updater/default_component_installer.cc
parentabfbde8049ea4726e3c750a15aad66c5ab9f5093 (diff)
downloadchromium_src-810e60f487982e8edc208b78b0b4b2b2a12a77a0.zip
chromium_src-810e60f487982e8edc208b78b0b4b2b2a12a77a0.tar.gz
chromium_src-810e60f487982e8edc208b78b0b4b2b2a12a77a0.tar.bz2
Make ComponentInstaller refcounted.
Before this CL, component installers were leaked in almost all cases. If we allow uninstalling components (see https://codereview.chromium.org/879993005/), we need to fix those leaks. BUG=436459 Review URL: https://codereview.chromium.org/897873002 Cr-Commit-Position: refs/heads/master@{#314701}
Diffstat (limited to 'components/component_updater/default_component_installer.cc')
-rw-r--r--components/component_updater/default_component_installer.cc20
1 files changed, 10 insertions, 10 deletions
diff --git a/components/component_updater/default_component_installer.cc b/components/component_updater/default_component_installer.cc
index 6588973..d73b4fc 100644
--- a/components/component_updater/default_component_installer.cc
+++ b/components/component_updater/default_component_installer.cc
@@ -55,8 +55,7 @@ void DefaultComponentInstaller::Register(ComponentUpdateService* cus) {
task_runner_->PostTask(
FROM_HERE,
base::Bind(&DefaultComponentInstaller::StartRegistration,
- base::Unretained(this),
- cus));
+ this, cus));
}
void DefaultComponentInstaller::OnUpdateError(int error) {
@@ -103,11 +102,8 @@ bool DefaultComponentInstaller::Install(const base::DictionaryValue& manifest,
current_manifest_->DeepCopy());
main_task_runner_->PostTask(
FROM_HERE,
- base::Bind(&ComponentInstallerTraits::ComponentReady,
- base::Unretained(installer_traits_.get()),
- current_version_,
- GetInstallDirectory(),
- base::Passed(&manifest_copy)));
+ base::Bind(&DefaultComponentInstaller::ComponentReady,
+ this, base::Passed(&manifest_copy)));
return true;
}
@@ -197,8 +193,7 @@ void DefaultComponentInstaller::StartRegistration(ComponentUpdateService* cus) {
main_task_runner_->PostTask(
FROM_HERE,
base::Bind(&DefaultComponentInstaller::FinishRegistration,
- base::Unretained(this),
- cus));
+ this, cus));
}
base::FilePath DefaultComponentInstaller::GetInstallDirectory() {
@@ -230,8 +225,13 @@ void DefaultComponentInstaller::FinishRegistration(
scoped_ptr<base::DictionaryValue> manifest_copy(
current_manifest_->DeepCopy());
+ ComponentReady(manifest_copy.Pass());
+}
+
+void DefaultComponentInstaller::ComponentReady(
+ scoped_ptr<base::DictionaryValue> manifest) {
installer_traits_->ComponentReady(
- current_version_, GetInstallDirectory(), manifest_copy.Pass());
+ current_version_, GetInstallDirectory(), manifest.Pass());
}
} // namespace component_updater