| OLD | NEW |
| 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 "mash/login/login.h" | 5 #include "mash/login/login.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <memory> | 8 #include <memory> |
| 9 | 9 |
| 10 #include "ash/public/cpp/shell_window_ids.h" | 10 #include "ash/public/cpp/shell_window_ids.h" |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 class Login : public service_manager::Service, | 137 class Login : public service_manager::Service, |
| 138 public service_manager::InterfaceFactory<mojom::Login>, | 138 public service_manager::InterfaceFactory<mojom::Login>, |
| 139 public mojom::Login { | 139 public mojom::Login { |
| 140 public: | 140 public: |
| 141 Login() {} | 141 Login() {} |
| 142 ~Login() override {} | 142 ~Login() override {} |
| 143 | 143 |
| 144 void LoginAs(const std::string& user_id) { | 144 void LoginAs(const std::string& user_id) { |
| 145 user_access_manager_->SetActiveUser(user_id); | 145 user_access_manager_->SetActiveUser(user_id); |
| 146 mash::init::mojom::InitPtr init; | 146 mash::init::mojom::InitPtr init; |
| 147 context_->connector()->ConnectToInterface("service:mash_init", &init); | 147 context()->connector()->ConnectToInterface("service:mash_init", &init); |
| 148 init->StartService("service:mash_session", user_id); | 148 init->StartService("service:mash_session", user_id); |
| 149 } | 149 } |
| 150 | 150 |
| 151 private: | 151 private: |
| 152 // service_manager::Service: | 152 // service_manager::Service: |
| 153 void OnStart(service_manager::ServiceContext* context) override { | 153 void OnStart() override { |
| 154 context_ = context; | 154 tracing_.Initialize(context()->connector(), context()->identity().name()); |
| 155 tracing_.Initialize(context->connector(), context->identity().name()); | |
| 156 | 155 |
| 157 aura_init_ = base::MakeUnique<views::AuraInit>( | 156 aura_init_ = base::MakeUnique<views::AuraInit>( |
| 158 context->connector(), context->identity(), "views_mus_resources.pak"); | 157 context()->connector(), context()->identity(), |
| 158 "views_mus_resources.pak"); |
| 159 | 159 |
| 160 context->connector()->ConnectToInterface( | 160 context()->connector()->ConnectToInterface( |
| 161 "service:ui", &user_access_manager_); | 161 "service:ui", &user_access_manager_); |
| 162 user_access_manager_->SetActiveUser(context->identity().user_id()); | 162 user_access_manager_->SetActiveUser(context()->identity().user_id()); |
| 163 } | 163 } |
| 164 | 164 |
| 165 bool OnConnect(const service_manager::ServiceInfo& remote_info, | 165 bool OnConnect(const service_manager::ServiceInfo& remote_info, |
| 166 service_manager::InterfaceRegistry* registry) override { | 166 service_manager::InterfaceRegistry* registry) override { |
| 167 registry->AddInterface<mojom::Login>(this); | 167 registry->AddInterface<mojom::Login>(this); |
| 168 return true; | 168 return true; |
| 169 } | 169 } |
| 170 | 170 |
| 171 // service_manager::InterfaceFactory<mojom::Login>: | 171 // service_manager::InterfaceFactory<mojom::Login>: |
| 172 void Create(const service_manager::Identity& remote_identity, | 172 void Create(const service_manager::Identity& remote_identity, |
| 173 mojom::LoginRequest request) override { | 173 mojom::LoginRequest request) override { |
| 174 bindings_.AddBinding(this, std::move(request)); | 174 bindings_.AddBinding(this, std::move(request)); |
| 175 } | 175 } |
| 176 | 176 |
| 177 // mojom::Login: | 177 // mojom::Login: |
| 178 void ShowLoginUI() override { | 178 void ShowLoginUI() override { |
| 179 UI::Show(context_->connector(), context_->identity(), this); | 179 UI::Show(context()->connector(), context()->identity(), this); |
| 180 } | 180 } |
| 181 void SwitchUser() override { | 181 void SwitchUser() override { |
| 182 UI::Show(context_->connector(), context_->identity(), this); | 182 UI::Show(context()->connector(), context()->identity(), this); |
| 183 } | 183 } |
| 184 | 184 |
| 185 void StartWindowManager(); | 185 void StartWindowManager(); |
| 186 | 186 |
| 187 service_manager::ServiceContext* context_ = nullptr; | |
| 188 | |
| 189 tracing::Provider tracing_; | 187 tracing::Provider tracing_; |
| 190 std::unique_ptr<views::AuraInit> aura_init_; | 188 std::unique_ptr<views::AuraInit> aura_init_; |
| 191 mojo::BindingSet<mojom::Login> bindings_; | 189 mojo::BindingSet<mojom::Login> bindings_; |
| 192 ui::mojom::UserAccessManagerPtr user_access_manager_; | 190 ui::mojom::UserAccessManagerPtr user_access_manager_; |
| 193 | 191 |
| 194 DISALLOW_COPY_AND_ASSIGN(Login); | 192 DISALLOW_COPY_AND_ASSIGN(Login); |
| 195 }; | 193 }; |
| 196 | 194 |
| 197 void UI::ButtonPressed(views::Button* sender, const ui::Event& event) { | 195 void UI::ButtonPressed(views::Button* sender, const ui::Event& event) { |
| 198 // Login... | 196 // Login... |
| 199 if (sender == login_button_1_) { | 197 if (sender == login_button_1_) { |
| 200 login_->LoginAs(user_id_1_); | 198 login_->LoginAs(user_id_1_); |
| 201 } else if (sender == login_button_2_) { | 199 } else if (sender == login_button_2_) { |
| 202 login_->LoginAs(user_id_2_); | 200 login_->LoginAs(user_id_2_); |
| 203 } else { | 201 } else { |
| 204 NOTREACHED(); | 202 NOTREACHED(); |
| 205 } | 203 } |
| 206 GetWidget()->Close(); | 204 GetWidget()->Close(); |
| 207 } | 205 } |
| 208 | 206 |
| 209 } // namespace | 207 } // namespace |
| 210 | 208 |
| 211 service_manager::Service* CreateLogin() { | 209 service_manager::Service* CreateLogin() { |
| 212 return new Login; | 210 return new Login; |
| 213 } | 211 } |
| 214 | 212 |
| 215 } // namespace login | 213 } // namespace login |
| 216 } // namespace main | 214 } // namespace main |
| OLD | NEW |