#include "base/location.h"
#include "base/logging.h"
#include "base/memory/singleton.h"
-#include "base/path_service.h"
#include "base/strings/string_number_conversions.h"
#include "base/synchronization/cancellation_flag.h"
#include "base/synchronization/waitable_event.h"
const char kSerialNumber[] = "sn";
// File to get machine hardware info from, and key/value delimiters of
-// the file.
-// /tmp/machine-info is generated by platform/init/chromeos_startup.
+// the file. machine-info is generated only for OOBE and enterprise enrollment
+// and may not be present. See login-manager/init/machine-info.conf.
const char kMachineHardwareInfoFile[] = "/tmp/machine-info";
const char kMachineHardwareInfoEq[] = "=";
const char kMachineHardwareInfoDelim[] = " \n";
const char kOffersCouponCodeKey[] = "ubind_attribute";
const char kOffersGroupCodeKey[] = "gbind_attribute";
const char kRlzBrandCodeKey[] = "rlz_brand_code";
+const char kActivateDateKey[] = "ActivateDate";
// OEM specific statistics. Must be prefixed with "oem_".
const char kOemCanExitEnterpriseEnrollmentKey[] = "oem_can_exit_enrollment";
// StatisticsProvider implementation:
virtual void StartLoadingMachineStatistics(
const scoped_refptr<base::TaskRunner>& file_task_runner,
- bool load_oem_manifest) OVERRIDE;
+ bool load_oem_manifest) override;
virtual bool GetMachineStatistic(const std::string& name,
- std::string* result) OVERRIDE;
- virtual bool GetMachineFlag(const std::string& name, bool* result) OVERRIDE;
- virtual void Shutdown() OVERRIDE;
+ std::string* result) override;
+ virtual bool HasMachineStatistic(const std::string& name) override;
+ virtual bool GetMachineFlag(const std::string& name, bool* result) override;
+ virtual bool HasMachineFlag(const std::string& name) override;
+ virtual void Shutdown() override;
static StatisticsProviderImpl* GetInstance();
return true;
// Block if the statistics are not loaded yet. Normally this shouldn't
- // happen excpet during OOBE.
+ // happen except during OOBE.
base::Time start_time = base::Time::Now();
base::ThreadRestrictions::ScopedAllowWait allow_wait;
on_statistics_loaded_.TimedWait(base::TimeDelta::FromSeconds(kTimeoutSecs));
return true;
}
+bool StatisticsProviderImpl::HasMachineStatistic(const std::string& name) {
+ std::string result;
+ return GetMachineStatistic(name, &result);
+}
+
bool StatisticsProviderImpl::GetMachineFlag(const std::string& name,
bool* result) {
VLOG(1) << "Machine Flag requested: " << name;
return true;
}
+bool StatisticsProviderImpl::HasMachineFlag(const std::string& name) {
+ bool result = false;
+ return GetMachineFlag(name, &result);
+}
+
void StatisticsProviderImpl::Shutdown() {
cancellation_flag_.Set(); // Cancel any pending loads
}
} else if (base::SysInfo::IsRunningOnChromeOS()) {
LoadOemManifestFromFile(base::FilePath(kOemManifestFilePath));
}
- oem_manifest_loaded_ = true;
}
if (!base::SysInfo::IsRunningOnChromeOS() &&
machine_flags_[kOemKeyboardDrivenOobeKey] =
oem_manifest.keyboard_driven_oobe;
+ oem_manifest_loaded_ = true;
VLOG(1) << "Loaded OEM Manifest statistics from " << file.value();
}