| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/chromeos/policy/device_local_account.h" | 5 #include "chrome/browser/chromeos/policy/device_local_account.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 | 28 |
| 29 const char kPublicAccountDomainPrefix[] = "public-accounts"; | 29 const char kPublicAccountDomainPrefix[] = "public-accounts"; |
| 30 const char kKioskAppAccountDomainPrefix[] = "kiosk-apps"; | 30 const char kKioskAppAccountDomainPrefix[] = "kiosk-apps"; |
| 31 const char kArcKioskAppAccountDomainPrefix[] = "arc-kiosk-apps"; | 31 const char kArcKioskAppAccountDomainPrefix[] = "arc-kiosk-apps"; |
| 32 const char kDeviceLocalAccountDomainSuffix[] = ".device-local.localhost"; | 32 const char kDeviceLocalAccountDomainSuffix[] = ".device-local.localhost"; |
| 33 | 33 |
| 34 } // namespace | 34 } // namespace |
| 35 | 35 |
| 36 ArcKioskAppBasicInfo::ArcKioskAppBasicInfo(const std::string& package_name, | 36 ArcKioskAppBasicInfo::ArcKioskAppBasicInfo(const std::string& package_name, |
| 37 const std::string& class_name, | 37 const std::string& class_name, |
| 38 const std::string& action) | 38 const std::string& action, |
| 39 : package_name_(package_name), class_name_(class_name), action_(action) {} | 39 const std::string& display_name) |
| 40 : package_name_(package_name), |
| 41 class_name_(class_name), |
| 42 action_(action), |
| 43 display_name_(display_name) {} |
| 40 | 44 |
| 41 ArcKioskAppBasicInfo::ArcKioskAppBasicInfo(const ArcKioskAppBasicInfo& other) = | 45 ArcKioskAppBasicInfo::ArcKioskAppBasicInfo(const ArcKioskAppBasicInfo& other) = |
| 42 default; | 46 default; |
| 43 | 47 |
| 44 ArcKioskAppBasicInfo::ArcKioskAppBasicInfo() {} | 48 ArcKioskAppBasicInfo::ArcKioskAppBasicInfo() {} |
| 45 | 49 |
| 46 ArcKioskAppBasicInfo::~ArcKioskAppBasicInfo() {} | 50 ArcKioskAppBasicInfo::~ArcKioskAppBasicInfo() {} |
| 47 | 51 |
| 48 bool ArcKioskAppBasicInfo::operator==(const ArcKioskAppBasicInfo& other) const { | 52 bool ArcKioskAppBasicInfo::operator==(const ArcKioskAppBasicInfo& other) const { |
| 49 return this->package_name_ == other.package_name_ && | 53 return this->package_name_ == other.package_name_ && |
| 50 this->action_ == other.action_ && | 54 this->action_ == other.action_ && |
| 51 this->class_name_ == other.class_name_; | 55 this->class_name_ == other.class_name_ && |
| 56 this->display_name_ == other.display_name_; |
| 52 } | 57 } |
| 53 | 58 |
| 54 DeviceLocalAccount::DeviceLocalAccount(Type type, | 59 DeviceLocalAccount::DeviceLocalAccount(Type type, |
| 55 const std::string& account_id, | 60 const std::string& account_id, |
| 56 const std::string& kiosk_app_id, | 61 const std::string& kiosk_app_id, |
| 57 const std::string& kiosk_app_update_url) | 62 const std::string& kiosk_app_update_url) |
| 58 : type(type), | 63 : type(type), |
| 59 account_id(account_id), | 64 account_id(account_id), |
| 60 user_id(GenerateDeviceLocalAccountUserId(account_id, type)), | 65 user_id(GenerateDeviceLocalAccountUserId(account_id, type)), |
| 61 kiosk_app_id(kiosk_app_id), | 66 kiosk_app_id(kiosk_app_id), |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 if (!it->arc_kiosk_app_info.class_name().empty()) { | 168 if (!it->arc_kiosk_app_info.class_name().empty()) { |
| 164 entry->SetStringWithoutPathExpansion( | 169 entry->SetStringWithoutPathExpansion( |
| 165 chromeos::kAccountsPrefDeviceLocalAccountsKeyArcKioskClass, | 170 chromeos::kAccountsPrefDeviceLocalAccountsKeyArcKioskClass, |
| 166 it->arc_kiosk_app_info.class_name()); | 171 it->arc_kiosk_app_info.class_name()); |
| 167 } | 172 } |
| 168 if (!it->arc_kiosk_app_info.action().empty()) { | 173 if (!it->arc_kiosk_app_info.action().empty()) { |
| 169 entry->SetStringWithoutPathExpansion( | 174 entry->SetStringWithoutPathExpansion( |
| 170 chromeos::kAccountsPrefDeviceLocalAccountsKeyArcKioskAction, | 175 chromeos::kAccountsPrefDeviceLocalAccountsKeyArcKioskAction, |
| 171 it->arc_kiosk_app_info.action()); | 176 it->arc_kiosk_app_info.action()); |
| 172 } | 177 } |
| 178 if (!it->arc_kiosk_app_info.display_name().empty()) { |
| 179 entry->SetStringWithoutPathExpansion( |
| 180 chromeos::kAccountsPrefDeviceLocalAccountsKeyArcKioskDisplayName, |
| 181 it->arc_kiosk_app_info.display_name()); |
| 182 } |
| 173 } | 183 } |
| 174 list.Append(std::move(entry)); | 184 list.Append(std::move(entry)); |
| 175 } | 185 } |
| 176 | 186 |
| 177 service->Set(chromeos::kAccountsPrefDeviceLocalAccounts, list); | 187 service->Set(chromeos::kAccountsPrefDeviceLocalAccounts, list); |
| 178 } | 188 } |
| 179 | 189 |
| 180 std::vector<DeviceLocalAccount> GetDeviceLocalAccounts( | 190 std::vector<DeviceLocalAccount> GetDeviceLocalAccounts( |
| 181 chromeos::CrosSettings* cros_settings) { | 191 chromeos::CrosSettings* cros_settings) { |
| 182 std::vector<DeviceLocalAccount> accounts; | 192 std::vector<DeviceLocalAccount> accounts; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 | 253 |
| 244 accounts.push_back( | 254 accounts.push_back( |
| 245 DeviceLocalAccount(DeviceLocalAccount::TYPE_KIOSK_APP, account_id, | 255 DeviceLocalAccount(DeviceLocalAccount::TYPE_KIOSK_APP, account_id, |
| 246 kiosk_app_id, kiosk_app_update_url)); | 256 kiosk_app_id, kiosk_app_update_url)); |
| 247 break; | 257 break; |
| 248 } | 258 } |
| 249 case DeviceLocalAccount::TYPE_ARC_KIOSK_APP: { | 259 case DeviceLocalAccount::TYPE_ARC_KIOSK_APP: { |
| 250 std::string package_name; | 260 std::string package_name; |
| 251 std::string class_name; | 261 std::string class_name; |
| 252 std::string action; | 262 std::string action; |
| 263 std::string display_name; |
| 253 if (!entry->GetStringWithoutPathExpansion( | 264 if (!entry->GetStringWithoutPathExpansion( |
| 254 chromeos::kAccountsPrefDeviceLocalAccountsKeyArcKioskPackage, | 265 chromeos::kAccountsPrefDeviceLocalAccountsKeyArcKioskPackage, |
| 255 &package_name)) { | 266 &package_name)) { |
| 256 LOG(ERROR) << "Missing package name in ARC kiosk type device-local " | 267 LOG(ERROR) << "Missing package name in ARC kiosk type device-local " |
| 257 "account at index " | 268 "account at index " |
| 258 << i << "."; | 269 << i << "."; |
| 259 continue; | 270 continue; |
| 260 } | 271 } |
| 261 entry->GetStringWithoutPathExpansion( | 272 entry->GetStringWithoutPathExpansion( |
| 262 chromeos::kAccountsPrefDeviceLocalAccountsKeyArcKioskClass, | 273 chromeos::kAccountsPrefDeviceLocalAccountsKeyArcKioskClass, |
| 263 &class_name); | 274 &class_name); |
| 264 entry->GetStringWithoutPathExpansion( | 275 entry->GetStringWithoutPathExpansion( |
| 265 chromeos::kAccountsPrefDeviceLocalAccountsKeyArcKioskAction, | 276 chromeos::kAccountsPrefDeviceLocalAccountsKeyArcKioskAction, |
| 266 &action); | 277 &action); |
| 278 entry->GetStringWithoutPathExpansion( |
| 279 chromeos::kAccountsPrefDeviceLocalAccountsKeyArcKioskDisplayName, |
| 280 &display_name); |
| 267 const ArcKioskAppBasicInfo arc_kiosk_app(package_name, class_name, | 281 const ArcKioskAppBasicInfo arc_kiosk_app(package_name, class_name, |
| 268 action); | 282 action, display_name); |
| 269 | 283 |
| 270 accounts.push_back(DeviceLocalAccount(arc_kiosk_app, account_id)); | 284 accounts.push_back(DeviceLocalAccount(arc_kiosk_app, account_id)); |
| 271 break; | 285 break; |
| 272 } | 286 } |
| 273 case DeviceLocalAccount::TYPE_COUNT: | 287 case DeviceLocalAccount::TYPE_COUNT: |
| 274 NOTREACHED(); | 288 NOTREACHED(); |
| 275 } | 289 } |
| 276 } | 290 } |
| 277 return accounts; | 291 return accounts; |
| 278 } | 292 } |
| 279 | 293 |
| 280 } // namespace policy | 294 } // namespace policy |
| OLD | NEW |