Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(626)

Unified Diff: chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm

Issue 2641003002: Show scheme in black and content in gray for data: protocol urls (Closed)
Patch Set: Address review feedback Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm
diff --git a/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm b/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm
index cd2b95faefb8470578fb8128da5b00a47359f88f..00f0b4fac6f8d573711ddd6a31eae412d6846888 100644
--- a/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm
+++ b/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm
@@ -563,29 +563,52 @@ void OmniboxViewMac::ApplyTextAttributes(
value:@"en_US_POSIX"
range:as_entire_string];
- [attributedString addAttribute:NSForegroundColorAttributeName
- value:HostTextColor(in_dark_mode)
- range:as_entire_string];
-
url::Component scheme, host;
AutocompleteInput::ParseForEmphasizeComponents(
display_text, ChromeAutocompleteSchemeClassifier(profile_), &scheme,
&host);
- bool grey_out_url = display_text.substr(scheme.begin, scheme.len) ==
- base::UTF8ToUTF16(extensions::kExtensionScheme);
- if (model()->CurrentTextIsURL() &&
- (host.is_nonempty() || grey_out_url)) {
- [attributedString addAttribute:NSForegroundColorAttributeName
- value:BaseTextColor(in_dark_mode)
- range:as_entire_string];
- if (!grey_out_url) {
- [attributedString addAttribute:NSForegroundColorAttributeName
- value:HostTextColor(in_dark_mode)
- range:ComponentToNSRange(host)];
- }
+ const base::string16 url_scheme =
+ display_text.substr(scheme.begin, scheme.len);
+
+ // As needed, deemphasize parts of the URL to draw attention to
+ // whatever best represents the "identity" of the URL.
+ enum Deemphasize {
+ EVERYTHING,
+ ALL_BUT_SCHEME,
+ ALL_BUT_HOST,
+ NOTHING,
+ } deemphasize = NOTHING;
+
+ if (model()->CurrentTextIsURL()) {
+ // Extension IDs are not human-readable, so deemphasize everything to draw
+ // attention to the human-readable name in the location icon text.
+ if (url_scheme == base::UTF8ToUTF16(extensions::kExtensionScheme))
+ deemphasize = EVERYTHING;
+ // Data URLs are rarely human-readable and can be used for spoofing, so draw
+ // attention to the scheme to emphasize "this is just a bunch of data".
+ else if (url_scheme == base::UTF8ToUTF16(url::kDataScheme))
+ deemphasize = ALL_BUT_SCHEME;
+ // For normal URLs, the host is the best proxy for "identity".
+ else if (host.is_nonempty())
+ deemphasize = ALL_BUT_HOST;
}
+ [attributedString
+ addAttribute:NSForegroundColorAttributeName
+ value:(deemphasize == NOTHING) ? HostTextColor(in_dark_mode)
+ : BaseTextColor(in_dark_mode)
+ range:as_entire_string];
+
+ if (deemphasize == ALL_BUT_SCHEME)
Peter Kasting 2017/02/23 01:30:43 Nit: {}
+ [attributedString addAttribute:NSForegroundColorAttributeName
+ value:HostTextColor(in_dark_mode)
+ range:ComponentToNSRange(scheme)];
+ else if (deemphasize == ALL_BUT_HOST)
+ [attributedString addAttribute:NSForegroundColorAttributeName
+ value:HostTextColor(in_dark_mode)
+ range:ComponentToNSRange(host)];
+
// TODO(shess): GTK has this as a member var, figure out why.
// [Could it be to not change if no change? If so, I'm guessing
// AppKit may already handle that.]

Powered by Google App Engine
This is Rietveld 408576698