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..beca69efbd45f5575a420f30c107e43de8ae1f78 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,32 @@ void DistillCurrentPageAndView(JNIEnv* env, |
::DistillCurrentPageAndView(web_contents); |
} |
+jstring GetFormattedUrlFromOriginalDistillerUrl(JNIEnv* env, |
nyquist
2014/08/08 22:21:54
Could you instead use ScopedJavaLocalRef<jstring>?
sunangel
2014/08/09 01:34:09
Done.
|
+ 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 |
+ // 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); |
+ return base::android::ConvertUTF16ToJavaString(env, formatted_url).Release(); |
+} |
+ |
} // namespace android |
bool RegisterDomDistillerTabUtils(JNIEnv* env) { |