OLD | NEW |
---|---|
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 #include "blimp/engine/browser/blimp_engine_session.h" | 5 #include "blimp/engine/browser/blimp_engine_session.h" |
6 | 6 |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "blimp/common/create_blimp_message.h" | 8 #include "blimp/common/create_blimp_message.h" |
9 #include "blimp/common/proto/tab_control.pb.h" | 9 #include "blimp/common/proto/tab_control.pb.h" |
10 #include "blimp/engine/browser/blimp_browser_context.h" | 10 #include "blimp/engine/browser/blimp_browser_context.h" |
11 #include "blimp/engine/ui/blimp_layout_manager.h" | 11 #include "blimp/engine/ui/blimp_layout_manager.h" |
12 #include "blimp/engine/ui/blimp_screen.h" | 12 #include "blimp/engine/ui/blimp_screen.h" |
13 #include "blimp/engine/ui/blimp_ui_context_factory.h" | 13 #include "blimp/engine/ui/blimp_ui_context_factory.h" |
14 #include "blimp/net/blimp_connection.h" | 14 #include "blimp/net/blimp_connection.h" |
15 #include "blimp/net/blimp_message_multiplexer.h" | 15 #include "blimp/net/blimp_message_multiplexer.h" |
16 #include "blimp/net/browser_connection_handler.h" | 16 #include "blimp/net/browser_connection_handler.h" |
17 #include "blimp/net/common.h" | |
17 #include "blimp/net/engine_authentication_handler.h" | 18 #include "blimp/net/engine_authentication_handler.h" |
18 #include "blimp/net/engine_connection_manager.h" | 19 #include "blimp/net/engine_connection_manager.h" |
19 #include "blimp/net/null_blimp_message_processor.h" | 20 #include "blimp/net/null_blimp_message_processor.h" |
20 #include "blimp/net/tcp_engine_transport.h" | 21 #include "blimp/net/tcp_engine_transport.h" |
21 #include "content/public/browser/browser_context.h" | 22 #include "content/public/browser/browser_context.h" |
22 #include "content/public/browser/browser_thread.h" | 23 #include "content/public/browser/browser_thread.h" |
23 #include "content/public/browser/navigation_controller.h" | 24 #include "content/public/browser/navigation_controller.h" |
24 #include "content/public/browser/navigation_entry.h" | 25 #include "content/public/browser/navigation_entry.h" |
25 #include "content/public/browser/render_view_host.h" | 26 #include "content/public/browser/render_view_host.h" |
26 #include "content/public/browser/render_widget_host.h" | 27 #include "content/public/browser/render_widget_host.h" |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
60 } | 61 } |
61 | 62 |
62 private: | 63 private: |
63 DISALLOW_COPY_AND_ASSIGN(FocusRulesImpl); | 64 DISALLOW_COPY_AND_ASSIGN(FocusRulesImpl); |
64 }; | 65 }; |
65 | 66 |
66 } // namespace | 67 } // namespace |
67 | 68 |
68 // This class's functions and destruction are all invoked on the IO thread by | 69 // This class's functions and destruction are all invoked on the IO thread by |
69 // the BlimpEngineSession. | 70 // the BlimpEngineSession. |
70 class BlimpNetworkComponents { | 71 class EngineNetworkComponents { |
71 public: | 72 public: |
72 explicit BlimpNetworkComponents(net::NetLog* net_log); | 73 explicit EngineNetworkComponents(net::NetLog* net_log); |
73 ~BlimpNetworkComponents(); | 74 ~EngineNetworkComponents(); |
74 | 75 |
75 void Initialize(); | 76 void Initialize(); |
76 | 77 |
77 private: | 78 private: |
78 net::NetLog* net_log_; | 79 net::NetLog* net_log_; |
79 scoped_ptr<BrowserConnectionHandler> connection_handler_; | 80 scoped_ptr<BrowserConnectionHandler> connection_handler_; |
80 scoped_ptr<EngineAuthenticationHandler> authentication_handler_; | 81 scoped_ptr<EngineAuthenticationHandler> authentication_handler_; |
81 scoped_ptr<EngineConnectionManager> connection_manager_; | 82 scoped_ptr<EngineConnectionManager> connection_manager_; |
82 | 83 |
83 DISALLOW_COPY_AND_ASSIGN(BlimpNetworkComponents); | 84 DISALLOW_COPY_AND_ASSIGN(EngineNetworkComponents); |
84 }; | 85 }; |
85 | 86 |
86 BlimpNetworkComponents::BlimpNetworkComponents(net::NetLog* net_log) | 87 EngineNetworkComponents::EngineNetworkComponents(net::NetLog* net_log) |
87 : net_log_(net_log) {} | 88 : net_log_(net_log) {} |
88 | 89 |
89 BlimpNetworkComponents::~BlimpNetworkComponents() { | 90 EngineNetworkComponents::~EngineNetworkComponents() { |
90 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); | 91 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
91 } | 92 } |
92 | 93 |
93 void BlimpNetworkComponents::Initialize() { | 94 void EngineNetworkComponents::Initialize() { |
94 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); | 95 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
95 DCHECK(!connection_handler_); | 96 DCHECK(!connection_handler_); |
96 | 97 |
97 // Creates and connects net components. | 98 // Creates and connects net components. |
98 // A BlimpConnection flows from | 99 // A BlimpConnection flows from |
99 // connection_manager_ --> authentication_handler_ --> connection_handler_ | 100 // connection_manager_ --> authentication_handler_ --> connection_handler_ |
100 connection_handler_.reset(new BrowserConnectionHandler); | 101 connection_handler_.reset(new BrowserConnectionHandler); |
101 authentication_handler_.reset( | 102 authentication_handler_.reset( |
102 new EngineAuthenticationHandler(connection_handler_.get())); | 103 new EngineAuthenticationHandler(connection_handler_.get())); |
103 connection_manager_.reset( | 104 connection_manager_.reset( |
104 new EngineConnectionManager(authentication_handler_.get())); | 105 new EngineConnectionManager(authentication_handler_.get())); |
105 | 106 |
106 // Adds BlimpTransports to connection_manager_. | 107 // Adds BlimpTransports to connection_manager_. |
107 net::IPAddressNumber local_ip_any; | 108 net::IPAddressNumber local_ip_any; |
108 bool success = net::ParseIPLiteralToNumber("0.0.0.0", &local_ip_any); | 109 bool success = net::ParseIPLiteralToNumber("0.0.0.0", &local_ip_any); |
109 DCHECK(success); | 110 DCHECK(success); |
110 net::IPEndPoint address(local_ip_any, kDefaultPortNumber); | 111 net::IPEndPoint address(local_ip_any, kDefaultPortNumber); |
111 connection_manager_->AddTransport( | 112 connection_manager_->AddTransport( |
112 make_scoped_ptr(new TCPEngineTransport(address, net_log_))); | 113 make_scoped_ptr(new TCPEngineTransport(address, net_log_))); |
113 } | 114 } |
114 | 115 |
115 BlimpEngineSession::BlimpEngineSession( | 116 BlimpEngineSession::BlimpEngineSession( |
116 scoped_ptr<BlimpBrowserContext> browser_context, | 117 scoped_ptr<BlimpBrowserContext> browser_context, |
117 net::NetLog* net_log) | 118 net::NetLog* net_log) |
118 : browser_context_(std::move(browser_context)), | 119 : browser_context_(std::move(browser_context)), |
119 screen_(new BlimpScreen), | 120 screen_(new BlimpScreen), |
120 net_components_(new BlimpNetworkComponents(net_log)) { | 121 net_components_(new EngineNetworkComponents(net_log)) { |
121 screen_->UpdateDisplayScaleAndSize(kDefaultScaleFactor, | 122 screen_->UpdateDisplayScaleAndSize(kDefaultScaleFactor, |
122 gfx::Size(kDefaultDisplayWidth, | 123 gfx::Size(kDefaultDisplayWidth, |
123 kDefaultDisplayHeight)); | 124 kDefaultDisplayHeight)); |
124 render_widget_feature_.SetDelegate(kDummyTabId, this); | 125 render_widget_feature_.SetDelegate(kDummyTabId, this); |
125 } | 126 } |
126 | 127 |
127 BlimpEngineSession::~BlimpEngineSession() { | 128 BlimpEngineSession::~BlimpEngineSession() { |
128 render_widget_feature_.RemoveDelegate(kDummyTabId); | 129 render_widget_feature_.RemoveDelegate(kDummyTabId); |
129 | 130 |
130 // Safely delete network components on the IO thread. | 131 // Safely delete network components on the IO thread. |
(...skipping 26 matching lines...) Expand all Loading... | |
157 new aura::client::DefaultCaptureClient(window_tree_host_->window())); | 158 new aura::client::DefaultCaptureClient(window_tree_host_->window())); |
158 | 159 |
159 #if defined(USE_X11) | 160 #if defined(USE_X11) |
160 window_tree_host_->Show(); | 161 window_tree_host_->Show(); |
161 #endif | 162 #endif |
162 | 163 |
163 window_tree_host_->SetBounds(gfx::Rect(screen_->GetPrimaryDisplay().size())); | 164 window_tree_host_->SetBounds(gfx::Rect(screen_->GetPrimaryDisplay().size())); |
164 | 165 |
165 content::BrowserThread::PostTask( | 166 content::BrowserThread::PostTask( |
166 content::BrowserThread::IO, FROM_HERE, | 167 content::BrowserThread::IO, FROM_HERE, |
167 base::Bind(&BlimpNetworkComponents::Initialize, | 168 base::Bind(&EngineNetworkComponents::Initialize, |
168 base::Unretained(net_components_.get()))); | 169 base::Unretained(net_components_.get()))); |
169 | 170 |
170 // Registers features. | 171 // Registers features. |
171 // TODO(kmarshall) Refactor this using | |
172 // 1. Get outgoing message processors for blimp message types of a feature. | 172 // 1. Get outgoing message processors for blimp message types of a feature. |
haibinlu
2016/01/04 19:45:45
remove the comment here since TODO is removed.
Kevin M
2016/01/04 20:42:12
Done.
| |
173 // 2. Create a feature with these outgoing message processors. | 173 // 2. Create a feature with these outgoing message processors. |
174 // 3. Register the feature as the incoming message processor for these | 174 // 3. Register the feature as the incoming message processor for these |
175 // blimp message types. | 175 // blimp message types. |
176 tab_control_message_sender_ = | 176 tab_control_message_sender_ = |
177 RegisterFeature(BlimpMessage::TAB_CONTROL, this); | 177 RegisterFeature(BlimpMessage::TAB_CONTROL, this); |
178 navigation_message_sender_ = RegisterFeature(BlimpMessage::NAVIGATION, this); | 178 navigation_message_sender_ = RegisterFeature(BlimpMessage::NAVIGATION, this); |
179 | 179 |
180 render_widget_feature_.set_render_widget_message_sender( | 180 render_widget_feature_.set_render_widget_message_sender( |
181 RegisterFeature(BlimpMessage::RENDER_WIDGET, &render_widget_feature_)); | 181 RegisterFeature(BlimpMessage::RENDER_WIDGET, &render_widget_feature_)); |
182 render_widget_feature_.set_input_message_sender( | 182 render_widget_feature_.set_input_message_sender( |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
431 | 431 |
432 aura::Window* parent = window_tree_host_->window(); | 432 aura::Window* parent = window_tree_host_->window(); |
433 aura::Window* content = web_contents_->GetNativeView(); | 433 aura::Window* content = web_contents_->GetNativeView(); |
434 if (!parent->Contains(content)) | 434 if (!parent->Contains(content)) |
435 parent->AddChild(content); | 435 parent->AddChild(content); |
436 content->Show(); | 436 content->Show(); |
437 } | 437 } |
438 | 438 |
439 } // namespace engine | 439 } // namespace engine |
440 } // namespace blimp | 440 } // namespace blimp |
OLD | NEW |