Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / chromeos / login / auth / online_attempt_host.cc
blobafcf8a7e916b274611e9da6e03bcb69a3348a9b9
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
3 // found in the LICENSE file.
5 #include "chromeos/login/auth/online_attempt_host.h"
7 #include "base/bind.h"
8 #include "base/location.h"
9 #include "base/thread_task_runner_handle.h"
10 #include "chromeos/login/auth/auth_attempt_state.h"
11 #include "chromeos/login/auth/online_attempt.h"
12 #include "components/user_manager/user_type.h"
14 namespace chromeos {
16 OnlineAttemptHost::OnlineAttemptHost(Delegate* delegate)
17 : task_runner_(base::ThreadTaskRunnerHandle::Get()),
18 delegate_(delegate),
19 weak_ptr_factory_(this) {
22 OnlineAttemptHost::~OnlineAttemptHost() {
23 Reset();
26 void OnlineAttemptHost::Check(net::URLRequestContextGetter* request_context,
27 const UserContext& user_context) {
28 if (user_context != current_attempt_user_context_) {
29 Reset();
30 current_attempt_user_context_ = user_context;
32 state_.reset(new AuthAttemptState(user_context,
33 false, // unlock
34 false, // online_complete
35 false)); // user_is_new
36 online_attempt_.reset(new OnlineAttempt(state_.get(), this));
37 online_attempt_->Initiate(request_context);
41 void OnlineAttemptHost::Reset() {
42 online_attempt_.reset(NULL);
43 current_attempt_user_context_ = UserContext();
46 void OnlineAttemptHost::Resolve() {
47 if (state_->online_complete()) {
48 bool success = state_->online_outcome().reason() == AuthFailure::NONE;
49 task_runner_->PostTask(FROM_HERE,
50 base::Bind(&OnlineAttemptHost::ResolveOnUIThread,
51 weak_ptr_factory_.GetWeakPtr(), success));
55 void OnlineAttemptHost::ResolveOnUIThread(bool success) {
56 delegate_->OnChecked(current_attempt_user_context_.GetUserID(), success);
57 Reset();
60 } // namespace chromeos