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

Side by Side Diff: remoting/host/native_messaging/native_messaging_pipe.cc

Issue 887853002: Shutdown the It2Me host cleanly. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@it2me_host_dcheck
Patch Set: Created 5 years, 10 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 unified diff | Download patch
« no previous file with comments | « remoting/host/native_messaging/native_messaging_pipe.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/host/native_messaging/native_messaging_pipe.h" 5 #include "remoting/host/native_messaging/native_messaging_pipe.h"
6 6
7 #include "base/callback_helpers.h" 7 #include "base/callback_helpers.h"
8 #include "base/json/json_reader.h" 8 #include "base/json/json_reader.h"
9 #include "base/json/json_writer.h" 9 #include "base/json/json_writer.h"
10 #include "base/values.h" 10 #include "base/values.h"
11 11
12 namespace remoting { 12 namespace remoting {
13 13
14 NativeMessagingPipe::NativeMessagingPipe() { 14 NativeMessagingPipe::NativeMessagingPipe() {
15 } 15 }
16 16
17 NativeMessagingPipe::~NativeMessagingPipe() { 17 NativeMessagingPipe::~NativeMessagingPipe() {
18 } 18 }
19 19
20 void NativeMessagingPipe::Start( 20 void NativeMessagingPipe::Start(
21 scoped_ptr<extensions::NativeMessageHost> host, 21 scoped_ptr<extensions::NativeMessageHost> host,
22 scoped_ptr<extensions::NativeMessagingChannel> channel, 22 scoped_ptr<extensions::NativeMessagingChannel> channel) {
23 const base::Closure& quit_closure) {
24 host_ = host.Pass(); 23 host_ = host.Pass();
25 channel_ = channel.Pass(); 24 channel_ = channel.Pass();
26 quit_closure_ = quit_closure;
27 channel_->Start(this); 25 channel_->Start(this);
28 } 26 }
29 27
30 void NativeMessagingPipe::OnMessage(scoped_ptr<base::Value> message) { 28 void NativeMessagingPipe::OnMessage(scoped_ptr<base::Value> message) {
31 std::string message_json; 29 std::string message_json;
32 base::JSONWriter::Write(message.get(), &message_json); 30 base::JSONWriter::Write(message.get(), &message_json);
33 host_->OnMessage(message_json); 31 host_->OnMessage(message_json);
34 } 32 }
35 33
36 void NativeMessagingPipe::OnDisconnect() { 34 void NativeMessagingPipe::OnDisconnect() {
37 if (!quit_closure_.is_null()) 35 host_.reset();
38 base::ResetAndReturn(&quit_closure_).Run(); 36 channel_.reset();
39 } 37 }
40 38
41 void NativeMessagingPipe::PostMessageFromNativeHost( 39 void NativeMessagingPipe::PostMessageFromNativeHost(
42 const std::string& message) { 40 const std::string& message) {
43 scoped_ptr<base::Value> json(base::JSONReader::Read(message)); 41 scoped_ptr<base::Value> json(base::JSONReader::Read(message));
44 channel_->SendMessage(json.Pass()); 42 channel_->SendMessage(json.Pass());
45 } 43 }
46 44
47 void NativeMessagingPipe::CloseChannel(const std::string& error_message) { 45 void NativeMessagingPipe::CloseChannel(const std::string& error_message) {
48 if (!quit_closure_.is_null()) 46 host_.reset();
49 base::ResetAndReturn(&quit_closure_).Run(); 47 channel_.reset();
50 } 48 }
51 49
52 } // namespace remoting 50 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/native_messaging/native_messaging_pipe.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698