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

Side by Side Diff: chrome/browser/ui/ash/launcher/multi_profile_shell_window_launcher_controller.cc

Issue 166573005: Rename apps::ShellWindow to apps::AppWindow (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase, nits (rename) Created 6 years, 10 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/launcher/multi_profile_shell_window_launcher_con troller.h" 5 #include "chrome/browser/ui/ash/launcher/multi_profile_shell_window_launcher_con troller.h"
6 6
7 #include "apps/shell_window.h" 7 #include "apps/app_window.h"
8 #include "chrome/browser/profiles/profile.h" 8 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/browser/profiles/profile_manager.h" 9 #include "chrome/browser/profiles/profile_manager.h"
10 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" 10 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h"
11 #include "chrome/browser/ui/host_desktop.h" 11 #include "chrome/browser/ui/host_desktop.h"
12 12
13 namespace { 13 namespace {
14 14
15 bool ControlsWindow(aura::Window* window) { 15 bool ControlsWindow(aura::Window* window) {
16 return chrome::GetHostDesktopTypeForNativeWindow(window) == 16 return chrome::GetHostDesktopTypeForNativeWindow(window) ==
17 chrome::HOST_DESKTOP_TYPE_ASH; 17 chrome::HOST_DESKTOP_TYPE_ASH;
18 } 18 }
19 19
20 } // namespace 20 } // namespace
21 21
22 22
23 MultiProfileShellWindowLauncherController:: 23 MultiProfileShellWindowLauncherController::
24 MultiProfileShellWindowLauncherController( 24 MultiProfileShellWindowLauncherController(
25 ChromeLauncherController* owner) 25 ChromeLauncherController* owner)
26 : ShellWindowLauncherController(owner) { 26 : ShellWindowLauncherController(owner) {
27 } 27 }
28 28
29 MultiProfileShellWindowLauncherController:: 29 MultiProfileShellWindowLauncherController::
30 ~MultiProfileShellWindowLauncherController() { 30 ~MultiProfileShellWindowLauncherController() {
31 // We need to remove all Registry observers for added users. 31 // We need to remove all Registry observers for added users.
32 for (ShellWindowRegistryList::iterator it = multi_user_registry_.begin(); 32 for (AppWindowRegistryList::iterator it = multi_user_registry_.begin();
33 it != multi_user_registry_.end(); ++it) 33 it != multi_user_registry_.end();
34 ++it)
34 (*it)->RemoveObserver(this); 35 (*it)->RemoveObserver(this);
35 } 36 }
36 37
37 void MultiProfileShellWindowLauncherController::ActiveUserChanged( 38 void MultiProfileShellWindowLauncherController::ActiveUserChanged(
38 const std::string& user_email) { 39 const std::string& user_email) {
39 // The active user has changed and we need to traverse our list of items to 40 // The active user has changed and we need to traverse our list of items to
40 // show / hide them one by one. To avoid that a user dependent state 41 // show / hide them one by one. To avoid that a user dependent state
41 // "survives" in a launcher item, we first delete all items making sure that 42 // "survives" in a launcher item, we first delete all items making sure that
42 // nothing remains and then re-create them again. 43 // nothing remains and then re-create them again.
43 for (ShellWindowList::iterator it = shell_window_list_.begin(); 44 for (AppWindowList::iterator it = app_window_list_.begin();
44 it != shell_window_list_.end(); ++it) { 45 it != app_window_list_.end();
45 apps::ShellWindow* shell_window = *it; 46 ++it) {
47 apps::AppWindow* app_window = *it;
46 Profile* profile = 48 Profile* profile =
47 Profile::FromBrowserContext(shell_window->browser_context()); 49 Profile::FromBrowserContext(app_window->browser_context());
48 if (!multi_user_util::IsProfileFromActiveUser(profile) && 50 if (!multi_user_util::IsProfileFromActiveUser(profile) &&
49 IsRegisteredApp(shell_window->GetNativeWindow())) 51 IsRegisteredApp(app_window->GetNativeWindow()))
50 UnregisterApp(shell_window->GetNativeWindow()); 52 UnregisterApp(app_window->GetNativeWindow());
51 } 53 }
52 for (ShellWindowList::iterator it = shell_window_list_.begin(); 54 for (AppWindowList::iterator it = app_window_list_.begin();
53 it != shell_window_list_.end(); ++it) { 55 it != app_window_list_.end();
54 apps::ShellWindow* shell_window = *it; 56 ++it) {
57 apps::AppWindow* app_window = *it;
55 Profile* profile = 58 Profile* profile =
56 Profile::FromBrowserContext(shell_window->browser_context()); 59 Profile::FromBrowserContext(app_window->browser_context());
57 if (multi_user_util::IsProfileFromActiveUser(profile) && 60 if (multi_user_util::IsProfileFromActiveUser(profile) &&
58 !IsRegisteredApp(shell_window->GetNativeWindow())) 61 !IsRegisteredApp(app_window->GetNativeWindow()))
59 RegisterApp(*it); 62 RegisterApp(*it);
60 } 63 }
61 } 64 }
62 65
63 void MultiProfileShellWindowLauncherController::AdditionalUserAddedToSession( 66 void MultiProfileShellWindowLauncherController::AdditionalUserAddedToSession(
64 Profile* profile) { 67 Profile* profile) {
65 // Each users ShellRegistry needs to be observed. 68 // Each users AppWindowRegistry needs to be observed.
66 apps::ShellWindowRegistry* registry = apps::ShellWindowRegistry::Get(profile); 69 apps::AppWindowRegistry* registry = apps::AppWindowRegistry::Get(profile);
67 multi_user_registry_.push_back(registry); 70 multi_user_registry_.push_back(registry);
68 registry->AddObserver(this); 71 registry->AddObserver(this);
69 } 72 }
70 73
71 void MultiProfileShellWindowLauncherController::OnShellWindowAdded( 74 void MultiProfileShellWindowLauncherController::OnAppWindowAdded(
72 apps::ShellWindow* shell_window) { 75 apps::AppWindow* app_window) {
73 if (!ControlsWindow(shell_window->GetNativeWindow())) 76 if (!ControlsWindow(app_window->GetNativeWindow()))
74 return; 77 return;
75 shell_window_list_.push_back(shell_window); 78 app_window_list_.push_back(app_window);
76 Profile* profile = 79 Profile* profile = Profile::FromBrowserContext(app_window->browser_context());
77 Profile::FromBrowserContext(shell_window->browser_context());
78 if (multi_user_util::IsProfileFromActiveUser(profile)) 80 if (multi_user_util::IsProfileFromActiveUser(profile))
79 RegisterApp(shell_window); 81 RegisterApp(app_window);
80 } 82 }
81 83
82 void MultiProfileShellWindowLauncherController::OnShellWindowRemoved( 84 void MultiProfileShellWindowLauncherController::OnAppWindowRemoved(
83 apps::ShellWindow* shell_window) { 85 apps::AppWindow* app_window) {
84 if (!ControlsWindow(shell_window->GetNativeWindow())) 86 if (!ControlsWindow(app_window->GetNativeWindow()))
85 return; 87 return;
86 88
87 // If the application is registered with ShellWindowLauncher (because the user 89 // If the application is registered with ShellWindowLauncher (because the user
88 // is currently active), the OnWindowDestroying observer has already (or will 90 // is currently active), the OnWindowDestroying observer has already (or will
89 // soon) unregister it independently from the shelf. If it was not registered 91 // soon) unregister it independently from the shelf. If it was not registered
90 // we don't need to do anything anyways. As such, all which is left to do here 92 // we don't need to do anything anyways. As such, all which is left to do here
91 // is to get rid of our own reference. 93 // is to get rid of our own reference.
92 ShellWindowList::iterator it = std::find(shell_window_list_.begin(), 94 AppWindowList::iterator it =
93 shell_window_list_.end(), 95 std::find(app_window_list_.begin(), app_window_list_.end(), app_window);
94 shell_window); 96 DCHECK(it != app_window_list_.end());
95 DCHECK(it != shell_window_list_.end()); 97 app_window_list_.erase(it);
96 shell_window_list_.erase(it);
97 } 98 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698