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

Unified Diff: content/browser/android/content_util.cc

Issue 10536066: android content shell bringup. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync and merge Created 8 years, 6 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
« no previous file with comments | « content/browser/android/content_util.h ('k') | content/browser/android/content_view_client.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/android/content_util.cc
diff --git a/content/browser/android/content_util.cc b/content/browser/android/content_util.cc
new file mode 100644
index 0000000000000000000000000000000000000000..0169cfcfefca70ba1a100211df3ffde8d7a77c0d
--- /dev/null
+++ b/content/browser/android/content_util.cc
@@ -0,0 +1,81 @@
+// Copyright (c) 2012 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 "content/browser/android/content_util.h"
+
+#include "base/android/jni_android.h"
+#include "base/android/jni_array.h"
+#include "base/android/jni_string.h"
+#include "content/browser/web_contents/web_contents_impl.h"
+
+using base::android::AppendJavaStringArrayToStringVector;
+using base::android::CheckException;
+using base::android::ConvertJavaStringToUTF8;
+using base::android::ConvertJavaStringToUTF16;
+using base::android::ConvertUTF8ToJavaString;
+using base::android::ConvertUTF16ToJavaString;
+using base::android::GetClass;
+using base::android::GetFieldID;
+using base::android::GetMethodID;
+using base::android::JavaRef;
+using base::android::ScopedJavaLocalRef;
+using base::android::ToJavaArrayOfStrings;
+
+namespace {
+
+const char kFileChooserParamsClassName[] =
+ "org/chromium/content/browser/FileChooserParams";
+
+}
+
+namespace content {
+
+ScopedJavaLocalRef<jobject> ToJavaFileChooserParams(
+ JNIEnv* env, const FileChooserParams& file_chooser_params) {
+ ScopedJavaLocalRef<jclass> clazz = GetClass(env, kFileChooserParamsClassName);
+ jmethodID constructor_id = GetMethodID(env, clazz, "<init>",
+ "(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;"
+ "Ljava/lang/String;)V");
+
+ ScopedJavaLocalRef<jstring> title =
+ ConvertUTF16ToJavaString(env, file_chooser_params.title);
+ ScopedJavaLocalRef<jstring> default_file_name =
+ ConvertUTF8ToJavaString(env,
+ file_chooser_params.default_file_name.value());
+ ScopedJavaLocalRef<jobjectArray> accept_types =
+ ToJavaArrayOfStrings(env, file_chooser_params.accept_types);
+ ScopedJavaLocalRef<jstring> capture =
+ ConvertUTF16ToJavaString(env, file_chooser_params.capture);
+
+ ScopedJavaLocalRef<jobject> java_params(env,
+ env->NewObject(clazz.obj(),
+ constructor_id,
+ static_cast<jint>(file_chooser_params.mode),
+ title.obj(),
+ default_file_name.obj(),
+ accept_types.obj(),
+ capture.obj()));
+ CheckException(env);
+
+ return java_params;
+}
+
+FileChooserParams ToNativeFileChooserParams(
+ JNIEnv* env, jint mode, jstring title, jstring default_file,
+ jobjectArray accept_types, jstring capture) {
+ FileChooserParams file_chooser_params;
+ file_chooser_params.mode =
+ static_cast<FileChooserParams::Mode>(mode);
+ file_chooser_params.title = ConvertJavaStringToUTF16(env, title);
+ file_chooser_params.default_file_name =
+ FilePath(ConvertJavaStringToUTF8(env, default_file));
+ AppendJavaStringArrayToStringVector(env, accept_types,
+ &file_chooser_params.accept_types);
+ file_chooser_params.capture = ConvertJavaStringToUTF16(env, capture);
+
+ return file_chooser_params;
+}
+
+} // namespace content
+
« no previous file with comments | « content/browser/android/content_util.h ('k') | content/browser/android/content_view_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698