Index: blimp/client/session/blimp_client_session.h |
diff --git a/blimp/client/session/blimp_client_session.h b/blimp/client/session/blimp_client_session.h |
index fc8a42ef8902ba6ce2104f4da2d999232c378d80..7f7980ec62e3079b484aa4d4816d23565f906524 100644 |
--- a/blimp/client/session/blimp_client_session.h |
+++ b/blimp/client/session/blimp_client_session.h |
@@ -11,6 +11,7 @@ |
#include "base/macros.h" |
#include "base/memory/ref_counted.h" |
#include "base/threading/thread.h" |
+#include "blimp/client/feature/compositor/client_image_serialization_processor.h" |
#include "blimp/client/session/assignment_source.h" |
#include "blimp/common/proto/blimp_message.pb.h" |
#include "blimp/net/blimp_connection_statistics.h" |
@@ -24,8 +25,10 @@ namespace blimp { |
class BlimpMessageProcessor; |
class BlimpMessageThreadPipe; |
+class BlobChannelReceiver; |
class BrowserConnectionHandler; |
class ClientConnectionManager; |
+class HeliumBlobReceiverDelegate; |
class ThreadPipeManager; |
namespace client { |
@@ -54,7 +57,9 @@ class NetworkEventObserver { |
// This session glues together the feature proxy components and the network |
// layer. The network components must be interacted with on the IO thread. The |
// feature proxies must be interacted with on the UI thread. |
-class BlimpClientSession : public NetworkEventObserver { |
+class BlimpClientSession |
+ : public NetworkEventObserver, |
+ public ClientImageSerializationProcessor::ErrorDelegate { |
public: |
explicit BlimpClientSession(const GURL& assigner_endpoint); |
@@ -93,7 +98,16 @@ class BlimpClientSession : public NetworkEventObserver { |
void OnConnected() override; |
void OnDisconnected(int result) override; |
+ // ClientImageSerializationProcessor::ErrorDelegate implementation. |
+ void OnImageDecodeError() override; |
+ |
base::Thread io_thread_; |
+ |
+ // Receives blob BlimpMessages and relays them to BlobChannelReceiver. |
+ // Owned by BlobChannelReceiver, therefore stored as a raw pointer here. |
+ HeliumBlobReceiverDelegate* blob_delegate_ = nullptr; |
+ |
+ std::unique_ptr<BlobChannelReceiver> blob_receiver_; |
std::unique_ptr<TabControlFeature> tab_control_feature_; |
std::unique_ptr<NavigationFeature> navigation_feature_; |
std::unique_ptr<ImeFeature> ime_feature_; |