Chromium Code Reviews| 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..e3832092cd2134d1656e49b94cadb11c0e23375b 100644 |
| --- a/components/arc/arc_bridge_service.h |
| +++ b/components/arc/arc_bridge_service.h |
| @@ -110,6 +110,22 @@ class ArcBridgeService { |
| virtual ~AppObserver() {} |
| }; |
| + // Notifies ARC Clipboard related events. |
| + class ClipboardObserver { |
| + public: |
| + // Called when the Android clipboard content is changed. This is |
| + // typically fired when a user initiates a "Copy" action. |
| + virtual void OnSetClipboardContent(const std::string& text) {} |
| + |
| + // Called when the Android clipboard decides to update its content. |
| + // This is triggered when a "Paste" action is fired or an app |
| + // or a service tries to retrieve the Android clipboard content. |
|
elijahtaylor1
2015/12/15 01:17:05
nit: alignment
cnwan
2015/12/21 11:18:00
Done.
|
| + virtual void OnGetClipboardContent() {} |
| + |
| + protected: |
| + virtual ~ClipboardObserver() {} |
| + }; |
| + |
| virtual ~ArcBridgeService(); |
| // Gets the global instance of the ARC Bridge Service. This can only be |
| @@ -146,6 +162,11 @@ class ArcBridgeService { |
| void AddAppObserver(AppObserver* observer); |
| void RemoveAppObserver(AppObserver* observer); |
| + // Adds or removes ARC clipboard observers. This can only be called on the |
| + // thread that this class was created on. |
| + void AddClipboardObserver(ClipboardObserver* observer); |
| + void RemoveClipboardObserver(ClipboardObserver* observer); |
| + |
| // Gets the current state of the bridge service. |
| State state() const { return state_; } |
| @@ -178,6 +199,9 @@ class ArcBridgeService { |
| const std::string& activity, |
| ScaleFactor scale_factor) = 0; |
| + // Sends the Chrome clipboard content to Android. |
| + virtual bool SendClipboardContentToAndroid(const std::string& text) = 0; |
| + |
| protected: |
| ArcBridgeService(); |
| @@ -188,10 +212,15 @@ 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<ClipboardObserver>& clipboard_observer_list() { |
| + return clipboard_observer_list_; |
| + } |
| + |
| base::ObserverList<AppObserver>& app_observer_list() { |
| return app_observer_list_; |
| } |
| @@ -206,7 +235,7 @@ class ArcBridgeService { |
| base::ObserverList<Observer> observer_list_; |
| base::ObserverList<NotificationObserver> notification_observer_list_; |
| - |
| + base::ObserverList<ClipboardObserver> clipboard_observer_list_; |
| base::ObserverList<AppObserver> app_observer_list_; |
| base::ThreadChecker thread_checker_; |