Index: chromeos/dbus/session_manager_client.h |
diff --git a/chromeos/dbus/session_manager_client.h b/chromeos/dbus/session_manager_client.h |
index 39a98fe6f7f3421c8f9fb97b2592fee9e0449103..0c2c8b6013f666b6e572bc130741f4d0c409d106 100644 |
--- a/chromeos/dbus/session_manager_client.h |
+++ b/chromeos/dbus/session_manager_client.h |
@@ -15,6 +15,7 @@ |
#include "chromeos/chromeos_export.h" |
#include "chromeos/dbus/dbus_client.h" |
#include "chromeos/dbus/dbus_client_implementation_type.h" |
+#include "chromeos/dbus/dbus_method_call_status.h" |
namespace cryptohome { |
class Identification; |
@@ -84,7 +85,15 @@ class CHROMEOS_EXPORT SessionManagerClient : public DBusClient { |
virtual void EmitLoginPromptVisible() = 0; |
// Restarts the browser job, passing |argv| as the updated command line. |
- virtual void RestartJob(const std::vector<std::string>& argv) = 0; |
+ // The session manager requires a RestartJob caller to open a socket pair and |
+ // pass one end while holding the local end open for the duration of the call. |
+ // The session manager uses this to determine whether the PID the restart |
+ // request originates from belongs to the browser itself. |
+ // This method duplicates |socket_fd| so it's OK to close the FD without |
+ // waiting for the result. |
+ virtual void RestartJob(int socket_fd, |
+ const std::vector<std::string>& argv, |
+ const VoidDBusMethodCallback& callback) = 0; |
// Starts the session for the user. |
virtual void StartSession( |