| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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_auth_service.h" | 5 #include "chrome/browser/chromeos/arc/arc_auth_service.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 | 187 |
| 188 profile_ = profile; | 188 profile_ = profile; |
| 189 // Reuse storage used in ARC OptIn platform app. | 189 // Reuse storage used in ARC OptIn platform app. |
| 190 const std::string site_url = | 190 const std::string site_url = |
| 191 base::StringPrintf("%s://%s/persist?%s", content::kGuestScheme, | 191 base::StringPrintf("%s://%s/persist?%s", content::kGuestScheme, |
| 192 kArcSupportExtensionId, kArcSupportStorageId); | 192 kArcSupportExtensionId, kArcSupportStorageId); |
| 193 storage_partition_ = content::BrowserContext::GetStoragePartitionForSite( | 193 storage_partition_ = content::BrowserContext::GetStoragePartitionForSite( |
| 194 profile_, GURL(site_url)); | 194 profile_, GURL(site_url)); |
| 195 CHECK(storage_partition_); | 195 CHECK(storage_partition_); |
| 196 | 196 |
| 197 // In case UI is disabled we assume that ARC is opted-in. | 197 pref_change_registrar_.Init(profile_->GetPrefs()); |
| 198 if (!IsOptInVerificationDisabled()) { | 198 pref_change_registrar_.Add( |
| 199 pref_change_registrar_.Init(profile_->GetPrefs()); | 199 prefs::kArcEnabled, base::Bind(&ArcAuthService::OnOptInPreferenceChanged, |
| 200 pref_change_registrar_.Add( | 200 base::Unretained(this))); |
| 201 prefs::kArcEnabled, | 201 if (profile_->GetPrefs()->GetBoolean(prefs::kArcEnabled)) { |
| 202 base::Bind(&ArcAuthService::OnOptInPreferenceChanged, | 202 OnOptInPreferenceChanged(); |
| 203 base::Unretained(this))); | 203 } else { |
| 204 if (profile_->GetPrefs()->GetBoolean(prefs::kArcEnabled)) { | 204 if (!disable_ui_for_testing && profile_->IsNewProfile()) { |
| 205 OnOptInPreferenceChanged(); | 205 PrefServiceSyncableFromProfile(profile_)->AddObserver(this); |
| 206 } else { | 206 OnIsSyncingChanged(); |
| 207 if (!disable_ui_for_testing && profile_->IsNewProfile()) { | |
| 208 PrefServiceSyncableFromProfile(profile_)->AddObserver(this); | |
| 209 OnIsSyncingChanged(); | |
| 210 } | |
| 211 } | 207 } |
| 212 } else { | |
| 213 auth_code_.clear(); | |
| 214 StartArc(); | |
| 215 } | 208 } |
| 216 } | 209 } |
| 217 | 210 |
| 218 void ArcAuthService::OnIsSyncingChanged() { | 211 void ArcAuthService::OnIsSyncingChanged() { |
| 219 syncable_prefs::PrefServiceSyncable* const pref_service_syncable = | 212 syncable_prefs::PrefServiceSyncable* const pref_service_syncable = |
| 220 PrefServiceSyncableFromProfile(profile_); | 213 PrefServiceSyncableFromProfile(profile_); |
| 221 if (!pref_service_syncable->IsSyncing()) | 214 if (!pref_service_syncable->IsSyncing()) |
| 222 return; | 215 return; |
| 223 | 216 |
| 224 pref_service_syncable->RemoveObserver(this); | 217 pref_service_syncable->RemoveObserver(this); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 VLOG(2) << "Failed to get ubertoken " << error.ToString() << "."; | 277 VLOG(2) << "Failed to get ubertoken " << error.ToString() << "."; |
| 285 OnAuthCodeFailed(); | 278 OnAuthCodeFailed(); |
| 286 } | 279 } |
| 287 | 280 |
| 288 void ArcAuthService::OnOptInPreferenceChanged() { | 281 void ArcAuthService::OnOptInPreferenceChanged() { |
| 289 DCHECK(thread_checker_.CalledOnValidThread()); | 282 DCHECK(thread_checker_.CalledOnValidThread()); |
| 290 DCHECK(profile_); | 283 DCHECK(profile_); |
| 291 | 284 |
| 292 if (profile_->GetPrefs()->GetBoolean(prefs::kArcEnabled)) { | 285 if (profile_->GetPrefs()->GetBoolean(prefs::kArcEnabled)) { |
| 293 if (state_ != State::ACTIVE) { | 286 if (state_ != State::ACTIVE) { |
| 294 CloseUI(); | |
| 295 auth_code_.clear(); | 287 auth_code_.clear(); |
| 296 | 288 |
| 297 if (!profile_->GetPrefs()->GetBoolean(prefs::kArcSignedIn)) { | 289 if (!IsOptInVerificationDisabled()) { |
| 298 // Need pre-fetch auth code and show OptIn UI if needed. | 290 CloseUI(); |
| 299 initial_opt_in_ = true; | 291 if (!profile_->GetPrefs()->GetBoolean(prefs::kArcSignedIn)) { |
| 300 SetState(State::FETCHING_CODE); | 292 // Need pre-fetch auth code and show OptIn UI if needed. |
| 301 FetchAuthCode(); | 293 initial_opt_in_ = true; |
| 294 SetState(State::FETCHING_CODE); |
| 295 FetchAuthCode(); |
| 296 } else { |
| 297 // Ready to start Arc. |
| 298 StartArc(); |
| 299 } |
| 302 } else { | 300 } else { |
| 303 // Ready to start Arc. | |
| 304 StartArc(); | 301 StartArc(); |
| 305 } | 302 } |
| 306 } | 303 } |
| 307 } else { | 304 } else { |
| 308 ShutdownBridgeAndCloseUI(); | 305 ShutdownBridgeAndCloseUI(); |
| 309 } | 306 } |
| 310 } | 307 } |
| 311 | 308 |
| 312 void ArcAuthService::ShutdownBridge() { | 309 void ArcAuthService::ShutdownBridge() { |
| 313 auth_callback_.reset(); | 310 auth_callback_.reset(); |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 473 return os << kStateFetchingCode; | 470 return os << kStateFetchingCode; |
| 474 case ArcAuthService::State::ACTIVE: | 471 case ArcAuthService::State::ACTIVE: |
| 475 return os << kStateActive; | 472 return os << kStateActive; |
| 476 default: | 473 default: |
| 477 NOTREACHED(); | 474 NOTREACHED(); |
| 478 return os; | 475 return os; |
| 479 } | 476 } |
| 480 } | 477 } |
| 481 | 478 |
| 482 } // namespace arc | 479 } // namespace arc |
| OLD | NEW |