| Index: chrome/browser/chromeos/extensions/echo_private_api.cc
|
| diff --git a/chrome/browser/chromeos/extensions/echo_private_api.cc b/chrome/browser/chromeos/extensions/echo_private_api.cc
|
| index 51f195dbf4e0e44638fb24e52fb98891c716a1bf..793aa979455c8535cdf8cb1b36773f63f573e624 100644
|
| --- a/chrome/browser/chromeos/extensions/echo_private_api.cc
|
| +++ b/chrome/browser/chromeos/extensions/echo_private_api.cc
|
| @@ -14,17 +14,27 @@
|
| #include "base/time.h"
|
| #include "base/values.h"
|
| #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h"
|
| +#include "chrome/browser/chromeos/settings/cros_settings.h"
|
| #include "chrome/browser/chromeos/system/statistics_provider.h"
|
| #include "chrome/common/extensions/extension.h"
|
| #include "content/public/browser/browser_thread.h"
|
|
|
| using content::BrowserThread;
|
|
|
| -namespace {
|
| +GetRegistrationCodeFunction::GetRegistrationCodeFunction() {
|
| +}
|
| +
|
| +GetRegistrationCodeFunction::~GetRegistrationCodeFunction() {
|
| +}
|
|
|
| -// For a given registration code type, returns the code value from the
|
| -// underlying system. Caller owns the returned pointer.
|
| -base::Value* GetValueForRegistrationCodeType(std::string& type) {
|
| +void GetRegistrationCodeFunction::GetRegistrationCode(const std::string& type) {
|
| + if (!chromeos::KioskModeSettings::Get()->is_initialized()) {
|
| + chromeos::KioskModeSettings::Get()->Initialize(base::Bind(
|
| + &GetRegistrationCodeFunction::GetRegistrationCode,
|
| + base::Unretained(this),
|
| + type));
|
| + return;
|
| + }
|
| // Possible ECHO code type and corresponding key name in StatisticsProvider.
|
| const std::string kCouponType = "COUPON_CODE";
|
| const std::string kCouponCodeKey = "ubind_attribute";
|
| @@ -42,22 +52,14 @@ base::Value* GetValueForRegistrationCodeType(std::string& type) {
|
| else if (type == kGroupType)
|
| provider->GetMachineStatistic(kGroupCodeKey, &result);
|
| }
|
| - return new base::StringValue(result);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -
|
| -GetRegistrationCodeFunction::GetRegistrationCodeFunction() {
|
| -}
|
| -
|
| -GetRegistrationCodeFunction::~GetRegistrationCodeFunction() {
|
| + SetResult(new base::StringValue(result));
|
| + SendResponse(true);
|
| }
|
|
|
| bool GetRegistrationCodeFunction::RunImpl() {
|
| std::string type;
|
| EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &type));
|
| - SetResult(GetValueForRegistrationCodeType(type));
|
| + GetRegistrationCode(type);
|
| return true;
|
| }
|
|
|
| @@ -98,3 +100,34 @@ bool GetOobeTimestampFunction::GetOobeTimestampOnFileThread() {
|
| SetResult(new base::StringValue(timestamp));
|
| return true;
|
| }
|
| +
|
| +CheckAllowRedeemOffersFunction::CheckAllowRedeemOffersFunction() {
|
| +}
|
| +
|
| +CheckAllowRedeemOffersFunction::~CheckAllowRedeemOffersFunction() {
|
| +}
|
| +
|
| +void CheckAllowRedeemOffersFunction::CheckAllowRedeemOffers() {
|
| + chromeos::CrosSettingsProvider::TrustedStatus status =
|
| + chromeos::CrosSettings::Get()->PrepareTrustedValues(
|
| + base::Bind(&CheckAllowRedeemOffersFunction::CheckAllowRedeemOffers,
|
| + base::Unretained(this)));
|
| + if (status == chromeos::CrosSettingsProvider::TEMPORARILY_UNTRUSTED)
|
| + return;
|
| +
|
| + bool allow;
|
| + if (!chromeos::CrosSettings::Get()->GetBoolean(
|
| + chromeos::kAllowRedeemChromeOsRegistrationOffers, &allow)) {
|
| + allow = true;
|
| + }
|
| + SetResult(new base::FundamentalValue(allow));
|
| + SendResponse(true);
|
| +}
|
| +
|
| +// Check the enterprise policy kAllowRedeemChromeOsRegistrationOffers flag
|
| +// value. This policy is used to control whether user can redeem offers using
|
| +// enterprise device.
|
| +bool CheckAllowRedeemOffersFunction::RunImpl() {
|
| + CheckAllowRedeemOffers();
|
| + return true;
|
| +}
|
|
|