Index: blimp/client/core/blimp_client_context_impl.cc |
diff --git a/blimp/client/core/blimp_client_context_impl.cc b/blimp/client/core/blimp_client_context_impl.cc |
index ce457d8715ae465e155bd0edadbc938d1fd36783..03e447668e88505c94d75d2cb33e080dafa1f93f 100644 |
--- a/blimp/client/core/blimp_client_context_impl.cc |
+++ b/blimp/client/core/blimp_client_context_impl.cc |
@@ -13,6 +13,7 @@ |
#include "base/threading/sequenced_task_runner_handle.h" |
#include "blimp/client/core/blimp_client_switches.h" |
#include "blimp/client/core/compositor/blimp_compositor_dependencies.h" |
+#include "blimp/client/core/compositor/blob_channel_feature.h" |
#include "blimp/client/core/contents/blimp_contents_impl.h" |
#include "blimp/client/core/contents/blimp_contents_manager.h" |
#include "blimp/client/core/contents/ime_feature.h" |
@@ -70,6 +71,7 @@ BlimpClientContextImpl::BlimpClientContextImpl( |
blimp_compositor_dependencies_( |
base::MakeUnique<BlimpCompositorDependencies>( |
std::move(compositor_dependencies))), |
+ blob_channel_feature_(new BlobChannelFeature(this)), |
geolocation_feature_(base::MakeUnique<GeolocationFeature>( |
base::MakeUnique<device::LocationArbitrator>( |
base::MakeUnique<device::GeolocationDelegate>()))), |
@@ -178,6 +180,8 @@ void BlimpClientContextImpl::ConnectWithAssignment( |
void BlimpClientContextImpl::RegisterFeatures() { |
// Register features' message senders and receivers. |
+ thread_pipe_manager_->RegisterFeature(BlimpMessage::kBlobChannel, |
+ blob_channel_feature_.get()); |
geolocation_feature_->set_outgoing_message_processor( |
thread_pipe_manager_->RegisterFeature(BlimpMessage::kGeolocation, |
geolocation_feature_.get())); |
@@ -215,5 +219,14 @@ void BlimpClientContextImpl::CreateIdentitySource() { |
base::Unretained(this))); |
} |
+void BlimpClientContextImpl::OnImageDecodeError() { |
+ // Currently we just drop the connection on image decoding error. |
+ io_thread_task_runner_->PostTask( |
+ FROM_HERE, |
+ base::Bind( |
+ &BrowserConnectionHandler::DropCurrentConnection, |
+ base::Unretained(net_components_->GetBrowserConnectionHandler()))); |
+} |
+ |
} // namespace client |
} // namespace blimp |