| OLD | NEW |
| 1 // Copyright (c) 2010 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 // 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 <windows.h> | 10 #include <windows.h> |
| 11 #include <wtsapi32.h> | 11 #include <wtsapi32.h> |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 | 275 |
| 276 std::string value; | 276 std::string value; |
| 277 uninstall_metrics_dict->GetStringWithoutPathExpansion(*iter, &value); | 277 uninstall_metrics_dict->GetStringWithoutPathExpansion(*iter, &value); |
| 278 metrics->append(UTF8ToWide(value)); | 278 metrics->append(UTF8ToWide(value)); |
| 279 } | 279 } |
| 280 | 280 |
| 281 return has_values; | 281 return has_values; |
| 282 } | 282 } |
| 283 | 283 |
| 284 bool GoogleChromeDistribution::ExtractUninstallMetricsFromFile( | 284 bool GoogleChromeDistribution::ExtractUninstallMetricsFromFile( |
| 285 const std::wstring& file_path, std::wstring* uninstall_metrics_string) { | 285 const FilePath& file_path, |
| 286 | 286 std::wstring* uninstall_metrics_string) { |
| 287 JSONFileValueSerializer json_serializer(FilePath::FromWStringHack(file_path)); | 287 JSONFileValueSerializer json_serializer(file_path); |
| 288 | 288 |
| 289 std::string json_error_string; | 289 std::string json_error_string; |
| 290 scoped_ptr<Value> root(json_serializer.Deserialize(NULL, NULL)); | 290 scoped_ptr<Value> root(json_serializer.Deserialize(NULL, NULL)); |
| 291 if (!root.get()) | 291 if (!root.get()) |
| 292 return false; | 292 return false; |
| 293 | 293 |
| 294 // Preferences should always have a dictionary root. | 294 // Preferences should always have a dictionary root. |
| 295 if (!root->IsType(Value::TYPE_DICTIONARY)) | 295 if (!root->IsType(Value::TYPE_DICTIONARY)) |
| 296 return false; | 296 return false; |
| 297 | 297 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 320 if (!BuildUninstallMetricsString(uninstall_metrics_dict, | 320 if (!BuildUninstallMetricsString(uninstall_metrics_dict, |
| 321 uninstall_metrics_string)) { | 321 uninstall_metrics_string)) { |
| 322 return false; | 322 return false; |
| 323 } | 323 } |
| 324 | 324 |
| 325 return true; | 325 return true; |
| 326 } | 326 } |
| 327 #endif | 327 #endif |
| 328 | 328 |
| 329 void GoogleChromeDistribution::DoPostUninstallOperations( | 329 void GoogleChromeDistribution::DoPostUninstallOperations( |
| 330 const Version& version, const FilePath& local_data_path, | 330 const Version& version, |
| 331 const FilePath& local_data_path, |
| 331 const std::wstring& distribution_data) { | 332 const std::wstring& distribution_data) { |
| 332 // Send the Chrome version and OS version as params to the form. | 333 // Send the Chrome version and OS version as params to the form. |
| 333 // It would be nice to send the locale, too, but I don't see an | 334 // It would be nice to send the locale, too, but I don't see an |
| 334 // easy way to get that in the existing code. It's something we | 335 // easy way to get that in the existing code. It's something we |
| 335 // can add later, if needed. | 336 // can add later, if needed. |
| 336 // We depend on installed_version.GetString() not having spaces or other | 337 // We depend on installed_version.GetString() not having spaces or other |
| 337 // characters that need escaping: 0.2.13.4. Should that change, we will | 338 // characters that need escaping: 0.2.13.4. Should that change, we will |
| 338 // need to escape the string before using it in a URL. | 339 // need to escape the string before using it in a URL. |
| 339 const std::wstring kVersionParam = L"crversion"; | 340 const std::wstring kVersionParam = L"crversion"; |
| 340 const std::wstring kOSParam = L"os"; | 341 const std::wstring kOSParam = L"os"; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 352 return; | 353 return; |
| 353 | 354 |
| 354 iexplore = iexplore.AppendASCII("Internet Explorer"); | 355 iexplore = iexplore.AppendASCII("Internet Explorer"); |
| 355 iexplore = iexplore.AppendASCII("iexplore.exe"); | 356 iexplore = iexplore.AppendASCII("iexplore.exe"); |
| 356 | 357 |
| 357 std::wstring command = iexplore.value() + L" " + GetUninstallSurveyUrl() + | 358 std::wstring command = iexplore.value() + L" " + GetUninstallSurveyUrl() + |
| 358 L"&" + kVersionParam + L"=" + UTF8ToWide(version.GetString()) + L"&" + | 359 L"&" + kVersionParam + L"=" + UTF8ToWide(version.GetString()) + L"&" + |
| 359 kOSParam + L"=" + os_version; | 360 kOSParam + L"=" + os_version; |
| 360 | 361 |
| 361 std::wstring uninstall_metrics; | 362 std::wstring uninstall_metrics; |
| 362 if (ExtractUninstallMetricsFromFile(local_data_path.value(), | 363 if (ExtractUninstallMetricsFromFile(local_data_path, &uninstall_metrics)) { |
| 363 &uninstall_metrics)) { | |
| 364 // The user has opted into anonymous usage data collection, so append | 364 // The user has opted into anonymous usage data collection, so append |
| 365 // metrics and distribution data. | 365 // metrics and distribution data. |
| 366 command += uninstall_metrics; | 366 command += uninstall_metrics; |
| 367 if (!distribution_data.empty()) { | 367 if (!distribution_data.empty()) { |
| 368 command += L"&"; | 368 command += L"&"; |
| 369 command += distribution_data; | 369 command += distribution_data; |
| 370 } | 370 } |
| 371 } | 371 } |
| 372 | 372 |
| 373 int pid = 0; | 373 int pid = 0; |
| (...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 688 base::LaunchApp(cmd, false, false, NULL); | 688 base::LaunchApp(cmd, false, false, NULL); |
| 689 } | 689 } |
| 690 #endif | 690 #endif |
| 691 | 691 |
| 692 bool GoogleChromeDistribution::SetChannelFlags( | 692 bool GoogleChromeDistribution::SetChannelFlags( |
| 693 bool set, | 693 bool set, |
| 694 installer::ChannelInfo* channel_info) { | 694 installer::ChannelInfo* channel_info) { |
| 695 DCHECK(channel_info); | 695 DCHECK(channel_info); |
| 696 return channel_info->SetChrome(set); | 696 return channel_info->SetChrome(set); |
| 697 } | 697 } |
| OLD | NEW |