Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4454)

Unified Diff: chrome/browser/chromeos/login/enrollment/enrollment_screen.cc

Issue 2977033002: Mixed Licenses Enrollment (Closed)
Patch Set: Fix last nit Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/enrollment/enrollment_screen.cc
diff --git a/chrome/browser/chromeos/login/enrollment/enrollment_screen.cc b/chrome/browser/chromeos/login/enrollment/enrollment_screen.cc
index a0d7b4e0e228c308254b4d35fd0b378c67f6b216..67a2e3f65ca28036f1c4889981ac1818dc0f017e 100644
--- a/chrome/browser/chromeos/login/enrollment/enrollment_screen.cc
+++ b/chrome/browser/chromeos/login/enrollment/enrollment_screen.cc
@@ -44,19 +44,47 @@ using policy::EnrollmentConfig;
namespace {
-const char * const kMetricEnrollmentTimeCancel =
+const char* const kMetricEnrollmentTimeCancel =
"Enterprise.EnrollmentTime.Cancel";
-const char * const kMetricEnrollmentTimeFailure =
+const char* const kMetricEnrollmentTimeFailure =
"Enterprise.EnrollmentTime.Failure";
-const char * const kMetricEnrollmentTimeSuccess =
+const char* const kMetricEnrollmentTimeSuccess =
"Enterprise.EnrollmentTime.Success";
+const char* const kLicenseTypePerpetual = "perpetual";
+const char* const kLicenseTypeAnnual = "annual";
+const char* const kLicenseTypeKiosk = "kiosk";
+
// Retry policy constants.
constexpr int kInitialDelayMS = 4 * 1000; // 4 seconds
constexpr double kMultiplyFactor = 1.5;
constexpr double kJitterFactor = 0.1; // +/- 10% jitter
constexpr int64_t kMaxDelayMS = 8 * 60 * 1000; // 8 minutes
+::policy::LicenseType GetLicenseTypeById(const std::string& id) {
+ if (id == kLicenseTypePerpetual)
+ return ::policy::LicenseType::PERPETUAL;
+ if (id == kLicenseTypeAnnual)
+ return ::policy::LicenseType::ANNUAL;
+ if (id == kLicenseTypeKiosk)
+ return ::policy::LicenseType::KIOSK;
+ return ::policy::LicenseType::UNKNOWN;
+}
+
+std::string GetLicenseIdByType(::policy::LicenseType type) {
+ switch (type) {
+ case ::policy::LicenseType::PERPETUAL:
+ return kLicenseTypePerpetual;
+ case ::policy::LicenseType::ANNUAL:
+ return kLicenseTypeAnnual;
+ case ::policy::LicenseType::KIOSK:
+ return kLicenseTypeKiosk;
+ default:
+ NOTREACHED();
+ return std::string();
+ }
+}
+
} // namespace
namespace chromeos {
@@ -202,7 +230,13 @@ void EnrollmentScreen::OnLoginDone(const std::string& user,
auth_code, shark_controller_ != nullptr /* fetch_additional_token */);
}
-void EnrollmentScreen::OnLicenseTypeSelected(const std::string& license_type) {}
+void EnrollmentScreen::OnLicenseTypeSelected(const std::string& license_type) {
+ view_->ShowEnrollmentSpinnerScreen();
+ const ::policy::LicenseType license = GetLicenseTypeById(license_type);
+ CHECK(license != ::policy::LicenseType::UNKNOWN)
+ << "license_type = " << license_type;
+ enrollment_helper_->UseLicenseType(license);
+}
void EnrollmentScreen::OnRetry() {
retry_task_.Cancel();
@@ -265,6 +299,14 @@ void EnrollmentScreen::OnAuthError(const GoogleServiceAuthError& error) {
view_->ShowAuthError(error);
}
+void EnrollmentScreen::OnMultipleLicensesAvailable(
+ const EnrollmentLicenseMap& licenses) {
+ base::DictionaryValue license_dict;
+ for (const auto& it : licenses)
+ license_dict.SetInteger(GetLicenseIdByType(it.first), it.second);
+ view_->ShowLicenseTypeSelectionScreen(license_dict);
+}
+
void EnrollmentScreen::OnEnrollmentError(policy::EnrollmentStatus status) {
// TODO(pbond): remove this LOG once http://crbug.com/586961 is fixed.
LOG(WARNING) << "Enrollment error occured: status=" << status.status()

Powered by Google App Engine
This is Rietveld 408576698