| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // This file defines specific implementation of BrowserDistribution class for | 5 // This file defines specific implementation of BrowserDistribution class for | 
| 6 // Google Chrome. | 6 // Google Chrome. | 
| 7 | 7 | 
| 8 #include "chrome/installer/util/google_chrome_distribution.h" | 8 #include "chrome/installer/util/google_chrome_distribution.h" | 
| 9 | 9 | 
| 10 #include <vector> | 10 #include <vector> | 
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 283   return launched; | 283   return launched; | 
| 284 } | 284 } | 
| 285 | 285 | 
| 286 }  // namespace | 286 }  // namespace | 
| 287 | 287 | 
| 288 GoogleChromeDistribution::GoogleChromeDistribution() | 288 GoogleChromeDistribution::GoogleChromeDistribution() | 
| 289     : BrowserDistribution(CHROME_BROWSER), | 289     : BrowserDistribution(CHROME_BROWSER), | 
| 290       product_guid_(kChromeGuid) { | 290       product_guid_(kChromeGuid) { | 
| 291 } | 291 } | 
| 292 | 292 | 
| 293 // The functions below are not used by the 64-bit Windows binary - |  | 
| 294 // see the comment in google_chrome_distribution_dummy.cc |  | 
| 295 #ifndef _WIN64 |  | 
| 296 bool GoogleChromeDistribution::BuildUninstallMetricsString( | 293 bool GoogleChromeDistribution::BuildUninstallMetricsString( | 
| 297     const DictionaryValue* uninstall_metrics_dict, string16* metrics) { | 294     const DictionaryValue* uninstall_metrics_dict, string16* metrics) { | 
| 298   DCHECK(NULL != metrics); | 295   DCHECK(NULL != metrics); | 
| 299   bool has_values = false; | 296   bool has_values = false; | 
| 300 | 297 | 
| 301   for (DictionaryValue::Iterator iter(*uninstall_metrics_dict); !iter.IsAtEnd(); | 298   for (DictionaryValue::Iterator iter(*uninstall_metrics_dict); !iter.IsAtEnd(); | 
| 302        iter.Advance()) { | 299        iter.Advance()) { | 
| 303     has_values = true; | 300     has_values = true; | 
| 304     metrics->append(L"&"); | 301     metrics->append(L"&"); | 
| 305     metrics->append(UTF8ToWide(iter.key())); | 302     metrics->append(UTF8ToWide(iter.key())); | 
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 350     return false; | 347     return false; | 
| 351   } | 348   } | 
| 352 | 349 | 
| 353   if (!BuildUninstallMetricsString(uninstall_metrics_dict, | 350   if (!BuildUninstallMetricsString(uninstall_metrics_dict, | 
| 354                                    uninstall_metrics_string)) { | 351                                    uninstall_metrics_string)) { | 
| 355     return false; | 352     return false; | 
| 356   } | 353   } | 
| 357 | 354 | 
| 358   return true; | 355   return true; | 
| 359 } | 356 } | 
| 360 #endif |  | 
| 361 | 357 | 
| 362 void GoogleChromeDistribution::DoPostUninstallOperations( | 358 void GoogleChromeDistribution::DoPostUninstallOperations( | 
| 363     const Version& version, | 359     const Version& version, | 
| 364     const FilePath& local_data_path, | 360     const FilePath& local_data_path, | 
| 365     const string16& distribution_data) { | 361     const string16& distribution_data) { | 
| 366   // Send the Chrome version and OS version as params to the form. | 362   // Send the Chrome version and OS version as params to the form. | 
| 367   // It would be nice to send the locale, too, but I don't see an | 363   // It would be nice to send the locale, too, but I don't see an | 
| 368   // easy way to get that in the existing code. It's something we | 364   // easy way to get that in the existing code. It's something we | 
| 369   // can add later, if needed. | 365   // can add later, if needed. | 
| 370   // We depend on installed_version.GetString() not having spaces or other | 366   // We depend on installed_version.GetString() not having spaces or other | 
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 565 // string (if it is present) regardless of whether installer failed or not. | 561 // string (if it is present) regardless of whether installer failed or not. | 
| 566 // There is no fall-back for full installer :) | 562 // There is no fall-back for full installer :) | 
| 567 void GoogleChromeDistribution::UpdateInstallStatus(bool system_install, | 563 void GoogleChromeDistribution::UpdateInstallStatus(bool system_install, | 
| 568     installer::ArchiveType archive_type, | 564     installer::ArchiveType archive_type, | 
| 569     installer::InstallStatus install_status) { | 565     installer::InstallStatus install_status) { | 
| 570   GoogleUpdateSettings::UpdateInstallStatus(system_install, | 566   GoogleUpdateSettings::UpdateInstallStatus(system_install, | 
| 571       archive_type, InstallUtil::GetInstallReturnCode(install_status), | 567       archive_type, InstallUtil::GetInstallReturnCode(install_status), | 
| 572       product_guid()); | 568       product_guid()); | 
| 573 } | 569 } | 
| 574 | 570 | 
| 575 // The functions below are not used by the 64-bit Windows binary - |  | 
| 576 // see the comment in google_chrome_distribution_dummy.cc |  | 
| 577 #ifndef _WIN64 |  | 
| 578 // A helper function that writes to HKLM if the handle was passed through the | 571 // A helper function that writes to HKLM if the handle was passed through the | 
| 579 // command line, but HKCU otherwise. |experiment_group| is the value to write | 572 // command line, but HKCU otherwise. |experiment_group| is the value to write | 
| 580 // and |last_write| is used when writing to HKLM to determine whether to close | 573 // and |last_write| is used when writing to HKLM to determine whether to close | 
| 581 // the handle when done. | 574 // the handle when done. | 
| 582 void SetClient(const string16& experiment_group, bool last_write) { | 575 void SetClient(const string16& experiment_group, bool last_write) { | 
| 583   static int reg_key_handle = -1; | 576   static int reg_key_handle = -1; | 
| 584   if (reg_key_handle == -1) { | 577   if (reg_key_handle == -1) { | 
| 585     // If a specific Toast Results key handle (presumably to our HKLM key) was | 578     // If a specific Toast Results key handle (presumably to our HKLM key) was | 
| 586     // passed in to the command line (such as for system level installs), we use | 579     // passed in to the command line (such as for system level installs), we use | 
| 587     // it. Otherwise, we write to the key under HKCU. | 580     // it. Otherwise, we write to the key under HKCU. | 
| (...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 865   // The user wants to uninstall. This is a best effort operation. Note that | 858   // The user wants to uninstall. This is a best effort operation. Note that | 
| 866   // we waited for chrome to exit so the uninstall would not detect chrome | 859   // we waited for chrome to exit so the uninstall would not detect chrome | 
| 867   // running. | 860   // running. | 
| 868   bool system_level_toast = CommandLine::ForCurrentProcess()->HasSwitch( | 861   bool system_level_toast = CommandLine::ForCurrentProcess()->HasSwitch( | 
| 869       installer::switches::kSystemLevelToast); | 862       installer::switches::kSystemLevelToast); | 
| 870 | 863 | 
| 871   CommandLine cmd(InstallUtil::GetChromeUninstallCmd(system_level_toast, | 864   CommandLine cmd(InstallUtil::GetChromeUninstallCmd(system_level_toast, | 
| 872                                                      GetType())); | 865                                                      GetType())); | 
| 873   base::LaunchProcess(cmd, base::LaunchOptions(), NULL); | 866   base::LaunchProcess(cmd, base::LaunchOptions(), NULL); | 
| 874 } | 867 } | 
| 875 #endif  // ifndef _WIN64 |  | 
| 876 | 868 | 
| 877 bool GoogleChromeDistribution::ShouldSetExperimentLabels() { | 869 bool GoogleChromeDistribution::ShouldSetExperimentLabels() { | 
| 878   return true; | 870   return true; | 
| 879 } | 871 } | 
| OLD | NEW | 
|---|