Index: components/password_manager/core/browser/password_ui_utils.cc |
diff --git a/components/password_manager/core/browser/password_ui_utils.cc b/components/password_manager/core/browser/password_ui_utils.cc |
index d30e28b55e6cf79891d2891fc48a65a22415fe41..93ba4269aaacab05ee11a3fe4d62660a30494a64 100644 |
--- a/components/password_manager/core/browser/password_ui_utils.cc |
+++ b/components/password_manager/core/browser/password_ui_utils.cc |
@@ -19,20 +19,39 @@ namespace { |
// The URL prefixes that are removed from shown origin. |
const char* const kRemovedPrefixes[] = {"m.", "mobile.", "www."}; |
+// The suffix for shown origins of Android credentials. |
+// Since the string will be reversed for RTL direction, the string starts with |
+// closed bracket and ends with open bracket. |
+const char* const kAndroidCredentialSuffix = " )Android("; |
+ |
} // namespace |
-std::string GetShownOrigin(const autofill::PasswordForm& password_form, |
- const std::string& languages, |
- bool* is_android_uri) { |
- DCHECK(is_android_uri != nullptr); |
+std::string GetShownOriginAndLinkUrl( |
+ const autofill::PasswordForm& password_form, |
+ const std::string& languages, |
+ GURL* link_url, |
+ bool* origin_is_clickable) { |
+ DCHECK(origin_is_clickable); |
+ DCHECK(link_url); |
password_manager::FacetURI facet_uri = |
password_manager::FacetURI::FromPotentiallyInvalidSpec( |
password_form.signon_realm); |
- *is_android_uri = facet_uri.IsValidAndroidFacetURI(); |
- if (*is_android_uri) |
- return GetHumanReadableOriginForAndroidUri(facet_uri); |
- |
+ bool is_android_uri = facet_uri.IsValidAndroidFacetURI(); |
+ if (is_android_uri) { |
+ if (password_form.affiliated_web_realm.empty()) { |
+ *origin_is_clickable = false; |
+ *link_url = GURL(password_form.signon_realm); |
+ return GetHumanReadableOriginForAndroidUri(facet_uri); |
+ } else { |
+ *origin_is_clickable = true; |
+ *link_url = GURL(password_form.affiliated_web_realm); |
+ return GetShownOrigin(*link_url, languages) + |
+ std::string(kAndroidCredentialSuffix); |
+ } |
+ } |
+ *origin_is_clickable = true; |
+ *link_url = password_form.origin; |
return GetShownOrigin(password_form.origin, languages); |
} |