Commit 2e5b0444 authored by Anthony Vallee-Dubois's avatar Anthony Vallee-Dubois Committed by Commit Bot

Make policy::EnrollmentStatus platform agnostic

This CL moves EnrollmentStatus to a platform agnostic location so that
it can be used on non-ChromeOS desktop platforms as support for device
accounts is added on those platforms as well.

Bug: 1026261
Change-Id: I47d60c8a033fb45730565b95bf6f5030b1d99fff
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1998746Reviewed-by: default avatarAchuith Bhandarkar <achuith@chromium.org>
Reviewed-by: default avatarJulian Pastarmov <pastarmovj@chromium.org>
Commit-Queue: anthonyvd <anthonyvd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#738207}
parent 32e6f432
......@@ -1228,6 +1228,8 @@ jumbo_static_library("browser") {
"policy/developer_tools_policy_handler.h",
"policy/device_management_service_configuration.cc",
"policy/device_management_service_configuration.h",
"policy/enrollment_status.cc",
"policy/enrollment_status.h",
"policy/file_selection_dialogs_policy_handler.cc",
"policy/file_selection_dialogs_policy_handler.h",
"policy/homepage_location_policy_handler.cc",
......
......@@ -1825,8 +1825,6 @@ source_set("chromeos") {
"policy/enrollment_config.h",
"policy/enrollment_handler_chromeos.cc",
"policy/enrollment_handler_chromeos.h",
"policy/enrollment_status_chromeos.cc",
"policy/enrollment_status_chromeos.h",
"policy/external_data_handlers/cloud_external_data_policy_handler.cc",
"policy/external_data_handlers/cloud_external_data_policy_handler.h",
"policy/external_data_handlers/crostini_ansible_playbook_external_data_handler.cc",
......
......@@ -14,8 +14,8 @@
#include "base/strings/string16.h"
#include "chrome/browser/chromeos/login/demo_mode/demo_session.h"
#include "chrome/browser/chromeos/login/enrollment/enterprise_enrollment_helper.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/component_updater/cros_component_installer_chromeos.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "components/policy/core/common/cloud/cloud_policy_store.h"
class PrefRegistrySimple;
......
......@@ -11,7 +11,7 @@
#include "chrome/browser/chromeos/login/enrollment/enterprise_enrollment_helper.h"
#include "chrome/browser/chromeos/login/enrollment/enterprise_enrollment_helper_mock.h"
#include "chrome/browser/chromeos/policy/enrollment_config.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "chromeos/tpm/install_attributes.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h"
#include "testing/gmock/include/gmock/gmock.h"
......
......@@ -18,11 +18,11 @@
#include "chrome/browser/chromeos/login/startup_utils.h"
#include "chrome/browser/chromeos/login/wizard_controller.h"
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/chromeos/policy/tpm_auto_update_mode_policy_handler.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/lifetime/browser_shutdown.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "chromeos/dbus/cryptohome/cryptohome_client.h"
#include "chromeos/dbus/dbus_method_call_status.h"
#include "chromeos/dbus/dbus_thread_manager.h"
......
......@@ -16,7 +16,7 @@
#include "chrome/browser/chromeos/login/enrollment/mock_enrollment_screen.h"
#include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h"
#include "chrome/browser/chromeos/policy/enrollment_config.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "chrome/test/base/testing_browser_process.h"
#include "chromeos/constants/chromeos_switches.h"
#include "chromeos/dbus/dbus_thread_manager.h"
......
......@@ -19,10 +19,10 @@
#include "chrome/browser/chromeos/login/startup_utils.h"
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
#include "chrome/browser/chromeos/policy/device_cloud_policy_initializer.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/chromeos/policy/policy_oauth2_token_fetcher.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/net/system_network_context_manager.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "chromeos/constants/chromeos_switches.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h"
......
......@@ -12,7 +12,7 @@
#include "chrome/browser/chromeos/login/test/enrollment_helper_mixin.h"
#include "chrome/browser/chromeos/login/test/oobe_screen_waiter.h"
#include "chrome/browser/chromeos/login/wizard_controller.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "chrome/browser/ui/webui/chromeos/login/network_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/welcome_screen_handler.h"
#include "chrome/test/base/mixin_based_in_process_browser_test.h"
......
......@@ -8,7 +8,7 @@
#include "chrome/browser/chromeos/login/enrollment/enrollment_screen.h"
#include "chrome/browser/chromeos/login/enrollment/enrollment_screen_view.h"
#include "chrome/browser/chromeos/policy/enrollment_config.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "google_apis/gaia/google_service_auth_error.h"
#include "testing/gmock/include/gmock/gmock.h"
......
......@@ -24,7 +24,7 @@
#include "chrome/browser/chromeos/login/ui/login_display_host.h"
#include "chrome/browser/chromeos/login/wizard_controller.h"
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "chromeos/dbus/authpolicy/fake_authpolicy_client.h"
#include "chromeos/dbus/constants/dbus_switches.h"
#include "chromeos/dbus/dbus_thread_manager.h"
......
......@@ -11,7 +11,7 @@
#include "base/memory/weak_ptr.h"
#include "chrome/browser/chromeos/login/enrollment/enterprise_enrollment_helper.h"
#include "chrome/browser/chromeos/policy/enrollment_config.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "chrome/test/base/mixin_based_in_process_browser_test.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h"
#include "testing/gmock/include/gmock/gmock.h"
......
......@@ -22,11 +22,11 @@
#include "chrome/browser/chromeos/policy/active_directory_join_delegate.h"
#include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h"
#include "chrome/browser/chromeos/policy/dm_token_storage.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/chromeos/policy/server_backed_state_keys_broker.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/chromeos/settings/device_oauth2_token_service.h"
#include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "chrome/browser/profiles/profile.h"
#include "chromeos/attestation/attestation_flow.h"
#include "chromeos/constants/chromeos_switches.h"
......
......@@ -8,7 +8,7 @@
#include <memory>
#include <string>
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "base/compiler_specific.h"
#include "base/macros.h"
......
......@@ -20,10 +20,10 @@
#include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h"
#include "chrome/browser/chromeos/policy/enrollment_config.h"
#include "chrome/browser/chromeos/policy/enrollment_handler_chromeos.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/chromeos/policy/server_backed_device_state.h"
#include "chrome/browser/chromeos/policy/status_collector/device_status_collector.h"
#include "chrome/browser/net/system_network_context_manager.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "chrome/common/chrome_content_client.h"
#include "chrome/common/pref_names.h"
#include "chromeos/attestation/attestation_flow.h"
......@@ -257,10 +257,8 @@ EnrollmentConfig DeviceCloudPolicyInitializer::GetPrescribedEnrollmentConfig()
config.mode = EnrollmentConfig::MODE_ATTESTATION_INITIAL_SERVER_FORCED;
config.auth_mechanism = EnrollmentConfig::AUTH_MECHANISM_BEST_AVAILABLE;
config.management_domain = device_state_management_domain;
} else if (pref_enrollment_auto_start_present &&
pref_enrollment_auto_start &&
pref_enrollment_can_exit_present &&
!pref_enrollment_can_exit) {
} else if (pref_enrollment_auto_start_present && pref_enrollment_auto_start &&
pref_enrollment_can_exit_present && !pref_enrollment_can_exit) {
config.mode = EnrollmentConfig::MODE_LOCAL_FORCED;
} else if (oem_is_managed && !oem_can_exit_enrollment) {
config.mode = EnrollmentConfig::MODE_LOCAL_FORCED;
......
......@@ -24,12 +24,12 @@
#include "chrome/browser/chromeos/policy/device_cloud_policy_initializer.h"
#include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h"
#include "chrome/browser/chromeos/policy/enrollment_config.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/chromeos/settings/cros_settings.h"
#include "chrome/browser/chromeos/settings/device_oauth2_token_service.h"
#include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h"
#include "chrome/browser/chromeos/settings/device_settings_service.h"
#include "chrome/browser/chromeos/settings/device_settings_test_helper.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "chrome/browser/prefs/browser_prefs.h"
#include "chrome/test/base/testing_browser_process.h"
#include "chrome/test/base/testing_profile.h"
......
......@@ -23,9 +23,9 @@
#include "chrome/browser/chromeos/policy/active_directory_join_delegate.h"
#include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h"
#include "chrome/browser/chromeos/policy/dm_token_storage.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/chromeos/policy/server_backed_state_keys_broker.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "chrome/browser/profiles/profile.h"
#include "chromeos/attestation/attestation_flow.h"
#include "chromeos/constants/chromeos_switches.h"
......
......@@ -10,7 +10,7 @@
#include "base/compiler_specific.h"
#include "base/macros.h"
#include "chrome/browser/chromeos/policy/device_cloud_policy_initializer.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h"
namespace policy {
......@@ -34,7 +34,7 @@ class FakeDeviceCloudPolicyInitializer : public DeviceCloudPolicyInitializer {
void StartEnrollment() override;
bool was_start_enrollment_called() {
bool was_start_enrollment_called() const {
return was_start_enrollment_called_;
}
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "net/http/http_status_code.h"
......@@ -10,64 +10,60 @@ namespace policy {
// static
EnrollmentStatus EnrollmentStatus::ForStatus(Status status) {
return EnrollmentStatus(status, DM_STATUS_SUCCESS, net::HTTP_OK,
CloudPolicyStore::STATUS_OK,
CloudPolicyValidatorBase::VALIDATION_OK,
chromeos::InstallAttributes::LOCK_SUCCESS);
return CreateEnrollmentStatusWithoutLockError(
status, DM_STATUS_SUCCESS, net::HTTP_OK, CloudPolicyStore::STATUS_OK,
CloudPolicyValidatorBase::VALIDATION_OK);
}
// static
EnrollmentStatus EnrollmentStatus::ForRegistrationError(
DeviceManagementStatus client_status) {
return EnrollmentStatus(REGISTRATION_FAILED, client_status, net::HTTP_OK,
CloudPolicyStore::STATUS_OK,
CloudPolicyValidatorBase::VALIDATION_OK,
chromeos::InstallAttributes::LOCK_SUCCESS);
return CreateEnrollmentStatusWithoutLockError(
REGISTRATION_FAILED, client_status, net::HTTP_OK,
CloudPolicyStore::STATUS_OK, CloudPolicyValidatorBase::VALIDATION_OK);
}
// static
EnrollmentStatus EnrollmentStatus::ForRobotAuthFetchError(
DeviceManagementStatus client_status) {
return EnrollmentStatus(ROBOT_AUTH_FETCH_FAILED, client_status, net::HTTP_OK,
CloudPolicyStore::STATUS_OK,
CloudPolicyValidatorBase::VALIDATION_OK,
chromeos::InstallAttributes::LOCK_SUCCESS);
return CreateEnrollmentStatusWithoutLockError(
ROBOT_AUTH_FETCH_FAILED, client_status, net::HTTP_OK,
CloudPolicyStore::STATUS_OK, CloudPolicyValidatorBase::VALIDATION_OK);
}
// static
EnrollmentStatus EnrollmentStatus::ForRobotRefreshFetchError(int http_status) {
return EnrollmentStatus(ROBOT_REFRESH_FETCH_FAILED, DM_STATUS_SUCCESS,
http_status, CloudPolicyStore::STATUS_OK,
CloudPolicyValidatorBase::VALIDATION_OK,
chromeos::InstallAttributes::LOCK_SUCCESS);
return CreateEnrollmentStatusWithoutLockError(
ROBOT_REFRESH_FETCH_FAILED, DM_STATUS_SUCCESS, http_status,
CloudPolicyStore::STATUS_OK, CloudPolicyValidatorBase::VALIDATION_OK);
}
// static
EnrollmentStatus EnrollmentStatus::ForFetchError(
DeviceManagementStatus client_status) {
return EnrollmentStatus(POLICY_FETCH_FAILED, client_status, net::HTTP_OK,
CloudPolicyStore::STATUS_OK,
CloudPolicyValidatorBase::VALIDATION_OK,
chromeos::InstallAttributes::LOCK_SUCCESS);
return CreateEnrollmentStatusWithoutLockError(
POLICY_FETCH_FAILED, client_status, net::HTTP_OK,
CloudPolicyStore::STATUS_OK, CloudPolicyValidatorBase::VALIDATION_OK);
}
// static
EnrollmentStatus EnrollmentStatus::ForValidationError(
CloudPolicyValidatorBase::Status validation_status) {
return EnrollmentStatus(VALIDATION_FAILED, DM_STATUS_SUCCESS, net::HTTP_OK,
CloudPolicyStore::STATUS_OK, validation_status,
chromeos::InstallAttributes::LOCK_SUCCESS);
return CreateEnrollmentStatusWithoutLockError(
VALIDATION_FAILED, DM_STATUS_SUCCESS, net::HTTP_OK,
CloudPolicyStore::STATUS_OK, validation_status);
}
// static
EnrollmentStatus EnrollmentStatus::ForStoreError(
CloudPolicyStore::Status store_error,
CloudPolicyValidatorBase::Status validation_status) {
return EnrollmentStatus(STORE_ERROR, DM_STATUS_SUCCESS, net::HTTP_OK,
store_error, validation_status,
chromeos::InstallAttributes::LOCK_SUCCESS);
return CreateEnrollmentStatusWithoutLockError(STORE_ERROR, DM_STATUS_SUCCESS,
net::HTTP_OK, store_error,
validation_status);
}
#if defined(OS_CHROMEOS)
// static
EnrollmentStatus EnrollmentStatus::ForLockError(
chromeos::InstallAttributes::LockResult lock_status) {
......@@ -89,5 +85,35 @@ EnrollmentStatus::EnrollmentStatus(
store_status_(store_status),
validation_status_(validation_status),
lock_status_(lock_status) {}
#else
EnrollmentStatus::EnrollmentStatus(
EnrollmentStatus::Status status,
DeviceManagementStatus client_status,
int http_status,
CloudPolicyStore::Status store_status,
CloudPolicyValidatorBase::Status validation_status)
: status_(status),
client_status_(client_status),
http_status_(http_status),
store_status_(store_status),
validation_status_(validation_status) {}
#endif
// static
EnrollmentStatus EnrollmentStatus::CreateEnrollmentStatusWithoutLockError(
Status status,
DeviceManagementStatus client_status,
int http_status,
CloudPolicyStore::Status store_status,
CloudPolicyValidatorBase::Status validation_status) {
#if defined(OS_CHROMEOS)
return EnrollmentStatus(status, client_status, http_status, store_status,
validation_status,
chromeos::InstallAttributes::LOCK_SUCCESS);
#else
return EnrollmentStatus(status, client_status, http_status, store_status,
validation_status);
#endif
}
} // namespace policy
......@@ -2,10 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROMEOS_POLICY_ENROLLMENT_STATUS_CHROMEOS_H_
#define CHROME_BROWSER_CHROMEOS_POLICY_ENROLLMENT_STATUS_CHROMEOS_H_
#ifndef CHROME_BROWSER_POLICY_ENROLLMENT_STATUS_H_
#define CHROME_BROWSER_POLICY_ENROLLMENT_STATUS_H_
#if defined(OS_CHROMEOS)
#include "chromeos/tpm/install_attributes.h"
#endif
#include "components/policy/core/common/cloud/cloud_policy_constants.h"
#include "components/policy/core/common/cloud/cloud_policy_store.h"
#include "components/policy/core/common/cloud/cloud_policy_validator.h"
......@@ -66,8 +68,10 @@ class EnrollmentStatus {
static EnrollmentStatus ForStoreError(
CloudPolicyStore::Status store_error,
CloudPolicyValidatorBase::Status validation_status);
#if defined(OS_CHROMEOS)
static EnrollmentStatus ForLockError(
chromeos::InstallAttributes::LockResult lock_status);
#endif
Status status() const { return status_; }
DeviceManagementStatus client_status() const { return client_status_; }
......@@ -76,26 +80,47 @@ class EnrollmentStatus {
CloudPolicyValidatorBase::Status validation_status() const {
return validation_status_;
}
#if defined(OS_CHROMEOS)
chromeos::InstallAttributes::LockResult lock_status() const {
return lock_status_;
}
#endif
private:
#if defined(OS_CHROMEOS)
EnrollmentStatus(Status status,
DeviceManagementStatus client_status,
int http_status,
CloudPolicyStore::Status store_status,
CloudPolicyValidatorBase::Status validation_status,
chromeos::InstallAttributes::LockResult lock_status);
#else
EnrollmentStatus(Status status,
DeviceManagementStatus client_status,
int http_status,
CloudPolicyStore::Status store_status,
CloudPolicyValidatorBase::Status validation_status);
#endif
// Helper to implement the For* functions above without them knowing about the
// current platform.
static EnrollmentStatus CreateEnrollmentStatusWithoutLockError(
Status status,
DeviceManagementStatus client_status,
int http_status,
CloudPolicyStore::Status store_status,
CloudPolicyValidatorBase::Status validation_status);
Status status_;
DeviceManagementStatus client_status_;
int http_status_;
CloudPolicyStore::Status store_status_;
CloudPolicyValidatorBase::Status validation_status_;
#if defined(OS_CHROMEOS)
chromeos::InstallAttributes::LockResult lock_status_;
#endif
};
} // namespace policy
#endif // CHROME_BROWSER_CHROMEOS_POLICY_ENROLLMENT_STATUS_CHROMEOS_H_
#endif // CHROME_BROWSER_POLICY_ENROLLMENT_STATUS_H_
......@@ -28,8 +28,8 @@
#include "chrome/browser/chromeos/login/wizard_controller.h"
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
#include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
#include "chrome/browser/chromeos/policy/policy_oauth2_token_fetcher.h"
#include "chrome/browser/policy/enrollment_status.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/chromeos/login/error_screen_handler.h"
#include "chrome/grit/generated_resources.h"
......@@ -190,16 +190,14 @@ EnrollmentScreenHandler::~EnrollmentScreenHandler() {
void EnrollmentScreenHandler::RegisterMessages() {
AddCallback("toggleFakeEnrollment",
&EnrollmentScreenHandler::HandleToggleFakeEnrollment);
AddCallback("oauthEnrollClose",
&EnrollmentScreenHandler::HandleClose);
AddCallback("oauthEnrollClose", &EnrollmentScreenHandler::HandleClose);
AddCallback("oauthEnrollCompleteLogin",
&EnrollmentScreenHandler::HandleCompleteLogin);
AddCallback("oauthEnrollAdCompleteLogin",
&EnrollmentScreenHandler::HandleAdCompleteLogin);
AddCallback("oauthEnrollAdUnlockConfiguration",
&EnrollmentScreenHandler::HandleAdUnlockConfiguration);
AddCallback("oauthEnrollRetry",
&EnrollmentScreenHandler::HandleRetry);
AddCallback("oauthEnrollRetry", &EnrollmentScreenHandler::HandleRetry);
AddCallback("frameLoadingCompleted",
&EnrollmentScreenHandler::HandleFrameLoadingCompleted);
AddCallback("oauthEnrollAttributes",
......@@ -226,8 +224,7 @@ void EnrollmentScreenHandler::Show() {
DoShow();
}
void EnrollmentScreenHandler::Hide() {
}
void EnrollmentScreenHandler::Hide() {}
void EnrollmentScreenHandler::ShowSigninScreen() {
observe_network_failure_ = true;
......@@ -583,7 +580,6 @@ void EnrollmentScreenHandler::DeclareLocalizedValues(
builder->Add("selectEncryption", IDS_AD_ENCRYPTION_SELECTION_SELECT);
builder->Add("selectConfiguration", IDS_AD_CONFIG_SELECTION_SELECT);
/* End of Active Directory strings */
}
void EnrollmentScreenHandler::GetAdditionalParameters(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment