| OLD | NEW |
| 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2014 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/component_updater/sw_reporter_installer_win.h" | 5 #include "chrome/browser/component_updater/sw_reporter_installer_win.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <map> | 10 #include <map> |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 constexpr char kSessionIdSwitch[] = "session-id"; | 76 constexpr char kSessionIdSwitch[] = "session-id"; |
| 77 | 77 |
| 78 // SRT registry keys and value names. | 78 // SRT registry keys and value names. |
| 79 const wchar_t kCleanerSuffixRegistryKey[] = L"Cleaner"; | 79 const wchar_t kCleanerSuffixRegistryKey[] = L"Cleaner"; |
| 80 const wchar_t kExitCodeValueName[] = L"ExitCode"; | 80 const wchar_t kExitCodeValueName[] = L"ExitCode"; |
| 81 const wchar_t kUploadResultsValueName[] = L"UploadResults"; | 81 const wchar_t kUploadResultsValueName[] = L"UploadResults"; |
| 82 const wchar_t kVersionValueName[] = L"Version"; | 82 const wchar_t kVersionValueName[] = L"Version"; |
| 83 | 83 |
| 84 constexpr base::Feature kExperimentalEngineFeature{ | 84 constexpr base::Feature kExperimentalEngineFeature{ |
| 85 "ExperimentalSwReporterEngine", base::FEATURE_DISABLED_BY_DEFAULT}; | 85 "ExperimentalSwReporterEngine", base::FEATURE_DISABLED_BY_DEFAULT}; |
| 86 constexpr base::Feature kExperimentalEngineAllArchsFeature{ |
| 87 "ExperimentalSwReporterEngineOnAllArchitectures", |
| 88 base::FEATURE_DISABLED_BY_DEFAULT |
| 89 }; |
| 86 | 90 |
| 87 void SRTHasCompleted(SRTCompleted value) { | 91 void SRTHasCompleted(SRTCompleted value) { |
| 88 UMA_HISTOGRAM_ENUMERATION("SoftwareReporter.Cleaner.HasCompleted", value, | 92 UMA_HISTOGRAM_ENUMERATION("SoftwareReporter.Cleaner.HasCompleted", value, |
| 89 SRT_COMPLETED_MAX); | 93 SRT_COMPLETED_MAX); |
| 90 } | 94 } |
| 91 | 95 |
| 92 void ReportUploadsWithUma(const base::string16& upload_results) { | 96 void ReportUploadsWithUma(const base::string16& upload_results) { |
| 93 base::WStringTokenizer tokenizer(upload_results, L";"); | 97 base::WStringTokenizer tokenizer(upload_results, L";"); |
| 94 int failure_count = 0; | 98 int failure_count = 0; |
| 95 int success_count = 0; | 99 int success_count = 0; |
| (...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 ReportUploadsWithUma(upload_results); | 472 ReportUploadsWithUma(upload_results); |
| 469 } | 473 } |
| 470 } else { | 474 } else { |
| 471 if (cleaner_key.HasValue(safe_browsing::kEndTimeValueName)) { | 475 if (cleaner_key.HasValue(safe_browsing::kEndTimeValueName)) { |
| 472 SRTHasCompleted(SRT_COMPLETED_LATER); | 476 SRTHasCompleted(SRT_COMPLETED_LATER); |
| 473 cleaner_key.DeleteValue(safe_browsing::kEndTimeValueName); | 477 cleaner_key.DeleteValue(safe_browsing::kEndTimeValueName); |
| 474 } | 478 } |
| 475 } | 479 } |
| 476 } | 480 } |
| 477 | 481 |
| 478 // The experiment is only enabled on x86. There's no way to check this in the | 482 // If the experiment is not explicitly enabled on all platforms, it |
| 483 // should be only enabled on x86. There's no way to check this in the |
| 479 // variations config so we'll hard-code it. | 484 // variations config so we'll hard-code it. |
| 480 const bool is_experimental_engine_supported = | 485 const bool is_x86_architecture = |
| 481 base::win::OSInfo::GetInstance()->architecture() == | 486 base::win::OSInfo::GetInstance()->architecture() == |
| 482 base::win::OSInfo::X86_ARCHITECTURE; | 487 base::win::OSInfo::X86_ARCHITECTURE; |
| 488 const bool is_experimental_engine_supported = |
| 489 base::FeatureList::IsEnabled(kExperimentalEngineAllArchsFeature) || |
| 490 is_x86_architecture; |
| 483 | 491 |
| 484 // Install the component. | 492 // Install the component. |
| 485 std::unique_ptr<ComponentInstallerTraits> traits( | 493 std::unique_ptr<ComponentInstallerTraits> traits( |
| 486 new SwReporterInstallerTraits(base::Bind(&RunSwReportersAfterStartup), | 494 new SwReporterInstallerTraits(base::Bind(&RunSwReportersAfterStartup), |
| 487 is_experimental_engine_supported)); | 495 is_experimental_engine_supported)); |
| 488 // |cus| will take ownership of |installer| during installer->Register(cus). | 496 // |cus| will take ownership of |installer| during installer->Register(cus). |
| 489 DefaultComponentInstaller* installer = | 497 DefaultComponentInstaller* installer = |
| 490 new DefaultComponentInstaller(std::move(traits)); | 498 new DefaultComponentInstaller(std::move(traits)); |
| 491 installer->Register(cus, base::Closure()); | 499 installer->Register(cus, base::Closure()); |
| 492 } | 500 } |
| 493 | 501 |
| 494 void RegisterPrefsForSwReporter(PrefRegistrySimple* registry) { | 502 void RegisterPrefsForSwReporter(PrefRegistrySimple* registry) { |
| 495 registry->RegisterInt64Pref(prefs::kSwReporterLastTimeTriggered, 0); | 503 registry->RegisterInt64Pref(prefs::kSwReporterLastTimeTriggered, 0); |
| 496 registry->RegisterIntegerPref(prefs::kSwReporterLastExitCode, -1); | 504 registry->RegisterIntegerPref(prefs::kSwReporterLastExitCode, -1); |
| 497 registry->RegisterBooleanPref(prefs::kSwReporterPendingPrompt, false); | 505 registry->RegisterBooleanPref(prefs::kSwReporterPendingPrompt, false); |
| 498 registry->RegisterInt64Pref(prefs::kSwReporterLastTimeSentReport, 0); | 506 registry->RegisterInt64Pref(prefs::kSwReporterLastTimeSentReport, 0); |
| 499 } | 507 } |
| 500 | 508 |
| 501 void RegisterProfilePrefsForSwReporter( | 509 void RegisterProfilePrefsForSwReporter( |
| 502 user_prefs::PrefRegistrySyncable* registry) { | 510 user_prefs::PrefRegistrySyncable* registry) { |
| 503 registry->RegisterStringPref(prefs::kSwReporterPromptVersion, ""); | 511 registry->RegisterStringPref(prefs::kSwReporterPromptVersion, ""); |
| 504 | 512 |
| 505 registry->RegisterStringPref(prefs::kSwReporterPromptSeed, ""); | 513 registry->RegisterStringPref(prefs::kSwReporterPromptSeed, ""); |
| 506 } | 514 } |
| 507 | 515 |
| 508 } // namespace component_updater | 516 } // namespace component_updater |
| OLD | NEW |