Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(702)

Unified Diff: components/arc/clipboard/arc_clipboard_bridge.cc

Issue 1596663002: arc-bridge: Introduce the ArcService class (Closed) Base URL: https://chromium.googlesource.com/a/chromium/src.git@master
Patch Set: Addressed feedback Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/arc/clipboard/arc_clipboard_bridge.cc
diff --git a/components/arc/clipboard/arc_clipboard_bridge.cc b/components/arc/clipboard/arc_clipboard_bridge.cc
index 06e39fb4b5e2ccfe2b911ca21ba78ddf507e9a88..169869c0d113eed2a70680dccba97c12569e8606 100644
--- a/components/arc/clipboard/arc_clipboard_bridge.cc
+++ b/components/arc/clipboard/arc_clipboard_bridge.cc
@@ -27,18 +27,26 @@ static mojo::String ConvertString16ToMojoString(const base::string16& input) {
namespace arc {
-ArcClipboardBridge::ArcClipboardBridge(ArcBridgeService* bridge_service)
- : bridge_service_(bridge_service), binding_(this) {
- bridge_service_->AddObserver(this);
+ArcClipboardBridge::ArcClipboardBridge(ArcBridgeService* arc_bridge_service)
+ : arc_bridge_service_(arc_bridge_service), binding_(this) {
+ DCHECK(arc_bridge_service_);
+ arc_bridge_service_->AddObserver(this);
+
+ // If ClipboardInstance was ready before we AddObserver(), we won't get
+ // OnClipboardInstanceReady events. For such case, we have to call it
+ // explicitly.
+ if (arc_bridge_service_->clipboard_instance())
+ OnClipboardInstanceReady();
}
ArcClipboardBridge::~ArcClipboardBridge() {
DCHECK(CalledOnValidThread());
- bridge_service_->RemoveObserver(this);
+ arc_bridge_service_->RemoveObserver(this);
}
void ArcClipboardBridge::OnClipboardInstanceReady() {
- ClipboardInstance* clipboard_instance = bridge_service_->clipboard_instance();
+ ClipboardInstance* clipboard_instance =
+ arc_bridge_service_->clipboard_instance();
if (!clipboard_instance) {
LOG(ERROR) << "OnClipboardInstanceReady called, "
<< "but no clipboard instance found";
@@ -63,7 +71,8 @@ void ArcClipboardBridge::GetTextContent() {
ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
clipboard->ReadText(ui::CLIPBOARD_TYPE_COPY_PASTE, &text);
- ClipboardInstance* clipboard_instance = bridge_service_->clipboard_instance();
+ ClipboardInstance* clipboard_instance =
+ arc_bridge_service_->clipboard_instance();
clipboard_instance->OnGetTextContent(ConvertString16ToMojoString(text));
}

Powered by Google App Engine
This is Rietveld 408576698