| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "chrome/browser/browser_main.h" | 5 #include "chrome/browser/browser_main.h" | 
| 6 #include "chrome/browser/browser_main_win.h" | 6 #include "chrome/browser/browser_main_win.h" | 
| 7 | 7 | 
| 8 #include <windows.h> | 8 #include <windows.h> | 
| 9 #include <shellapi.h> | 9 #include <shellapi.h> | 
| 10 | 10 | 
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 107                                                     ShellUtil::CURRENT_USER)) | 107                                                     ShellUtil::CURRENT_USER)) | 
| 108       VLOG(1) << "Failed to delete quick launch shortcut."; | 108       VLOG(1) << "Failed to delete quick launch shortcut."; | 
| 109   } | 109   } | 
| 110   return ret; | 110   return ret; | 
| 111 } | 111 } | 
| 112 | 112 | 
| 113 // Prepares the localized strings that are going to be displayed to | 113 // Prepares the localized strings that are going to be displayed to | 
| 114 // the user if the browser process dies. These strings are stored in the | 114 // the user if the browser process dies. These strings are stored in the | 
| 115 // environment block so they are accessible in the early stages of the | 115 // environment block so they are accessible in the early stages of the | 
| 116 // chrome executable's lifetime. | 116 // chrome executable's lifetime. | 
| 117 void PrepareRestartOnCrashEnviroment(const CommandLine& parsed_command_line) { | 117 void PrepareRestartOnCrashEnviroment(const CommandLine &parsed_command_line) { | 
| 118   // Clear this var so child processes don't show the dialog by default. | 118   // Clear this var so child processes don't show the dialog by default. | 
| 119   scoped_ptr<base::Environment> env(base::Environment::Create()); | 119   scoped_ptr<base::Environment> env(base::Environment::Create()); | 
| 120   env->UnSetVar(env_vars::kShowRestart); | 120   env->UnSetVar(env_vars::kShowRestart); | 
| 121 | 121 | 
| 122   // For non-interactive tests we don't restart on crash. | 122   // For non-interactive tests we don't restart on crash. | 
| 123   if (env->HasVar(env_vars::kHeadless)) | 123   if (env->HasVar(env_vars::kHeadless)) | 
| 124     return; | 124     return; | 
| 125 | 125 | 
| 126   // If the known command-line test options are used we don't create the | 126   // If the known command-line test options are used we don't create the | 
| 127   // environment block which means we don't get the restart dialog. | 127   // environment block which means we don't get the restart dialog. | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 139       l10n_util::GetStringUTF16(IDS_CRASH_RECOVERY_CONTENT)); | 139       l10n_util::GetStringUTF16(IDS_CRASH_RECOVERY_CONTENT)); | 
| 140   base::i18n::AdjustStringForLocaleDirection(&adjusted_string); | 140   base::i18n::AdjustStringForLocaleDirection(&adjusted_string); | 
| 141   dlg_strings.append(adjusted_string); | 141   dlg_strings.append(adjusted_string); | 
| 142   dlg_strings.push_back('|'); | 142   dlg_strings.push_back('|'); | 
| 143   dlg_strings.append(ASCIIToUTF16( | 143   dlg_strings.append(ASCIIToUTF16( | 
| 144       base::i18n::IsRTL() ? env_vars::kRtlLocale : env_vars::kLtrLocale)); | 144       base::i18n::IsRTL() ? env_vars::kRtlLocale : env_vars::kLtrLocale)); | 
| 145 | 145 | 
| 146   env->SetVar(env_vars::kRestartInfo, UTF16ToUTF8(dlg_strings)); | 146   env->SetVar(env_vars::kRestartInfo, UTF16ToUTF8(dlg_strings)); | 
| 147 } | 147 } | 
| 148 | 148 | 
| 149 bool RegisterApplicationRestart(const CommandLine& parsed_command_line) { |  | 
| 150   // The Windows Restart Manager expects a string of command line flags only, |  | 
| 151   // without the program. |  | 
| 152   CommandLine command_line(CommandLine::NO_PROGRAM); |  | 
| 153   command_line.AppendSwitches(parsed_command_line); |  | 
| 154   command_line.AppendArgs(parsed_command_line); |  | 
| 155   // Ensure restore last session is set. |  | 
| 156   if (!command_line.HasSwitch(switches::kRestoreLastSession)) |  | 
| 157     command_line.AppendSwitch(switches::kRestoreLastSession); |  | 
| 158   const wchar_t *command_string = command_line.command_line_string().c_str(); |  | 
| 159   // Restart Chrome if the computer is restarted as the result of an update. |  | 
| 160   // This could be extended to handle crashes, hangs, and patches. |  | 
| 161   HRESULT hr = ::RegisterApplicationRestart(command_string, |  | 
| 162       RESTART_NO_CRASH | RESTART_NO_HANG | RESTART_NO_PATCH); |  | 
| 163   DCHECK(SUCCEEDED(hr)) << "RegisterApplicationRestart failed."; |  | 
| 164   return SUCCEEDED(hr); |  | 
| 165 } |  | 
| 166 |  | 
| 167 // This method handles the --hide-icons and --show-icons command line options | 149 // This method handles the --hide-icons and --show-icons command line options | 
| 168 // for chrome that get triggered by Windows from registry entries | 150 // for chrome that get triggered by Windows from registry entries | 
| 169 // HideIconsCommand & ShowIconsCommand. Chrome doesn't support hide icons | 151 // HideIconsCommand & ShowIconsCommand. Chrome doesn't support hide icons | 
| 170 // functionality so we just ask the users if they want to uninstall Chrome. | 152 // functionality so we just ask the users if they want to uninstall Chrome. | 
| 171 int HandleIconsCommands(const CommandLine& parsed_command_line) { | 153 int HandleIconsCommands(const CommandLine &parsed_command_line) { | 
| 172   if (parsed_command_line.HasSwitch(switches::kHideIcons)) { | 154   if (parsed_command_line.HasSwitch(switches::kHideIcons)) { | 
| 173     string16 cp_applet; | 155     string16 cp_applet; | 
| 174     base::win::Version version = base::win::GetVersion(); | 156     base::win::Version version = base::win::GetVersion(); | 
| 175     if (version >= base::win::VERSION_VISTA) { | 157     if (version >= base::win::VERSION_VISTA) { | 
| 176       cp_applet.assign(L"Programs and Features");  // Windows Vista and later. | 158       cp_applet.assign(L"Programs and Features");  // Windows Vista and later. | 
| 177     } else if (version >= base::win::VERSION_XP) { | 159     } else if (version >= base::win::VERSION_XP) { | 
| 178       cp_applet.assign(L"Add/Remove Programs");  // Windows XP. | 160       cp_applet.assign(L"Add/Remove Programs");  // Windows XP. | 
| 179     } else { | 161     } else { | 
| 180       return ResultCodes::UNSUPPORTED_PARAM;  // Not supported | 162       return ResultCodes::UNSUPPORTED_PARAM;  // Not supported | 
| 181     } | 163     } | 
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 263       base::EnsureNSPRInit(); | 245       base::EnsureNSPRInit(); | 
| 264     } | 246     } | 
| 265   } | 247   } | 
| 266 }; | 248 }; | 
| 267 | 249 | 
| 268 // static | 250 // static | 
| 269 BrowserMainParts* BrowserMainParts::CreateBrowserMainParts( | 251 BrowserMainParts* BrowserMainParts::CreateBrowserMainParts( | 
| 270     const MainFunctionParams& parameters) { | 252     const MainFunctionParams& parameters) { | 
| 271   return new BrowserMainPartsWin(parameters); | 253   return new BrowserMainPartsWin(parameters); | 
| 272 } | 254 } | 
| OLD | NEW | 
|---|