Chromium Code Reviews| Index: chrome/browser/chromeos/arc/arc_session_manager.h |
| diff --git a/chrome/browser/chromeos/arc/arc_session_manager.h b/chrome/browser/chromeos/arc/arc_session_manager.h |
| index fba0655f2cd7932501d2c4b18af762c6ef266a8b..c4d6754ad1b30a419d62ca494d8fea8fdd9a6739 100644 |
| --- a/chrome/browser/chromeos/arc/arc_session_manager.h |
| +++ b/chrome/browser/chromeos/arc/arc_session_manager.h |
| @@ -15,7 +15,8 @@ |
| #include "base/timer/timer.h" |
| #include "chrome/browser/chromeos/arc/arc_support_host.h" |
| #include "chrome/browser/chromeos/policy/android_management_client.h" |
| -#include "components/arc/arc_session_observer.h" |
| +#include "components/arc/arc_session_runner.h" |
| +#include "components/arc/arc_stop_reason.h" |
| #include "components/prefs/pref_change_registrar.h" |
| #include "components/sync_preferences/pref_service_syncable_observer.h" |
| @@ -31,13 +32,12 @@ namespace arc { |
| class ArcAndroidManagementChecker; |
| class ArcAuthInfoFetcher; |
| class ArcAuthContext; |
| -class ArcSessionRunner; |
| class ArcTermsOfServiceNegotiator; |
| enum class ProvisioningResult : int; |
| // This class proxies the request from the client to fetch an auth code from |
| // LSO. It lives on the UI thread. |
| -class ArcSessionManager : public ArcSessionObserver, |
| +class ArcSessionManager : public ArcSessionRunner::Observer, |
| public ArcSupportHost::Observer, |
| public sync_preferences::PrefServiceSyncableObserver { |
| public: |
| @@ -85,10 +85,9 @@ class ArcSessionManager : public ArcSessionObserver, |
| ACTIVE, |
| }; |
| + // Observer for those services outside of ARC which want to know ARC events. |
| class Observer { |
| public: |
| - virtual ~Observer() = default; |
| - |
| // Called to notify that whether Google Play Store is enabled or not, which |
| // is represented by "arc.enabled" preference, is updated. |
| virtual void OnArcPlayStoreEnabledChanged(bool enabled) {} |
| @@ -96,9 +95,16 @@ class ArcSessionManager : public ArcSessionObserver, |
| // Called to notify that ARC has been initialized successfully. |
| virtual void OnArcInitialStart() {} |
|
Luis Héctor Chávez
2017/03/01 18:26:52
nit: maybe OnArcSessionInitialStart()? for consist
hidehiko
2017/03/01 18:43:02
Let me keep this as is in this CL to focus on sess
|
| + // Called when ARC session is stopped, and is not being restarted |
| + // automatically. |
| + virtual void OnArcSessionStopped(ArcStopReason stop_reason) {} |
| + |
| // Called to notify that Android data has been removed. Used in |
| // browser_tests |
| virtual void OnArcDataRemoved() {} |
| + |
| + protected: |
| + virtual ~Observer() = default; |
| }; |
| explicit ArcSessionManager( |
| @@ -145,12 +151,6 @@ class ArcSessionManager : public ArcSessionObserver, |
| void AddObserver(Observer* observer); |
| void RemoveObserver(Observer* observer); |
| - // Adds or removes ArcSessionObservers. |
| - // TODO(hidehiko): The observer should be migrated into |
| - // ArcSessionManager::Observer. |
| - void AddSessionObserver(ArcSessionObserver* observer); |
| - void RemoveSessionObserver(ArcSessionObserver* observer); |
| - |
| // Returns true if ARC instance is running/stopped, respectively. |
| // See ArcSessionRunner::IsRunning()/IsStopped() for details. |
| bool IsSessionRunning() const; |
| @@ -261,9 +261,8 @@ class ArcSessionManager : public ArcSessionObserver, |
| void OnBackgroundAndroidManagementChecked( |
| policy::AndroidManagementClient::Result result); |
| - // ArcSessionObserver: |
| - void OnSessionReady() override; |
| - void OnSessionStopped(StopReason reason) override; |
| + // ArcSessionRunner::Observer: |
| + void OnSessionStopped(ArcStopReason reason, bool restarting) override; |
| std::unique_ptr<ArcSessionRunner> arc_session_runner_; |
| @@ -280,7 +279,6 @@ class ArcSessionManager : public ArcSessionObserver, |
| // Internal state machine. See also State enum class. |
| State state_ = State::NOT_INITIALIZED; |
| base::ObserverList<Observer> observer_list_; |
| - base::ObserverList<ArcSessionObserver> arc_session_observer_list_; |
| std::unique_ptr<ArcAppLauncher> playstore_launcher_; |
| bool reenable_arc_ = false; |
| bool provisioning_reported_ = false; |