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 9fe0c91afeafa90f4fb7306c2c392a2df3ca0805..4ebebde648c30cfb8a3c03536604343eb4b982d8 100644 |
--- a/blimp/client/core/blimp_client_context_impl.cc |
+++ b/blimp/client/core/blimp_client_context_impl.cc |
@@ -10,6 +10,8 @@ |
#include "base/threading/sequenced_task_runner_handle.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" |
+#include "blimp/client/core/contents/navigation_feature.h" |
#include "blimp/client/core/contents/tab_control_feature.h" |
#include "blimp/client/core/session/cross_thread_network_event_observer.h" |
#include "blimp/client/public/blimp_client_context_delegate.h" |
@@ -49,9 +51,13 @@ BlimpClientContextImpl::BlimpClientContextImpl( |
: BlimpClientContext(), |
io_thread_task_runner_(io_thread_task_runner), |
file_thread_task_runner_(file_thread_task_runner), |
+ ime_feature_(new ImeFeature), |
+ navigation_feature_(new NavigationFeature), |
tab_control_feature_(new TabControlFeature), |
- blimp_contents_manager_(new BlimpContentsManager( |
- tab_control_feature_.get())), |
+ blimp_contents_manager_( |
+ new BlimpContentsManager(ime_feature_.get(), |
+ navigation_feature_.get(), |
+ tab_control_feature_.get())), |
weak_factory_(this) { |
net_components_.reset(new ClientNetworkComponents( |
base::MakeUnique<CrossThreadNetworkEventObserver>( |
@@ -148,6 +154,12 @@ void BlimpClientContextImpl::ConnectWithAssignment( |
void BlimpClientContextImpl::RegisterFeatures() { |
// Register features' message senders and receivers. |
+ ime_feature_->set_outgoing_message_processor( |
+ thread_pipe_manager_->RegisterFeature(BlimpMessage::kIme, |
+ ime_feature_.get())); |
+ navigation_feature_->set_outgoing_message_processor( |
+ thread_pipe_manager_->RegisterFeature(BlimpMessage::kNavigation, |
+ navigation_feature_.get())); |
tab_control_feature_->set_outgoing_message_processor( |
thread_pipe_manager_->RegisterFeature(BlimpMessage::kTabControl, |
tab_control_feature_.get())); |