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);
 }