| 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 f90b1dc02b222929b3e0851a1a240809064d7aa0..76b795325a45ba9cbe734521f53f8e9c7c2a1779 100644
|
| --- a/blimp/client/core/blimp_client_context_impl.cc
|
| +++ b/blimp/client/core/blimp_client_context_impl.cc
|
| @@ -10,6 +10,7 @@
|
| #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/tab_control_feature.h"
|
| #include "blimp/client/core/session/cross_thread_network_event_observer.h"
|
| #include "blimp/client/public/blimp_client_context_delegate.h"
|
|
|
| @@ -48,7 +49,9 @@ BlimpClientContextImpl::BlimpClientContextImpl(
|
| : BlimpClientContext(),
|
| io_thread_task_runner_(io_thread_task_runner),
|
| file_thread_task_runner_(file_thread_task_runner),
|
| - blimp_contents_manager_(new BlimpContentsManager),
|
| + tab_control_feature_(new TabControlFeature),
|
| + blimp_contents_manager_(new BlimpContentsManager(
|
| + tab_control_feature_.get())),
|
| weak_factory_(this) {
|
| net_components_.reset(new ClientNetworkComponents(
|
| base::MakeUnique<CrossThreadNetworkEventObserver>(
|
| @@ -59,6 +62,8 @@ BlimpClientContextImpl::BlimpClientContextImpl(
|
| thread_pipe_manager_ = base::MakeUnique<ThreadPipeManager>(
|
| io_thread_task_runner_, net_components_->GetBrowserConnectionHandler());
|
|
|
| + RegisterFeatures();
|
| +
|
| // Initialize must only be posted after the calls features have been
|
| // registered.
|
| io_thread_task_runner_->PostTask(
|
| @@ -98,6 +103,10 @@ void BlimpClientContextImpl::OnConnected() {}
|
|
|
| void BlimpClientContextImpl::OnDisconnected(int result) {}
|
|
|
| +TabControlFeature* BlimpClientContextImpl::GetTabControlFeature() const {
|
| + return tab_control_feature_.get();
|
| +}
|
| +
|
| GURL BlimpClientContextImpl::GetAssignerURL() {
|
| return GURL(kDefaultAssignerUrl);
|
| }
|
| @@ -122,5 +131,12 @@ void BlimpClientContextImpl::ConnectWithAssignment(
|
| base::Unretained(net_components_.get()), assignment));
|
| }
|
|
|
| +void BlimpClientContextImpl::RegisterFeatures() {
|
| + // Register features' message senders and receivers.
|
| + tab_control_feature_->set_outgoing_message_processor(
|
| + thread_pipe_manager_->RegisterFeature(BlimpMessage::kTabControl,
|
| + tab_control_feature_.get()));
|
| +}
|
| +
|
| } // namespace client
|
| } // namespace blimp
|
|
|