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

Side by Side Diff: blimp/engine/session/blimp_engine_session.h

Issue 1985863002: Incorporate BlobChannel into Blimp image encode/decode pipeline. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@blobchannel-helium
Patch Set: moved the blob serialization processor to the compositor manager Created 4 years, 6 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #ifndef BLIMP_ENGINE_SESSION_BLIMP_ENGINE_SESSION_H_ 5 #ifndef BLIMP_ENGINE_SESSION_BLIMP_ENGINE_SESSION_H_
6 #define BLIMP_ENGINE_SESSION_BLIMP_ENGINE_SESSION_H_ 6 #define BLIMP_ENGINE_SESSION_BLIMP_ENGINE_SESSION_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 49
50 namespace wm { 50 namespace wm {
51 class FocusController; 51 class FocusController;
52 } 52 }
53 53
54 namespace blimp { 54 namespace blimp {
55 55
56 class BlimpConnection; 56 class BlimpConnection;
57 class BlimpMessage; 57 class BlimpMessage;
58 class BlimpMessageThreadPipe; 58 class BlimpMessageThreadPipe;
59 class BlobCache;
60 class BlobChannelSender;
61 class HeliumBlobSenderDelegate;
59 class ThreadPipeManager; 62 class ThreadPipeManager;
60 class SettingsManager; 63 class SettingsManager;
61 64
62 namespace engine { 65 namespace engine {
63 66
64 class BlimpBrowserContext; 67 class BlimpBrowserContext;
65 class BlimpEngineConfig; 68 class BlimpEngineConfig;
66 class BlimpFocusClient; 69 class BlimpFocusClient;
67 class BlimpScreen; 70 class BlimpScreen;
68 class BlimpWindowTreeHost; 71 class BlimpWindowTreeHost;
(...skipping 15 matching lines...) Expand all
84 SettingsManager* settings_manager); 87 SettingsManager* settings_manager);
85 ~BlimpEngineSession() override; 88 ~BlimpEngineSession() override;
86 89
87 // Starts the network stack on the IO thread, and sets default placeholder 90 // Starts the network stack on the IO thread, and sets default placeholder
88 // values for e.g. screen size pending real values being supplied by the 91 // values for e.g. screen size pending real values being supplied by the
89 // client. 92 // client.
90 void Initialize(); 93 void Initialize();
91 94
92 BlimpBrowserContext* browser_context() { return browser_context_.get(); } 95 BlimpBrowserContext* browser_context() { return browser_context_.get(); }
93 96
97 BlobChannelSender* blob_channel_sender() {
98 return blob_channel_sender_.get();
99 }
100
94 // Gets Engine's listening port. Invokes callback with the allocated port. 101 // Gets Engine's listening port. Invokes callback with the allocated port.
95 void GetEnginePortForTesting(const GetPortCallback& callback); 102 void GetEnginePortForTesting(const GetPortCallback& callback);
96 103
97 // BlimpMessageProcessor implementation. 104 // BlimpMessageProcessor implementation.
98 // This object handles incoming TAB_CONTROL and NAVIGATION messages directly. 105 // This object handles incoming TAB_CONTROL and NAVIGATION messages directly.
99 void ProcessMessage(std::unique_ptr<BlimpMessage> message, 106 void ProcessMessage(std::unique_ptr<BlimpMessage> message,
100 const net::CompletionCallback& callback) override; 107 const net::CompletionCallback& callback) override;
101 108
102 private: 109 private:
103 // Creates ThreadPipeManager, registers features, and then starts to accept 110 // Creates ThreadPipeManager, registers features, and then starts to accept
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 // Manages all global settings for the engine session. 211 // Manages all global settings for the engine session.
205 SettingsManager* settings_manager_; 212 SettingsManager* settings_manager_;
206 213
207 // Handles all incoming messages for type SETTINGS. 214 // Handles all incoming messages for type SETTINGS.
208 EngineSettingsFeature settings_feature_; 215 EngineSettingsFeature settings_feature_;
209 216
210 // Handles all incoming and outgoing messages related to RenderWidget, 217 // Handles all incoming and outgoing messages related to RenderWidget,
211 // including INPUT, COMPOSITOR and RENDER_WIDGET messages. 218 // including INPUT, COMPOSITOR and RENDER_WIDGET messages.
212 EngineRenderWidgetFeature render_widget_feature_; 219 EngineRenderWidgetFeature render_widget_feature_;
213 220
221 // Sends outgoing blob data as BlimpMessages.
222 HeliumBlobSenderDelegate* blob_delegate_;
223
224 // Receives image data from the renderer and sends it to the client via
225 // |blob_delegate_|.
226 std::unique_ptr<BlobChannelSender> blob_channel_sender_;
227
214 // Container for connection manager, authentication handler, and 228 // Container for connection manager, authentication handler, and
215 // browser connection handler. The components run on the I/O thread, and 229 // browser connection handler. The components run on the I/O thread, and
216 // this object is destroyed there. 230 // this object is destroyed there.
217 std::unique_ptr<EngineNetworkComponents> net_components_; 231 std::unique_ptr<EngineNetworkComponents> net_components_;
218 232
219 std::unique_ptr<ThreadPipeManager> thread_pipe_manager_; 233 std::unique_ptr<ThreadPipeManager> thread_pipe_manager_;
220 234
221 // Used to send TAB_CONTROL or NAVIGATION messages to client. 235 // Used to send TAB_CONTROL or NAVIGATION messages to client.
222 std::unique_ptr<BlimpMessageProcessor> tab_control_message_sender_; 236 std::unique_ptr<BlimpMessageProcessor> tab_control_message_sender_;
223 std::unique_ptr<BlimpMessageProcessor> navigation_message_sender_; 237 std::unique_ptr<BlimpMessageProcessor> navigation_message_sender_;
224 238
225 DISALLOW_COPY_AND_ASSIGN(BlimpEngineSession); 239 DISALLOW_COPY_AND_ASSIGN(BlimpEngineSession);
226 }; 240 };
227 241
228 } // namespace engine 242 } // namespace engine
229 } // namespace blimp 243 } // namespace blimp
230 244
231 #endif // BLIMP_ENGINE_SESSION_BLIMP_ENGINE_SESSION_H_ 245 #endif // BLIMP_ENGINE_SESSION_BLIMP_ENGINE_SESSION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698