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

Side by Side Diff: chrome/browser/ui/ash/session_controller_client.cc

Issue 2842693002: cros: Don't send duplicate UserSession mojo messages to ash (Closed)
Patch Set: Created 3 years, 7 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "chrome/browser/ui/ash/session_controller_client.h" 5 #include "chrome/browser/ui/ash/session_controller_client.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "ash/public/cpp/session_types.h" 10 #include "ash/public/cpp/session_types.h"
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 void SessionControllerClient::SendUserSession(const User& user) { 385 void SessionControllerClient::SendUserSession(const User& user) {
386 ash::mojom::UserSessionPtr user_session = UserToUserSession(user); 386 ash::mojom::UserSessionPtr user_session = UserToUserSession(user);
387 387
388 // Bail if the user has no session. Currently the only code path that hits 388 // Bail if the user has no session. Currently the only code path that hits
389 // this condition is from OnUserImageChanged when user images are changed 389 // this condition is from OnUserImageChanged when user images are changed
390 // on the login screen (e.g. policy change that adds a public session user, 390 // on the login screen (e.g. policy change that adds a public session user,
391 // or tests that create new users on the login screen). 391 // or tests that create new users on the login screen).
392 if (!user_session) 392 if (!user_session)
393 return; 393 return;
394 394
395 // TODO(jamescook): Only send if it changed. This will require an Equals() 395 if (user_session != last_sent_user_session_) {
396 // method for gfx::ImageSkia to allow mojom::UserSession comparison. 396 last_sent_user_session_ = user_session->Clone();
397 // http://crbug.com/714689 397 session_controller_->UpdateUserSession(std::move(user_session));
398 session_controller_->UpdateUserSession(std::move(user_session)); 398 }
399 } 399 }
400 400
401 void SessionControllerClient::SendUserSessionOrder() { 401 void SessionControllerClient::SendUserSessionOrder() {
402 UserManager* const user_manager = UserManager::Get(); 402 UserManager* const user_manager = UserManager::Get();
403 403
404 const UserList logged_in_users = user_manager->GetLoggedInUsers(); 404 const UserList logged_in_users = user_manager->GetLoggedInUsers();
405 std::vector<uint32_t> user_session_ids; 405 std::vector<uint32_t> user_session_ids;
406 for (auto* user : user_manager->GetLRULoggedInUsers()) { 406 for (auto* user : user_manager->GetLRULoggedInUsers()) {
407 const uint32_t user_session_id = GetSessionId(*user); 407 const uint32_t user_session_id = GetSessionId(*user);
408 DCHECK_NE(0u, user_session_id); 408 DCHECK_NE(0u, user_session_id);
409 user_session_ids.push_back(user_session_id); 409 user_session_ids.push_back(user_session_id);
410 } 410 }
411 411
412 session_controller_->SetUserSessionOrder(user_session_ids); 412 session_controller_->SetUserSessionOrder(user_session_ids);
413 } 413 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698