| // Copyright 2017 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef CHROME_BROWSER_UI_FORCED_REAUTHENTICATION_DIALOG_H_ | 
 | #define CHROME_BROWSER_UI_FORCED_REAUTHENTICATION_DIALOG_H_ | 
 |  | 
 | #include <memory> | 
 |  | 
 | #include "base/macros.h" | 
 |  | 
 | class Profile; | 
 | class SigninManager; | 
 |  | 
 | namespace base { | 
 | class TimeDelta; | 
 | }  // namespace base | 
 |  | 
 | // The virtual class of ForcedReauthenticationDialog. | 
 | class ForcedReauthenticationDialog { | 
 |  public: | 
 |   static std::unique_ptr<ForcedReauthenticationDialog> Create(); | 
 |  | 
 |   virtual ~ForcedReauthenticationDialog() {} | 
 |   // Show the ForcedReauthenticationDialog for |profile|. If there're no opened | 
 |   // browser windows for |profile|, |signin_manager| will be called to signed | 
 |   // out immediately. Otherwise, dialog will be closed with all browser windows | 
 |   // are associated to |profile| after |countdown_duration| if there is no | 
 |   // reauth. | 
 |   virtual void ShowDialog(Profile* profile, | 
 |                           SigninManager* signin_manager, | 
 |                           base::TimeDelta countdown_duration) = 0; | 
 |  | 
 |  protected: | 
 |   ForcedReauthenticationDialog() {} | 
 |  | 
 |  private: | 
 |   DISALLOW_COPY_AND_ASSIGN(ForcedReauthenticationDialog); | 
 | }; | 
 |  | 
 | #endif  // CHROME_BROWSER_UI_FORCED_REAUTHENTICATION_DIALOG_H_ |