| Index: chrome/installer/setup/uninstall.cc
|
| diff --git a/chrome/installer/setup/uninstall.cc b/chrome/installer/setup/uninstall.cc
|
| index 5e50d6745c5d3eea8eb94495ea52be42eb9859b1..6fe358512c6d40e52e950a3f816af8588acb6053 100644
|
| --- a/chrome/installer/setup/uninstall.cc
|
| +++ b/chrome/installer/setup/uninstall.cc
|
| @@ -185,39 +185,16 @@ void ClearRlzProductState() {
|
|
|
| namespace installer {
|
|
|
| -// This functions checks for any Chrome instances that are
|
| -// running and first asks them to close politely by sending a Windows message.
|
| -// If there is an error while sending message or if there are still Chrome
|
| -// procesess active after the message has been sent, this function will try
|
| -// to kill them.
|
| +// Kills all Chrome processes, immediately.
|
| void CloseAllChromeProcesses() {
|
| - for (int j = 0; j < 4; ++j) {
|
| - string16 wnd_class(L"Chrome_WidgetWin_");
|
| - wnd_class.append(base::IntToString16(j));
|
| - HWND window = FindWindowEx(NULL, NULL, wnd_class.c_str(), NULL);
|
| - while (window) {
|
| - HWND tmpWnd = window;
|
| - window = FindWindowEx(NULL, window, wnd_class.c_str(), NULL);
|
| - if (!SendMessageTimeout(tmpWnd, WM_CLOSE, 0, 0, SMTO_BLOCK, 3000, NULL) &&
|
| - (GetLastError() == ERROR_TIMEOUT)) {
|
| - base::CleanupProcesses(installer::kChromeExe, base::TimeDelta(),
|
| - content::RESULT_CODE_HUNG, NULL);
|
| - base::CleanupProcesses(installer::kNaClExe, base::TimeDelta(),
|
| - content::RESULT_CODE_HUNG, NULL);
|
| - return;
|
| - }
|
| - }
|
| - }
|
| -
|
| - // If asking politely didn't work, wait for 15 seconds and then kill all
|
| - // chrome.exe. This check is just in case Chrome is ignoring WM_CLOSE
|
| - // messages.
|
| - base::CleanupProcesses(installer::kChromeExe,
|
| - base::TimeDelta::FromSeconds(15),
|
| + base::CleanupProcesses(installer::kChromeExe, base::TimeDelta(),
|
| content::RESULT_CODE_HUNG, NULL);
|
| - base::CleanupProcesses(installer::kNaClExe,
|
| - base::TimeDelta::FromSeconds(15),
|
| + base::CleanupProcesses(installer::kNaClExe, base::TimeDelta(),
|
| content::RESULT_CODE_HUNG, NULL);
|
| + if (base::win::GetVersion() >= base::win::VERSION_WIN8) {
|
| + base::CleanupProcesses(installer::kDelegateExecuteExe, base::TimeDelta(),
|
| + content::RESULT_CODE_HUNG, NULL);
|
| + }
|
| }
|
|
|
| // Attempts to close the Chrome Frame helper process by sending WM_CLOSE
|
|
|