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