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 #ifndef CHROME_BROWSER_CHROMEOS_ARC_ARC_ANDROID_MANAGEMENT_CHECKER_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_ARC_ARC_ANDROID_MANAGEMENT_CHECKER_H_ |
6 #define CHROME_BROWSER_CHROMEOS_ARC_ARC_ANDROID_MANAGEMENT_CHECKER_H_ | 6 #define CHROME_BROWSER_CHROMEOS_ARC_ARC_ANDROID_MANAGEMENT_CHECKER_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
11 #include "base/memory/weak_ptr.h" | 11 #include "base/memory/weak_ptr.h" |
| 12 #include "base/timer/timer.h" |
12 #include "chrome/browser/chromeos/policy/android_management_client.h" | 13 #include "chrome/browser/chromeos/policy/android_management_client.h" |
13 #include "google_apis/gaia/oauth2_token_service.h" | 14 #include "google_apis/gaia/oauth2_token_service.h" |
14 | 15 |
| 16 class ArcAndroidManagementCheckerDelegate; |
15 class ProfileOAuth2TokenService; | 17 class ProfileOAuth2TokenService; |
16 | 18 |
17 namespace arc { | |
18 | |
19 class ArcAndroidManagementCheckerDelegate; | |
20 | |
21 class ArcAndroidManagementChecker : public OAuth2TokenService::Observer { | 19 class ArcAndroidManagementChecker : public OAuth2TokenService::Observer { |
22 public: | 20 public: |
23 ArcAndroidManagementChecker(ArcAndroidManagementCheckerDelegate* delegate, | 21 ArcAndroidManagementChecker(ArcAndroidManagementCheckerDelegate* delegate, |
24 ProfileOAuth2TokenService* token_service, | 22 ProfileOAuth2TokenService* token_service, |
25 const std::string& account_id, | 23 const std::string account_id, |
26 bool background_mode); | 24 bool background_mode); |
27 ~ArcAndroidManagementChecker() override; | 25 ~ArcAndroidManagementChecker() override; |
28 | 26 |
29 static void StartClient(); | 27 static void StartClient(); |
30 | 28 |
31 // OAuth2TokenService::Observer: | 29 // OAuth2TokenService::Observer: |
32 void OnRefreshTokenAvailable(const std::string& account_id) override; | 30 void OnRefreshTokenAvailable(const std::string& account_id) override; |
33 void OnRefreshTokensLoaded() override; | 31 void OnRefreshTokensLoaded() override; |
34 | 32 |
35 bool background_mode() const { return background_mode_; } | 33 bool background_mode() const { return background_mode_; } |
36 | 34 |
37 private: | 35 private: |
38 void StartCheck(); | 36 void StartCheck(); |
39 void ScheduleCheck(); | 37 void ScheduleCheck(); |
40 void DispatchResult(policy::AndroidManagementClient::Result result); | 38 void DispatchResult(policy::AndroidManagementClient::Result result); |
41 void OnAndroidManagementChecked( | 39 void OnAndroidManagementChecked( |
42 policy::AndroidManagementClient::Result result); | 40 policy::AndroidManagementClient::Result result); |
| 41 void OnRefreshTokenTimeout(); |
43 | 42 |
44 // Unowned pointers. | 43 // Unowned pointers. |
45 ArcAndroidManagementCheckerDelegate* const delegate_; | 44 ArcAndroidManagementCheckerDelegate* const delegate_; |
46 ProfileOAuth2TokenService* const token_service_; | 45 ProfileOAuth2TokenService* const token_service_; |
47 | 46 |
48 const std::string account_id_; | 47 const std::string account_id_; |
49 | 48 |
50 // In background mode errors are ignored and retry is attempted. There is no | 49 // In background mode errors are ignored and retry is attempted. There is no |
51 // retry in foreground mode and result is passed to delegate directly. | 50 // retry in foreground mode and result is passed to delegate directly. |
52 bool background_mode_; | 51 bool background_mode_; |
53 | 52 |
54 // Keeps current retry time for background mode. | 53 // Keeps current retry time for background mode. |
55 int retry_time_ms_; | 54 int retry_time_ms_; |
56 | 55 |
| 56 base::OneShotTimer refresh_token_timeout_; |
| 57 |
57 policy::AndroidManagementClient android_management_client_; | 58 policy::AndroidManagementClient android_management_client_; |
58 | 59 |
59 base::WeakPtrFactory<ArcAndroidManagementChecker> weak_ptr_factory_; | 60 base::WeakPtrFactory<ArcAndroidManagementChecker> weak_ptr_factory_; |
60 | 61 |
61 DISALLOW_COPY_AND_ASSIGN(ArcAndroidManagementChecker); | 62 DISALLOW_COPY_AND_ASSIGN(ArcAndroidManagementChecker); |
62 }; | 63 }; |
63 | 64 |
64 } // namespace arc | |
65 | |
66 #endif // CHROME_BROWSER_CHROMEOS_ARC_ARC_ANDROID_MANAGEMENT_CHECKER_H_ | 65 #endif // CHROME_BROWSER_CHROMEOS_ARC_ARC_ANDROID_MANAGEMENT_CHECKER_H_ |
OLD | NEW |