| Index: chrome/installer/util/package.cc
|
| ===================================================================
|
| --- chrome/installer/util/package.cc (revision 67902)
|
| +++ chrome/installer/util/package.cc (working copy)
|
| @@ -124,16 +124,18 @@
|
| VLOG(1) << "directory found: " << find_file_data.cFileName;
|
| version.reset(Version::GetVersionFromString(find_file_data.cFileName));
|
| if (version.get() && latest_version.IsHigherThan(version.get())) {
|
| - std::wstring remove_dir(path_.value());
|
| - file_util::AppendToPath(&remove_dir, find_file_data.cFileName);
|
| - std::wstring chrome_dll_path(remove_dir);
|
| - file_util::AppendToPath(&chrome_dll_path, installer_util::kChromeDll);
|
| - VLOG(1) << "Deleting directory: " << remove_dir;
|
| - // TODO(tommi): We should support more "key files". One for each
|
| - // associated Product. Maybe the relative key file path should
|
| - // be a property of BrowserDistribution.
|
| + FilePath remove_dir(path_.Append(find_file_data.cFileName));
|
| + std::vector<FilePath> key_files;
|
| + Products::const_iterator it = products_.begin();
|
| + for (; it != products_.end(); ++it) {
|
| + BrowserDistribution* dist = it->get()->distribution();
|
| + key_files.push_back(remove_dir.Append(dist->GetKeyFile()));
|
| + }
|
| +
|
| + VLOG(1) << "Deleting directory: " << remove_dir.value();
|
| +
|
| scoped_ptr<DeleteTreeWorkItem> item(
|
| - WorkItem::CreateDeleteTreeWorkItem(remove_dir, chrome_dll_path));
|
| + WorkItem::CreateDeleteTreeWorkItem(remove_dir, key_files));
|
| if (!item->Do())
|
| item->Rollback();
|
| }
|
|
|