From 3ccfd1fef6b8cd897682e26cb07ea182349b3747 Mon Sep 17 00:00:00 2001 From: thestig Date: Wed, 3 Feb 2016 13:46:31 -0800 Subject: Printing: Remove backslashes from print job names. Backslashes can cause printers to barf up paper. BUG=581708 Review URL: https://codereview.chromium.org/1656933004 Cr-Commit-Position: refs/heads/master@{#373347} --- printing/printing_utils.cc | 6 ++++-- printing/printing_utils_unittest.cc | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'printing') diff --git a/printing/printing_utils.cc b/printing/printing_utils.cc index b0544e4..353a0aa 100644 --- a/printing/printing_utils.cc +++ b/printing/printing_utils.cc @@ -9,7 +9,7 @@ #include #include "base/logging.h" - +#include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "third_party/icu/source/common/unicode/uchar.h" #include "ui/gfx/text_elider.h" @@ -28,6 +28,8 @@ base::string16 SimplifyDocumentTitleWithLength(const base::string16& title, no_controls.erase( std::remove_if(no_controls.begin(), no_controls.end(), &u_iscntrl), no_controls.end()); + base::ReplaceChars(no_controls, base::ASCIIToUTF16("\\"), + base::ASCIIToUTF16("_"), &no_controls); base::string16 result; gfx::ElideString(no_controls, length, &result); return result; @@ -38,7 +40,7 @@ base::string16 FormatDocumentTitleWithOwnerAndLength( const base::string16& title, size_t length) { const base::string16 separator = base::ASCIIToUTF16(": "); - DCHECK(separator.size() < length); + DCHECK_LT(separator.size(), length); base::string16 short_title = SimplifyDocumentTitleWithLength(owner, length - separator.size()); diff --git a/printing/printing_utils_unittest.cc b/printing/printing_utils_unittest.cc index 1bfba64..4a04427 100644 --- a/printing/printing_utils_unittest.cc +++ b/printing/printing_utils_unittest.cc @@ -31,6 +31,7 @@ TEST(PrintingUtilsTest, SimplifyDocumentTitle) { EXPECT_EQ("abcdefgh", Simplify("abcdefgh")); EXPECT_EQ("abc...ij", Simplify("abcdefghij")); EXPECT_EQ("Controls", Simplify("C\ron\nt\15rols")); + EXPECT_EQ("C:_foo_", Simplify("C:\\foo\\")); EXPECT_EQ("", Simplify("\n\r\n\r\t\r")); } @@ -41,8 +42,8 @@ TEST(PrintingUtilsTest, FormatDocumentTitleWithOwner) { EXPECT_EQ("abc: 123", Format("abc", "123")); EXPECT_EQ("abc: 0.9", Format("abc", "0123456789")); EXPECT_EQ("ab...j: ", Format("abcdefghij", "123")); + EXPECT_EQ("xyz: _.o", Format("xyz", "\\f\\oo")); EXPECT_EQ("ab...j: ", Format("abcdefghij", "0123456789")); } } // namespace printing - -- cgit v1.1