| Index: chrome/installer/setup/uninstall.cc
|
| diff --git a/chrome/installer/setup/uninstall.cc b/chrome/installer/setup/uninstall.cc
|
| index 5b6e62cc559e45d4c549eeabf6035f63d4663b8f..cb80ee8e1f8cfebc49fe214d484261af82a7e408 100644
|
| --- a/chrome/installer/setup/uninstall.cc
|
| +++ b/chrome/installer/setup/uninstall.cc
|
| @@ -689,16 +689,17 @@ const wchar_t kChromeExtProgId[] = L"ChromiumExt";
|
| }
|
| }
|
|
|
| -bool ProcessChromeWorkItems(const InstallationState& original_state,
|
| - const InstallerState& installer_state,
|
| - const FilePath& setup_path,
|
| - const Product& product) {
|
| - if (!product.is_chrome())
|
| - return false;
|
| -
|
| - scoped_ptr<WorkItemList> item_list(WorkItem::CreateWorkItemList());
|
| - AddChromeWorkItems(original_state, installer_state, setup_path, Version(),
|
| - product, item_list.get());
|
| +// Builds and executes a work item list to remove DelegateExecute verb handler
|
| +// work items for |product|. This will be a noop for products whose
|
| +// corresponding BrowserDistribution implementations do not publish
|
| +// DelegateExecute data via an implementation of GetDelegateExecuteHandlerData.
|
| +bool ProcessDelegateExecuteWorkItems(const InstallationState& original_state,
|
| + const InstallerState& installer_state,
|
| + const FilePath& setup_path,
|
| + const Product& product) {
|
| + scoped_ptr<WorkItemList> item_list(WorkItem::CreateNoRollbackWorkItemList());
|
| + AddDelegateExecuteWorkItems(original_state, installer_state, setup_path,
|
| + Version(), product, item_list.get());
|
| return item_list->Do();
|
| }
|
|
|
| @@ -709,7 +710,7 @@ bool ProcessChromeFrameWorkItems(const InstallationState& original_state,
|
| if (!product.is_chrome_frame())
|
| return false;
|
|
|
| - scoped_ptr<WorkItemList> item_list(WorkItem::CreateWorkItemList());
|
| + scoped_ptr<WorkItemList> item_list(WorkItem::CreateNoRollbackWorkItemList());
|
| AddChromeFrameWorkItems(original_state, installer_state, setup_path,
|
| Version(), product, item_list.get());
|
| return item_list->Do();
|
| @@ -819,10 +820,10 @@ InstallStatus UninstallProduct(const InstallationState& original_state,
|
| suffix, installer_state.target_path(), &ret);
|
| }
|
|
|
| - if (is_chrome) {
|
| - ProcessChromeWorkItems(original_state, installer_state, setup_path,
|
| - product);
|
| - } else {
|
| + ProcessDelegateExecuteWorkItems(original_state, installer_state, setup_path,
|
| + product);
|
| +
|
| + if (!is_chrome) {
|
| ProcessChromeFrameWorkItems(original_state, installer_state, setup_path,
|
| product);
|
| }
|
|
|