| Index: chrome/browser/component_updater/component_unpacker.cc
|
| diff --git a/chrome/browser/component_updater/component_unpacker.cc b/chrome/browser/component_updater/component_unpacker.cc
|
| index 43ed68ab043b2b6a064ee4382491ce490becabf1..c35b421d4671d53b70388e8793a4b76ab359e6a5 100644
|
| --- a/chrome/browser/component_updater/component_unpacker.cc
|
| +++ b/chrome/browser/component_updater/component_unpacker.cc
|
| @@ -98,15 +98,15 @@ ComponentUnpacker::ComponentUnpacker(
|
| const std::vector<uint8>& pk_hash,
|
| const base::FilePath& path,
|
| const std::string& fingerprint,
|
| - ComponentPatcher* patcher,
|
| ComponentInstaller* installer,
|
| + bool in_process,
|
| scoped_refptr<base::SequencedTaskRunner> task_runner)
|
| : pk_hash_(pk_hash),
|
| path_(path),
|
| is_delta_(false),
|
| fingerprint_(fingerprint),
|
| - patcher_(patcher),
|
| installer_(installer),
|
| + in_process_(in_process),
|
| error_(kNone),
|
| extended_error_(0),
|
| ptr_factory_(this),
|
| @@ -204,12 +204,14 @@ bool ComponentUnpacker::BeginPatching() {
|
| error_ = kUnzipPathError;
|
| return false;
|
| }
|
| + patcher_.reset(new ComponentPatcher(unpack_diff_path_,
|
| + unpack_path_,
|
| + installer_,
|
| + in_process_,
|
| + task_runner_));
|
| task_runner_->PostTask(
|
| - FROM_HERE, base::Bind(&DifferentialUpdatePatch,
|
| - unpack_diff_path_,
|
| - unpack_path_,
|
| - patcher_,
|
| - installer_,
|
| + FROM_HERE, base::Bind(&ComponentPatcher::Start,
|
| + patcher_->GetWeakPtr(),
|
| base::Bind(&ComponentUnpacker::EndPatching,
|
| GetWeakPtr())));
|
| } else {
|
| @@ -223,6 +225,7 @@ bool ComponentUnpacker::BeginPatching() {
|
| }
|
|
|
| void ComponentUnpacker::EndPatching(Error error, int extended_error) {
|
| + patcher_.reset();
|
| error_ = error;
|
| extended_error_ = extended_error;
|
| if (error_ != kNone) {
|
|
|