1 // Copyright 2014 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 "components/dom_distiller/core/url_utils_android.h"
9 #include "base/android/jni_string.h"
10 #include "components/dom_distiller/core/url_constants.h"
11 #include "components/dom_distiller/core/url_utils.h"
12 #include "jni/DomDistillerUrlUtils_jni.h"
13 #include "net/base/url_util.h"
16 namespace dom_distiller
{
22 ScopedJavaLocalRef
<jstring
> GetDistillerViewUrlFromUrl(
24 const JavaParamRef
<jclass
>& clazz
,
25 const JavaParamRef
<jstring
>& j_scheme
,
26 const JavaParamRef
<jstring
>& j_url
) {
27 std::string
scheme(base::android::ConvertJavaStringToUTF8(env
, j_scheme
));
28 GURL
url(base::android::ConvertJavaStringToUTF8(env
, j_url
));
29 if (!url
.is_valid()) {
30 return ScopedJavaLocalRef
<jstring
>();
33 dom_distiller::url_utils::GetDistillerViewUrlFromUrl(scheme
, url
);
34 if (!view_url
.is_valid()) {
35 return ScopedJavaLocalRef
<jstring
>();
37 return base::android::ConvertUTF8ToJavaString(env
, view_url
.spec());
40 ScopedJavaLocalRef
<jstring
> GetOriginalUrlFromDistillerUrl(
42 const JavaParamRef
<jclass
>& clazz
,
43 const JavaParamRef
<jstring
>& j_url
) {
44 GURL
url(base::android::ConvertJavaStringToUTF8(env
, j_url
));
46 return ScopedJavaLocalRef
<jstring
>();
49 dom_distiller::url_utils::GetOriginalUrlFromDistillerUrl(url
);
50 if (!original_url
.is_valid())
51 return ScopedJavaLocalRef
<jstring
>();
53 return base::android::ConvertUTF8ToJavaString(env
, original_url
.spec());
56 jboolean
IsDistilledPage(JNIEnv
* env
,
57 const JavaParamRef
<jclass
>& clazz
,
58 const JavaParamRef
<jstring
>& j_url
) {
59 GURL
url(base::android::ConvertJavaStringToUTF8(env
, j_url
));
60 return dom_distiller::url_utils::IsDistilledPage(url
);
63 jboolean
IsUrlDistillable(JNIEnv
* env
,
64 const JavaParamRef
<jclass
>& clazz
,
65 const JavaParamRef
<jstring
>& j_url
) {
66 GURL
url(base::android::ConvertJavaStringToUTF8(env
, j_url
));
67 return dom_distiller::url_utils::IsUrlDistillable(url
);
70 ScopedJavaLocalRef
<jstring
> GetIsDistillableJs(
72 const JavaParamRef
<jclass
>& clazz
) {
73 return base::android::ConvertUTF8ToJavaString(
74 env
, dom_distiller::url_utils::GetIsDistillableJs());
77 ScopedJavaLocalRef
<jstring
> GetValueForKeyInUrl(
79 const JavaParamRef
<jclass
>& clazz
,
80 const JavaParamRef
<jstring
>& j_url
,
81 const JavaParamRef
<jstring
>& j_key
) {
82 GURL
url(base::android::ConvertJavaStringToUTF8(env
, j_url
));
83 std::string key
= base::android::ConvertJavaStringToUTF8(env
, j_key
);
84 return base::android::ConvertUTF8ToJavaString(
85 env
, dom_distiller::url_utils::GetValueForKeyInUrl(url
, key
));
88 bool RegisterUrlUtils(JNIEnv
* env
) { return RegisterNativesImpl(env
); }
90 } // namespace android
92 } // namespace url_utils
94 } // namespace dom_distiller