| 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 #include "chrome/browser/chromeos/arc/arc_session_manager.h" | 5 #include "chrome/browser/chromeos/arc/arc_session_manager.h" | 
| 6 | 6 | 
| 7 #include <utility> | 7 #include <utility> | 
| 8 | 8 | 
| 9 #include "ash/common/shelf/shelf_delegate.h" | 9 #include "ash/common/shelf/shelf_delegate.h" | 
| 10 #include "ash/common/wm_shell.h" | 10 #include "ash/common/wm_shell.h" | 
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 74   if (ash::WmShell::HasInstance()) { | 74   if (ash::WmShell::HasInstance()) { | 
| 75     DCHECK(ash::WmShell::Get()->shelf_delegate()); | 75     DCHECK(ash::WmShell::Get()->shelf_delegate()); | 
| 76     return ash::WmShell::Get()->shelf_delegate(); | 76     return ash::WmShell::Get()->shelf_delegate(); | 
| 77   } | 77   } | 
| 78   return nullptr; | 78   return nullptr; | 
| 79 } | 79 } | 
| 80 | 80 | 
| 81 }  // namespace | 81 }  // namespace | 
| 82 | 82 | 
| 83 ArcSessionManager::ArcSessionManager(ArcBridgeService* bridge_service) | 83 ArcSessionManager::ArcSessionManager(ArcBridgeService* bridge_service) | 
| 84     : ArcService(bridge_service), weak_ptr_factory_(this) { | 84     : ArcService(bridge_service), | 
|  | 85       attempt_user_exit_callback_(base::Bind(chrome::AttemptUserExit)), | 
|  | 86       weak_ptr_factory_(this) { | 
| 85   DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 87   DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 
| 86   DCHECK(!g_arc_session_manager); | 88   DCHECK(!g_arc_session_manager); | 
| 87   g_arc_session_manager = this; | 89   g_arc_session_manager = this; | 
| 88 | 90 | 
| 89   arc_bridge_service()->AddObserver(this); | 91   arc_bridge_service()->AddObserver(this); | 
| 90 } | 92 } | 
| 91 | 93 | 
| 92 ArcSessionManager::~ArcSessionManager() { | 94 ArcSessionManager::~ArcSessionManager() { | 
| 93   DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 95   DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 
| 94 | 96 | 
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 246 | 248 | 
| 247 void ArcSessionManager::OnProvisioningFinished(ProvisioningResult result) { | 249 void ArcSessionManager::OnProvisioningFinished(ProvisioningResult result) { | 
| 248   DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 250   DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 
| 249   DCHECK_EQ(state_, State::ACTIVE); | 251   DCHECK_EQ(state_, State::ACTIVE); | 
| 250 | 252 | 
| 251   if (result == ProvisioningResult::CHROME_SERVER_COMMUNICATION_ERROR) { | 253   if (result == ProvisioningResult::CHROME_SERVER_COMMUNICATION_ERROR) { | 
| 252     if (IsArcKioskMode()) { | 254     if (IsArcKioskMode()) { | 
| 253       VLOG(1) << "Robot account auth code fetching error"; | 255       VLOG(1) << "Robot account auth code fetching error"; | 
| 254       // Log out the user. All the cleanup will be done in Shutdown() method. | 256       // Log out the user. All the cleanup will be done in Shutdown() method. | 
| 255       // The callback is not called because auth code is empty. | 257       // The callback is not called because auth code is empty. | 
| 256       chrome::AttemptUserExit(); | 258       attempt_user_exit_callback_.Run(); | 
| 257       return; | 259       return; | 
| 258     } | 260     } | 
| 259 | 261 | 
| 260     // For backwards compatibility, use NETWORK_ERROR for | 262     // For backwards compatibility, use NETWORK_ERROR for | 
| 261     // CHROME_SERVER_COMMUNICATION_ERROR case. | 263     // CHROME_SERVER_COMMUNICATION_ERROR case. | 
| 262     UpdateOptInCancelUMA(OptInCancelReason::NETWORK_ERROR); | 264     UpdateOptInCancelUMA(OptInCancelReason::NETWORK_ERROR); | 
| 263   } else if (!sign_in_time_.is_null()) { | 265   } else if (!sign_in_time_.is_null()) { | 
| 264     arc_sign_in_timer_.Stop(); | 266     arc_sign_in_timer_.Stop(); | 
| 265 | 267 | 
| 266     UpdateProvisioningTiming(base::Time::Now() - sign_in_time_, | 268     UpdateProvisioningTiming(base::Time::Now() - sign_in_time_, | 
| (...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 831     support_host_->ShowArcLoading(); | 833     support_host_->ShowArcLoading(); | 
| 832     StartArcAndroidManagementCheck(); | 834     StartArcAndroidManagementCheck(); | 
| 833   } | 835   } | 
| 834 } | 836 } | 
| 835 | 837 | 
| 836 void ArcSessionManager::OnSendFeedbackClicked() { | 838 void ArcSessionManager::OnSendFeedbackClicked() { | 
| 837   DCHECK(support_host_); | 839   DCHECK(support_host_); | 
| 838   chrome::OpenFeedbackDialog(nullptr); | 840   chrome::OpenFeedbackDialog(nullptr); | 
| 839 } | 841 } | 
| 840 | 842 | 
|  | 843 void ArcSessionManager::SetAttemptUserExitCallbackForTesting( | 
|  | 844     const base::Closure& callback) { | 
|  | 845   DCHECK(!callback.is_null()); | 
|  | 846   attempt_user_exit_callback_ = callback; | 
|  | 847 } | 
|  | 848 | 
| 841 std::ostream& operator<<(std::ostream& os, | 849 std::ostream& operator<<(std::ostream& os, | 
| 842                          const ArcSessionManager::State& state) { | 850                          const ArcSessionManager::State& state) { | 
| 843   switch (state) { | 851   switch (state) { | 
| 844     case ArcSessionManager::State::NOT_INITIALIZED: | 852     case ArcSessionManager::State::NOT_INITIALIZED: | 
| 845       return os << "NOT_INITIALIZED"; | 853       return os << "NOT_INITIALIZED"; | 
| 846     case ArcSessionManager::State::STOPPED: | 854     case ArcSessionManager::State::STOPPED: | 
| 847       return os << "STOPPED"; | 855       return os << "STOPPED"; | 
| 848     case ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE: | 856     case ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE: | 
| 849       return os << "SHOWING_TERMS_OF_SERVICE"; | 857       return os << "SHOWING_TERMS_OF_SERVICE"; | 
| 850     case ArcSessionManager::State::CHECKING_ANDROID_MANAGEMENT: | 858     case ArcSessionManager::State::CHECKING_ANDROID_MANAGEMENT: | 
| 851       return os << "CHECKING_ANDROID_MANAGEMENT"; | 859       return os << "CHECKING_ANDROID_MANAGEMENT"; | 
| 852     case ArcSessionManager::State::ACTIVE: | 860     case ArcSessionManager::State::ACTIVE: | 
| 853       return os << "ACTIVE"; | 861       return os << "ACTIVE"; | 
| 854   } | 862   } | 
| 855 | 863 | 
| 856   // Some compiler reports an error even if all values of an enum-class are | 864   // Some compiler reports an error even if all values of an enum-class are | 
| 857   // covered indivisually in a switch statement. | 865   // covered indivisually in a switch statement. | 
| 858   NOTREACHED(); | 866   NOTREACHED(); | 
| 859   return os; | 867   return os; | 
| 860 } | 868 } | 
| 861 | 869 | 
| 862 }  // namespace arc | 870 }  // namespace arc | 
| OLD | NEW | 
|---|