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

Unified Diff: blimp/client/core/blimp_client_context_impl.cc

Issue 2190753002: Add network setup code to BlimpClientContextImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@split-blimp-client-session
Patch Set: Updated comments and changed test to use a testing::Test class Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
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 115fd075678d20dca13bda6318348a8395742519..c3209ca4a48cbefd356a4580bf51f8acb1d398cc 100644
--- a/blimp/client/core/blimp_client_context_impl.cc
+++ b/blimp/client/core/blimp_client_context_impl.cc
@@ -4,9 +4,13 @@
#include "blimp/client/core/blimp_client_context_impl.h"
+#include "base/bind.h"
#include "base/memory/ptr_util.h"
+#include "base/message_loop/message_loop.h"
#include "base/supports_user_data.h"
+#include "base/threading/sequenced_task_runner_handle.h"
#include "blimp/client/core/contents/blimp_contents_impl.h"
+#include "blimp/client/core/session/cross_thread_network_event_observer.h"
#include "blimp/client/public/blimp_client_context_delegate.h"
#if defined(OS_ANDROID)
@@ -29,13 +33,37 @@ const char kBlimpClientContextImplAndroidKey[] =
// //blimp/client/core/dummy_blimp_client_context.cc should be linked in to
// any binary using BlimpClientContext::Create.
// static
-BlimpClientContext* BlimpClientContext::Create() {
- return new BlimpClientContextImpl();
+BlimpClientContext* BlimpClientContext::Create(
+ scoped_refptr<base::SingleThreadTaskRunner> io_thread_task_runner) {
+ return new BlimpClientContextImpl(io_thread_task_runner);
}
-BlimpClientContextImpl::BlimpClientContextImpl() : BlimpClientContext() {}
+BlimpClientContextImpl::BlimpClientContextImpl(
+ scoped_refptr<base::SingleThreadTaskRunner> io_thread_task_runner)
+ : BlimpClientContext(),
+ io_thread_task_runner_(io_thread_task_runner),
+ weak_factory_(this) {
+ blimp_connection_statistics_ = new BlimpConnectionStatistics();
+ net_components_.reset(new ClientNetworkComponents(
+ base::MakeUnique<CrossThreadNetworkEventObserver>(
+ weak_factory_.GetWeakPtr(), base::SequencedTaskRunnerHandle::Get()),
+ base::WrapUnique(blimp_connection_statistics_)));
+
+ // The |thread_pipe_manager_| must be set up correctly before features are
+ // registered.
+ thread_pipe_manager_ = base::MakeUnique<ThreadPipeManager>(
+ io_thread_task_runner_, net_components_->GetBrowserConnectionHandler());
+
+ // Initialize must only be posted after the calls features have been
+ // registered.
+ io_thread_task_runner_->PostTask(
+ FROM_HERE, base::Bind(&ClientNetworkComponents::Initialize,
+ base::Unretained(net_components_.get())));
+}
-BlimpClientContextImpl::~BlimpClientContextImpl() {}
+BlimpClientContextImpl::~BlimpClientContextImpl() {
+ io_thread_task_runner_->DeleteSoon(FROM_HERE, net_components_.release());
+}
#if defined(OS_ANDROID)
@@ -66,10 +94,14 @@ void BlimpClientContextImpl::SetDelegate(BlimpClientContextDelegate* delegate) {
std::unique_ptr<BlimpContents> BlimpClientContextImpl::CreateBlimpContents() {
std::unique_ptr<BlimpContents> blimp_contents =
- base::WrapUnique(new BlimpContentsImpl);
+ base::MakeUnique<BlimpContentsImpl>();
delegate_->AttachBlimpContentsHelpers(blimp_contents.get());
return blimp_contents;
}
+void BlimpClientContextImpl::OnConnected() {}
+
+void BlimpClientContextImpl::OnDisconnected(int result) {}
+
} // namespace client
} // namespace blimp
« no previous file with comments | « blimp/client/core/blimp_client_context_impl.h ('k') | blimp/client/core/blimp_client_context_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698