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

Unified Diff: components/secure_display/elide_url.cc

Issue 1233313005: Move elide_url to its own component (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: move to static library Created 5 years, 5 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: components/secure_display/elide_url.cc
diff --git a/chrome/browser/ui/elide_url.cc b/components/secure_display/elide_url.cc
similarity index 87%
rename from chrome/browser/ui/elide_url.cc
rename to components/secure_display/elide_url.cc
index b5c7ca6e67fdd248719846556e1fa787fb2a1f33..ec4d65a38069b48dc2e9f1a165d7c6441ccc715f 100644
--- a/chrome/browser/ui/elide_url.cc
+++ b/components/secure_display/elide_url.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/ui/elide_url.h"
+#include "components/secure_display/elide_url.h"
#include "base/logging.h"
#include "base/strings/string_split.h"
@@ -23,6 +23,7 @@ using gfx::kForwardSlash;
namespace {
+#if !defined(OS_ANDROID)
const base::char16 kDot = '.';
// Build a path from the first |num_components| elements in |path_elements|.
@@ -61,8 +62,8 @@ base::string16 ElideComponentizedPath(
CHECK(url_path_number_of_elements);
for (size_t i = url_path_number_of_elements - 1; i > 0; --i) {
- base::string16 elided_path = BuildPathFromComponents(url_path_prefix,
- url_path_elements, url_filename, i);
+ base::string16 elided_path = BuildPathFromComponents(
+ url_path_prefix, url_path_elements, url_filename, i);
if (available_pixel_width >= GetStringWidthF(elided_path, font_list))
return ElideText(elided_path + url_query, font_list,
available_pixel_width, gfx::ELIDE_TAIL);
@@ -81,8 +82,8 @@ void SplitHost(const GURL& url,
*url_host = UTF8ToUTF16(url.host());
// Get domain and registry information from the URL.
- *url_domain = UTF8ToUTF16(
- net::registry_controlled_domains::GetDomainAndRegistry(
+ *url_domain =
+ UTF8ToUTF16(net::registry_controlled_domains::GetDomainAndRegistry(
url, net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES));
if (url_domain->empty())
*url_domain = *url_host;
@@ -99,13 +100,18 @@ void SplitHost(const GURL& url,
if (domain_start_index != base::string16::npos)
*url_subdomain = url_host->substr(0, domain_start_index);
if ((*url_subdomain == kWwwPrefix || url_subdomain->empty() ||
- url.SchemeIsFile())) {
+ url.SchemeIsFile())) {
url_subdomain->clear();
}
}
+#endif // !defined(OS_ANDROID)
} // namespace
+namespace secure_display {
+
+#if !defined(OS_ANDROID)
+
// TODO(pkasting): http://crbug.com/77883 This whole function gets
// kerning/ligatures/etc. issues potentially wrong by assuming that the width of
// a rendered string is always the sum of the widths of its substrings. Also I
@@ -171,10 +177,9 @@ base::string16 ElideUrl(const GURL& url,
// Second Pass - remove scheme - the rest fits.
const float pixel_width_url_host = GetStringWidthF(url_host, font_list);
- const float pixel_width_url_path = GetStringWidthF(url_path_query_etc,
- font_list);
- if (available_pixel_width >=
- pixel_width_url_host + pixel_width_url_path)
+ const float pixel_width_url_path =
+ GetStringWidthF(url_path_query_etc, font_list);
+ if (available_pixel_width >= pixel_width_url_host + pixel_width_url_path)
return url_host + url_path_query_etc;
// Third Pass: Subdomain, domain and entire path fits.
@@ -182,14 +187,13 @@ base::string16 ElideUrl(const GURL& url,
const float pixel_width_url_subdomain =
GetStringWidthF(url_subdomain, font_list);
if (available_pixel_width >=
- pixel_width_url_subdomain + pixel_width_url_domain +
- pixel_width_url_path)
+ pixel_width_url_subdomain + pixel_width_url_domain + pixel_width_url_path)
return url_subdomain + url_domain + url_path_query_etc;
// Query element.
base::string16 url_query;
- const float kPixelWidthDotsTrailer = GetStringWidthF(
- base::string16(kEllipsisUTF16), font_list);
+ const float kPixelWidthDotsTrailer =
+ GetStringWidthF(base::string16(kEllipsisUTF16), font_list);
if (parsed.query.is_nonempty()) {
url_query = UTF8ToUTF16("?") + url_string.substr(parsed.query.begin);
if (available_pixel_width >=
@@ -201,9 +205,9 @@ base::string16 ElideUrl(const GURL& url,
}
// Parse url_path using '/'.
- std::vector<base::string16> url_path_elements = base::SplitString(
- url_path, base::string16(1, kForwardSlash),
- base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
+ std::vector<base::string16> url_path_elements =
+ base::SplitString(url_path, base::string16(1, kForwardSlash),
+ base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
// Get filename - note that for a path ending with /
// such as www.google.com/intl/ads/, the file name is ads/.
@@ -213,8 +217,8 @@ base::string16 ElideUrl(const GURL& url,
if (url_filename.empty() && (url_path_number_of_elements > 1)) {
// Path ends with a '/'.
--url_path_number_of_elements;
- url_filename = url_path_elements[url_path_number_of_elements - 1] +
- kForwardSlash;
+ url_filename =
+ url_path_elements[url_path_number_of_elements - 1] + kForwardSlash;
}
const size_t kMaxNumberOfUrlPathElementsAllowed = 1024;
@@ -233,10 +237,9 @@ base::string16 ElideUrl(const GURL& url,
GetStringWidthF(kEllipsisAndSlash, font_list);
// Check with both subdomain and domain.
- base::string16 elided_path =
- ElideComponentizedPath(url_subdomain + url_domain, url_path_elements,
- url_filename, url_query, font_list,
- available_pixel_width);
+ base::string16 elided_path = ElideComponentizedPath(
+ url_subdomain + url_domain, url_path_elements, url_filename, url_query,
+ font_list, available_pixel_width);
if (!elided_path.empty())
return elided_path;
@@ -262,15 +265,15 @@ base::string16 ElideUrl(const GURL& url,
// Return elided domain/.../filename anyway.
base::string16 final_elided_url_string(url_elided_domain);
- const float url_elided_domain_width = GetStringWidthF(url_elided_domain,
- font_list);
+ const float url_elided_domain_width =
+ GetStringWidthF(url_elided_domain, font_list);
// A hack to prevent trailing ".../...".
if ((available_pixel_width - url_elided_domain_width) >
pixel_width_ellipsis_slash + kPixelWidthDotsTrailer +
- GetStringWidthF(base::ASCIIToUTF16("UV"), font_list)) {
- final_elided_url_string += BuildPathFromComponents(base::string16(),
- url_path_elements, url_filename, 1);
+ GetStringWidthF(base::ASCIIToUTF16("UV"), font_list)) {
+ final_elided_url_string += BuildPathFromComponents(
+ base::string16(), url_path_elements, url_filename, 1);
} else {
final_elided_url_string += url_path;
}
@@ -299,11 +302,13 @@ base::string16 ElideHost(const GURL& url,
if (subdomain_width <= 0)
return base::string16(kEllipsisUTF16) + kDot + url_domain;
- const base::string16 elided_subdomain = ElideText(
- url_subdomain, font_list, subdomain_width, gfx::ELIDE_HEAD);
+ const base::string16 elided_subdomain =
+ ElideText(url_subdomain, font_list, subdomain_width, gfx::ELIDE_HEAD);
return elided_subdomain + url_domain;
}
+#endif // !defined(OS_ANDROID)
+
base::string16 FormatUrlForSecurityDisplay(const GURL& url,
const std::string& languages) {
if (!url.is_valid() || url.is_empty() || !url.IsStandard())
@@ -338,10 +343,11 @@ base::string16 FormatUrlForSecurityDisplay(const GURL& url,
result += base::UTF8ToUTF16(host);
const int port = origin.IntPort();
- const int default_port = url::DefaultPortForScheme(origin.scheme().c_str(),
- origin.scheme().length());
+ const int default_port = url::DefaultPortForScheme(
+ scheme.c_str(), static_cast<int>(scheme.length()));
if (port != url::PORT_UNSPECIFIED && port != default_port)
result += colon + base::UTF8ToUTF16(origin.port());
return result;
}
+} // namespace secure_display

Powered by Google App Engine
This is Rietveld 408576698