Index: chrome/browser/signin/force_signin_verifier.h |
diff --git a/chrome/browser/signin/force_signin_verifier.h b/chrome/browser/signin/force_signin_verifier.h |
index 03548c03eba884fdc7343e9671601586617852a0..a1cecda8aa2ec6207eca8e5abd6645057c7fcece 100644 |
--- a/chrome/browser/signin/force_signin_verifier.h |
+++ b/chrome/browser/signin/force_signin_verifier.h |
@@ -15,6 +15,11 @@ |
#include "net/base/backoff_entry.h" |
#include "net/base/network_change_notifier.h" |
+namespace views { |
+class Widget; |
+class WidgetDeletionObserver; |
+} // namespace views |
+ |
class Profile; |
class SigninManager; |
@@ -28,14 +33,14 @@ class ForceSigninVerifier |
explicit ForceSigninVerifier(Profile* profile); |
~ForceSigninVerifier() override; |
- // OAuth2TokenService::Consumer implementation |
+ // override OAuth2TokenService::Consumer |
void OnGetTokenSuccess(const OAuth2TokenService::Request* request, |
const std::string& access_token, |
const base::Time& expiration_time) override; |
void OnGetTokenFailure(const OAuth2TokenService::Request* request, |
const GoogleServiceAuthError& error) override; |
- // net::NetworkChangeNotifier::NetworkChangeObserver |
+ // override net::NetworkChangeNotifier::NetworkChangeObserver |
void OnNetworkChanged( |
net::NetworkChangeNotifier::ConnectionType type) override; |
@@ -45,6 +50,9 @@ class ForceSigninVerifier |
// Return the value of |has_token_verified_|. |
bool HasTokenBeenVerified(); |
+ // Abort signout countdown. |
+ void AbortSignoutCountdownIfExisted(); |
+ |
protected: |
// Send the token verification request. The request will be sent only if |
// - The token has never been verified before. |
@@ -60,13 +68,22 @@ class ForceSigninVerifier |
// browser window. |
virtual void ShowDialog(); |
+ // Start the window closing countdown, return the duration. |
+ base::TimeDelta StartCountdown(); |
+ |
OAuth2TokenService::Request* GetRequestForTesting(); |
net::BackoffEntry* GetBackoffEntryForTesting(); |
base::OneShotTimer* GetOneShotTimerForTesting(); |
+ base::OneShotTimer* GetWindowCloseTimerForTesting(); |
private: |
+ void CloseAllBrowserWindows(); |
+ |
std::unique_ptr<OAuth2TokenService::Request> access_token_request_; |
+#if !defined(OS_MACOSX) |
+ Profile* profile_; |
+#endif |
// Indicates whether the verification is finished successfully or with a |
// persistent error. |
bool has_token_verified_; |
@@ -78,6 +95,11 @@ class ForceSigninVerifier |
base::Time token_request_time_; |
+ // The countdown of window closing and its warning dialog. |
+ base::OneShotTimer window_close_timer_; |
+ views::Widget* reauth_dialog_; |
+ std::unique_ptr<views::WidgetDeletionObserver> dialog_observer_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ForceSigninVerifier); |
}; |