[go: nahoru, domu]

printing: base::StringPiece -> std::string_view

Bug: 691162
Change-Id: I321595a3163d1f97e240284d898fa61c3f1f8d09
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5278186
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Benjamin Gordon <bmgordon@chromium.org>
Commit-Queue: Helmut Januschka <helmut@januschka.com>
Cr-Commit-Position: refs/heads/main@{#1258186}
diff --git a/printing/backend/PRESUBMIT.py b/printing/backend/PRESUBMIT.py
index 3e6f5558..5f46e65 100644
--- a/printing/backend/PRESUBMIT.py
+++ b/printing/backend/PRESUBMIT.py
@@ -11,17 +11,16 @@
 
 def _CheckForStringViewFromNullableIppApi(input_api, output_api):
   """
-  Looks for all affected lines in CL where one constructs either
-  base::StringPiece or std::string_view from any ipp*() CUPS API call.
+  Looks for all affected lines in CL where one constructs
+  std::string_view from any ipp*() CUPS API call.
   Assumes over-broadly that all ipp*() calls can return NULL.
   Returns affected lines as a list of presubmit errors.
   """
   # Attempts to detect source lines like:
-  # *   base::StringPiece foo = ippDoBar();
-  # *   base::StringPiece foo(ippDoBar());
-  # and the same for std::string_view.
+  # *   std::string_view foo = ippDoBar();
+  # *   std::string_view foo(ippDoBar());
   string_view_re = input_api.re.compile(
-      r"^.+(base::StringPiece|std::string_view)\s+\w+( = |\()ipp[A-Z].+$")
+      r"^.+(std::string_view)\s+\w+( = |\()ipp[A-Z].+$")
   violations = input_api.canned_checks._FindNewViolationsOfRule(
       lambda extension, line:
         not (extension in ("cc", "h") and string_view_re.search(line)),
@@ -30,7 +29,7 @@
 
   if bulleted_violations:
     return [output_api.PresubmitError(
-        ("Possible construction of base::StringPiece or std::string_view "
+        ("Possible construction of std::string_view "
          "from CUPS IPP API (that can probably return NULL):\n{}").format(
              "\n".join(bulleted_violations))),]
   return []
diff --git a/printing/backend/cups_helper.cc b/printing/backend/cups_helper.cc
index b9a407ae..027980c2 100644
--- a/printing/backend/cups_helper.cc
+++ b/printing/backend/cups_helper.cc
@@ -9,11 +9,12 @@
 #include <stdio.h>
 #include <unistd.h>
 
+#include <optional>
+#include <string_view>
 #include <tuple>
 #include <utility>
 #include <vector>
 
-#include <optional>
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/files/scoped_file.h"
@@ -802,8 +803,8 @@
 }
 
 bool ParsePpdCapabilities(cups_dest_t* dest,
-                          base::StringPiece locale,
-                          base::StringPiece printer_capabilities,
+                          std::string_view locale,
+                          std::string_view printer_capabilities,
                           PrinterSemanticCapsAndDefaults* printer_info) {
   // A file created while in a sandbox will be automatically deleted once all
   // handles to it have been closed.  This precludes the use of multiple
diff --git a/printing/backend/cups_helper.h b/printing/backend/cups_helper.h
index d1538598..79641937 100644
--- a/printing/backend/cups_helper.h
+++ b/printing/backend/cups_helper.h
@@ -7,9 +7,10 @@
 
 #include <cups/cups.h>
 
+#include <string_view>
+
 #include "base/component_export.h"
 #include "base/memory/raw_ptr.h"
-#include "base/strings/string_piece.h"
 
 class GURL;
 
@@ -49,8 +50,8 @@
 // semantic options.
 COMPONENT_EXPORT(PRINT_BACKEND)
 bool ParsePpdCapabilities(cups_dest_t* dest,
-                          base::StringPiece locale,
-                          base::StringPiece printer_capabilities,
+                          std::string_view locale,
+                          std::string_view printer_capabilities,
                           PrinterSemanticCapsAndDefaults* printer_info);
 
 }  // namespace printing
diff --git a/printing/backend/cups_ipp_helper.cc b/printing/backend/cups_ipp_helper.cc
index c1c3f3d3..da63e195 100644
--- a/printing/backend/cups_ipp_helper.cc
+++ b/printing/backend/cups_ipp_helper.cc
@@ -8,17 +8,17 @@
 
 #include <algorithm>
 #include <map>
+#include <optional>
 #include <string>
+#include <string_view>
 #include <vector>
 
-#include <optional>
 #include "base/containers/contains.h"
 #include "base/containers/fixed_flat_set.h"
 #include "base/containers/flat_map.h"
 #include "base/logging.h"
 #include "base/numerics/clamped_math.h"
 #include "base/ranges/algorithm.h"
-#include "base/strings/string_piece.h"
 #include "base/strings/string_util.h"
 #include "build/build_config.h"
 #include "printing/backend/cups_connection.h"
@@ -71,7 +71,7 @@
     {CUPS_SIDES_TWO_SIDED_LANDSCAPE, mojom::DuplexMode::kShortEdge},
 };
 
