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/session/blimp_engine_session.h" | 5 #include "blimp/engine/session/blimp_engine_session.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
| 8 #include <utility> |
8 | 9 |
9 #include "base/command_line.h" | 10 #include "base/command_line.h" |
10 #include "base/memory/ptr_util.h" | 11 #include "base/memory/ptr_util.h" |
11 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
12 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
13 #include "base/threading/thread_task_runner_handle.h" | 14 #include "base/threading/thread_task_runner_handle.h" |
14 #include "base/trace_event/trace_event.h" | 15 #include "base/trace_event/trace_event.h" |
15 #include "blimp/common/blob_cache/in_memory_blob_cache.h" | 16 #include "blimp/common/blob_cache/in_memory_blob_cache.h" |
16 #include "blimp/common/create_blimp_message.h" | 17 #include "blimp/common/create_blimp_message.h" |
17 #include "blimp/common/proto/tab_control.pb.h" | 18 #include "blimp/common/proto/tab_control.pb.h" |
(...skipping 15 matching lines...) Expand all Loading... |
33 #include "blimp/net/blob_channel/helium_blob_sender_delegate.h" | 34 #include "blimp/net/blob_channel/helium_blob_sender_delegate.h" |
34 #include "blimp/net/browser_connection_handler.h" | 35 #include "blimp/net/browser_connection_handler.h" |
35 #include "blimp/net/common.h" | 36 #include "blimp/net/common.h" |
36 #include "blimp/net/engine_authentication_handler.h" | 37 #include "blimp/net/engine_authentication_handler.h" |
37 #include "blimp/net/engine_connection_manager.h" | 38 #include "blimp/net/engine_connection_manager.h" |
38 #include "blimp/net/null_blimp_message_processor.h" | 39 #include "blimp/net/null_blimp_message_processor.h" |
39 #include "blimp/net/tcp_engine_transport.h" | 40 #include "blimp/net/tcp_engine_transport.h" |
40 #include "blimp/net/thread_pipe_manager.h" | 41 #include "blimp/net/thread_pipe_manager.h" |
41 #include "content/public/browser/browser_context.h" | 42 #include "content/public/browser/browser_context.h" |
42 #include "content/public/browser/browser_thread.h" | 43 #include "content/public/browser/browser_thread.h" |
| 44 #include "content/public/browser/geolocation_delegate.h" |
| 45 #include "content/public/browser/geolocation_provider.h" |
43 #include "content/public/browser/navigation_controller.h" | 46 #include "content/public/browser/navigation_controller.h" |
44 #include "content/public/browser/navigation_entry.h" | 47 #include "content/public/browser/navigation_entry.h" |
45 #include "content/public/browser/render_view_host.h" | 48 #include "content/public/browser/render_view_host.h" |
46 #include "content/public/browser/render_widget_host.h" | 49 #include "content/public/browser/render_widget_host.h" |
47 #include "content/public/browser/render_widget_host_view.h" | 50 #include "content/public/browser/render_widget_host_view.h" |
48 #include "content/public/browser/web_contents.h" | 51 #include "content/public/browser/web_contents.h" |
49 #include "net/base/ip_address.h" | 52 #include "net/base/ip_address.h" |
50 #include "net/base/net_errors.h" | 53 #include "net/base/net_errors.h" |
51 #include "ui/aura/client/default_capture_client.h" | 54 #include "ui/aura/client/default_capture_client.h" |
52 #include "ui/aura/env.h" | 55 #include "ui/aura/env.h" |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 kDefaultScaleFactor, | 234 kDefaultScaleFactor, |
232 gfx::Size(kDefaultDisplayWidth, kDefaultDisplayHeight)); | 235 gfx::Size(kDefaultDisplayWidth, kDefaultDisplayHeight)); |
233 render_widget_feature_.SetDelegate(kDummyTabId, this); | 236 render_widget_feature_.SetDelegate(kDummyTabId, this); |
234 | 237 |
235 std::unique_ptr<HeliumBlobSenderDelegate> helium_blob_delegate( | 238 std::unique_ptr<HeliumBlobSenderDelegate> helium_blob_delegate( |
236 new HeliumBlobSenderDelegate); | 239 new HeliumBlobSenderDelegate); |
237 blob_delegate_ = helium_blob_delegate.get(); | 240 blob_delegate_ = helium_blob_delegate.get(); |
238 blob_channel_sender_ = base::WrapUnique( | 241 blob_channel_sender_ = base::WrapUnique( |
239 new BlobChannelSenderImpl(base::WrapUnique(new InMemoryBlobCache), | 242 new BlobChannelSenderImpl(base::WrapUnique(new InMemoryBlobCache), |
240 std::move(helium_blob_delegate))); | 243 std::move(helium_blob_delegate))); |
| 244 |
| 245 content::GeolocationProvider::SetGeolocationDelegate( |
| 246 geolocation_feature_.CreateGeolocationDelegate()); |
241 } | 247 } |
242 | 248 |
243 BlimpEngineSession::~BlimpEngineSession() { | 249 BlimpEngineSession::~BlimpEngineSession() { |
244 render_widget_feature_.RemoveDelegate(kDummyTabId); | 250 render_widget_feature_.RemoveDelegate(kDummyTabId); |
245 | 251 |
246 window_tree_host_->GetInputMethod()->RemoveObserver(this); | 252 window_tree_host_->GetInputMethod()->RemoveObserver(this); |
247 | 253 |
248 // Ensure that all tabs are torn down first, since teardown will | 254 // Ensure that all tabs are torn down first, since teardown will |
249 // trigger RenderViewDeleted callbacks to their observers, which will in turn | 255 // trigger RenderViewDeleted callbacks to their observers, which will in turn |
250 // send messages to net_components_, which is already deleted due to the line | 256 // send messages to net_components_, which is already deleted due to the line |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 &render_widget_feature_)); | 323 &render_widget_feature_)); |
318 render_widget_feature_.set_input_message_sender( | 324 render_widget_feature_.set_input_message_sender( |
319 thread_pipe_manager_->RegisterFeature(BlimpMessage::kInput, | 325 thread_pipe_manager_->RegisterFeature(BlimpMessage::kInput, |
320 &render_widget_feature_)); | 326 &render_widget_feature_)); |
321 render_widget_feature_.set_compositor_message_sender( | 327 render_widget_feature_.set_compositor_message_sender( |
322 thread_pipe_manager_->RegisterFeature(BlimpMessage::kCompositor, | 328 thread_pipe_manager_->RegisterFeature(BlimpMessage::kCompositor, |
323 &render_widget_feature_)); | 329 &render_widget_feature_)); |
324 render_widget_feature_.set_ime_message_sender( | 330 render_widget_feature_.set_ime_message_sender( |
325 thread_pipe_manager_->RegisterFeature(BlimpMessage::kIme, | 331 thread_pipe_manager_->RegisterFeature(BlimpMessage::kIme, |
326 &render_widget_feature_)); | 332 &render_widget_feature_)); |
| 333 geolocation_feature_.set_outgoing_message_processor( |
| 334 thread_pipe_manager_->RegisterFeature(BlimpMessage::kGeolocation, |
| 335 &geolocation_feature_)); |
327 blob_delegate_->set_outgoing_message_processor( | 336 blob_delegate_->set_outgoing_message_processor( |
328 thread_pipe_manager_->RegisterFeature(BlimpMessage::kBlobChannel, | 337 thread_pipe_manager_->RegisterFeature(BlimpMessage::kBlobChannel, |
329 blob_delegate_)); | 338 blob_delegate_)); |
330 | 339 |
331 // The Settings feature does not need an outgoing message processor, since we | 340 // The Settings feature does not need an outgoing message processor, since we |
332 // don't send any messages to the client right now. | 341 // don't send any messages to the client right now. |
333 thread_pipe_manager_->RegisterFeature(BlimpMessage::kSettings, | 342 thread_pipe_manager_->RegisterFeature(BlimpMessage::kSettings, |
334 &settings_feature_); | 343 &settings_feature_); |
335 } | 344 } |
336 | 345 |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
563 parent->AddChild(content); | 572 parent->AddChild(content); |
564 content->Show(); | 573 content->Show(); |
565 | 574 |
566 tab_ = base::WrapUnique(new Tab(std::move(new_contents), target_tab_id, | 575 tab_ = base::WrapUnique(new Tab(std::move(new_contents), target_tab_id, |
567 &render_widget_feature_, | 576 &render_widget_feature_, |
568 navigation_message_sender_.get())); | 577 navigation_message_sender_.get())); |
569 } | 578 } |
570 | 579 |
571 } // namespace engine | 580 } // namespace engine |
572 } // namespace blimp | 581 } // namespace blimp |
OLD | NEW |