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

Unified Diff: chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h

Issue 2727713003: Update FWMP in TPM (Closed)
Patch Set: Nits Created 3 years, 9 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
« no previous file with comments | « no previous file | chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h
diff --git a/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h b/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h
index 5dfada546c763ff65cc1d1c2c95342c595885949..1da39ec03145121ef9a4f8b5e7156999325376ad 100644
--- a/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h
+++ b/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h
@@ -16,6 +16,10 @@
#include "chrome/browser/chromeos/policy/auto_enrollment_client.h"
#include "chrome/browser/chromeos/settings/device_settings_service.h"
+namespace cryptohome {
+class BaseReply;
+} // namespace cryptohome
+
namespace chromeos {
// Drives the forced re-enrollment check (for historical reasons called
@@ -86,10 +90,28 @@ class AutoEnrollmentController {
// Sets |state_| and notifies |progress_callbacks_|.
void UpdateState(policy::AutoEnrollmentState state);
+ // Makes a D-Bus call to cryptohome to remove the firmware management
+ // parameters (FWMP) from TPM. Stops the |safeguard_timer_| and notifies the
+ // |progress_callbacks_| after update is done if the timer is still running.
+ // The notifications have to be sent only after the FWMP is cleared, because
+ // the user might try to switch to devmode. In this case, if block_devmode is
+ // in FWMP and the clear operation didn't finish, the switch would be denied.
+ // Also the safeguard timer has to be active until the FWMP is cleared to
+ // avoid the risk of blocked flow.
+ void StartRemoveFirmwareManagementParameters();
+
+ // Callback for RemoveFirmwareManagementParameters(). If an error is received
+ // here, it is logged only, without changing the flow after that, because
+ // the FWMP is used only for newer devices.
+ void OnFirmwareManagementParametersRemoved(
+ chromeos::DBusMethodCallStatus call_status,
+ bool result,
+ const cryptohome::BaseReply& reply);
+
// Handles timeout of the safeguard timer and stops waiting for a result.
void Timeout();
- policy::AutoEnrollmentState state_;
+ policy::AutoEnrollmentState state_ = policy::AUTO_ENROLLMENT_STATE_IDLE;
ProgressCallbackList progress_callbacks_;
std::unique_ptr<policy::AutoEnrollmentClient> client_;
@@ -102,12 +124,15 @@ class AutoEnrollmentController {
// something goes wrong, the timer will ensure that a decision gets made
// eventually, which is crucial to not block OOBE forever. See
// http://crbug.com/433634 for background.
- base::Timer safeguard_timer_;
+ base::Timer safeguard_timer_{false, false};
// Whether the forced re-enrollment check has to be applied.
FRERequirement fre_requirement_ = REQUIRED;
- base::WeakPtrFactory<AutoEnrollmentController> client_start_weak_factory_;
+ // TODO(igorcov): Merge the two weak_ptr factories in one.
+ base::WeakPtrFactory<AutoEnrollmentController> client_start_weak_factory_{
+ this};
+ base::WeakPtrFactory<AutoEnrollmentController> weak_ptr_factory_{this};
DISALLOW_COPY_AND_ASSIGN(AutoEnrollmentController);
};
« no previous file with comments | « no previous file | chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698