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

Unified Diff: blimp/net/blimp_connection.cc

Issue 1909143002: Use ConnectionErrorObserver, not callbacks, for error handling. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « no previous file | blimp/net/blimp_connection_unittest.cc » ('j') | blimp/net/blimp_connection_unittest.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: blimp/net/blimp_connection.cc
diff --git a/blimp/net/blimp_connection.cc b/blimp/net/blimp_connection.cc
index 4b48f773d488d97ecd85b3a0673b198ffc5260bf..fd5eb7a924ef7cb4a11c23bfd2299d26e06c26ca 100644
--- a/blimp/net/blimp_connection.cc
+++ b/blimp/net/blimp_connection.cc
@@ -91,10 +91,13 @@ void BlimpMessageSender::ProcessMessage(
void BlimpMessageSender::OnWritePacketComplete(int result) {
DVLOG(2) << "OnWritePacketComplete, result=" << result;
DCHECK_NE(net::ERR_IO_PENDING, result);
- base::ResetAndReturn(&pending_process_msg_callback_).Run(result);
+
if (result != net::OK) {
error_observer_->OnConnectionError(result);
+ return;
Wez 2016/04/21 22:44:29 This changes the MessageSender to have different s
Kevin M 2016/04/22 22:10:41 Isn't it normal for an observer of an object to ha
Wez 2016/05/07 22:13:46 In most cases I'd expect that an observer might te
}
+
+ base::ResetAndReturn(&pending_process_msg_callback_).Run(result);
}
} // namespace
@@ -103,16 +106,15 @@ BlimpConnection::BlimpConnection(std::unique_ptr<PacketReader> reader,
std::unique_ptr<PacketWriter> writer)
: reader_(std::move(reader)),
message_pump_(new BlimpMessagePump(reader_.get())),
- writer_(std::move(writer)),
- outgoing_msg_processor_(new BlimpMessageSender(writer_.get())) {
+ writer_(std::move(writer)) {
DCHECK(writer_);
Wez 2016/04/21 22:44:29 Why do we only DCHECK(writer_), but not reader_?
Kevin M 2016/04/22 22:10:41 Done.
- // Observe the connection errors received by any of this connection's network
- // objects.
message_pump_->set_error_observer(this);
Wez 2016/04/21 22:44:29 Seems strange that this observer is set on the pum
Kevin M 2016/04/22 22:10:41 The use of observers is consistent here. The sende
Wez 2016/05/07 22:13:47 Acknowledged.
- BlimpMessageSender* sender =
- static_cast<BlimpMessageSender*>(outgoing_msg_processor_.get());
+
+ std::unique_ptr<BlimpMessageSender> sender(
+ new BlimpMessageSender(writer_.get()));
sender->set_error_observer(this);
+ outgoing_msg_processor_ = std::move(sender);
}
BlimpConnection::BlimpConnection() {}
« no previous file with comments | « no previous file | blimp/net/blimp_connection_unittest.cc » ('j') | blimp/net/blimp_connection_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698