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..db412136e17354b903cc1018a3d4bcf41bd6f64c 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); |
+ } |
+ |
+ // Note that we can't unescape spaces here, because if the user copies this |
nyquist
2014/08/11 20:35:48
I believe this is about net::FormatUrl, not the pa
sunangel
2014/08/12 01:54:39
Done.
|
+ // and pastes it into another program, that program may think the URL ends at |
+ // the space. |
+ if (url.spec().length() > content::kMaxURLDisplayChars) |
+ url = url.IsStandard() ? url.GetOrigin() : GURL(url.scheme() + ":"); |
+ |
+ base::string16 formatted_url = net::FormatUrl(url, |
+ languages, |
+ net::kFormatUrlOmitAll, |
+ net::UnescapeRule::NORMAL, |
+ NULL, |
+ NULL, |
+ NULL); |
+ base::android::ScopedJavaLocalRef<jstring> j_formatted_url = |
nyquist
2014/08/11 20:35:48
Is it possible to just
return base::android::Conve
sunangel
2014/08/12 01:54:39
Done.
|
+ base::android::ConvertUTF16ToJavaString(env, formatted_url); |
+ return j_formatted_url.Release(); |
+} |
+ |
} // namespace android |
bool RegisterDomDistillerTabUtils(JNIEnv* env) { |