Index: components/arc/arc_bridge_service.cc |
diff --git a/components/arc/arc_bridge_service.cc b/components/arc/arc_bridge_service.cc |
index c4890afe66aca3bc0b4867d7cbfb421462e4946a..e2146c22541caf484caba3ce87d86dff9ba23859 100644 |
--- a/components/arc/arc_bridge_service.cc |
+++ b/components/arc/arc_bridge_service.cc |
@@ -4,12 +4,14 @@ |
#include "components/arc/arc_bridge_service.h" |
+#include "base/command_line.h" |
#include "base/files/file_path.h" |
#include "base/files/file_util.h" |
#include "base/prefs/pref_registry_simple.h" |
#include "base/prefs/pref_service.h" |
#include "base/task_runner_util.h" |
#include "base/thread_task_runner_handle.h" |
+#include "chromeos/chromeos_switches.h" |
#include "chromeos/dbus/dbus_method_call_status.h" |
#include "chromeos/dbus/dbus_thread_manager.h" |
#include "chromeos/dbus/session_manager_client.h" |
@@ -57,6 +59,11 @@ ArcBridgeService* ArcBridgeService::Get() { |
return g_arc_bridge_service; |
} |
+// static |
+bool ArcBridgeService::GetEnabled(const base::CommandLine* command_line) { |
+ return command_line->HasSwitch(chromeos::switches::kEnableArc); |
+} |
+ |
void ArcBridgeService::DetectAvailability() { |
chromeos::SessionManagerClient* session_manager_client = |
chromeos::DBusThreadManager::Get()->GetSessionManagerClient(); |
@@ -233,7 +240,9 @@ void ArcBridgeService::OnInstanceStarted(bool success) { |
void ArcBridgeService::OnInstanceBootPhase(InstanceBootPhase phase) { |
DCHECK(origin_task_runner_->RunsTasksOnCurrentThread()); |
- if (state_ != State::STARTING) { |
+ // The state can be STARTING the first time this is called, and will then |
+ // transition to READY after BRIDGE_READY has been passed. |
+ if (state_ != State::STARTING && state_ != State::READY) { |
VLOG(1) << "StopInstance() called while connecting"; |
return; |
} |