OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/installer/util/user_experiment.h" | 5 #include "chrome/installer/util/user_experiment.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 #include <sddl.h> | 8 #include <sddl.h> |
9 #include <wtsapi32.h> | 9 #include <wtsapi32.h> |
10 #include <vector> | 10 #include <vector> |
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 base::string16 client; | 420 base::string16 client; |
421 GoogleUpdateSettings::GetClient(&client); | 421 GoogleUpdateSettings::GetClient(&client); |
422 if (client.size() > 2) { | 422 if (client.size() > 2) { |
423 if (base_group == client.substr(0, 2)) { | 423 if (base_group == client.substr(0, 2)) { |
424 VLOG(1) << "User already participated in this experiment"; | 424 VLOG(1) << "User already participated in this experiment"; |
425 return; | 425 return; |
426 } | 426 } |
427 } | 427 } |
428 // Check browser usage inactivity by the age of the last-write time of the | 428 // Check browser usage inactivity by the age of the last-write time of the |
429 // most recently-used chrome user data directory. | 429 // most recently-used chrome user data directory. |
430 std::vector<base::FilePath> user_data_dirs; | |
431 BrowserDistribution* dist = BrowserDistribution::GetSpecificDistribution( | 430 BrowserDistribution* dist = BrowserDistribution::GetSpecificDistribution( |
432 BrowserDistribution::CHROME_BROWSER); | 431 BrowserDistribution::CHROME_BROWSER); |
433 GetChromeUserDataPaths(dist, &user_data_dirs); | 432 base::FilePath user_data_dir(GetChromeUserDataPath(dist)); |
434 int dir_age_hours = -1; | |
435 for (size_t i = 0; i < user_data_dirs.size(); ++i) { | |
436 int this_age = GetDirectoryWriteAgeInHours( | |
437 user_data_dirs[i].value().c_str()); | |
438 if (this_age >= 0 && (dir_age_hours < 0 || this_age < dir_age_hours)) | |
439 dir_age_hours = this_age; | |
440 } | |
441 | 433 |
442 const bool experiment_enabled = false; | 434 const bool experiment_enabled = false; |
443 const int kThirtyDays = 30 * 24; | 435 const int kThirtyDays = 30 * 24; |
444 | 436 |
| 437 int dir_age_hours = GetDirectoryWriteAgeInHours( |
| 438 user_data_dir.value().c_str()); |
445 if (!experiment_enabled) { | 439 if (!experiment_enabled) { |
446 VLOG(1) << "Toast experiment is disabled."; | 440 VLOG(1) << "Toast experiment is disabled."; |
447 return; | 441 return; |
448 } else if (dir_age_hours < 0) { | 442 } else if (dir_age_hours < 0) { |
449 // This means that we failed to find the user data dir. The most likely | 443 // This means that we failed to find the user data dir. The most likely |
450 // cause is that this user has not ever used chrome at all which can | 444 // cause is that this user has not ever used chrome at all which can |
451 // happen in a system-level install. | 445 // happen in a system-level install. |
452 SetClient(base_group + kToastUDDirFailure, true); | 446 SetClient(base_group + kToastUDDirFailure, true); |
453 return; | 447 return; |
454 } else if (dir_age_hours < kThirtyDays) { | 448 } else if (dir_age_hours < kThirtyDays) { |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
529 // running. | 523 // running. |
530 bool system_level_toast = CommandLine::ForCurrentProcess()->HasSwitch( | 524 bool system_level_toast = CommandLine::ForCurrentProcess()->HasSwitch( |
531 switches::kSystemLevelToast); | 525 switches::kSystemLevelToast); |
532 | 526 |
533 CommandLine cmd(InstallUtil::GetChromeUninstallCmd( | 527 CommandLine cmd(InstallUtil::GetChromeUninstallCmd( |
534 system_level_toast, product.distribution()->GetType())); | 528 system_level_toast, product.distribution()->GetType())); |
535 base::LaunchProcess(cmd, base::LaunchOptions(), NULL); | 529 base::LaunchProcess(cmd, base::LaunchOptions(), NULL); |
536 } | 530 } |
537 | 531 |
538 } // namespace installer | 532 } // namespace installer |
OLD | NEW |