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

Side by Side Diff: chromeos/dbus/session_manager_client.cc

Issue 10693087: chromeos: Request screen lock directly from session manager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove locking-related metrics code Created 8 years, 5 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chromeos/dbus/session_manager_client.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "dbus/bus.h" 10 #include "dbus/bus.h"
11 #include "dbus/message.h" 11 #include "dbus/message.h"
12 #include "dbus/object_path.h" 12 #include "dbus/object_path.h"
13 #include "dbus/object_proxy.h" 13 #include "dbus/object_proxy.h"
14 #include "third_party/cros_system_api/dbus/service_constants.h" 14 #include "third_party/cros_system_api/dbus/service_constants.h"
15 15
16 namespace chromeos { 16 namespace chromeos {
17 17
18 // The SessionManagerClient implementation used in production. 18 // The SessionManagerClient implementation used in production.
19 class SessionManagerClientImpl : public SessionManagerClient { 19 class SessionManagerClientImpl : public SessionManagerClient {
20 public: 20 public:
21 explicit SessionManagerClientImpl(dbus::Bus* bus) 21 explicit SessionManagerClientImpl(dbus::Bus* bus)
22 : session_manager_proxy_(NULL), 22 : session_manager_proxy_(NULL),
23 screen_locked_(false),
23 weak_ptr_factory_(this) { 24 weak_ptr_factory_(this) {
24 session_manager_proxy_ = bus->GetObjectProxy( 25 session_manager_proxy_ = bus->GetObjectProxy(
25 login_manager::kSessionManagerServiceName, 26 login_manager::kSessionManagerServiceName,
26 dbus::ObjectPath(login_manager::kSessionManagerServicePath)); 27 dbus::ObjectPath(login_manager::kSessionManagerServicePath));
27 28
28 // Monitor the D-Bus signal for owner key changes.
29 session_manager_proxy_->ConnectToSignal( 29 session_manager_proxy_->ConnectToSignal(
30 chromium::kChromiumInterface, 30 chromium::kChromiumInterface,
31 chromium::kOwnerKeySetSignal, 31 chromium::kOwnerKeySetSignal,
32 base::Bind(&SessionManagerClientImpl::OwnerKeySetReceived, 32 base::Bind(&SessionManagerClientImpl::OwnerKeySetReceived,
33 weak_ptr_factory_.GetWeakPtr()), 33 weak_ptr_factory_.GetWeakPtr()),
34 base::Bind(&SessionManagerClientImpl::SignalConnected, 34 base::Bind(&SessionManagerClientImpl::SignalConnected,
35 weak_ptr_factory_.GetWeakPtr())); 35 weak_ptr_factory_.GetWeakPtr()));
36 36
37 // Monitor the D-Bus signal for property changes.
38 session_manager_proxy_->ConnectToSignal( 37 session_manager_proxy_->ConnectToSignal(
39 chromium::kChromiumInterface, 38 chromium::kChromiumInterface,
40 chromium::kPropertyChangeCompleteSignal, 39 chromium::kPropertyChangeCompleteSignal,
41 base::Bind(&SessionManagerClientImpl::PropertyChangeCompleteReceived, 40 base::Bind(&SessionManagerClientImpl::PropertyChangeCompleteReceived,
42 weak_ptr_factory_.GetWeakPtr()), 41 weak_ptr_factory_.GetWeakPtr()),
43 base::Bind(&SessionManagerClientImpl::SignalConnected, 42 base::Bind(&SessionManagerClientImpl::SignalConnected,
44 weak_ptr_factory_.GetWeakPtr())); 43 weak_ptr_factory_.GetWeakPtr()));
44
45 session_manager_proxy_->ConnectToSignal(
46 chromium::kChromiumInterface,
47 chromium::kLockScreenSignal,
48 base::Bind(&SessionManagerClientImpl::ScreenLockReceived,
49 weak_ptr_factory_.GetWeakPtr()),
50 base::Bind(&SessionManagerClientImpl::SignalConnected,
51 weak_ptr_factory_.GetWeakPtr()));
52
53 session_manager_proxy_->ConnectToSignal(
54 chromium::kChromiumInterface,
55 chromium::kUnlockScreenSignal,
56 base::Bind(&SessionManagerClientImpl::ScreenUnlockReceived,
57 weak_ptr_factory_.GetWeakPtr()),
58 base::Bind(&SessionManagerClientImpl::SignalConnected,
59 weak_ptr_factory_.GetWeakPtr()));
45 } 60 }
46 61
47 virtual ~SessionManagerClientImpl() { 62 virtual ~SessionManagerClientImpl() {
48 } 63 }
49 64
50 // SessionManagerClient override. 65 // SessionManagerClient overrides:
51 virtual void AddObserver(Observer* observer) OVERRIDE { 66 virtual void AddObserver(Observer* observer) OVERRIDE {
52 observers_.AddObserver(observer); 67 observers_.AddObserver(observer);
53 } 68 }
54 69
55 // SessionManagerClient override.
56 virtual void RemoveObserver(Observer* observer) OVERRIDE { 70 virtual void RemoveObserver(Observer* observer) OVERRIDE {
57 observers_.RemoveObserver(observer); 71 observers_.RemoveObserver(observer);
58 } 72 }
59 73
60 // SessionManagerClient override. 74 virtual bool HasObserver(Observer* observer) OVERRIDE {
61 virtual void EmitLoginPromptReady() OVERRIDE { 75 return observers_.HasObserver(observer);
62 dbus::MethodCall method_call(
63 login_manager::kSessionManagerInterface,
64 login_manager::kSessionManagerEmitLoginPromptReady);
65 session_manager_proxy_->CallMethod(
66 &method_call,
67 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
68 base::Bind(&SessionManagerClientImpl::OnEmitLoginPromptReady,
69 weak_ptr_factory_.GetWeakPtr()));
70 } 76 }
71 77
72 // SessionManagerClient override. 78 virtual void EmitLoginPromptReady() OVERRIDE {
73 virtual void EmitLoginPromptVisible() OVERRIDE { 79 SimpleMethodCallToSessionManager(
74 dbus::MethodCall method_call( 80 login_manager::kSessionManagerEmitLoginPromptReady);
75 login_manager::kSessionManagerInterface,
76 login_manager::kSessionManagerEmitLoginPromptVisible);
77 session_manager_proxy_->CallMethod(
78 &method_call,
79 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
80 base::Bind(&SessionManagerClientImpl::OnEmitLoginPromptVisible,
81 weak_ptr_factory_.GetWeakPtr()));
82 } 81 }
83 82
84 // SessionManagerClient override. 83 virtual void EmitLoginPromptVisible() OVERRIDE {
84 SimpleMethodCallToSessionManager(
85 login_manager::kSessionManagerEmitLoginPromptVisible);
86 }
87
85 virtual void RestartJob(int pid, const std::string& command_line) OVERRIDE { 88 virtual void RestartJob(int pid, const std::string& command_line) OVERRIDE {
86 dbus::MethodCall method_call(login_manager::kSessionManagerInterface, 89 dbus::MethodCall method_call(login_manager::kSessionManagerInterface,
87 login_manager::kSessionManagerRestartJob); 90 login_manager::kSessionManagerRestartJob);
88 dbus::MessageWriter writer(&method_call); 91 dbus::MessageWriter writer(&method_call);
89 writer.AppendInt32(pid); 92 writer.AppendInt32(pid);
90 writer.AppendString(command_line); 93 writer.AppendString(command_line);
91 session_manager_proxy_->CallMethod( 94 session_manager_proxy_->CallMethod(
92 &method_call, 95 &method_call,
93 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 96 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
94 base::Bind(&SessionManagerClientImpl::OnRestartJob, 97 base::Bind(&SessionManagerClientImpl::OnRestartJob,
95 weak_ptr_factory_.GetWeakPtr())); 98 weak_ptr_factory_.GetWeakPtr()));
96 } 99 }
97 100
98 // SessionManagerClient override.
99 virtual void RestartEntd() OVERRIDE { 101 virtual void RestartEntd() OVERRIDE {
100 dbus::MethodCall method_call(login_manager::kSessionManagerInterface, 102 SimpleMethodCallToSessionManager(login_manager::kSessionManagerRestartEntd);
101 login_manager::kSessionManagerRestartEntd);
102 session_manager_proxy_->CallMethod(
103 &method_call,
104 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
105 base::Bind(&SessionManagerClientImpl::OnRestartEntd,
106 weak_ptr_factory_.GetWeakPtr()));
107 } 103 }
108 104
109 // SessionManagerClient override.
110 virtual void StartSession(const std::string& user_email) OVERRIDE { 105 virtual void StartSession(const std::string& user_email) OVERRIDE {
111 dbus::MethodCall method_call(login_manager::kSessionManagerInterface, 106 dbus::MethodCall method_call(login_manager::kSessionManagerInterface,
112 login_manager::kSessionManagerStartSession); 107 login_manager::kSessionManagerStartSession);
113 dbus::MessageWriter writer(&method_call); 108 dbus::MessageWriter writer(&method_call);
114 writer.AppendString(user_email); 109 writer.AppendString(user_email);
115 writer.AppendString(""); // Unique ID is deprecated 110 writer.AppendString(""); // Unique ID is deprecated
116 session_manager_proxy_->CallMethod( 111 session_manager_proxy_->CallMethod(
117 &method_call, 112 &method_call,
118 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 113 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
119 base::Bind(&SessionManagerClientImpl::OnStartSession, 114 base::Bind(&SessionManagerClientImpl::OnStartSession,
120 weak_ptr_factory_.GetWeakPtr())); 115 weak_ptr_factory_.GetWeakPtr()));
121 } 116 }
122 117
123 // SessionManagerClient override.
124 virtual void StopSession() OVERRIDE { 118 virtual void StopSession() OVERRIDE {
125 dbus::MethodCall method_call(login_manager::kSessionManagerInterface, 119 dbus::MethodCall method_call(login_manager::kSessionManagerInterface,
126 login_manager::kSessionManagerStopSession); 120 login_manager::kSessionManagerStopSession);
127 dbus::MessageWriter writer(&method_call); 121 dbus::MessageWriter writer(&method_call);
128 writer.AppendString(""); // Unique ID is deprecated 122 writer.AppendString(""); // Unique ID is deprecated
129 session_manager_proxy_->CallMethod( 123 session_manager_proxy_->CallMethod(
130 &method_call, 124 &method_call,
131 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 125 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
132 base::Bind(&SessionManagerClientImpl::OnStopSession, 126 base::Bind(&SessionManagerClientImpl::OnStopSession,
133 weak_ptr_factory_.GetWeakPtr())); 127 weak_ptr_factory_.GetWeakPtr()));
134 } 128 }
135 129
136 // SessionManagerClient override. 130 virtual void RequestLockScreen() OVERRIDE {
131 SimpleMethodCallToSessionManager(login_manager::kSessionManagerLockScreen);
132 }
133
134 virtual void RequestUnlockScreen() OVERRIDE {
135 SimpleMethodCallToSessionManager(
136 login_manager::kSessionManagerUnlockScreen);
137 }
138
139 virtual bool GetIsScreenLocked() OVERRIDE {
140 return screen_locked_;
141 }
142
137 virtual void RetrieveDevicePolicy( 143 virtual void RetrieveDevicePolicy(
138 const RetrievePolicyCallback& callback) OVERRIDE { 144 const RetrievePolicyCallback& callback) OVERRIDE {
139 CallRetrievePolicy(login_manager::kSessionManagerRetrievePolicy, 145 CallRetrievePolicy(login_manager::kSessionManagerRetrievePolicy,
140 callback); 146 callback);
141 } 147 }
142 148
143 // SessionManagerClient override.
144 virtual void RetrieveUserPolicy( 149 virtual void RetrieveUserPolicy(
145 const RetrievePolicyCallback& callback) OVERRIDE { 150 const RetrievePolicyCallback& callback) OVERRIDE {
146 CallRetrievePolicy(login_manager::kSessionManagerRetrieveUserPolicy, 151 CallRetrievePolicy(login_manager::kSessionManagerRetrieveUserPolicy,
147 callback); 152 callback);
148 } 153 }
149 154
150 // SessionManagerClient override.
151 virtual void StoreDevicePolicy(const std::string& policy_blob, 155 virtual void StoreDevicePolicy(const std::string& policy_blob,
152 const StorePolicyCallback& callback) OVERRIDE { 156 const StorePolicyCallback& callback) OVERRIDE {
153 CallStorePolicy(login_manager::kSessionManagerStorePolicy, 157 CallStorePolicy(login_manager::kSessionManagerStorePolicy,
154 policy_blob, callback); 158 policy_blob, callback);
155 } 159 }
156 160
157 // SessionManagerClient override.
158 virtual void StoreUserPolicy(const std::string& policy_blob, 161 virtual void StoreUserPolicy(const std::string& policy_blob,
159 const StorePolicyCallback& callback) OVERRIDE { 162 const StorePolicyCallback& callback) OVERRIDE {
160 CallStorePolicy(login_manager::kSessionManagerStoreUserPolicy, 163 CallStorePolicy(login_manager::kSessionManagerStoreUserPolicy,
161 policy_blob, callback); 164 policy_blob, callback);
162 } 165 }
163 166
164 private: 167 private:
168 // Makes a method call to the session manager with no arguments and no
169 // response.
170 void SimpleMethodCallToSessionManager(const std::string& method_name) {
171 dbus::MethodCall method_call(login_manager::kSessionManagerInterface,
172 method_name);
173 session_manager_proxy_->CallMethod(
174 &method_call,
175 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
176 dbus::ObjectProxy::EmptyResponseCallback());
177 }
178
165 // Helper for Retrieve{User,Device}Policy. 179 // Helper for Retrieve{User,Device}Policy.
166 virtual void CallRetrievePolicy(const std::string& method_name, 180 virtual void CallRetrievePolicy(const std::string& method_name,
167 const RetrievePolicyCallback& callback) { 181 const RetrievePolicyCallback& callback) {
168 dbus::MethodCall method_call(login_manager::kSessionManagerInterface, 182 dbus::MethodCall method_call(login_manager::kSessionManagerInterface,
169 method_name); 183 method_name);
170 session_manager_proxy_->CallMethod( 184 session_manager_proxy_->CallMethod(
171 &method_call, 185 &method_call,
172 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 186 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
173 base::Bind(&SessionManagerClientImpl::OnRetrievePolicy, 187 base::Bind(&SessionManagerClientImpl::OnRetrievePolicy,
174 weak_ptr_factory_.GetWeakPtr(), 188 weak_ptr_factory_.GetWeakPtr(),
(...skipping 13 matching lines...) Expand all
188 reinterpret_cast<const uint8*>(policy_blob.data()), policy_blob.size()); 202 reinterpret_cast<const uint8*>(policy_blob.data()), policy_blob.size());
189 session_manager_proxy_->CallMethod( 203 session_manager_proxy_->CallMethod(
190 &method_call, 204 &method_call,
191 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 205 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
192 base::Bind(&SessionManagerClientImpl::OnStorePolicy, 206 base::Bind(&SessionManagerClientImpl::OnStorePolicy,
193 weak_ptr_factory_.GetWeakPtr(), 207 weak_ptr_factory_.GetWeakPtr(),
194 method_name, 208 method_name,
195 callback)); 209 callback));
196 } 210 }
197 211
198 // Called when kSessionManagerEmitLoginPromptReady method is complete.
199 void OnEmitLoginPromptReady(dbus::Response* response) {
200 LOG_IF(ERROR, !response)
201 << "Failed to call "
202 << login_manager::kSessionManagerEmitLoginPromptReady;
203 }
204
205 // Called when kSessionManagerEmitLoginPromptVisible method is complete.
206 void OnEmitLoginPromptVisible(dbus::Response* response) {
207 LOG_IF(ERROR, !response)
208 << "Failed to call "
209 << login_manager::kSessionManagerEmitLoginPromptVisible;
210 }
211
212 // Called when kSessionManagerRestartJob method is complete. 212 // Called when kSessionManagerRestartJob method is complete.
213 void OnRestartJob(dbus::Response* response) { 213 void OnRestartJob(dbus::Response* response) {
214 LOG_IF(ERROR, !response) 214 LOG_IF(ERROR, !response)
215 << "Failed to call " 215 << "Failed to call "
216 << login_manager::kSessionManagerRestartJob; 216 << login_manager::kSessionManagerRestartJob;
217 } 217 }
218 218
219 // Called when kSessionManagerRestartEntd method is complete.
220 void OnRestartEntd(dbus::Response* response) {
221 LOG_IF(ERROR, !response)
222 << "Failed to call "
223 << login_manager::kSessionManagerRestartEntd;
224 }
225
226 // Called when kSessionManagerStartSession method is complete. 219 // Called when kSessionManagerStartSession method is complete.
227 void OnStartSession(dbus::Response* response) { 220 void OnStartSession(dbus::Response* response) {
228 LOG_IF(ERROR, !response) 221 LOG_IF(ERROR, !response)
229 << "Failed to call " 222 << "Failed to call "
230 << login_manager::kSessionManagerStartSession; 223 << login_manager::kSessionManagerStartSession;
231 } 224 }
232 225
233 // Called when kSessionManagerStopSession method is complete. 226 // Called when kSessionManagerStopSession method is complete.
234 void OnStopSession(dbus::Response* response) { 227 void OnStopSession(dbus::Response* response) {
235 LOG_IF(ERROR, !response) 228 LOG_IF(ERROR, !response)
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 dbus::MessageReader reader(signal); 286 dbus::MessageReader reader(signal);
294 std::string result_string; 287 std::string result_string;
295 if (!reader.PopString(&result_string)) { 288 if (!reader.PopString(&result_string)) {
296 LOG(ERROR) << "Invalid signal: " << signal->ToString(); 289 LOG(ERROR) << "Invalid signal: " << signal->ToString();
297 return; 290 return;
298 } 291 }
299 const bool success = StartsWithASCII(result_string, "success", false); 292 const bool success = StartsWithASCII(result_string, "success", false);
300 FOR_EACH_OBSERVER(Observer, observers_, PropertyChangeComplete(success)); 293 FOR_EACH_OBSERVER(Observer, observers_, PropertyChangeComplete(success));
301 } 294 }
302 295
296 void ScreenLockReceived(dbus::Signal* signal) {
297 screen_locked_ = true;
298 FOR_EACH_OBSERVER(Observer, observers_, LockScreen());
299 }
300
301 void ScreenUnlockReceived(dbus::Signal* signal) {
302 screen_locked_ = false;
303 FOR_EACH_OBSERVER(Observer, observers_, UnlockScreen());
304 }
305
303 // Called when the object is connected to the signal. 306 // Called when the object is connected to the signal.
304 void SignalConnected(const std::string& interface_name, 307 void SignalConnected(const std::string& interface_name,
305 const std::string& signal_name, 308 const std::string& signal_name,
306 bool success) { 309 bool success) {
307 LOG_IF(ERROR, !success) << "Failed to connect to " << signal_name; 310 LOG_IF(ERROR, !success) << "Failed to connect to " << signal_name;
308 } 311 }
309 312
310 dbus::ObjectProxy* session_manager_proxy_; 313 dbus::ObjectProxy* session_manager_proxy_;
311 ObserverList<Observer> observers_; 314 ObserverList<Observer> observers_;
315 bool screen_locked_;
312 base::WeakPtrFactory<SessionManagerClientImpl> weak_ptr_factory_; 316 base::WeakPtrFactory<SessionManagerClientImpl> weak_ptr_factory_;
313 317
314 DISALLOW_COPY_AND_ASSIGN(SessionManagerClientImpl); 318 DISALLOW_COPY_AND_ASSIGN(SessionManagerClientImpl);
315 }; 319 };
316 320
317 // The SessionManagerClient implementation used on Linux desktop, 321 // The SessionManagerClient implementation used on Linux desktop,
318 // which does nothing. 322 // which does nothing.
319 class SessionManagerClientStubImpl : public SessionManagerClient { 323 class SessionManagerClientStubImpl : public SessionManagerClient {
320 // SessionManagerClient overrides. 324 // SessionManagerClient overrides.
321 virtual void AddObserver(Observer* observer) OVERRIDE {} 325 virtual void AddObserver(Observer* observer) OVERRIDE {}
322 virtual void RemoveObserver(Observer* observer) OVERRIDE {} 326 virtual void RemoveObserver(Observer* observer) OVERRIDE {}
327 virtual bool HasObserver(Observer* observer) OVERRIDE { return false; }
323 virtual void EmitLoginPromptReady() OVERRIDE {} 328 virtual void EmitLoginPromptReady() OVERRIDE {}
324 virtual void EmitLoginPromptVisible() OVERRIDE {} 329 virtual void EmitLoginPromptVisible() OVERRIDE {}
325 virtual void RestartJob(int pid, const std::string& command_line) OVERRIDE {} 330 virtual void RestartJob(int pid, const std::string& command_line) OVERRIDE {}
326 virtual void RestartEntd() OVERRIDE {} 331 virtual void RestartEntd() OVERRIDE {}
327 virtual void StartSession(const std::string& user_email) OVERRIDE {} 332 virtual void StartSession(const std::string& user_email) OVERRIDE {}
328 virtual void StopSession() OVERRIDE {} 333 virtual void StopSession() OVERRIDE {}
334 virtual void RequestLockScreen() OVERRIDE {}
335 virtual void RequestUnlockScreen() OVERRIDE {}
336 virtual bool GetIsScreenLocked() OVERRIDE { return false; }
329 virtual void RetrieveDevicePolicy( 337 virtual void RetrieveDevicePolicy(
330 const RetrievePolicyCallback& callback) OVERRIDE { 338 const RetrievePolicyCallback& callback) OVERRIDE {
331 callback.Run(""); 339 callback.Run("");
332 } 340 }
333 virtual void RetrieveUserPolicy( 341 virtual void RetrieveUserPolicy(
334 const RetrievePolicyCallback& callback) OVERRIDE { 342 const RetrievePolicyCallback& callback) OVERRIDE {
335 callback.Run(""); 343 callback.Run("");
336 } 344 }
337 virtual void StoreDevicePolicy(const std::string& policy_blob, 345 virtual void StoreDevicePolicy(const std::string& policy_blob,
338 const StorePolicyCallback& callback) OVERRIDE { 346 const StorePolicyCallback& callback) OVERRIDE {
(...skipping 14 matching lines...) Expand all
353 SessionManagerClient* SessionManagerClient::Create( 361 SessionManagerClient* SessionManagerClient::Create(
354 DBusClientImplementationType type, 362 DBusClientImplementationType type,
355 dbus::Bus* bus) { 363 dbus::Bus* bus) {
356 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) 364 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION)
357 return new SessionManagerClientImpl(bus); 365 return new SessionManagerClientImpl(bus);
358 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); 366 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type);
359 return new SessionManagerClientStubImpl(); 367 return new SessionManagerClientStubImpl();
360 } 368 }
361 369
362 } // namespace chromeos 370 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/dbus/session_manager_client.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698