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

Unified Diff: chromeos/dbus/session_manager_client.cc

Issue 2801993002: Abandon user sign in when policy is retrieved before session started (Closed)
Patch Set: Added comments to new functions Created 3 years, 8 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: chromeos/dbus/session_manager_client.cc
diff --git a/chromeos/dbus/session_manager_client.cc b/chromeos/dbus/session_manager_client.cc
index 9e87be84e0a371296c29620fa4930b9e484d6049..5f1bce63c752f651d3d2d81b75973d507cfffe91 100644
--- a/chromeos/dbus/session_manager_client.cc
+++ b/chromeos/dbus/session_manager_client.cc
@@ -229,6 +229,15 @@ class SessionManagerClientImpl : public SessionManagerClient {
callback);
}
+ void RetrievePolicyForUserWithErrorCallback(
+ const cryptohome::Identification& cryptohome_id,
+ const RetrievePolicyCallback& callback,
+ const ErrorCallback& error_callback) override {
+ CallRetrievePolicyByUsernameWithErrorCallback(
+ login_manager::kSessionManagerRetrievePolicyForUser, cryptohome_id.id(),
+ callback, error_callback);
+ }
+
std::string BlockingRetrievePolicyForUser(
const cryptohome::Identification& cryptohome_id) override {
dbus::MethodCall method_call(
@@ -505,6 +514,23 @@ class SessionManagerClientImpl : public SessionManagerClient {
callback));
}
+ void CallRetrievePolicyByUsernameWithErrorCallback(
+ const std::string& method_name,
+ const std::string& account_id,
+ const RetrievePolicyCallback& callback,
+ const ErrorCallback& error_callback) {
+ dbus::MethodCall method_call(login_manager::kSessionManagerInterface,
+ method_name);
+ dbus::MessageWriter writer(&method_call);
+ writer.AppendString(account_id);
Daniel Erat 2017/04/10 18:59:26 please avoid copy-and-pasting code (i.e. the exist
igorcov 2017/04/18 10:23:18 Done.
+ session_manager_proxy_->CallMethodWithErrorCallback(
+ &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
+ base::Bind(&SessionManagerClientImpl::OnRetrievePolicy,
+ weak_ptr_factory_.GetWeakPtr(), method_name, callback),
+ base::Bind(&SessionManagerClientImpl::OnRetrievePolicyWithError,
+ weak_ptr_factory_.GetWeakPtr(), error_callback));
+ }
+
void CallStorePolicyByUsername(const std::string& method_name,
const std::string& account_id,
const std::string& policy_blob,
@@ -623,6 +649,16 @@ class SessionManagerClientImpl : public SessionManagerClient {
callback.Run(serialized_proto);
}
+ void OnRetrievePolicyWithError(const ErrorCallback& callback,
+ dbus::ErrorResponse* response) {
+ std::string error_name;
+ std::string error_message;
+ dbus::MessageReader reader(response);
+ error_name = response->GetErrorName();
+ reader.PopString(&error_message);
+ callback.Run(error_name, error_message);
+ }
+
// Called when kSessionManagerStorePolicy or kSessionManagerStorePolicyForUser
// method is complete.
void OnStorePolicy(const std::string& method_name,
@@ -894,6 +930,12 @@ class SessionManagerClientStubImpl : public SessionManagerClient {
GetUserFilePath(cryptohome_id, kStubPolicyFile)),
callback);
}
+ void RetrievePolicyForUserWithErrorCallback(
+ const cryptohome::Identification& cryptohome_id,
+ const RetrievePolicyCallback& callback,
+ const ErrorCallback& error_callback) override {
+ RetrievePolicyForUser(cryptohome_id, callback);
+ }
std::string BlockingRetrievePolicyForUser(
const cryptohome::Identification& cryptohome_id) override {
return GetFileContent(GetUserFilePath(cryptohome_id, kStubPolicyFile));
« chromeos/dbus/session_manager_client.h ('K') | « chromeos/dbus/session_manager_client.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698