| Index: net/test/embedded_test_server/android/embedded_test_server_android.cc
|
| diff --git a/net/test/embedded_test_server/android/embedded_test_server_android.cc b/net/test/embedded_test_server/android/embedded_test_server_android.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7cca9d933fcc86495da844b07b509f8d85bbbbcb
|
| --- /dev/null
|
| +++ b/net/test/embedded_test_server/android/embedded_test_server_android.cc
|
| @@ -0,0 +1,71 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "net/test/embedded_test_server/android/embedded_test_server_android.h"
|
| +
|
| +#include "base/android/jni_string.h"
|
| +#include "base/android/scoped_java_ref.h"
|
| +#include "base/bind.h"
|
| +#include "base/files/file_path.h"
|
| +#include "base/trace_event/trace_event.h"
|
| +#include "net/test/jni/EmbeddedTestServer_jni.h"
|
| +
|
| +namespace net {
|
| +namespace test_server {
|
| +
|
| +EmbeddedTestServerAndroid::EmbeddedTestServerAndroid(JNIEnv* env, jobject jobj)
|
| + : weak_java_server_(env, jobj), test_server_() {
|
| + Java_EmbeddedTestServer_setNativePtr(env, jobj,
|
| + reinterpret_cast<intptr_t>(this));
|
| +}
|
| +
|
| +EmbeddedTestServerAndroid::~EmbeddedTestServerAndroid() {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + Java_EmbeddedTestServer_clearNativePtr(env, weak_java_server_.get(env).obj());
|
| +}
|
| +
|
| +jboolean EmbeddedTestServerAndroid::InitializeAndWaitUntilReady(JNIEnv* env,
|
| + jobject jobj) {
|
| + return test_server_.InitializeAndWaitUntilReady();
|
| +}
|
| +
|
| +jboolean EmbeddedTestServerAndroid::ShutdownAndWaitUntilComplete(JNIEnv* env,
|
| + jobject jobj) {
|
| + return test_server_.ShutdownAndWaitUntilComplete();
|
| +}
|
| +
|
| +base::android::ScopedJavaLocalRef<jstring> EmbeddedTestServerAndroid::GetURL(
|
| + JNIEnv* env,
|
| + jobject jobj,
|
| + jstring jrelative_url) const {
|
| + const GURL gurl(test_server_.GetURL(
|
| + base::android::ConvertJavaStringToUTF8(env, jrelative_url)));
|
| + return base::android::ConvertUTF8ToJavaString(env, gurl.spec());
|
| +}
|
| +
|
| +void EmbeddedTestServerAndroid::ServeFilesFromDirectory(
|
| + JNIEnv* env,
|
| + jobject jobj,
|
| + jstring jdirectory_path) {
|
| + const base::FilePath directory(
|
| + base::android::ConvertJavaStringToUTF8(env, jdirectory_path));
|
| + test_server_.ServeFilesFromDirectory(directory);
|
| +}
|
| +
|
| +void EmbeddedTestServerAndroid::Destroy(JNIEnv* env, jobject jobj) {
|
| + delete this;
|
| +}
|
| +
|
| +static void Init(JNIEnv* env, jobject jobj) {
|
| + TRACE_EVENT0("native", "EmbeddedTestServerAndroid::Init");
|
| + new EmbeddedTestServerAndroid(env, jobj);
|
| +}
|
| +
|
| +// static
|
| +bool EmbeddedTestServerAndroid::RegisterEmbeddedTestServerAndroid(JNIEnv* env) {
|
| + return RegisterNativesImpl(env);
|
| +}
|
| +
|
| +} // namespace test_server
|
| +} // namespace net
|
|
|