summaryrefslogtreecommitdiffstats
path: root/chrome/installer/setup/uninstall.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/installer/setup/uninstall.cc')
-rw-r--r--chrome/installer/setup/uninstall.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/chrome/installer/setup/uninstall.cc b/chrome/installer/setup/uninstall.cc
index 2fb0815..e2ec9d18 100644
--- a/chrome/installer/setup/uninstall.cc
+++ b/chrome/installer/setup/uninstall.cc
@@ -17,11 +17,15 @@
#include "chrome/installer/setup/setup_constants.h"
#include "chrome/installer/util/browser_distribution.h"
#include "chrome/installer/util/helper.h"
+#include "chrome/installer/util/install_util.h"
#include "chrome/installer/util/logging_installer.h"
#include "chrome/installer/util/shell_util.h"
#include "chrome/installer/util/util_constants.h"
#include "chrome/installer/util/version.h"
+// Build-time generated include file.
+#include "registered_dlls.h"
+
namespace {
// This functions checks for any Chrome instances that are
@@ -281,6 +285,17 @@ installer_util::InstallStatus installer_setup::UninstallChrome(
file_util::AppendToPath(&reg_path, installer_util::kChromeExe);
DeleteRegistryKey(hklm_key, reg_path);
hklm_key.Close();
+
+ // Unregister any dll servers that we may have registered.
+ std::wstring dll_path(installer::GetChromeInstallPath(system_uninstall));
+ file_util::AppendToPath(&dll_path, installed_version.GetString());
+
+ scoped_ptr<WorkItemList> dll_list(WorkItem::CreateWorkItemList());
+ if (InstallUtil::BuildDLLRegistrationList(dll_path, kDllsToRegister,
+ kNumDllsToRegister, false,
+ dll_list.get())) {
+ dll_list->Do();
+ }
}
// Finally delete all the files from Chrome folder after moving setup.exe