url: Use string_views for arguments of CanonicalizeNonSpecialURL and ReplaceNonSpecialURL
This CL has no behavior changes.
Bug: 350788890
Change-Id: I6e88b2fc2ae9a68581e1e942ea30a35a6d15bf9c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7079695
Auto-Submit: Kent Tamura <tkent@chromium.org>
Owners-Override: Hayato Ito <hayato@chromium.org>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Commit-Queue: Hayato Ito <hayato@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1535723}
NOKEYCHECK=True
GitOrigin-RevId: 5e195892afe2ebc5aa0a659cfb3623cee446d719
diff --git a/url_canon.h b/url_canon.h
index 9f3695b..396b66a 100644
--- a/url_canon.h
+++ b/url_canon.h
@@ -755,15 +755,13 @@
// Use for non-special URLs.
COMPONENT_EXPORT(URL)
-bool CanonicalizeNonSpecialURL(const char* spec,
- int spec_len,
+bool CanonicalizeNonSpecialUrl(std::string_view spec,
const Parsed& parsed,
CharsetConverter* query_converter,
CanonOutput& output,
Parsed& new_parsed);
COMPONENT_EXPORT(URL)
-bool CanonicalizeNonSpecialURL(const char16_t* spec,
- int spec_len,
+bool CanonicalizeNonSpecialUrl(std::u16string_view spec,
const Parsed& parsed,
CharsetConverter* query_converter,
CanonOutput& output,
@@ -1045,14 +1043,14 @@
// For non-special URLs.
COMPONENT_EXPORT(URL)
-bool ReplaceNonSpecialURL(const char* base,
+bool ReplaceNonSpecialUrl(std::string_view base,
const Parsed& base_parsed,
const Replacements<char>& replacements,
CharsetConverter* query_converter,
CanonOutput& output,
Parsed& new_parsed);
COMPONENT_EXPORT(URL)
-bool ReplaceNonSpecialURL(const char* base,
+bool ReplaceNonSpecialUrl(std::string_view base,
const Parsed& base_parsed,
const Replacements<char16_t>& replacements,
CharsetConverter* query_converter,
diff --git a/url_canon_non_special_url.cc b/url_canon_non_special_url.cc
index ede13b6..0daefc1 100644
--- a/url_canon_non_special_url.cc
+++ b/url_canon_non_special_url.cc
@@ -12,7 +12,7 @@
namespace {
template <typename CHAR>
-bool DoCanonicalizeNonSpecialURL(const URLComponentSource<CHAR>& source,
+bool DoCanonicalizeNonSpecialUrl(const URLComponentSource<CHAR>& source,
const Parsed& parsed,
CharsetConverter* query_converter,
CanonOutput& output,
@@ -185,8 +185,7 @@
} // namespace
-bool CanonicalizeNonSpecialURL(const char* spec,
- int spec_len,
+bool CanonicalizeNonSpecialUrl(std::string_view spec,
const Parsed& parsed,
CharsetConverter* query_converter,
CanonOutput& output,
@@ -195,14 +194,14 @@
new_parsed.has_opaque_path = parsed.has_opaque_path;
if (parsed.has_opaque_path) {
- return CanonicalizePathURL(spec, spec_len, parsed, &output, &new_parsed);
+ return CanonicalizePathURL(spec.data(), spec.length(), parsed, &output,
+ &new_parsed);
}
- return DoCanonicalizeNonSpecialURL(URLComponentSource(spec), parsed,
+ return DoCanonicalizeNonSpecialUrl(URLComponentSource(spec.data()), parsed,
query_converter, output, new_parsed);
}
-bool CanonicalizeNonSpecialURL(const char16_t* spec,
- int spec_len,
+bool CanonicalizeNonSpecialUrl(std::u16string_view spec,
const Parsed& parsed,
CharsetConverter* query_converter,
CanonOutput& output,
@@ -211,13 +210,14 @@
new_parsed.has_opaque_path = parsed.has_opaque_path;
if (parsed.has_opaque_path) {
- return CanonicalizePathURL(spec, spec_len, parsed, &output, &new_parsed);
+ return CanonicalizePathURL(spec.data(), spec.length(), parsed, &output,
+ &new_parsed);
}
- return DoCanonicalizeNonSpecialURL(URLComponentSource(spec), parsed,
+ return DoCanonicalizeNonSpecialUrl(URLComponentSource(spec.data()), parsed,
query_converter, output, new_parsed);
}
-bool ReplaceNonSpecialURL(const char* base,
+bool ReplaceNonSpecialUrl(std::string_view base,
const Parsed& base_parsed,
const Replacements<char>& replacements,
CharsetConverter* query_converter,
@@ -227,20 +227,20 @@
new_parsed.has_opaque_path = base_parsed.has_opaque_path;
if (base_parsed.has_opaque_path) {
- return ReplacePathURL(base, base_parsed, replacements, &output,
+ return ReplacePathURL(base.data(), base_parsed, replacements, &output,
&new_parsed);
}
- URLComponentSource<char> source(base);
+ URLComponentSource<char> source(base.data());
Parsed parsed(base_parsed);
- SetupOverrideComponents(base, replacements, &source, &parsed);
- return DoCanonicalizeNonSpecialURL(source, parsed, query_converter, output,
+ SetupOverrideComponents(base.data(), replacements, &source, &parsed);
+ return DoCanonicalizeNonSpecialUrl(source, parsed, query_converter, output,
new_parsed);
}
// For 16-bit replacements, we turn all the replacements into UTF-8 so the
// regular code path can be used.
-bool ReplaceNonSpecialURL(const char* base,
+bool ReplaceNonSpecialUrl(std::string_view base,
const Parsed& base_parsed,
const Replacements<char16_t>& replacements,
CharsetConverter* query_converter,
@@ -250,15 +250,16 @@
new_parsed.has_opaque_path = base_parsed.has_opaque_path;
if (base_parsed.has_opaque_path) {
- return ReplacePathURL(base, base_parsed, replacements, &output,
+ return ReplacePathURL(base.data(), base_parsed, replacements, &output,
&new_parsed);
}
RawCanonOutput<1024> utf8;
- URLComponentSource<char> source(base);
+ URLComponentSource<char> source(base.data());
Parsed parsed(base_parsed);
- SetupUTF16OverrideComponents(base, replacements, &utf8, &source, &parsed);
- return DoCanonicalizeNonSpecialURL(source, parsed, query_converter, output,
+ SetupUTF16OverrideComponents(base.data(), replacements, &utf8, &source,
+ &parsed);
+ return DoCanonicalizeNonSpecialUrl(source, parsed, query_converter, output,
new_parsed);
}
diff --git a/url_canon_relative.cc b/url_canon_relative.cc
index c9ac0ac..9283089 100644
--- a/url_canon_relative.cc
+++ b/url_canon_relative.cc
@@ -526,7 +526,7 @@
replacements.components().Length() +
base_parsed.CountCharactersBefore(Parsed::USERNAME, false));
if (!is_standard_scheme) {
- return ReplaceNonSpecialURL(base_url.data(), base_parsed, replacements,
+ return ReplaceNonSpecialUrl(base_url, base_parsed, replacements,
query_converter, *output, *out_parsed);
}
diff --git a/url_canon_unittest.cc b/url_canon_unittest.cc
index 7db0db7..eb7002d 100644
--- a/url_canon_unittest.cc
+++ b/url_canon_unittest.cc
@@ -1878,9 +1878,9 @@
Parsed out_parsed;
std::string out_str;
StdStringCanonOutput output(&out_str);
- bool success = CanonicalizeNonSpecialURL(
- i.input.data(), i.input.size(), parsed,
- /*query_converter=*/nullptr, output, out_parsed);
+ bool success = CanonicalizeNonSpecialUrl(i.input, parsed,
+ /*query_converter=*/nullptr,
+ output, out_parsed);
output.Complete();
EXPECT_EQ(success, i.expected_success);
EXPECT_EQ(out_str, i.expected);
@@ -1910,9 +1910,9 @@
Parsed out_parsed;
std::string unused_out_str;
StdStringCanonOutput unused_output(&unused_out_str);
- bool success = CanonicalizeNonSpecialURL(
- i.input.data(), i.input.size(), parsed,
- /*query_converter=*/nullptr, unused_output, out_parsed);
+ bool success = CanonicalizeNonSpecialUrl(i.input, parsed,
+ /*query_converter=*/nullptr,
+ unused_output, out_parsed);
ASSERT_TRUE(success);
EXPECT_EQ(out_parsed.host, i.expected_output_parsed_host);
EXPECT_EQ(out_parsed.Length(), i.expected_output_parsed_length);
diff --git a/url_util.cc b/url_util.cc
index 5f45b59..2d43754 100644
--- a/url_util.cc
+++ b/url_util.cc
@@ -312,10 +312,9 @@
} else {
// Non-special scheme URLs like data:, mailto: and javascript:.
if (!DoIsOpaqueNonSpecial(spec.data(), scheme)) {
- success = CanonicalizeNonSpecialURL(
- spec.data(), spec.length(),
- ParseNonSpecialURLInternal(spec, trim_path_end), charset_converter,
- *output, *output_parsed);
+ success = CanonicalizeNonSpecialUrl(
+ spec, ParseNonSpecialURLInternal(spec, trim_path_end),
+ charset_converter, *output, *output_parsed);
} else {
success = CanonicalizePathURL(spec.data(), spec.length(),
ParsePathURL(spec, trim_path_end), output,
@@ -495,8 +494,8 @@
}
if (!DoIsOpaqueNonSpecial(spec_ptr, parsed.scheme)) {
- return ReplaceNonSpecialURL(spec_ptr, parsed, replacements,
- charset_converter, *output, *out_parsed);
+ return ReplaceNonSpecialUrl(spec, parsed, replacements, charset_converter,
+ *output, *out_parsed);
}
return ReplacePathURL(spec_ptr, parsed, replacements, output, out_parsed);
}