| Index: chrome/browser/chromeos/extensions/info_private_api.cc
|
| diff --git a/chrome/browser/chromeos/extensions/info_private_api.cc b/chrome/browser/chromeos/extensions/info_private_api.cc
|
| index c6079c36752f2aebf6a28ae68335a5281f44dcae..9d4d48288d01f16b9f8674f7de8cb7985a4cc8f4 100644
|
| --- a/chrome/browser/chromeos/extensions/info_private_api.cc
|
| +++ b/chrome/browser/chromeos/extensions/info_private_api.cc
|
| @@ -8,10 +8,14 @@
|
| #include "base/prefs/pref_service.h"
|
| #include "base/sys_info.h"
|
| #include "base/values.h"
|
| +#include "chrome/browser/app_mode/app_mode_utils.h"
|
| +#include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/chromeos/login/startup_utils.h"
|
| #include "chrome/browser/chromeos/login/users/user_manager.h"
|
| +#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
|
| #include "chrome/browser/chromeos/settings/cros_settings.h"
|
| #include "chrome/browser/chromeos/system/timezone_util.h"
|
| +#include "chrome/browser/metrics/metrics_service.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "chromeos/network/device_state.h"
|
| @@ -43,9 +47,12 @@ const char kPropertyInitialLocale[] = "initialLocale";
|
| // Key which corresponds to the board property in JS.
|
| const char kPropertyBoard[] = "board";
|
|
|
| -// Key which corresponds to the board property in JS.
|
| +// Key which corresponds to the isOwner property in JS.
|
| const char kPropertyOwner[] = "isOwner";
|
|
|
| +// Key which corresponds to the clientId property in JS.
|
| +const char kPropertyClientId[] = "clientId";
|
| +
|
| // Key which corresponds to the timezone property in JS.
|
| const char kPropertyTimezone[] = "timezone";
|
|
|
| @@ -103,6 +110,21 @@ const char* GetBoolPrefNameForApiProperty(const char* api_name) {
|
| return NULL;
|
| }
|
|
|
| +bool IsEnterpriseKiosk() {
|
| + if (!chrome::IsRunningInForcedAppMode())
|
| + return false;
|
| +
|
| + policy::BrowserPolicyConnectorChromeOS* connector =
|
| + g_browser_process->platform_part()->browser_policy_connector_chromeos();
|
| + return connector->IsEnterpriseManaged();
|
| +}
|
| +
|
| +std::string GetClientId() {
|
| + return IsEnterpriseKiosk()
|
| + ? g_browser_process->metrics_service()->GetClientId()
|
| + : std::string();
|
| +}
|
| +
|
| } // namespace
|
|
|
| ChromeosInfoPrivateGetFunction::ChromeosInfoPrivateGetFunction() {
|
| @@ -158,6 +180,8 @@ base::Value* ChromeosInfoPrivateGetFunction::GetValue(
|
| } else if (property_name == kPropertyOwner) {
|
| return base::Value::CreateBooleanValue(
|
| chromeos::UserManager::Get()->IsCurrentUserOwner());
|
| + } else if (property_name == kPropertyClientId) {
|
| + return base::Value::CreateStringValue(GetClientId());
|
| } else if (property_name == kPropertyTimezone) {
|
| return chromeos::CrosSettings::Get()->GetPref(
|
| chromeos::kSystemTimezone)->DeepCopy();
|
|
|