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

Side by Side Diff: chrome/browser/ui/views/profiles/user_manager_view.cc

Issue 847733005: Move User Manager onto a System profile. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 11 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
« no previous file with comments | « chrome/browser/ui/views/profiles/user_manager_view.h ('k') | chrome/common/chrome_constants.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/views/profiles/user_manager_view.h" 5 #include "chrome/browser/ui/views/profiles/user_manager_view.h"
6 6
7 #include "chrome/browser/browser_process.h" 7 #include "chrome/browser/browser_process.h"
8 #include "chrome/browser/lifetime/application_lifetime.h" 8 #include "chrome/browser/lifetime/application_lifetime.h"
9 #include "chrome/browser/profiles/profile_avatar_icon_util.h" 9 #include "chrome/browser/profiles/profile_avatar_icon_util.h"
10 #include "chrome/browser/profiles/profile_manager.h" 10 #include "chrome/browser/profiles/profile_manager.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 if (instance_) { 54 if (instance_) {
55 // If we are showing the User Manager after locking a profile, change the 55 // If we are showing the User Manager after locking a profile, change the
56 // active profile to Guest. 56 // active profile to Guest.
57 profiles::SetActiveProfileToGuestIfLocked(); 57 profiles::SetActiveProfileToGuestIfLocked();
58 58
59 // If there's a user manager window open already, just activate it. 59 // If there's a user manager window open already, just activate it.
60 instance_->GetWidget()->Activate(); 60 instance_->GetWidget()->Activate();
61 return; 61 return;
62 } 62 }
63 63
64 // Create the guest profile, if necessary, and open the user manager 64 // Create the system profile, if necessary, and open the user manager
65 // from the guest profile. 65 // from the system profile.
66 profiles::CreateGuestProfileForUserManager( 66 profiles::CreateSystemProfileForUserManager(
67 profile_path_to_focus, 67 profile_path_to_focus,
68 tutorial_mode, 68 tutorial_mode,
69 profile_open_action, 69 profile_open_action,
70 base::Bind(&UserManagerView::OnGuestProfileCreated, 70 base::Bind(&UserManagerView::OnSystemProfileCreated,
71 base::Passed(make_scoped_ptr(new UserManagerView)))); 71 base::Passed(make_scoped_ptr(new UserManagerView))));
72 } 72 }
73 73
74 void UserManager::Hide() { 74 void UserManager::Hide() {
75 if (instance_) 75 if (instance_)
76 instance_->GetWidget()->Close(); 76 instance_->GetWidget()->Close();
77 } 77 }
78 78
79 bool UserManager::IsShowing() { 79 bool UserManager::IsShowing() {
80 return instance_ ? instance_->GetWidget()->IsActive() : false; 80 return instance_ ? instance_->GetWidget()->IsActive() : false;
81 } 81 }
82 82
83 // UserManagerView ------------------------------------------------------------- 83 // UserManagerView -------------------------------------------------------------
84 84
85 UserManagerView::UserManagerView() 85 UserManagerView::UserManagerView()
86 : web_view_(NULL), 86 : web_view_(NULL),
87 keep_alive_(new AutoKeepAlive(NULL)) { 87 keep_alive_(new AutoKeepAlive(NULL)) {
88 } 88 }
89 89
90 UserManagerView::~UserManagerView() { 90 UserManagerView::~UserManagerView() {
91 } 91 }
92 92
93 // static 93 // static
94 void UserManagerView::OnGuestProfileCreated( 94 void UserManagerView::OnSystemProfileCreated(
95 scoped_ptr<UserManagerView> instance, 95 scoped_ptr<UserManagerView> instance,
96 Profile* guest_profile, 96 Profile* system_profile,
97 const std::string& url) { 97 const std::string& url) {
98 // If we are showing the User Manager after locking a profile, change the 98 // If we are showing the User Manager after locking a profile, change the
99 // active profile to Guest. 99 // active profile to Guest.
100 profiles::SetActiveProfileToGuestIfLocked(); 100 profiles::SetActiveProfileToGuestIfLocked();
101 101
102 DCHECK(!instance_); 102 DCHECK(!instance_);
103 instance_ = instance.release(); // |instance_| takes over ownership. 103 instance_ = instance.release(); // |instance_| takes over ownership.
104 instance_->Init(guest_profile, GURL(url)); 104 instance_->Init(system_profile, GURL(url));
105 } 105 }
106 106
107 void UserManagerView::Init(Profile* guest_profile, const GURL& url) { 107 void UserManagerView::Init(Profile* system_profile, const GURL& url) {
108 web_view_ = new views::WebView(guest_profile); 108 web_view_ = new views::WebView(system_profile);
109 web_view_->set_allow_accelerators(true); 109 web_view_->set_allow_accelerators(true);
110 AddChildView(web_view_); 110 AddChildView(web_view_);
111 SetLayoutManager(new views::FillLayout); 111 SetLayoutManager(new views::FillLayout);
112 AddAccelerator(ui::Accelerator(ui::VKEY_W, ui::EF_CONTROL_DOWN)); 112 AddAccelerator(ui::Accelerator(ui::VKEY_W, ui::EF_CONTROL_DOWN));
113 AddAccelerator(ui::Accelerator(ui::VKEY_F4, ui::EF_ALT_DOWN)); 113 AddAccelerator(ui::Accelerator(ui::VKEY_F4, ui::EF_ALT_DOWN));
114 114
115 // If the user manager is being displayed from an existing profile, use 115 // If the user manager is being displayed from an existing profile, use
116 // its last active browser to determine where the user manager should be 116 // its last active browser to determine where the user manager should be
117 // placed. This is used so that we can center the dialog on the correct 117 // placed. This is used so that we can center the dialog on the correct
118 // monitor in a multiple-monitor setup. 118 // monitor in a multiple-monitor setup.
(...skipping 23 matching lines...) Expand all
142 // Since the User Manager can be the only top level window, we don't 142 // Since the User Manager can be the only top level window, we don't
143 // want to accidentally quit all of Chrome if the user is just trying to 143 // want to accidentally quit all of Chrome if the user is just trying to
144 // unfocus the selected pod in the WebView. 144 // unfocus the selected pod in the WebView.
145 GetDialogClientView()->RemoveAccelerator( 145 GetDialogClientView()->RemoveAccelerator(
146 ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_NONE)); 146 ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_NONE));
147 147
148 #if defined(OS_WIN) 148 #if defined(OS_WIN)
149 // Set the app id for the task manager to the app id of its parent 149 // Set the app id for the task manager to the app id of its parent
150 ui::win::SetAppIdForWindow( 150 ui::win::SetAppIdForWindow(
151 ShellIntegration::GetChromiumModelIdForProfile( 151 ShellIntegration::GetChromiumModelIdForProfile(
152 guest_profile->GetPath()), 152 system_profile->GetPath()),
153 views::HWNDForWidget(GetWidget())); 153 views::HWNDForWidget(GetWidget()));
154 #endif 154 #endif
155 155
156 web_view_->LoadInitialURL(url); 156 web_view_->LoadInitialURL(url);
157 content::RenderWidgetHostView* rwhv = 157 content::RenderWidgetHostView* rwhv =
158 web_view_->GetWebContents()->GetRenderWidgetHostView(); 158 web_view_->GetWebContents()->GetRenderWidgetHostView();
159 if (rwhv) 159 if (rwhv)
160 rwhv->SetBackgroundColor(profiles::kUserManagerBackgroundColor); 160 rwhv->SetBackgroundColor(profiles::kUserManagerBackgroundColor);
161 161
162 web_view_->RequestFocus(); 162 web_view_->RequestFocus();
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 // Now that the window is closed, we can allow a new one to be opened. 201 // Now that the window is closed, we can allow a new one to be opened.
202 // (WindowClosing comes in asynchronously from the call to Close() and we 202 // (WindowClosing comes in asynchronously from the call to Close() and we
203 // may have already opened a new instance). 203 // may have already opened a new instance).
204 if (instance_ == this) 204 if (instance_ == this)
205 instance_ = NULL; 205 instance_ = NULL;
206 } 206 }
207 207
208 bool UserManagerView::UseNewStyleForThisDialog() const { 208 bool UserManagerView::UseNewStyleForThisDialog() const {
209 return false; 209 return false;
210 } 210 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/profiles/user_manager_view.h ('k') | chrome/common/chrome_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698