Index: chrome/browser/chromeos/arc/arc_session_manager.cc |
diff --git a/chrome/browser/chromeos/arc/arc_session_manager.cc b/chrome/browser/chromeos/arc/arc_session_manager.cc |
index 4858e187b06495dc36b4f14436338ec23116974e..fdc74180993d965389de64eca4a8f0869cec6be3 100644 |
--- a/chrome/browser/chromeos/arc/arc_session_manager.cc |
+++ b/chrome/browser/chromeos/arc/arc_session_manager.cc |
@@ -43,6 +43,7 @@ |
#include "chromeos/dbus/session_manager_client.h" |
#include "components/arc/arc_bridge_service.h" |
#include "components/arc/arc_session_runner.h" |
+#include "components/arc/arc_util.h" |
#include "components/pref_registry/pref_registry_syncable.h" |
#include "components/prefs/pref_service.h" |
#include "components/sync_preferences/pref_service_syncable.h" |
@@ -67,6 +68,9 @@ ash::ShelfDelegate* g_shelf_delegate_for_testing = nullptr; |
// testing. |
bool g_enable_check_android_management_for_testing = false; |
+// Let IsAllowedForProfile() return "false" for any profile. |
+bool g_disallow_for_testing = false; |
+ |
// Maximum amount of time we'll wait for ARC to finish booting up. Once this |
// timeout expires, keep ARC running in case the user wants to file feedback, |
// but present the UI to try again. |
@@ -148,8 +152,13 @@ void ArcSessionManager::EnableCheckAndroidManagementForTesting() { |
// static |
bool ArcSessionManager::IsAllowedForProfile(const Profile* profile) { |
- if (!ArcBridgeService::GetEnabled(base::CommandLine::ForCurrentProcess())) { |
- VLOG(1) << "Arc is not enabled."; |
+ if (g_disallow_for_testing) { |
+ VLOG(1) << "ARC is disallowed for testing."; |
+ return false; |
+ } |
+ |
+ if (!IsArcAvailable()) { |
+ VLOG(1) << "ARC is not available."; |
return false; |
} |
@@ -191,7 +200,7 @@ bool ArcSessionManager::IsAllowedForProfile(const Profile* profile) { |
if (user_manager::UserManager::Get() |
->IsCurrentUserCryptohomeDataEphemeral()) { |
- VLOG(2) << "Users with ephemeral data are not supported in Arc."; |
+ VLOG(2) << "Users with ephemeral data are not supported in ARC."; |
return false; |
} |
@@ -199,6 +208,11 @@ bool ArcSessionManager::IsAllowedForProfile(const Profile* profile) { |
} |
// static |
+void ArcSessionManager::DisallowForTesting() { |
+ g_disallow_for_testing = true; |
+} |
+ |
+// static |
bool ArcSessionManager::IsArcKioskMode() { |
return user_manager::UserManager::Get()->IsLoggedInAsArcKioskApp(); |
} |