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

Side by Side Diff: chrome/browser/ui/toolbar/toolbar_model_impl.cc

Issue 302453002: New animation for the origin chip URL showing/hiding. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix test failure by checking for NULL extension Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/toolbar/toolbar_model_impl.h" 5 #include "chrome/browser/ui/toolbar/toolbar_model_impl.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/browser/autocomplete/autocomplete_classifier.h" 10 #include "chrome/browser/autocomplete/autocomplete_classifier.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 content::CertStore::GetInstance()->RetrieveCert(ssl.cert_id, NULL)) 88 content::CertStore::GetInstance()->RetrieveCert(ssl.cert_id, NULL))
89 return EV_SECURE; 89 return EV_SECURE;
90 return SECURE; 90 return SECURE;
91 } 91 }
92 default: 92 default:
93 NOTREACHED(); 93 NOTREACHED();
94 return NONE; 94 return NONE;
95 } 95 }
96 } 96 }
97 97
98 // static
99 base::string16 ToolbarModelImpl::GetEVCertName(
100 const net::X509Certificate& cert) {
101 // EV are required to have an organization name and country.
102 DCHECK(!cert.subject().organization_names.empty());
103 DCHECK(!cert.subject().country_name.empty());
104
105 return l10n_util::GetStringFUTF16(
106 IDS_SECURE_CONNECTION_EV,
107 base::UTF8ToUTF16(cert.subject().organization_names[0]),
108 base::UTF8ToUTF16(cert.subject().country_name));
109 }
110
111 // ToolbarModelImpl Implementation. 98 // ToolbarModelImpl Implementation.
112 base::string16 ToolbarModelImpl::GetText() const { 99 base::string16 ToolbarModelImpl::GetText() const {
113 base::string16 search_terms(GetSearchTerms(false)); 100 base::string16 search_terms(GetSearchTerms(false));
114 if (!search_terms.empty()) 101 if (!search_terms.empty())
115 return search_terms; 102 return search_terms;
116 103
117 if (WouldOmitURLDueToOriginChip()) 104 if (WouldOmitURLDueToOriginChip())
118 return base::string16(); 105 return base::string16();
119 106
120 return GetFormattedURL(); 107 return GetFormattedURL(NULL);
121 } 108 }
122 109
123 base::string16 ToolbarModelImpl::GetFormattedURL() const { 110 base::string16 ToolbarModelImpl::GetFormattedURL(size_t* prefix_end) const {
124 std::string languages; // Empty if we don't have a |navigation_controller|. 111 std::string languages; // Empty if we don't have a |navigation_controller|.
125 Profile* profile = GetProfile(); 112 Profile* profile = GetProfile();
126 if (profile) 113 if (profile)
127 languages = profile->GetPrefs()->GetString(prefs::kAcceptLanguages); 114 languages = profile->GetPrefs()->GetString(prefs::kAcceptLanguages);
128 115
129 GURL url(GetURL()); 116 GURL url(GetURL());
130 if (url.spec().length() > content::kMaxURLDisplayChars) 117 if (url.spec().length() > content::kMaxURLDisplayChars)
131 url = url.IsStandard() ? url.GetOrigin() : GURL(url.scheme() + ":"); 118 url = url.IsStandard() ? url.GetOrigin() : GURL(url.scheme() + ":");
132 // Note that we can't unescape spaces here, because if the user copies this 119 // Note that we can't unescape spaces here, because if the user copies this
133 // and pastes it into another program, that program may think the URL ends at 120 // and pastes it into another program, that program may think the URL ends at
134 // the space. 121 // the space.
135 return AutocompleteInput::FormattedStringWithEquivalentMeaning( 122 return AutocompleteInput::FormattedStringWithEquivalentMeaning(
136 url, net::FormatUrl(url, languages, net::kFormatUrlOmitAll, 123 url, net::FormatUrl(url, languages, net::kFormatUrlOmitAll,
137 net::UnescapeRule::NORMAL, NULL, NULL, NULL)); 124 net::UnescapeRule::NORMAL, NULL, prefix_end, NULL));
138 } 125 }
139 126
140 base::string16 ToolbarModelImpl::GetCorpusNameForMobile() const { 127 base::string16 ToolbarModelImpl::GetCorpusNameForMobile() const {
141 if (!WouldPerformSearchTermReplacement(false)) 128 if (!WouldPerformSearchTermReplacement(false))
142 return base::string16(); 129 return base::string16();
143 GURL url(GetURL()); 130 GURL url(GetURL());
144 // If there is a query in the url fragment look for the corpus name there, 131 // If there is a query in the url fragment look for the corpus name there,
145 // otherwise look for the corpus name in the query parameters. 132 // otherwise look for the corpus name in the query parameters.
146 const std::string& query_str(google_util::HasGoogleSearchQueryParam( 133 const std::string& query_str(google_util::HasGoogleSearchQueryParam(
147 url.ref()) ? url.ref() : url.query()); 134 url.ref()) ? url.ref() : url.query());
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 IDR_OMNIBOX_HTTPS_VALID, 187 IDR_OMNIBOX_HTTPS_VALID,
201 IDR_OMNIBOX_HTTPS_WARNING, 188 IDR_OMNIBOX_HTTPS_WARNING,
202 IDR_OMNIBOX_HTTPS_POLICY_WARNING, 189 IDR_OMNIBOX_HTTPS_POLICY_WARNING,
203 IDR_OMNIBOX_HTTPS_INVALID, 190 IDR_OMNIBOX_HTTPS_INVALID,
204 }; 191 };
205 DCHECK(arraysize(icon_ids) == NUM_SECURITY_LEVELS); 192 DCHECK(arraysize(icon_ids) == NUM_SECURITY_LEVELS);
206 return icon_ids[level]; 193 return icon_ids[level];
207 } 194 }
208 195
209 base::string16 ToolbarModelImpl::GetEVCertName() const { 196 base::string16 ToolbarModelImpl::GetEVCertName() const {
210 DCHECK_EQ(EV_SECURE, GetSecurityLevel(false)); 197 if (GetSecurityLevel(false) != EV_SECURE)
211 scoped_refptr<net::X509Certificate> cert; 198 return base::string16();
199
212 // Note: Navigation controller and active entry are guaranteed non-NULL or 200 // Note: Navigation controller and active entry are guaranteed non-NULL or
213 // the security level would be NONE. 201 // the security level would be NONE.
202 scoped_refptr<net::X509Certificate> cert;
214 content::CertStore::GetInstance()->RetrieveCert( 203 content::CertStore::GetInstance()->RetrieveCert(
215 GetNavigationController()->GetVisibleEntry()->GetSSL().cert_id, &cert); 204 GetNavigationController()->GetVisibleEntry()->GetSSL().cert_id, &cert);
216 return GetEVCertName(*cert.get()); 205
206 // EV are required to have an organization name and country.
207 DCHECK(!cert->subject().organization_names.empty());
208 DCHECK(!cert->subject().country_name.empty());
209 return l10n_util::GetStringFUTF16(
210 IDS_SECURE_CONNECTION_EV,
211 base::UTF8ToUTF16(cert->subject().organization_names[0]),
212 base::UTF8ToUTF16(cert->subject().country_name));
217 } 213 }
218 214
219 bool ToolbarModelImpl::ShouldDisplayURL() const { 215 bool ToolbarModelImpl::ShouldDisplayURL() const {
220 // Note: The order here is important. 216 // Note: The order here is important.
221 // - The WebUI test must come before the extension scheme test because there 217 // - The WebUI test must come before the extension scheme test because there
222 // can be WebUIs that have extension schemes (e.g. the bookmark manager). In 218 // can be WebUIs that have extension schemes (e.g. the bookmark manager). In
223 // that case, we should prefer what the WebUI instance says. 219 // that case, we should prefer what the WebUI instance says.
224 // - The view-source test must come before the NTP test because of the case 220 // - The view-source test must come before the NTP test because of the case
225 // of view-source:chrome://newtab, which should display its URL despite what 221 // of view-source:chrome://newtab, which should display its URL despite what
226 // chrome://newtab says. 222 // chrome://newtab says.
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 if (entry && 326 if (entry &&
331 google_util::StartsWithCommandLineGoogleBaseURL(entry->GetVirtualURL())) 327 google_util::StartsWithCommandLineGoogleBaseURL(entry->GetVirtualURL()))
332 return search_terms; 328 return search_terms;
333 329
334 // Otherwise, extract search terms for HTTPS pages that do not have a security 330 // Otherwise, extract search terms for HTTPS pages that do not have a security
335 // error. 331 // error.
336 ToolbarModel::SecurityLevel security_level = GetSecurityLevel(ignore_editing); 332 ToolbarModel::SecurityLevel security_level = GetSecurityLevel(ignore_editing);
337 return ((security_level == NONE) || (security_level == SECURITY_ERROR)) ? 333 return ((security_level == NONE) || (security_level == SECURITY_ERROR)) ?
338 base::string16() : search_terms; 334 base::string16() : search_terms;
339 } 335 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698