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

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

Issue 2211613002: Add AssignmentSource to BlimpClientContextImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 076fc78f34ea64ed7f5f8af03e5d9688d9169896..a42cdf38a93f980992b7c081c43aaa7c1db38f6a 100644
--- a/blimp/client/core/blimp_client_context_impl.cc
+++ b/blimp/client/core/blimp_client_context_impl.cc
@@ -19,24 +19,34 @@
namespace blimp {
namespace client {
+namespace {
+const char kDefaultAssignerUrl[] =
+ "https://blimp-pa.googleapis.com/v1/assignment";
+} // namespace
+
// This function is declared in //blimp/client/public/blimp_client_context.h,
// and either this function or the one in
// //blimp/client/core/dummy_blimp_client_context.cc should be linked in to
// any binary using BlimpClientContext::Create.
// static
BlimpClientContext* BlimpClientContext::Create(
- scoped_refptr<base::SingleThreadTaskRunner> io_thread_task_runner) {
+ scoped_refptr<base::SingleThreadTaskRunner> io_thread_task_runner,
+ scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner) {
#if defined(OS_ANDROID)
- return new BlimpClientContextImplAndroid(io_thread_task_runner);
+ return new BlimpClientContextImplAndroid(io_thread_task_runner,
+ file_thread_task_runner);
#else
- return new BlimpClientContextImpl(io_thread_task_runner);
+ return new BlimpClientContextImpl(io_thread_task_runner,
+ file_thread_task_runner);
#endif // defined(OS_ANDROID)
}
BlimpClientContextImpl::BlimpClientContextImpl(
- scoped_refptr<base::SingleThreadTaskRunner> io_thread_task_runner)
+ scoped_refptr<base::SingleThreadTaskRunner> io_thread_task_runner,
+ scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner)
: BlimpClientContext(),
io_thread_task_runner_(io_thread_task_runner),
+ file_thread_task_runner_(file_thread_task_runner),
weak_factory_(this) {
blimp_connection_statistics_ = new BlimpConnectionStatistics();
net_components_.reset(new ClientNetworkComponents(
@@ -71,9 +81,48 @@ std::unique_ptr<BlimpContents> BlimpClientContextImpl::CreateBlimpContents() {
return blimp_contents;
}
+void BlimpClientContextImpl::Connect(const std::string& client_auth_token) {
+ if (!assignment_source_) {
+ assignment_source_.reset(new AssignmentSource(
+ GetAssignerURL(), io_thread_task_runner_, file_thread_task_runner_));
+ }
+
+ VLOG(1) << "Trying to get assignment.";
+ assignment_source_->GetAssignment(
+ client_auth_token,
+ base::Bind(&BlimpClientContextImpl::ConnectWithAssignment,
+ weak_factory_.GetWeakPtr()));
+}
+
void BlimpClientContextImpl::OnConnected() {}
void BlimpClientContextImpl::OnDisconnected(int result) {}
+GURL BlimpClientContextImpl::GetAssignerURL() {
+ return GURL(kDefaultAssignerUrl);
+}
+
+void BlimpClientContextImpl::ConnectWithAssignment(
+ AssignmentSource::Result result,
+ const Assignment& assignment) {
+ OnAssignmentConnectionAttempted(result, assignment);
+
+ if (result != AssignmentSource::Result::RESULT_OK) {
+ LOG(ERROR) << "Assignment failed, reason: " << result;
+ return;
+ }
+
+ VLOG(1) << "Assignment succeeded";
Kevin M 2016/08/04 17:44:17 How about VLOGging all result values at the top?
nyquist 2016/08/05 21:22:38 Done.
+
+ io_thread_task_runner_->PostTask(
+ FROM_HERE,
+ base::Bind(&ClientNetworkComponents::ConnectWithAssignment,
+ base::Unretained(net_components_.get()), assignment));
+}
+
+void BlimpClientContextImpl::OnAssignmentConnectionAttempted(
David Trainor- moved to gerrit 2016/08/04 16:15:51 Should this actually hit the native delegate?
+ AssignmentSource::Result result,
+ const Assignment& assignment) {}
+
} // namespace client
} // namespace blimp

Powered by Google App Engine
This is Rietveld 408576698