Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chromeos/dbus/session_manager_client.h" | 5 #include "chromeos/dbus/session_manager_client.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 264 const std::string& account_name, | 264 const std::string& account_name, |
| 265 const std::string& policy_blob, | 265 const std::string& policy_blob, |
| 266 const StorePolicyCallback& callback) OVERRIDE { | 266 const StorePolicyCallback& callback) OVERRIDE { |
| 267 CallStorePolicyByUsername( | 267 CallStorePolicyByUsername( |
| 268 login_manager::kSessionManagerStoreDeviceLocalAccountPolicy, | 268 login_manager::kSessionManagerStoreDeviceLocalAccountPolicy, |
| 269 account_name, | 269 account_name, |
| 270 policy_blob, | 270 policy_blob, |
| 271 callback); | 271 callback); |
| 272 } | 272 } |
| 273 | 273 |
| 274 virtual void SetFlagsForUser(const std::string& username, | |
| 275 const std::vector<std::string>& flags) OVERRIDE { | |
| 276 CallSetFlagsByUsername(login_manager::kSessionManagerSetFlagsForUser, | |
|
Mattias Nissler (ping if slow)
2013/06/12 14:53:03
You can just inline CallSetFlagsByUsername, the fu
pastarmovj
2013/06/12 16:19:33
Done.
| |
| 277 username, | |
| 278 flags); | |
| 279 } | |
| 280 | |
| 274 private: | 281 private: |
| 275 // Makes a method call to the session manager with no arguments and no | 282 // Makes a method call to the session manager with no arguments and no |
| 276 // response. | 283 // response. |
| 277 void SimpleMethodCallToSessionManager(const std::string& method_name) { | 284 void SimpleMethodCallToSessionManager(const std::string& method_name) { |
| 278 dbus::MethodCall method_call(login_manager::kSessionManagerInterface, | 285 dbus::MethodCall method_call(login_manager::kSessionManagerInterface, |
| 279 method_name); | 286 method_name); |
| 280 session_manager_proxy_->CallMethod( | 287 session_manager_proxy_->CallMethod( |
| 281 &method_call, | 288 &method_call, |
| 282 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 289 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 283 dbus::ObjectProxy::EmptyResponseCallback()); | 290 dbus::ObjectProxy::EmptyResponseCallback()); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 315 session_manager_proxy_->CallMethod( | 322 session_manager_proxy_->CallMethod( |
| 316 &method_call, | 323 &method_call, |
| 317 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 324 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 318 base::Bind( | 325 base::Bind( |
| 319 &SessionManagerClientImpl::OnStorePolicy, | 326 &SessionManagerClientImpl::OnStorePolicy, |
| 320 weak_ptr_factory_.GetWeakPtr(), | 327 weak_ptr_factory_.GetWeakPtr(), |
| 321 method_name, | 328 method_name, |
| 322 callback)); | 329 callback)); |
| 323 } | 330 } |
| 324 | 331 |
| 332 void CallSetFlagsByUsername(const std::string& method_name, | |
| 333 const std::string& username, | |
| 334 const std::vector<std::string>& flags) { | |
| 335 dbus::MethodCall method_call(login_manager::kSessionManagerInterface, | |
| 336 method_name); | |
| 337 dbus::MessageWriter writer(&method_call); | |
| 338 writer.AppendString(username); | |
| 339 writer.AppendArrayOfStrings(flags); | |
| 340 session_manager_proxy_->CallMethod( | |
| 341 &method_call, | |
| 342 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | |
| 343 dbus::ObjectProxy::EmptyResponseCallback()); | |
| 344 } | |
| 345 | |
| 325 // Called when kSessionManagerRestartJob method is complete. | 346 // Called when kSessionManagerRestartJob method is complete. |
| 326 void OnRestartJob(dbus::Response* response) { | 347 void OnRestartJob(dbus::Response* response) { |
| 327 LOG_IF(ERROR, !response) | 348 LOG_IF(ERROR, !response) |
| 328 << "Failed to call " | 349 << "Failed to call " |
| 329 << login_manager::kSessionManagerRestartJob; | 350 << login_manager::kSessionManagerRestartJob; |
| 330 } | 351 } |
| 331 | 352 |
| 332 // Called when kSessionManagerStartSession method is complete. | 353 // Called when kSessionManagerStartSession method is complete. |
| 333 void OnStartSession(dbus::Response* response) { | 354 void OnStartSession(dbus::Response* response) { |
| 334 LOG_IF(ERROR, !response) | 355 LOG_IF(ERROR, !response) |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 590 base::Bind(callback, true), | 611 base::Bind(callback, true), |
| 591 false); | 612 false); |
| 592 } | 613 } |
| 593 virtual void StoreDeviceLocalAccountPolicy( | 614 virtual void StoreDeviceLocalAccountPolicy( |
| 594 const std::string& account_name, | 615 const std::string& account_name, |
| 595 const std::string& policy_blob, | 616 const std::string& policy_blob, |
| 596 const StorePolicyCallback& callback) OVERRIDE { | 617 const StorePolicyCallback& callback) OVERRIDE { |
| 597 user_policies_[account_name] = policy_blob; | 618 user_policies_[account_name] = policy_blob; |
| 598 callback.Run(true); | 619 callback.Run(true); |
| 599 } | 620 } |
| 621 virtual void SetFlagsForUser(const std::string& username, | |
| 622 const std::vector<std::string>& flags) OVERRIDE { | |
| 623 } | |
| 600 | 624 |
| 601 static void StoreFileInBackground(const base::FilePath& path, | 625 static void StoreFileInBackground(const base::FilePath& path, |
| 602 const std::string& data) { | 626 const std::string& data) { |
| 603 const int size = static_cast<int>(data.size()); | 627 const int size = static_cast<int>(data.size()); |
| 604 if (!file_util::CreateDirectory(path.DirName()) || | 628 if (!file_util::CreateDirectory(path.DirName()) || |
| 605 file_util::WriteFile(path, data.data(), size) != size) { | 629 file_util::WriteFile(path, data.data(), size) != size) { |
| 606 LOG(WARNING) << "Failed to write policy key to " << path.value(); | 630 LOG(WARNING) << "Failed to write policy key to " << path.value(); |
| 607 } | 631 } |
| 608 } | 632 } |
| 609 | 633 |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 624 SessionManagerClient* SessionManagerClient::Create( | 648 SessionManagerClient* SessionManagerClient::Create( |
| 625 DBusClientImplementationType type, | 649 DBusClientImplementationType type, |
| 626 dbus::Bus* bus) { | 650 dbus::Bus* bus) { |
| 627 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) | 651 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) |
| 628 return new SessionManagerClientImpl(bus); | 652 return new SessionManagerClientImpl(bus); |
| 629 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); | 653 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); |
| 630 return new SessionManagerClientStubImpl(); | 654 return new SessionManagerClientStubImpl(); |
| 631 } | 655 } |
| 632 | 656 |
| 633 } // namespace chromeos | 657 } // namespace chromeos |
| OLD | NEW |