url: Use string_views for arguments of CanonicalizeStandardURL() and ReplaceStandardURL()

This CL has no behavior changes.

Bug: 350788890
Change-Id: Id8d0abb08fff549c4d4367fca19823f9c0a07830
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7077619
Commit-Queue: Hayato Ito <hayato@chromium.org>
Auto-Submit: Kent Tamura <tkent@chromium.org>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Owners-Override: Hayato Ito <hayato@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1534728}
NOKEYCHECK=True
GitOrigin-RevId: f22f0455d2910ae8d34f3a5601e4c4857134faa8
diff --git a/url_canon.h b/url_canon.h
index 25b3207..9f3695b 100644
--- a/url_canon.h
+++ b/url_canon.h
@@ -739,14 +739,14 @@
 
 // Use for standard URLs with authorities and paths.
 COMPONENT_EXPORT(URL)
-bool CanonicalizeStandardURL(const char* spec,
+bool CanonicalizeStandardUrl(std::string_view spec,
                              const Parsed& parsed,
                              SchemeType scheme_type,
                              CharsetConverter* query_converter,
                              CanonOutput* output,
                              Parsed* new_parsed);
 COMPONENT_EXPORT(URL)
-bool CanonicalizeStandardURL(const char16_t* spec,
+bool CanonicalizeStandardUrl(std::u16string_view spec,
                              const Parsed& parsed,
                              SchemeType scheme_type,
                              CharsetConverter* query_converter,
@@ -1027,7 +1027,7 @@
 
 // The base must be an 8-bit canonical URL.
 COMPONENT_EXPORT(URL)
-bool ReplaceStandardURL(const char* base,
+bool ReplaceStandardUrl(std::string_view base,
                         const Parsed& base_parsed,
                         const Replacements<char>& replacements,
                         SchemeType scheme_type,
@@ -1035,7 +1035,7 @@
                         CanonOutput* output,
                         Parsed* new_parsed);
 COMPONENT_EXPORT(URL)
-bool ReplaceStandardURL(const char* base,
+bool ReplaceStandardUrl(std::string_view base,
                         const Parsed& base_parsed,
                         const Replacements<char16_t>& replacements,
                         SchemeType scheme_type,
diff --git a/url_canon_filesystemurl.cc b/url_canon_filesystemurl.cc
index 7854e97..e1df962 100644
--- a/url_canon_filesystemurl.cc
+++ b/url_canon_filesystemurl.cc
@@ -61,7 +61,7 @@
       inner_scheme_type = SCHEME_WITH_HOST_AND_PORT;
     }
     success =
-        CanonicalizeStandardURL(spec.data(), *inner_parsed, inner_scheme_type,
+        CanonicalizeStandardUrl(spec, *inner_parsed, inner_scheme_type,
                                 charset_converter, output, &new_inner_parsed);
   } else {
     // TODO(ericu): The URL is wrong, but should we try to output more of what
diff --git a/url_canon_relative.cc b/url_canon_relative.cc
index a24a73d..c9ac0ac 100644
--- a/url_canon_relative.cc
+++ b/url_canon_relative.cc
@@ -530,8 +530,8 @@
                                 query_converter, *output, *out_parsed);
   }
 
-  return ReplaceStandardURL(base_url.data(), base_parsed, replacements,
-                            scheme_type, query_converter, output, out_parsed);
+  return ReplaceStandardUrl(base_url, base_parsed, replacements, scheme_type,
+                            query_converter, output, out_parsed);
 }
 
 // Resolves a relative URL that happens to be an absolute file path. Examples
diff --git a/url_canon_stdurl.cc b/url_canon_stdurl.cc
index f97e50b..aa8ae44 100644
--- a/url_canon_stdurl.cc
+++ b/url_canon_stdurl.cc
@@ -15,7 +15,7 @@
 namespace {
 
 template <typename CHAR>
-bool DoCanonicalizeStandardURL(const URLComponentSource<CHAR>& source,
+bool DoCanonicalizeStandardUrl(const URLComponentSource<CHAR>& source,
                                const Parsed& parsed,
                                SchemeType scheme_type,
                                CharsetConverter* query_converter,
@@ -155,24 +155,24 @@
   return PORT_UNSPECIFIED;
 }
 
-bool CanonicalizeStandardURL(const char* spec,
+bool CanonicalizeStandardUrl(std::string_view spec,
                              const Parsed& parsed,
                              SchemeType scheme_type,
                              CharsetConverter* query_converter,
                              CanonOutput* output,
                              Parsed* new_parsed) {
-  return DoCanonicalizeStandardURL(URLComponentSource(spec), parsed,
+  return DoCanonicalizeStandardUrl(URLComponentSource(spec.data()), parsed,
                                    scheme_type, query_converter, output,
                                    new_parsed);
 }
 
-bool CanonicalizeStandardURL(const char16_t* spec,
+bool CanonicalizeStandardUrl(std::u16string_view spec,
                              const Parsed& parsed,
                              SchemeType scheme_type,
                              CharsetConverter* query_converter,
                              CanonOutput* output,
                              Parsed* new_parsed) {
-  return DoCanonicalizeStandardURL(URLComponentSource(spec), parsed,
+  return DoCanonicalizeStandardUrl(URLComponentSource(spec.data()), parsed,
                                    scheme_type, query_converter, output,
                                    new_parsed);
 }
@@ -186,23 +186,23 @@
 //
 // You would also need to update DoReplaceComponents in url_util.cc which
 // relies on this re-checking everything (see the comment there for why).
-bool ReplaceStandardURL(const char* base,
+bool ReplaceStandardUrl(std::string_view base,
                         const Parsed& base_parsed,
                         const Replacements<char>& replacements,
                         SchemeType scheme_type,
                         CharsetConverter* query_converter,
                         CanonOutput* output,
                         Parsed* new_parsed) {
-  URLComponentSource<char> source(base);
+  URLComponentSource<char> source(base.data());
   Parsed parsed(base_parsed);
-  SetupOverrideComponents(base, replacements, &source, &parsed);
-  return DoCanonicalizeStandardURL(source, parsed, scheme_type, query_converter,
+  SetupOverrideComponents(base.data(), replacements, &source, &parsed);
+  return DoCanonicalizeStandardUrl(source, parsed, scheme_type, 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 ReplaceStandardURL(const char* base,
+bool ReplaceStandardUrl(std::string_view base,
                         const Parsed& base_parsed,
                         const Replacements<char16_t>& replacements,
                         SchemeType scheme_type,
@@ -210,10 +210,11 @@
                         CanonOutput* output,
                         Parsed* 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 DoCanonicalizeStandardURL(source, parsed, scheme_type, query_converter,
+  SetupUTF16OverrideComponents(base.data(), replacements, &utf8, &source,
+                               &parsed);
+  return DoCanonicalizeStandardUrl(source, parsed, scheme_type, query_converter,
                                    output, new_parsed);
 }
 
diff --git a/url_canon_unittest.cc b/url_canon_unittest.cc
index 11b6c83..7db0db7 100644
--- a/url_canon_unittest.cc
+++ b/url_canon_unittest.cc
@@ -1780,7 +1780,7 @@
     Parsed out_parsed;
     std::string out_str;
     StdStringCanonOutput output(&out_str);
-    bool success = CanonicalizeStandardURL(
+    bool success = CanonicalizeStandardUrl(
         i.input, parsed, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION, nullptr,
         &output, &out_parsed);
     output.Complete();
@@ -1963,7 +1963,7 @@
     std::string out_str;
     StdStringCanonOutput output(&out_str);
     Parsed out_parsed;
-    ReplaceStandardURL(replace_case.base, parsed, r,
+    ReplaceStandardUrl(replace_case.base, parsed, r,
                        SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION, nullptr,
                        &output, &out_parsed);
     output.Complete();
@@ -1983,7 +1983,7 @@
     std::string out_str1;
     StdStringCanonOutput output1(&out_str1);
     Parsed new_parsed;
-    ReplaceStandardURL(src, parsed, r,
+    ReplaceStandardUrl(src, parsed, r,
                        SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION, nullptr,
                        &output1, &new_parsed);
     output1.Complete();
@@ -1993,7 +1993,7 @@
     r.SetPath(reinterpret_cast<char*>(0x00000001), Component());
     std::string out_str2;
     StdStringCanonOutput output2(&out_str2);
-    ReplaceStandardURL(src, parsed, r,
+    ReplaceStandardUrl(src, parsed, r,
                        SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION, nullptr,
                        &output2, &new_parsed);
     output2.Complete();
diff --git a/url_parse_perftest.cc b/url_parse_perftest.cc
index eedd34f..137a0e2 100644
--- a/url_parse_perftest.cc
+++ b/url_parse_perftest.cc
@@ -60,20 +60,20 @@
   url::RawCanonOutput<1024> output;
   for (int i = 0; i < 333333; i++) {  // divide by 3 so we get 1M
     output.set_length(0);
-    url::CanonicalizeStandardURL(
-        kTypicalUrl1.data(), url::ParseStandardURL(kTypicalUrl1),
+    url::CanonicalizeStandardUrl(
+        kTypicalUrl1, url::ParseStandardURL(kTypicalUrl1),
         url::SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION, nullptr, &output,
         &out_parsed);
 
     output.set_length(0);
-    url::CanonicalizeStandardURL(
-        kTypicalUrl2.data(), url::ParseStandardURL(kTypicalUrl2),
+    url::CanonicalizeStandardUrl(
+        kTypicalUrl2, url::ParseStandardURL(kTypicalUrl2),
         url::SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION, nullptr, &output,
         &out_parsed);
 
     output.set_length(0);
-    url::CanonicalizeStandardURL(
-        kTypicalUrl3.data(), url::ParseStandardURL(kTypicalUrl3),
+    url::CanonicalizeStandardUrl(
+        kTypicalUrl3, url::ParseStandardURL(kTypicalUrl3),
         url::SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION, nullptr, &output,
         &out_parsed);
   }
@@ -87,22 +87,22 @@
   for (int i = 0; i < 333333; i++) {  // divide by 3 so we get 1M
     std::string out1;
     url::StdStringCanonOutput output1(&out1);
-    url::CanonicalizeStandardURL(
-        kTypicalUrl1.data(), url::ParseStandardURL(kTypicalUrl1),
+    url::CanonicalizeStandardUrl(
+        kTypicalUrl1, url::ParseStandardURL(kTypicalUrl1),
         url::SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION, nullptr, &output1,
         &out_parsed);
 
     std::string out2;
     url::StdStringCanonOutput output2(&out2);
-    url::CanonicalizeStandardURL(
-        kTypicalUrl2.data(), url::ParseStandardURL(kTypicalUrl2),
+    url::CanonicalizeStandardUrl(
+        kTypicalUrl2, url::ParseStandardURL(kTypicalUrl2),
         url::SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION, nullptr, &output2,
         &out_parsed);
 
     std::string out3;
     url::StdStringCanonOutput output3(&out3);
-    url::CanonicalizeStandardURL(
-        kTypicalUrl3.data(), url::ParseStandardURL(kTypicalUrl3),
+    url::CanonicalizeStandardUrl(
+        kTypicalUrl3, url::ParseStandardURL(kTypicalUrl3),
         url::SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION, nullptr, &output3,
         &out_parsed);
   }
diff --git a/url_util.cc b/url_util.cc
index 648d5e9..5f45b59 100644
--- a/url_util.cc
+++ b/url_util.cc
@@ -306,9 +306,8 @@
   } else if (DoIsStandard(std::optional(scheme.as_string_view_on(spec.data())),
                           &scheme_type)) {
     // All "normal" URLs.
-    success = CanonicalizeStandardURL(spec.data(), ParseStandardURL(spec),
-                                      scheme_type, charset_converter, output,
-                                      output_parsed);
+    success = CanonicalizeStandardUrl(spec, ParseStandardURL(spec), scheme_type,
+                                      charset_converter, output, output_parsed);
 
   } else {
     // Non-special scheme URLs like data:, mailto: and javascript:.
@@ -491,7 +490,7 @@
   SchemeType scheme_type = SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION;
   if (DoIsStandard(parsed.scheme.maybe_as_string_view_on(spec_ptr),
                    &scheme_type)) {
-    return ReplaceStandardURL(spec_ptr, parsed, replacements, scheme_type,
+    return ReplaceStandardUrl(spec, parsed, replacements, scheme_type,
                               charset_converter, output, out_parsed);
   }