129b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
229b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
329b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch// found in the LICENSE file.
429b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch
529b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_EASY_UNLOCK_EASY_UNLOCK_REAUTH_H_
629b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch#define CHROME_BROWSER_CHROMEOS_LOGIN_EASY_UNLOCK_EASY_UNLOCK_REAUTH_H_
729b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch
829b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch#include "base/callback_forward.h"
929b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch#include "base/macros.h"
1029b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch#include "base/memory/scoped_ptr.h"
1129b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch
1229b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdochnamespace chromeos {
1329b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch
1429b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdochclass UserContext;
1529b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch
1629b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch// Responsible for locking the screen and reauthenticating the user so we can
1729b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch// create new cryptohome keys for passwordless sign-in.
1829b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdochclass EasyUnlockReauth {
1929b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch public:
2029b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch  typedef base::Callback<void(const UserContext&)> UserContextCallback;
2129b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch
2229b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch  // Launches the reauth screen to get the user context. If the screen fails
2329b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch  // for some reason, then this function will return false.
2429b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch  static bool ReauthForUserContext(UserContextCallback callback);
2529b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch
2629b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch  DISALLOW_IMPLICIT_CONSTRUCTORS(EasyUnlockReauth);
2729b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch};
2829b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch
2929b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch}  // namespace chromeos
3029b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch
3129b820f8d84e3bc97d62552e54923c42407f2f29Ben Murdoch#endif  // CHROME_BROWSER_CHROMEOS_LOGIN_EASY_UNLOCK_EASY_UNLOCK_REAUTH_H_
32