Chromium Code Reviews| 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 36350e709e3bdc43a2766d89766793032f56ec6f..7f701dfa44c100e73d3d39d7023b42f695859bd5 100644 |
| --- a/chrome/browser/chromeos/extensions/info_private_api.cc |
| +++ b/chrome/browser/chromeos/extensions/info_private_api.cc |
| @@ -8,10 +8,12 @@ |
| #include <utility> |
| +#include "base/command_line.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/arc/arc_auth_service.h" |
| #include "chrome/browser/chromeos/login/startup_utils.h" |
| #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
| #include "chrome/browser/chromeos/settings/cros_settings.h" |
| @@ -23,9 +25,11 @@ |
| #include "chromeos/network/network_state_handler.h" |
| #include "chromeos/settings/cros_settings_names.h" |
| #include "chromeos/system/statistics_provider.h" |
| +#include "components/arc/arc_bridge_service.h" |
| #include "components/metrics/metrics_service.h" |
| #include "components/prefs/pref_service.h" |
| #include "components/user_manager/user_manager.h" |
| +#include "extensions/browser/extensions_browser_client.h" |
| #include "extensions/common/error_utils.h" |
| #include "third_party/cros_system_api/dbus/service_constants.h" |
| @@ -104,6 +108,34 @@ const char kPropertySendFunctionsKeys[] = "sendFunctionKeys"; |
| // Property not found error message. |
| const char kPropertyNotFound[] = "Property '*' does not exist."; |
| +// Key which corresponds to the sessionType property in JS. |
| +const char kPropertySessionType[] = "sessionType"; |
| + |
| +// Key which corresponds to the "kiosk" value of the SessionType enum in JS. |
| +const char kSessionTypeKiosk[] = "kiosk"; |
| + |
| +// Key which corresponds to the "public session" value of the SessionType enum |
| +// in JS. |
| +const char kSessionTypePublicSession[] = "public session"; |
|
Devlin
2016/09/06 23:04:53
Why not use the generated conversion functions?
Rahul Chaturvedi
2016/09/06 23:19:35
Which generated conversion functions?
Devlin
2016/09/07 16:12:28
We generate conversions from enums to strings, e.g
Rahul Chaturvedi
2016/09/07 20:13:23
I understand that - but where do I find the conver
Devlin
2016/09/07 20:23:27
/sigh...it looks like we aren't compiling this API
|
| + |
| +// Key which corresponds to the "normal" value of the SessionType enum in JS. |
| +const char kSessionTypeNormal[] = "normal"; |
| + |
| +// Key which corresponds to the playStoreStatus property in JS. |
| +const char kPropertyPlayStoreStatus[] = "playStoreStatus"; |
| + |
| +// Key which corresponds to the "not available" value of the PlayStoreStatus |
| +// enum in JS. |
| +const char kPlayStoreStatusNotAvailable[] = "not available"; |
| + |
| +// Key which corresponds to the "available" value of the PlayStoreStatus enum in |
| +// JS. |
| +const char kPlayStoreStatusAvailable[] = "available"; |
| + |
| +// Key which corresponds to the "enabled" value of the PlayStoreStatus enum in |
| +// JS. |
| +const char kPlayStoreStatusEnabled[] = "enabled"; |
| + |
| const struct { |
| const char* api_name; |
| const char* preference_name; |
| @@ -209,6 +241,24 @@ base::Value* ChromeosInfoPrivateGetFunction::GetValue( |
| } else if (property_name == kPropertyOwner) { |
| return new base::FundamentalValue( |
| user_manager::UserManager::Get()->IsCurrentUserOwner()); |
| + } else if (property_name == kPropertySessionType) { |
| + if (ExtensionsBrowserClient::Get()->IsRunningInForcedAppMode()) { |
| + return new base::StringValue(kSessionTypeKiosk); |
| + } else if (ExtensionsBrowserClient::Get()->IsLoggedInAsPublicAccount()) { |
|
Devlin
2016/09/06 23:04:53
no else after return. Ideally, that'd go for this
Rahul Chaturvedi
2016/09/06 23:19:35
I was trying to stick to the style in the file. If
|
| + return new base::StringValue(kSessionTypePublicSession); |
| + } else { |
| + return new base::StringValue(kSessionTypeNormal); |
| + } |
| + } else if (property_name == kPropertyPlayStoreStatus) { |
| + if (arc::ArcAuthService::IsAllowedForProfile( |
| + Profile::FromBrowserContext(context_))) { |
| + return new base::StringValue(kPlayStoreStatusEnabled); |
| + } else if (arc::ArcBridgeService::GetAvailable( |
| + base::CommandLine::ForCurrentProcess())) { |
| + return new base::StringValue(kPlayStoreStatusAvailable); |
| + } else { |
| + return new base::StringValue(kPlayStoreStatusNotAvailable); |
| + } |
| } else if (property_name == kPropertyClientId) { |
| return new base::StringValue(GetClientId()); |
| } else if (property_name == kPropertyTimezone) { |