| Index: components/arc/arc_bridge_service.h
|
| diff --git a/components/arc/arc_bridge_service.h b/components/arc/arc_bridge_service.h
|
| index 3f02b272d8665dd0b5fa7ed3c9e0a1366f0d4706..4ffadc5930b2587e86bd658ea54161a8c5cba1a1 100644
|
| --- a/components/arc/arc_bridge_service.h
|
| +++ b/components/arc/arc_bridge_service.h
|
| @@ -35,8 +35,6 @@ class ArcBridgeService {
|
| // PrerequisitesChanged() ->
|
| // CONNECTING
|
| // OnConnectionEstablished() ->
|
| - // CONNECTED
|
| - // OnInstanceBootPhase(INSTANCE_BOOT_PHASE_BRIDGE_READY) ->
|
| // READY
|
| //
|
| // The ArcBridgeBootstrap state machine can be thought of being substates of
|
| @@ -71,43 +69,26 @@ class ArcBridgeService {
|
| // Called whenever the state of the bridge has changed.
|
| virtual void OnStateChanged(State state) {}
|
|
|
| - // Called when the instance has reached a boot phase
|
| - virtual void OnInstanceBootPhase(InstanceBootPhase phase) {}
|
| -
|
| // Called whenever ARC's availability has changed for this system.
|
| virtual void OnAvailableChanged(bool available) {}
|
|
|
| - protected:
|
| - virtual ~Observer() {}
|
| - };
|
| + // Called whenever the ARC app list is ready.
|
| + virtual void OnAppInstanceReady() {}
|
|
|
| - class NotificationObserver {
|
| - public:
|
| - // Called whenever a notification has been posted on Android side. This
|
| - // event is used for both creation and update.
|
| - virtual void OnNotificationPostedFromAndroid(
|
| - const ArcNotificationData& data) {}
|
| - // Called whenever a notification has been removed on Android side.
|
| - virtual void OnNotificationRemovedFromAndroid(const std::string& key) {}
|
| + // Called whenever the ARC input is ready.
|
| + virtual void OnInputInstanceReady() {}
|
|
|
| - protected:
|
| - virtual ~NotificationObserver() {}
|
| - };
|
| + // Called whenever the ARC notification is ready.
|
| + virtual void OnNotificationsInstanceReady() {}
|
|
|
| - // Notifies ARC apps related events.
|
| - class AppObserver {
|
| - public:
|
| - // Called whenever ARC sends information about available apps.
|
| - virtual void OnAppListRefreshed(const std::vector<AppInfo>& apps) {}
|
| + // Called whenever the ARC power is ready.
|
| + virtual void OnPowerInstanceReady() {}
|
|
|
| - // Called whenever ARC sends app icon data for specific scale factor.
|
| - virtual void OnAppIcon(const std::string& package,
|
| - const std::string& activity,
|
| - ScaleFactor scale_factor,
|
| - const std::vector<uint8_t>& icon_png_data) {}
|
| + // Called whenever the ARC process list is ready.
|
| + virtual void OnProcessListInstanceReady() {}
|
|
|
| protected:
|
| - virtual ~AppObserver() {}
|
| + virtual ~Observer() {}
|
| };
|
|
|
| virtual ~ArcBridgeService();
|
| @@ -138,13 +119,20 @@ class ArcBridgeService {
|
| // class was created on.
|
| void AddObserver(Observer* observer);
|
| void RemoveObserver(Observer* observer);
|
| - void AddNotificationObserver(NotificationObserver* observer);
|
| - void RemoveNotificationObserver(NotificationObserver* observer);
|
|
|
| - // Adds or removes ARC app observers. This can only be called on the thread
|
| - // that this class was created on.
|
| - void AddAppObserver(AppObserver* observer);
|
| - void RemoveAppObserver(AppObserver* observer);
|
| + // Gets the Mojo interface for all the instance services. This will return
|
| + // nullptr if that particular service is not ready yet. Use an Observer if
|
| + // you want to be notified when this is ready. This can only be called on the
|
| + // thread that this class was created on.
|
| + AppInstance* app_instance() { return app_ptr_.get(); }
|
| + InputInstance* input_instance() { return input_ptr_.get(); }
|
| + NotificationsInstance* notifications_instance() {
|
| + return notifications_ptr_.get();
|
| + }
|
| + PowerInstance* power_instance() { return power_ptr_.get(); }
|
| + ProcessListInstance* process_list_instance() {
|
| + return process_list_ptr_.get();
|
| + }
|
|
|
| // Gets the current state of the bridge service.
|
| State state() const { return state_; }
|
| @@ -152,32 +140,6 @@ class ArcBridgeService {
|
| // Gets if ARC is available in this system.
|
| bool available() const { return available_; }
|
|
|
| - // Requests registration of an input device on the ARC instance.
|
| - // TODO(denniskempin): Make this interface more typesafe.
|
| - // |name| should be the displayable name of the emulated device (e.g. "Chrome
|
| - // OS Keyboard"), |device_type| the name of the device type (e.g. "keyboard")
|
| - // and |fd| a file descriptor that emulates the kernel events of the device.
|
| - // This can only be called on the thread that this class was created on.
|
| - virtual bool RegisterInputDevice(const std::string& name,
|
| - const std::string& device_type,
|
| - base::ScopedFD fd) = 0;
|
| -
|
| - // Sends a notification event to Android side.
|
| - virtual bool SendNotificationEventToAndroid(const std::string& key,
|
| - ArcNotificationEvent event) = 0;
|
| -
|
| - // Requests to refresh an app list.
|
| - virtual bool RefreshAppList() = 0;
|
| -
|
| - // Requests to launch an app.
|
| - virtual bool LaunchApp(const std::string& package,
|
| - const std::string& activity) = 0;
|
| -
|
| - // Requests to load an icon of specific scale_factor.
|
| - virtual bool RequestAppIcon(const std::string& package,
|
| - const std::string& activity,
|
| - ScaleFactor scale_factor) = 0;
|
| -
|
| protected:
|
| ArcBridgeService();
|
|
|
| @@ -188,16 +150,16 @@ class ArcBridgeService {
|
| void SetAvailable(bool availability);
|
|
|
| base::ObserverList<Observer>& observer_list() { return observer_list_; }
|
| - base::ObserverList<NotificationObserver>& notification_observer_list() {
|
| - return notification_observer_list_;
|
| - }
|
| -
|
| - base::ObserverList<AppObserver>& app_observer_list() {
|
| - return app_observer_list_;
|
| - }
|
|
|
| bool CalledOnValidThread();
|
|
|
| + // Mojo interfaces.
|
| + AppInstancePtr app_ptr_;
|
| + InputInstancePtr input_ptr_;
|
| + NotificationsInstancePtr notifications_ptr_;
|
| + PowerInstancePtr power_ptr_;
|
| + ProcessListInstancePtr process_list_ptr_;
|
| +
|
| private:
|
| friend class ArcBridgeTest;
|
| FRIEND_TEST_ALL_PREFIXES(ArcBridgeTest, Basic);
|
| @@ -205,9 +167,6 @@ class ArcBridgeService {
|
| FRIEND_TEST_ALL_PREFIXES(ArcBridgeTest, ShutdownMidStartup);
|
|
|
| base::ObserverList<Observer> observer_list_;
|
| - base::ObserverList<NotificationObserver> notification_observer_list_;
|
| -
|
| - base::ObserverList<AppObserver> app_observer_list_;
|
|
|
| base::ThreadChecker thread_checker_;
|
|
|
|
|