Chromium Code Reviews| Index: chrome/browser/dom_distiller/tab_utils_android.cc |
| diff --git a/chrome/browser/dom_distiller/tab_utils_android.cc b/chrome/browser/dom_distiller/tab_utils_android.cc |
| index 805f7e3657fef83d1b79e0bfa997da0efa4ad1ce..93771c8ef77d9428b79e0a81826ecc2ac22639fc 100644 |
| --- a/chrome/browser/dom_distiller/tab_utils_android.cc |
| +++ b/chrome/browser/dom_distiller/tab_utils_android.cc |
| @@ -6,9 +6,17 @@ |
| #include <string> |
| +#include "base/android/jni_string.h" |
| +#include "base/prefs/pref_service.h" |
| #include "chrome/browser/dom_distiller/tab_utils.h" |
| +#include "chrome/browser/profiles/profile.h" |
| +#include "chrome/browser/profiles/profile_manager.h" |
| +#include "chrome/common/pref_names.h" |
| #include "content/public/browser/web_contents.h" |
| +#include "content/public/common/content_constants.h" |
| #include "jni/DomDistillerTabUtils_jni.h" |
| +#include "net/base/net_util.h" |
| +#include "url/gurl.h" |
| namespace android { |
| @@ -20,6 +28,34 @@ void DistillCurrentPageAndView(JNIEnv* env, |
| ::DistillCurrentPageAndView(web_contents); |
| } |
| +jstring GetFormattedUrlFromOriginalDistillerUrl(JNIEnv* env, |
| + jclass clazz, |
| + jstring j_url) { |
| + GURL url(base::android::ConvertJavaStringToUTF8(env, j_url)); |
| + Profile* profile = ProfileManager::GetLastUsedProfile(); |
| + std::string languages; // Empty if Profile cannot be retrieved. |
| + if (profile) { |
| + languages = profile->GetPrefs()->GetString(prefs::kAcceptLanguages); |
| + } |
| + |
| + if (url.spec().length() > content::kMaxURLDisplayChars) |
| + url = url.IsStandard() ? url.GetOrigin() : GURL(url.scheme() + ":"); |
| + // Note that we can't unescape spaces here, because if the user copies this |
|
robliao
2014/08/10 02:16:50
The comment should immediately precede the discuss
sunangel
2014/08/11 15:28:48
Done.
|
| + // and pastes it into another program, that program may think the URL ends at |
| + // the space. |
| + |
| + base::string16 formatted_url = net::FormatUrl(url, |
| + languages, |
| + net::kFormatUrlOmitAll, |
| + net::UnescapeRule::NORMAL, |
| + NULL, |
| + NULL, |
| + NULL); |
| + base::android::ScopedJavaLocalRef<jstring> j_formatted_url = |
| + base::android::ConvertUTF16ToJavaString(env, formatted_url); |
| + return j_formatted_url.Release(); |
| +} |
| + |
| } // namespace android |
| bool RegisterDomDistillerTabUtils(JNIEnv* env) { |