-mojom::ColorModel ColorModelFromIppColor(base::StringPiece ippColor) {
+mojom::ColorModel ColorModelFromIppColor(std::string_view ippColor) {
   for (const ColorMap& color : kColorList) {
     if (ippColor.compare(color.color) == 0) {
       return color.model;
@@ -81,7 +81,7 @@
   return mojom::ColorModel::kUnknownColorModel;
 }
 
-mojom::DuplexMode DuplexModeFromIpp(base::StringPiece ipp_duplex) {
+mojom::DuplexMode DuplexModeFromIpp(std::string_view ipp_duplex) {
   for (const DuplexMap& entry : kDuplexList) {
     if (base::EqualsCaseInsensitiveASCII(ipp_duplex, entry.name))
       return entry.mode;
@@ -104,9 +104,9 @@
     const CupsOptionProvider& printer) {
   std::vector<mojom::ColorModel> colors;
 
-  std::vector<base::StringPiece> color_modes =
+  std::vector<std::string_view> color_modes =
       printer.GetSupportedOptionValueStrings(kIppColor);
-  for (base::StringPiece color : color_modes) {
+  for (std::string_view color : color_modes) {
     mojom::ColorModel color_model = ColorModelFromIppColor(color);
     if (color_model != mojom::ColorModel::kUnknownColorModel) {
       colors.push_back(color_model);
@@ -149,9 +149,9 @@
 
 void ExtractDuplexModes(const CupsOptionProvider& printer,
                         PrinterSemanticCapsAndDefaults* printer_info) {
-  std::vector<base::StringPiece> duplex_modes =
+  std::vector<std::string_view> duplex_modes =
       printer.GetSupportedOptionValueStrings(kIppDuplex);
-  for (base::StringPiece duplex : duplex_modes) {
+  for (std::string_view duplex : duplex_modes) {
     mojom::DuplexMode duplex_mode = DuplexModeFromIpp(duplex);
     if (duplex_mode != mojom::DuplexMode::kUnknownDuplexMode)
       printer_info->duplex_modes.push_back(duplex_mode);
@@ -382,14 +382,14 @@
 
 void ExtractMediaTypes(const CupsOptionProvider& printer,
                        PrinterSemanticCapsAndDefaults* printer_info) {
-  std::vector<base::StringPiece> names =
+  std::vector<std::string_view> names =
       printer.GetSupportedOptionValueStrings(kIppMediaType);
   if (names.empty()) {
     return;
   }
   printer_info->media_types.reserve(names.size());
 
-  for (base::StringPiece vendor_id : names) {
+  for (std::string_view vendor_id : names) {
     PrinterSemanticCapsAndDefaults::MediaType type;
     type.vendor_id = std::string(vendor_id);
 
@@ -430,7 +430,7 @@
 }
 
 bool CollateCapable(const CupsOptionProvider& printer) {
-  std::vector<base::StringPiece> values =
+  std::vector<std::string_view> values =
       printer.GetSupportedOptionValueStrings(kIppCollate);
   return base::Contains(values, kCollated) &&
          base::Contains(values, kUncollated);
@@ -442,7 +442,7 @@
     return false;
 
   const char* const name = ippGetString(attr, 0, nullptr);
-  return name && !base::StringPiece(name).compare(kCollated);
+  return name && !std::string_view(name).compare(kCollated);
 }
 
 #if BUILDFLAG(IS_CHROMEOS)
@@ -454,7 +454,7 @@
   if (password_maximum_length_supported < kPinMinimumLength)
     return false;
 
-  std::vector<base::StringPiece> values =
+  std::vector<std::string_view> values =
       printer.GetSupportedOptionValueStrings(kIppPinEncryption);
   return base::Contains(values, kPinEncryptionNone);
 }
@@ -472,7 +472,7 @@
   static const base::NoDestructor<HandlerMap> handlers(GenerateHandlers());
   // The names of attributes that we know are not supported (b/266573545).
   static constexpr auto kOptionsToIgnore =
-      base::MakeFixedFlatSet<base::StringPiece>(
+      base::MakeFixedFlatSet<std::string_view>(
           {"finishings-col", "ipp-attribute-fidelity", "job-name",
            "number-up-layout"});
   std::vector<std::string> unknown_options;
diff --git a/printing/backend/cups_ipp_helper_unittest.cc b/printing/backend/cups_ipp_helper_unittest.cc
index 3157168..c510efe 100644
--- a/printing/backend/cups_ipp_helper_unittest.cc
+++ b/printing/backend/cups_ipp_helper_unittest.cc
@@ -8,6 +8,7 @@
 
 #include <map>
 #include <memory>
+#include <string_view>
 
 #include "base/memory/raw_ptr.h"
 #include "base/notreached.h"
@@ -41,7 +42,7 @@
 class MockCupsPrinterWithMarginsAndAttributes : public MockCupsPrinter {
  public:
   // name and value of IPP attribute; needed to fetch localized display name
-  using LocalizationKey = std::pair<base::StringPiece, base::StringPiece>;
+  using LocalizationKey = std::pair<std::string_view, std::string_view>;
 
   MockCupsPrinterWithMarginsAndAttributes() = default;
   ~MockCupsPrinterWithMarginsAndAttributes() override = default;
@@ -54,13 +55,13 @@
   }
 
   // CupsOptionProvider:
-  std::vector<base::StringPiece> GetSupportedOptionValueStrings(
+  std::vector<std::string_view> GetSupportedOptionValueStrings(
       const char* option_name) const override {
     ipp_attribute_t* attr = GetSupportedOptionValues(option_name);
     if (!attr)
-      return std::vector<base::StringPiece>();
+      return std::vector<std::string_view>();
 
-    std::vector<base::StringPiece> strings;
+    std::vector<std::string_view> strings;
     const int size = ippGetCount(attr);
     strings.reserve(size);
     for (int i = 0; i < size; ++i) {
@@ -103,11 +104,11 @@
     return localized_name->second.c_str();
   }
 
-  void SetSupportedOptions(base::StringPiece name, ipp_attribute_t* attribute) {
+  void SetSupportedOptions(std::string_view name, ipp_attribute_t* attribute) {
     supported_attributes_[name] = attribute;
   }
 
-  void SetOptionDefault(base::StringPiece name, ipp_attribute_t* attribute) {
+  void SetOptionDefault(std::string_view name, ipp_attribute_t* attribute) {
     default_attributes_[name] = attribute;
   }
 
@@ -121,8 +122,8 @@
   }
 
  private:
-  std::map<base::StringPiece, ipp_attribute_t*> supported_attributes_;
-  std::map<base::StringPiece, ipp_attribute_t*> default_attributes_;
+  std::map<std::string_view, ipp_attribute_t*> supported_attributes_;
+  std::map<std::string_view, ipp_attribute_t*> default_attributes_;
   std::map<LocalizationKey, std::string> localized_strings_;
   raw_ptr<ipp_attribute_t, DanglingUntriaged> media_col_database_;
 };
diff --git a/printing/backend/cups_jobs.cc b/printing/backend/cups_jobs.cc
index 94c188c..d235cdb 100644
--- a/printing/backend/cups_jobs.cc
+++ b/printing/backend/cups_jobs.cc
@@ -10,13 +10,13 @@
 #include <cstring>
 #include <memory>
 #include <string>
+#include <string_view>
 
 #include "base/containers/contains.h"
 #include "base/containers/fixed_flat_map.h"
 #include "base/logging.h"
 #include "base/notreached.h"
 #include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece.h"
 #include "base/strings/stringprintf.h"
 #include "base/threading/scoped_blocking_call.h"
 #include "base/version.h"
@@ -36,14 +36,14 @@
 constexpr char kPrinterStateReasons[] = "printer-state-reasons";
 constexpr char kPrinterStateMessage[] = "printer-state-message";
 
-constexpr base::StringPiece kPrinterMakeAndModel = "printer-make-and-model";
-constexpr base::StringPiece kIppVersionsSupported = "ipp-versions-supported";
-constexpr base::StringPiece kIppFeaturesSupported = "ipp-features-supported";
-constexpr base::StringPiece kDocumentFormatSupported =
+constexpr std::string_view kPrinterMakeAndModel = "printer-make-and-model";
+constexpr std::string_view kIppVersionsSupported = "ipp-versions-supported";
+constexpr std::string_view kIppFeaturesSupported = "ipp-features-supported";
+constexpr std::string_view kDocumentFormatSupported =
     "document-format-supported";
-constexpr base::StringPiece kOauthAuthorizationServerUri =
+constexpr std::string_view kOauthAuthorizationServerUri =
     "oauth-authorization-server-uri";
-constexpr base::StringPiece kOauthAuthorizationScope =
+constexpr std::string_view kOauthAuthorizationScope =
     "oauth-authorization-scope";
 
 // job attributes
@@ -158,10 +158,10 @@
 
 // Returns the Reason corresponding to the string `reason`.  Returns
 // `PReason::kUnknownReason` if the string is not recognized.
-PrinterStatus::PrinterReason::Reason ToReason(base::StringPiece reason) {
+PrinterStatus::PrinterReason::Reason ToReason(std::string_view reason) {
   // Returns a lookup map from strings to PrinterReason::Reason.
   static constexpr auto kLabelToReasonMap =
-      base::MakeFixedFlatMap<base::StringPiece, PReason>({
+      base::MakeFixedFlatMap<std::string_view, PReason>({
           {kNone, PReason::kNone},
           {kMediaNeeded, PReason::kMediaNeeded},
           {kMediaJam, PReason::kMediaJam},
@@ -206,7 +206,7 @@
 
 // Returns the Severity corresponding to `severity`.  Returns UNKNOWN_SEVERITY
 // if the strin gis not recognized.
-PSeverity ToSeverity(base::StringPiece severity) {
+PSeverity ToSeverity(std::string_view severity) {
   if (severity == kSeverityError)
     return PSeverity::kError;
 
@@ -222,7 +222,7 @@
 // Parses the `reason` string into a PrinterReason.  Splits the string based on
 // the last '-' to determine severity.  If a recognized severity is not
 // included, severity is assumed to be ERROR per RFC2911.
-PrinterStatus::PrinterReason ToPrinterReason(base::StringPiece reason) {
+PrinterStatus::PrinterReason ToPrinterReason(std::string_view reason) {
   PrinterStatus::PrinterReason parsed;
 
   if (reason == kNone) {
@@ -266,7 +266,7 @@
 
 // Parse a field for the CupsJob `job` from IPP attribute `attr` using the
 // attribute name `name`.
-void ParseField(ipp_attribute_t* attr, base::StringPiece name, CupsJob* job) {
+void ParseField(ipp_attribute_t* attr, std::string_view name, CupsJob* job) {
   DCHECK(!name.empty());
   if (name == kJobId) {
     job->id = ippGetInteger(attr, 0);
@@ -328,7 +328,7 @@
     if (!value) {
       continue;
     }
-    base::StringPiece name(value);
+    std::string_view name(value);
     if (name == kPrinterMakeAndModel) {
       int tag = ippGetValueTag(attr);
       if (tag != IPP_TAG_TEXT && tag != IPP_TAG_TEXTLANG) {
@@ -422,7 +422,7 @@
 
 PrinterInfo::~PrinterInfo() = default;
 
-const base::StringPiece ToJobStateReasonString(
+const std::string_view ToJobStateReasonString(
     CupsJob::JobStateReason state_reason) {
   switch (state_reason) {
     case CupsJob::JobStateReason::kJobCompletedWithErrors:
@@ -499,7 +499,7 @@
     if (!value) {
       continue;
     }
-    base::StringPiece name(value);
+    std::string_view name(value);
 
     if (name == kPrinterState) {
       DCHECK_EQ(IPP_TAG_ENUM, ippGetValueTag(attr));
diff --git a/printing/backend/cups_jobs.h b/printing/backend/cups_jobs.h
index 05b789b1..0cb3cf5 100644
--- a/printing/backend/cups_jobs.h
+++ b/printing/backend/cups_jobs.h
@@ -10,6 +10,7 @@
 #include <cups/cups.h>
 
 #include <string>
+#include <string_view>
 #include <utility>
 #include <vector>
 
@@ -101,7 +102,7 @@
 };
 
 // Converts a JobStateReason to the exact string returned by CUPS.
-const base::StringPiece COMPONENT_EXPORT(PRINT_BACKEND)
+const std::string_view COMPONENT_EXPORT(PRINT_BACKEND)
     ToJobStateReasonString(CupsJob::JobStateReason stateReason);
 
 // Returns the uri for printer with `id` as served by CUPS. Assumes that `id` is
diff --git a/printing/backend/cups_printer.cc b/printing/backend/cups_printer.cc
index 944db672c..80dd298 100644
--- a/printing/backend/cups_printer.cc
+++ b/printing/backend/cups_printer.cc
@@ -8,6 +8,7 @@
 
 #include <cstring>
 #include <string>
+#include <string_view>
 #include <utility>
 
 #include "base/memory/raw_ptr.h"
@@ -66,9 +67,9 @@
   }
 
   // CupsOptionProvider
-  std::vector<base::StringPiece> GetSupportedOptionValueStrings(
+  std::vector<std::string_view> GetSupportedOptionValueStrings(
       const char* option_name) const override {
-    std::vector<base::StringPiece> values;
+    std::vector<std::string_view> values;
     ipp_attribute_t* attr = GetSupportedOptionValues(option_name);
     if (!attr)
       return values;
diff --git a/printing/backend/cups_printer.h b/printing/backend/cups_printer.h
index 5c05b0d..a24a69b 100644
--- a/printing/backend/cups_printer.h
+++ b/printing/backend/cups_printer.h
@@ -9,6 +9,7 @@
 
 #include <memory>
 #include <string>
+#include <string_view>
 #include <vector>
 
 #include "base/component_export.h"
@@ -31,7 +32,7 @@
 
   // Returns supported attribute values for `option_name` where the value can be
   // converted to a string.
-  virtual std::vector<base::StringPiece> GetSupportedOptionValueStrings(
+  virtual std::vector<std::string_view> GetSupportedOptionValueStrings(
       const char* option_name) const = 0;
 
   // Returns the default ipp attributes for the given `option_name`.
diff --git a/printing/backend/ipp_handler_map.h b/printing/backend/ipp_handler_map.h
index 0b887390..44642aa7 100644
--- a/printing/backend/ipp_handler_map.h
+++ b/printing/backend/ipp_handler_map.h
@@ -6,9 +6,9 @@
 #define PRINTING_BACKEND_IPP_HANDLER_MAP_H_
 
 #include <map>
+#include <string_view>
 
 #include "base/functional/callback.h"
-#include "base/strings/string_piece.h"
 #include "printing/backend/print_backend.h"
 
 namespace printing {
@@ -21,7 +21,7 @@
                                  const char* name,
                                  AdvancedCapabilities* caps)>;
 
-using HandlerMap = std::map<base::StringPiece, AttributeHandler>;
+using HandlerMap = std::map<std::string_view, AttributeHandler>;
 
 // Produces mapping from attribute names to handlers based on their type.
 // Implementation is generated by //printing/backend/tools/code_generator.py
diff --git a/printing/backend/mock_cups_printer.h b/printing/backend/mock_cups_printer.h
index cc303d14..c83c451 100644
--- a/printing/backend/mock_cups_printer.h
+++ b/printing/backend/mock_cups_printer.h
@@ -5,6 +5,8 @@
 #ifndef PRINTING_BACKEND_MOCK_CUPS_PRINTER_H_
 #define PRINTING_BACKEND_MOCK_CUPS_PRINTER_H_
 
+#include <string_view>
+
 #include "printing/backend/cups_printer.h"
 #include "testing/gmock/include/gmock/gmock.h"
 
@@ -42,7 +44,7 @@
   MOCK_CONST_METHOD1(GetSupportedOptionValues,
                      ipp_attribute_t*(const char* option_name));
   MOCK_CONST_METHOD1(GetSupportedOptionValueStrings,
-                     std::vector<base::StringPiece>(const char* option_name));
+                     std::vector<std::string_view>(const char* option_name));
   MOCK_CONST_METHOD0(GetMediaColDatabase, ipp_attribute_t*());
   MOCK_CONST_METHOD1(GetDefaultOptionValue,
                      ipp_attribute_t*(const char* option_name));
diff --git a/printing/backend/print_backend_cups.cc b/printing/backend/print_backend_cups.cc
index 96995d7f..76bec56e7 100644
--- a/printing/backend/print_backend_cups.cc
+++ b/printing/backend/print_backend_cups.cc
@@ -11,6 +11,7 @@
 #include <pthread.h>
 
 #include <string>
+#include <string_view>
 
 #include "base/files/file_util.h"
 #include "base/logging.h"
@@ -18,7 +19,6 @@
 #include "base/memory/scoped_refptr.h"
 #include "base/no_destructor.h"
 #include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece.h"
 #include "base/synchronization/lock.h"
 #include "build/build_config.h"
 #include "printing/backend/cups_helper.h"
@@ -125,9 +125,9 @@
 // static
 std::string PrintBackendCUPS::PrinterDriverInfoFromCUPS(
     const cups_dest_t& printer) {
-  // base::StringPiece will correctly handle nullptrs from cupsGetOption(),
+  // std::string_view will correctly handle nullptrs from cupsGetOption(),
   // whereas std::string will not. Thus do not directly assign to `result`.
-  base::StringPiece info(
+  std::string_view info(
       cupsGetOption(kDriverNameTagName, printer.num_options, printer.options));
   return std::string(info);
 }
diff --git a/printing/backend/print_backend_utils.cc b/printing/backend/print_backend_utils.cc
index 1f6a059..bb357c2 100644
--- a/printing/backend/print_backend_utils.cc
+++ b/printing/backend/print_backend_utils.cc
@@ -4,11 +4,11 @@
 
 #include "printing/backend/print_backend_utils.h"
 
+#include <string_view>
 #include <vector>
 
 #include "base/logging.h"
 #include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "printing/buildflags/buildflags.h"
@@ -32,11 +32,11 @@
 // Defines two prefixes of a special breed of media sizes not meant for
 // users' eyes. CUPS incidentally returns these IPP values to us, but
 // we have no use for them.
-constexpr base::StringPiece kMediaCustomMinPrefix = "custom_min";
-constexpr base::StringPiece kMediaCustomMaxPrefix = "custom_max";
+constexpr std::string_view kMediaCustomMinPrefix = "custom_min";
+constexpr std::string_view kMediaCustomMaxPrefix = "custom_max";
 
-bool IsValidMediaName(base::StringPiece& value,
-                      std::vector<base::StringPiece>& pieces) {
+bool IsValidMediaName(std::string_view& value,
+                      std::vector<std::string_view>& pieces) {
   // We expect at least a display string and a dimension string.
   // Additionally, we drop the "custom_min*" and "custom_max*" special
   // "sizes" (not for users' eyes).
@@ -45,20 +45,20 @@
          !base::StartsWith(value, kMediaCustomMaxPrefix);
 }
 
-std::vector<base::StringPiece> GetStringPiecesIfValid(base::StringPiece value) {
+std::vector<std::string_view> GetStringPiecesIfValid(std::string_view value) {
   // <name>_<width>x<height>{in,mm}
   // e.g. na_letter_8.5x11in, iso_a4_210x297mm
-  std::vector<base::StringPiece> pieces = base::SplitStringPiece(
+  std::vector<std::string_view> pieces = base::SplitStringPiece(
       value, "_", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
   if (!IsValidMediaName(value, pieces)) {
-    return std::vector<base::StringPiece>();
+    return std::vector<std::string_view>();
   }
   return pieces;
 }
 
-gfx::Size DimensionsToMicrons(base::StringPiece value) {
+gfx::Size DimensionsToMicrons(std::string_view value) {
   Unit unit;
-  base::StringPiece dims;
+  std::string_view dims;
   size_t unit_position;
   if ((unit_position = value.find("mm")) != base::StringPiece::npos) {
     unit = Unit::kMillimeters;
@@ -95,13 +95,13 @@
 
 }  // namespace
 
-gfx::Size ParsePaperSize(base::StringPiece value) {
-  std::vector<base::StringPiece> pieces = GetStringPiecesIfValid(value);
+gfx::Size ParsePaperSize(std::string_view value) {
+  std::vector<std::string_view> pieces = GetStringPiecesIfValid(value);
   if (pieces.empty()) {
     return gfx::Size();
   }
 
-  base::StringPiece dimensions = pieces.back();
+  std::string_view dimensions = pieces.back();
   return DimensionsToMicrons(dimensions);
 }
 
diff --git a/printing/backend/print_backend_utils.h b/printing/backend/print_backend_utils.h
index 2c4b66ab..f3f3c70a 100644
--- a/printing/backend/print_backend_utils.h
+++ b/printing/backend/print_backend_utils.h
@@ -5,8 +5,9 @@
 #ifndef PRINTING_BACKEND_PRINT_BACKEND_UTILS_H_
 #define PRINTING_BACKEND_PRINT_BACKEND_UTILS_H_
 
+#include <string_view>
+
 #include "base/component_export.h"
-#include "base/strings/string_piece.h"
 #include "printing/buildflags/buildflags.h"
 
 #if BUILDFLAG(USE_CUPS)
@@ -30,7 +31,7 @@
 // name nor the dimension, or if `value` contains a prefix of
 // media sizes not meant for users' eyes.
 COMPONENT_EXPORT(PRINT_BACKEND)
-gfx::Size ParsePaperSize(base::StringPiece value);
+gfx::Size ParsePaperSize(std::string_view value);
 
 #if BUILDFLAG(USE_CUPS)
 // Calculates a paper's printable area in microns from its size in microns and
diff --git a/printing/backend/tools/code_generator.py b/printing/backend/tools/code_generator.py
index 8f614f8..5bb87bd 100755
--- a/printing/backend/tools/code_generator.py
+++ b/printing/backend/tools/code_generator.py
@@ -41,6 +41,8 @@
 
 #include "printing/backend/ipp_handler_map.h"
 
+#include <string_view>
+
 #include "base/functional/bind.h"
 #include "printing/backend/ipp_handlers.h"
 
@@ -64,8 +66,8 @@
 #include "base/no_destructor.h"
 #include "components/strings/grit/components_strings.h"
 
-const std::map<base::StringPiece, int>& CapabilityLocalizationMap() {
-  static const base::NoDestructor<std::map<base::StringPiece, int>> l10n_map({
+const std::map<std::string_view, int>& CapabilityLocalizationMap() {
+  static const base::NoDestructor<std::map<std::string_view, int>> l10n_map({
 """
 
 L10N_FOOTER = """  });
diff --git a/printing/print_job_constants_cups.h b/printing/print_job_constants_cups.h
index cdd2619..0d2c5c2 100644
--- a/printing/print_job_constants_cups.h
+++ b/printing/print_job_constants_cups.h
@@ -5,13 +5,15 @@
 #ifndef PRINTING_PRINT_JOB_CONSTANTS_CUPS_H_
 #define PRINTING_PRINT_JOB_CONSTANTS_CUPS_H_
 
+#include <string_view>
+
 #include "base/component_export.h"
 #include "build/build_config.h"
 #include "printing/buildflags/buildflags.h"
 
 #if BUILDFLAG(IS_MAC)
 #include "base/containers/span.h"
-#include "base/strings/string_piece.h"
+
 #endif
 
 #if !BUILDFLAG(USE_CUPS)
@@ -87,14 +89,14 @@
 // particular printer manufacturer, and the corresponding names used with that
 // to choose either black and white or color printing.
 struct COMPONENT_EXPORT(PRINTING_BASE) PpdColorSetting {
-  constexpr PpdColorSetting(base::StringPiece name,
-                            base::StringPiece bw,
-                            base::StringPiece color)
+  constexpr PpdColorSetting(std::string_view name,
+                            std::string_view bw,
+                            std::string_view color)
       : name(name), bw(bw), color(color) {}
 
-  base::StringPiece name;
-  base::StringPiece bw;
-  base::StringPiece color;
+  std::string_view name;
+  std::string_view bw;
+  std::string_view color;
 };
 
 COMPONENT_EXPORT(PRINTING_BASE)
diff --git a/printing/print_settings_conversion.cc b/printing/print_settings_conversion.cc
index 9878e55..72cd440 100644
--- a/printing/print_settings_conversion.cc
+++ b/printing/print_settings_conversion.cc
@@ -9,14 +9,14 @@
 #include <algorithm>
 #include <cmath>
 #include <memory>
+#include <optional>
 #include <string>
+#include <string_view>
 #include <utility>
 
-#include <optional>
 #include "base/containers/contains.h"
 #include "base/containers/fixed_flat_set.h"
 #include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/time/time.h"
 #include "base/values.h"
@@ -293,7 +293,7 @@
   if (advanced_settings) {
     for (const auto item : *advanced_settings) {
       static constexpr auto kNonJobAttributes =
-          base::MakeFixedFlatSet<base::StringPiece>(
+          base::MakeFixedFlatSet<std::string_view>(
               {"printer-info", "printer-make-and-model", "system_driverinfo"});
       if (!base::Contains(kNonJobAttributes, item.first)) {
         settings->advanced_settings().emplace(item.first, item.second.Clone());
diff --git a/printing/printing_context_chromeos.cc b/printing/printing_context_chromeos.cc
index 90c741a..cfe5d309 100644
--- a/printing/printing_context_chromeos.cc
+++ b/printing/printing_context_chromeos.cc
@@ -10,6 +10,7 @@
 
 #include <map>
 #include <memory>
+#include <string_view>
 #include <utility>
 #include <vector>
 
@@ -42,7 +43,7 @@
 // We only support sending document name for secure printers.
 const char kDocumentNamePlaceholder[] = "-";
 
-bool IsUriSecure(base::StringPiece uri) {
+bool IsUriSecure(std::string_view uri) {
   return base::StartsWith(uri, "ipps:") || base::StartsWith(uri, "https:") ||
          base::StartsWith(uri, "usb:") || base::StartsWith(uri, "ippusb:");
 }
diff --git a/printing/printing_context_mac.h b/printing/printing_context_mac.h
index 0b21e70..5b469b3 100644
--- a/printing/printing_context_mac.h
+++ b/printing/printing_context_mac.h
@@ -8,9 +8,9 @@
 #include <ApplicationServices/ApplicationServices.h>
 
 #include <string>
+#include <string_view>
 
 #include "base/memory/raw_ptr_exclusion.h"
-#include "base/strings/string_piece.h"
 #include "printing/mojom/print.mojom.h"
 #include "printing/print_job_constants.h"
 #include "printing/printing_context.h"
@@ -98,7 +98,7 @@
 
   // Sets key-value pair in PMPrintSettings.
   // Returns true is the pair is set.
-  bool SetKeyValue(base::StringPiece key, base::StringPiece value);
+  bool SetKeyValue(std::string_view key, std::string_view value);
 
   // Starts a new page.
   mojom::ResultCode NewPage();
diff --git a/printing/printing_context_mac.mm b/printing/printing_context_mac.mm
index f402566..0b3e9d6 100644
--- a/printing/printing_context_mac.mm
+++ b/printing/printing_context_mac.mm
@@ -11,6 +11,7 @@
 
 #import <iomanip>
 #import <numeric>
+#include <string_view>
 
 #include "base/apple/bridging.h"
 #include "base/apple/foundation_util.h"
@@ -18,7 +19,6 @@
 #include "base/apple/scoped_cftyperef.h"
 #include "base/apple/scoped_typeref.h"
 #include "base/check_op.h"
-#include "base/strings/string_piece.h"
 #include "base/strings/sys_string_conversions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/values.h"
@@ -706,9 +706,8 @@
   // set every single known PPD color setting and hope that one of them sticks.
   const bool is_color = IsIppColorModelColorful(color_model);
   for (const auto& setting : GetKnownPpdColorSettings()) {
-    const base::StringPiece& color_setting_name = setting.name;
-    const base::StringPiece& color_value =
-        is_color ? setting.color : setting.bw;
+    std::string_view color_setting_name = setting.name;
+    std::string_view color_value = is_color ? setting.color : setting.bw;
     if (!SetKeyValue(color_setting_name, color_value))
       return false;
   }
@@ -736,8 +735,8 @@
                                       &resolution) == noErr;
 }
 
-bool PrintingContextMac::SetKeyValue(base::StringPiece key,
-                                     base::StringPiece value) {
+bool PrintingContextMac::SetKeyValue(std::string_view key,
+                                     std::string_view value) {
   PMPrintSettings print_settings =
       static_cast<PMPrintSettings>([print_info_ PMPrintSettings]);
   base::apple::ScopedCFTypeRef<CFStringRef> cf_key =
diff --git a/printing/printing_utils.cc b/printing/printing_utils.cc
index da35cac..48b3233 100644
--- a/printing/printing_utils.cc
+++ b/printing/printing_utils.cc
@@ -7,6 +7,7 @@
 #include <algorithm>
 #include <cstring>
 #include <string>
+#include <string_view>
 
 #include "base/logging.h"
 #include "base/strings/string_util.h"
@@ -22,7 +23,6 @@
 
 #include <cmath>
 
-#include "base/strings/string_piece.h"
 #include "printing/units.h"
 #include "ui/gfx/geometry/size.h"
 #endif
@@ -93,7 +93,7 @@
 }
 
 #if BUILDFLAG(USE_CUPS) && !BUILDFLAG(IS_CHROMEOS_ASH)
-gfx::Size GetDefaultPaperSizeFromLocaleMicrons(base::StringPiece locale) {
+gfx::Size GetDefaultPaperSizeFromLocaleMicrons(std::string_view locale) {
   if (locale.empty())
     return kIsoA4Microns;
 
diff --git a/printing/printing_utils.h b/printing/printing_utils.h
index 3e8af24..de63bc8 100644
--- a/printing/printing_utils.h
+++ b/printing/printing_utils.h
@@ -8,6 +8,7 @@
 #include <stddef.h>
 
 #include <string>
+#include <string_view>
 
 #include "base/component_export.h"
 #include "base/containers/span.h"
@@ -17,7 +18,7 @@
 #include "printing/mojom/print.mojom-forward.h"
 
 #if BUILDFLAG(USE_CUPS) && !BUILDFLAG(IS_CHROMEOS_ASH)
-#include "base/strings/string_piece.h"
+
 #endif
 
 #if BUILDFLAG(IS_WIN)
@@ -53,7 +54,7 @@
 // Returns the paper size (microns) most common in the locale to the nearest
 // millimeter. Defaults to ISO A4 for an empty or invalid locale.
 COMPONENT_EXPORT(PRINTING_BASE)
-gfx::Size GetDefaultPaperSizeFromLocaleMicrons(base::StringPiece locale);
+gfx::Size GetDefaultPaperSizeFromLocaleMicrons(std::string_view locale);
 
 // Returns true if both dimensions of the sizes have a delta less than or equal
 // to the epsilon value.