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

Side by Side Diff: remoting/client/jni/chromoting_jni_runtime.cc

Issue 2643483003: [Remoting Android] Refactor ClientTelemetryLogger (Closed)
Patch Set: PTAL Created 3 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "remoting/client/jni/chromoting_jni_runtime.h" 5 #include "remoting/client/jni/chromoting_jni_runtime.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_array.h" 8 #include "base/android/jni_array.h"
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "base/android/library_loader/library_loader_hooks.h" 10 #include "base/android/library_loader/library_loader_hooks.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 static void LoadNative(JNIEnv* env, const JavaParamRef<jclass>& clazz) { 42 static void LoadNative(JNIEnv* env, const JavaParamRef<jclass>& clazz) {
43 base::CommandLine::Init(0, nullptr); 43 base::CommandLine::Init(0, nullptr);
44 44
45 // Create the singleton now so that the Chromoting threads will be set up. 45 // Create the singleton now so that the Chromoting threads will be set up.
46 remoting::ChromotingJniRuntime::GetInstance(); 46 remoting::ChromotingJniRuntime::GetInstance();
47 } 47 }
48 48
49 static void HandleAuthTokenOnNetworkThread(const std::string& token) { 49 static void HandleAuthTokenOnNetworkThread(const std::string& token) {
50 ChromotingJniRuntime* runtime = remoting::ChromotingJniRuntime::GetInstance(); 50 ChromotingJniRuntime* runtime = remoting::ChromotingJniRuntime::GetInstance();
51 DCHECK(runtime->network_task_runner()->BelongsToCurrentThread()); 51 DCHECK(runtime->network_task_runner()->BelongsToCurrentThread());
52 runtime->logger()->SetAuthToken(token); 52 runtime->GetLogWriter()->SetAuthToken(token);
53 } 53 }
54 54
55 static void OnAuthTokenFetched(JNIEnv* env, 55 static void OnAuthTokenFetched(JNIEnv* env,
56 const JavaParamRef<jclass>& clazz, 56 const JavaParamRef<jclass>& clazz,
57 const JavaParamRef<jstring>& token) { 57 const JavaParamRef<jstring>& token) {
58 ChromotingJniRuntime* runtime = remoting::ChromotingJniRuntime::GetInstance(); 58 ChromotingJniRuntime* runtime = remoting::ChromotingJniRuntime::GetInstance();
59 runtime->network_task_runner()->PostTask( 59 runtime->network_task_runner()->PostTask(
60 FROM_HERE, base::Bind(&HandleAuthTokenOnNetworkThread, 60 FROM_HERE, base::Bind(&HandleAuthTokenOnNetworkThread,
61 ConvertJavaStringToUTF8(env, token))); 61 ConvertJavaStringToUTF8(env, token)));
62 } 62 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 base::Unretained(this), &done_event)); 103 base::Unretained(this), &done_event));
104 done_event.Wait(); 104 done_event.Wait();
105 display_task_runner()->PostTask( 105 display_task_runner()->PostTask(
106 FROM_HERE, base::Bind(&ChromotingJniRuntime::DetachFromVmAndSignal, 106 FROM_HERE, base::Bind(&ChromotingJniRuntime::DetachFromVmAndSignal,
107 base::Unretained(this), &done_event)); 107 base::Unretained(this), &done_event));
108 done_event.Wait(); 108 done_event.Wait();
109 base::android::LibraryLoaderExitHook(); 109 base::android::LibraryLoaderExitHook();
110 base::android::DetachFromVM(); 110 base::android::DetachFromVM();
111 } 111 }
112 112
113 TelemetryLogWriter* ChromotingJniRuntime::GetLogWriter() {
114 DCHECK(runtime_->network_task_runner()->BelongsToCurrentThread());
115 return log_writer_.get();
116 }
117
113 void ChromotingJniRuntime::FetchAuthToken() { 118 void ChromotingJniRuntime::FetchAuthToken() {
114 if (!ui_task_runner()->BelongsToCurrentThread()) { 119 if (!ui_task_runner()->BelongsToCurrentThread()) {
115 ui_task_runner()->PostTask( 120 ui_task_runner()->PostTask(
116 FROM_HERE, base::Bind(&ChromotingJniRuntime::FetchAuthToken, 121 FROM_HERE, base::Bind(&ChromotingJniRuntime::FetchAuthToken,
117 base::Unretained(this))); 122 base::Unretained(this)));
118 return; 123 return;
119 } 124 }
120 JNIEnv* env = base::android::AttachCurrentThread(); 125 JNIEnv* env = base::android::AttachCurrentThread();
121 126
122 Java_JniInterface_fetchAuthToken(env); 127 Java_JniInterface_fetchAuthToken(env);
123 } 128 }
124 129
125 void ChromotingJniRuntime::DetachFromVmAndSignal(base::WaitableEvent* waiter) { 130 void ChromotingJniRuntime::DetachFromVmAndSignal(base::WaitableEvent* waiter) {
126 base::android::DetachFromVM(); 131 base::android::DetachFromVM();
127 waiter->Signal(); 132 waiter->Signal();
128 } 133 }
129 134
130 void ChromotingJniRuntime::StartLoggerOnNetworkThread() { 135 void ChromotingJniRuntime::StartLoggerOnNetworkThread() {
131 DCHECK(network_task_runner()->BelongsToCurrentThread()); 136 DCHECK(network_task_runner()->BelongsToCurrentThread());
132 logger_.reset(new ClientTelemetryLogger(ChromotingEvent::Mode::ME2ME)); 137 log_writer_.reset(new TelemetryLogWriter(
133 logger_->Start( 138 kTelemetryBaseUrl,
134 base::MakeUnique<ChromiumUrlRequestFactory>(runtime_->url_requester()), 139 base::MakeUnique<ChromiumUrlRequestFactory>(runtime_->url_requester())));
135 kTelemetryBaseUrl); 140 log_writer_->SetAuthClosure(
136 logger_->SetAuthClosure(
137 base::Bind(&ChromotingJniRuntime::FetchAuthToken, 141 base::Bind(&ChromotingJniRuntime::FetchAuthToken,
138 base::Unretained(this))); 142 base::Unretained(this)));
139 } 143 }
140 144
141 } // namespace remoting 145 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/client/jni/chromoting_jni_runtime.h ('k') | remoting/client/jni/connect_to_host_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698