Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Side by Side Diff: chrome/browser/chromeos/arc/arc_android_management_checker.cc

Issue 2108643007: Revert of arc: Implement silent OptIn mode for managed Arc. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include "chrome/browser/chromeos/arc/arc_android_management_checker.h" 5 #include "chrome/browser/chromeos/arc/arc_android_management_checker.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/threading/thread_task_runner_handle.h" 8 #include "base/threading/thread_task_runner_handle.h"
9 #include "chrome/browser/browser_process.h" 9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/browser_process_platform_part.h" 10 #include "chrome/browser/browser_process_platform_part.h"
11 #include "chrome/browser/chromeos/arc/arc_android_management_checker_delegate.h" 11 #include "chrome/browser/chromeos/arc/arc_android_management_checker_delegate.h"
12 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" 12 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
13 #include "components/policy/core/common/cloud/device_management_service.h" 13 #include "components/policy/core/common/cloud/device_management_service.h"
14 #include "components/signin/core/browser/profile_oauth2_token_service.h" 14 #include "components/signin/core/browser/profile_oauth2_token_service.h"
15 15
16 namespace arc {
17
18 namespace { 16 namespace {
19 17
18 constexpr int kRefreshTokenTimeoutMs = 10 * 1000; // 10 sec.
20 constexpr int kRetryTimeMinMs = 10 * 1000; // 10 sec. 19 constexpr int kRetryTimeMinMs = 10 * 1000; // 10 sec.
21 constexpr int kRetryTimeMaxMs = 1 * 60 * 60 * 1000; // 1 hour. 20 constexpr int kRetryTimeMaxMs = 1 * 60 * 60 * 1000; // 1 hour.
22 21
23 policy::DeviceManagementService* GetDeviceManagementService() { 22 policy::DeviceManagementService* GetDeviceManagementService() {
24 policy::BrowserPolicyConnectorChromeOS* const connector = 23 policy::BrowserPolicyConnectorChromeOS* const connector =
25 g_browser_process->platform_part()->browser_policy_connector_chromeos(); 24 g_browser_process->platform_part()->browser_policy_connector_chromeos();
26 return connector->device_management_service(); 25 return connector->device_management_service();
27 } 26 }
28 27
29 } // namespace 28 } // namespace
30 29
31 ArcAndroidManagementChecker::ArcAndroidManagementChecker( 30 ArcAndroidManagementChecker::ArcAndroidManagementChecker(
32 ArcAndroidManagementCheckerDelegate* delegate, 31 ArcAndroidManagementCheckerDelegate* delegate,
33 ProfileOAuth2TokenService* token_service, 32 ProfileOAuth2TokenService* token_service,
34 const std::string& account_id, 33 const std::string account_id,
35 bool background_mode) 34 bool background_mode)
36 : delegate_(delegate), 35 : delegate_(delegate),
37 token_service_(token_service), 36 token_service_(token_service),
38 account_id_(account_id), 37 account_id_(account_id),
39 background_mode_(background_mode), 38 background_mode_(background_mode),
40 retry_time_ms_(kRetryTimeMinMs), 39 retry_time_ms_(kRetryTimeMinMs),
41 android_management_client_(GetDeviceManagementService(), 40 android_management_client_(GetDeviceManagementService(),
42 g_browser_process->system_request_context(), 41 g_browser_process->system_request_context(),
43 account_id, 42 account_id,
44 token_service), 43 token_service),
45 weak_ptr_factory_(this) { 44 weak_ptr_factory_(this) {
46 if (token_service_->RefreshTokenIsAvailable(account_id_)) { 45 if (token_service_->RefreshTokenIsAvailable(account_id_)) {
47 StartCheck(); 46 StartCheck();
48 } else { 47 } else {
49 DCHECK(background_mode_);
50 token_service_->AddObserver(this); 48 token_service_->AddObserver(this);
49 if (!background_mode_) {
50 refresh_token_timeout_.Start(
51 FROM_HERE, base::TimeDelta::FromMilliseconds(kRefreshTokenTimeoutMs),
52 this, &ArcAndroidManagementChecker::OnRefreshTokenTimeout);
53 }
51 } 54 }
52 } 55 }
53 56
54 ArcAndroidManagementChecker::~ArcAndroidManagementChecker() { 57 ArcAndroidManagementChecker::~ArcAndroidManagementChecker() {
55 token_service_->RemoveObserver(this); 58 token_service_->RemoveObserver(this);
56 } 59 }
57 60
58 // static 61 // static
59 void ArcAndroidManagementChecker::StartClient() { 62 void ArcAndroidManagementChecker::StartClient() {
60 GetDeviceManagementService()->ScheduleInitialization(0); 63 GetDeviceManagementService()->ScheduleInitialization(0);
61 } 64 }
62 65
63 void ArcAndroidManagementChecker::OnRefreshTokenAvailable( 66 void ArcAndroidManagementChecker::OnRefreshTokenAvailable(
64 const std::string& account_id) { 67 const std::string& account_id) {
65 if (account_id != account_id_) 68 if (account_id != account_id_)
66 return; 69 return;
67 OnRefreshTokensLoaded(); 70 OnRefreshTokensLoaded();
68 } 71 }
69 72
70 void ArcAndroidManagementChecker::OnRefreshTokensLoaded() { 73 void ArcAndroidManagementChecker::OnRefreshTokensLoaded() {
71 token_service_->RemoveObserver(this); 74 token_service_->RemoveObserver(this);
75 refresh_token_timeout_.Stop();
72 StartCheck(); 76 StartCheck();
73 } 77 }
78
79 void ArcAndroidManagementChecker::OnRefreshTokenTimeout() {
80 DCHECK(!background_mode_);
81 VLOG(2) << "Failed to wait for refresh token for android management check.";
82 token_service_->RemoveObserver(this);
83 StartCheck();
84 }
74 85
75 void ArcAndroidManagementChecker::StartCheck() { 86 void ArcAndroidManagementChecker::StartCheck() {
76 if (!token_service_->RefreshTokenIsAvailable(account_id_)) { 87 if (!token_service_->RefreshTokenIsAvailable(account_id_)) {
77 VLOG(2) << "No refresh token is available for android management check."; 88 VLOG(2) << "No refresh token is available for android management check.";
78 OnAndroidManagementChecked( 89 OnAndroidManagementChecked(
79 policy::AndroidManagementClient::Result::RESULT_ERROR); 90 policy::AndroidManagementClient::Result::RESULT_ERROR);
80 return; 91 return;
81 } 92 }
82 93
83 VLOG(2) << "Start android management check."; 94 VLOG(2) << "Start android management check.";
(...skipping 29 matching lines...) Expand all
113 if (background_mode_ && 124 if (background_mode_ &&
114 result == policy::AndroidManagementClient::Result::RESULT_ERROR) { 125 result == policy::AndroidManagementClient::Result::RESULT_ERROR) {
115 ScheduleCheck(); 126 ScheduleCheck();
116 return; 127 return;
117 } 128 }
118 129
119 base::ThreadTaskRunnerHandle::Get()->PostTask( 130 base::ThreadTaskRunnerHandle::Get()->PostTask(
120 FROM_HERE, base::Bind(&ArcAndroidManagementChecker::DispatchResult, 131 FROM_HERE, base::Bind(&ArcAndroidManagementChecker::DispatchResult,
121 weak_ptr_factory_.GetWeakPtr(), result)); 132 weak_ptr_factory_.GetWeakPtr(), result));
122 } 133 }
123
124 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698