Reland "Encapsulate CSS selector declarative content condition tracking"
[chromium-blink-merge.git] / base / android / content_uri_utils.cc
blob0482feef891db38f3f6807fb9f9fba9126fcb936
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
3 // found in the LICENSE file.
5 #include "base/android/content_uri_utils.h"
7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h"
9 #include "jni/ContentUriUtils_jni.h"
11 using base::android::ConvertUTF8ToJavaString;
13 namespace base {
15 bool RegisterContentUriUtils(JNIEnv* env) {
16 return RegisterNativesImpl(env);
19 bool ContentUriExists(const FilePath& content_uri) {
20 JNIEnv* env = base::android::AttachCurrentThread();
21 ScopedJavaLocalRef<jstring> j_uri =
22 ConvertUTF8ToJavaString(env, content_uri.value());
23 return Java_ContentUriUtils_contentUriExists(
24 env, base::android::GetApplicationContext(), j_uri.obj());
27 File OpenContentUriForRead(const FilePath& content_uri) {
28 JNIEnv* env = base::android::AttachCurrentThread();
29 ScopedJavaLocalRef<jstring> j_uri =
30 ConvertUTF8ToJavaString(env, content_uri.value());
31 jint fd = Java_ContentUriUtils_openContentUriForRead(
32 env, base::android::GetApplicationContext(), j_uri.obj());
33 if (fd < 0)
34 return File();
35 return File(fd);
38 std::string GetContentUriMimeType(const FilePath& content_uri) {
39 JNIEnv* env = base::android::AttachCurrentThread();
40 ScopedJavaLocalRef<jstring> j_uri =
41 ConvertUTF8ToJavaString(env, content_uri.value());
42 ScopedJavaLocalRef<jstring> j_mime =
43 Java_ContentUriUtils_getMimeType(
44 env, base::android::GetApplicationContext(), j_uri.obj());
45 return base::android::ConvertJavaStringToUTF8(env, j_mime.obj());
48 } // namespace base