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

Unified Diff: components/devtools_bridge/test/android/client/web_client_android.cc

Issue 746663002: Stub for WebRTCDeviceProvider (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@webclient
Patch Set: Created 6 years, 1 month 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: components/devtools_bridge/test/android/client/web_client_android.cc
diff --git a/components/devtools_bridge/test/android/client/web_client_android.cc b/components/devtools_bridge/test/android/client/web_client_android.cc
index 8287a24690479744c602fc4092e1be9a3be85723..d05b31950817f31387e0c75da5046ff22c707fdf 100644
--- a/components/devtools_bridge/test/android/client/web_client_android.cc
+++ b/components/devtools_bridge/test/android/client/web_client_android.cc
@@ -4,10 +4,17 @@
#include "components/devtools_bridge/test/android/client/web_client_android.h"
+#include "base/android/jni_string.h"
+#include "base/android/scoped_java_ref.h"
+#include "base/json/json_writer.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_android.h"
#include "jni/WebClient_jni.h"
+using base::android::AttachCurrentThread;
+using base::android::ConvertJavaStringToUTF8;
+using base::android::ConvertUTF8ToJavaString;
+
namespace devtools_bridge {
namespace android {
@@ -15,16 +22,37 @@ bool WebClientAndroid::RegisterNatives(JNIEnv* env) {
return RegisterNativesImpl(env);
}
-WebClientAndroid::WebClientAndroid(Profile* profile)
+WebClientAndroid::WebClientAndroid(
+ Profile* profile, JNIEnv* env, jobject j_delegate)
: impl_(WebClient::CreateInstance(profile, this)) {
+ delegate_.Reset(env, j_delegate);
}
WebClientAndroid::~WebClientAndroid() {
}
-static jlong CreateWebClient(JNIEnv* env, jclass jcaller, jobject j_profile) {
+void WebClientAndroid::SendCommand(
+ const base::DictionaryValue* command,
+ const WebClient::CommandSuccessCallback& sucess_callback,
+ const WebClient::CommandFailureCallback& failure_callback) {
+ JNIEnv* env = AttachCurrentThread();
+ std::string json;
+ if (!base::JSONWriter::Write(command, &json)) {
mnaganov (inactive) 2014/11/21 21:19:38 I think it makes sense to serialize to JSON much e
SeRya 2014/11/24 11:10:06 Good point. Done.
+ failure_callback.Run();
+ return;
+ }
+
+ Java_WebClient_sendCommand(
+ env,
+ delegate_.obj(),
+ ConvertUTF8ToJavaString(env, json).obj());
+}
+
+static jlong CreateWebClient(
+ JNIEnv* env, jclass jcaller, jobject j_profile, jobject j_delegate) {
Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile);
- return reinterpret_cast<jlong>(new WebClientAndroid(profile));
+ return reinterpret_cast<jlong>(new WebClientAndroid(
+ profile, env, j_delegate));
}
static void DestroyWebClient(
@@ -32,5 +60,22 @@ static void DestroyWebClient(
delete reinterpret_cast<WebClientAndroid*>(web_client_ptr);
}
+static void Connect(
+ JNIEnv* env, jclass jcaller, jlong web_client_ptr, jstring device_id) {
+ reinterpret_cast<WebClientAndroid*>(web_client_ptr)->impl().Connect(
+ ConvertJavaStringToUTF8(env, device_id));
+}
+
+static void Disconnect(
+ JNIEnv* env, jclass jcaller, jlong web_client_ptr, jstring device_id) {
+ reinterpret_cast<WebClientAndroid*>(web_client_ptr)->impl().Disconnect(
+ ConvertJavaStringToUTF8(env, device_id));
+}
+
+static void DisconnectAll(
+ JNIEnv* env, jclass jcaller, jlong web_client_ptr) {
+ reinterpret_cast<WebClientAndroid*>(web_client_ptr)->impl().DisconnectAll();
+}
+
} // namespace android
} // namespace devtools_bridge

Powered by Google App Engine
This is Rietveld 408576698