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_; |