diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-11-28 16:14:41 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-12-13 15:19:41 +0000 |
commit | 61d9742824d54be5693191fe502325a909feca59 (patch) | |
tree | cbf28e779b11338fe52eb75b915684cd8955542c /chromium/base/strings | |
parent | 45f9ded08bb7526984b24ccb5a5327aaf6821676 (diff) |
BASELINE: Update Chromium to 108.0.5359.70
Change-Id: I77334ff232b819600f275bd3cfe41fbaa3619230
Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/445904
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/base/strings')
76 files changed, 166 insertions, 102 deletions
diff --git a/chromium/base/strings/abseil_string_conversions.cc b/chromium/base/strings/abseil_string_conversions.cc index 9933b5fdd15..9606ee2f658 100644 --- a/chromium/base/strings/abseil_string_conversions.cc +++ b/chromium/base/strings/abseil_string_conversions.cc @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/abseil_string_conversions.h b/chromium/base/strings/abseil_string_conversions.h index 48e70717177..5b8e045d5e5 100644 --- a/chromium/base/strings/abseil_string_conversions.h +++ b/chromium/base/strings/abseil_string_conversions.h @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/abseil_string_conversions_unittest.cc b/chromium/base/strings/abseil_string_conversions_unittest.cc index 5f6e7e798b6..106d1a62bbb 100644 --- a/chromium/base/strings/abseil_string_conversions_unittest.cc +++ b/chromium/base/strings/abseil_string_conversions_unittest.cc @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/abseil_string_number_conversions.cc b/chromium/base/strings/abseil_string_number_conversions.cc index da425ce0ffb..2ad938a6c6b 100644 --- a/chromium/base/strings/abseil_string_number_conversions.cc +++ b/chromium/base/strings/abseil_string_number_conversions.cc @@ -1,4 +1,4 @@ -// Copyright 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/abseil_string_number_conversions.h b/chromium/base/strings/abseil_string_number_conversions.h index ad7d3e3b8a0..b343102f9ab 100644 --- a/chromium/base/strings/abseil_string_number_conversions.h +++ b/chromium/base/strings/abseil_string_number_conversions.h @@ -1,4 +1,4 @@ -// Copyright 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/abseil_string_number_conversions_unittest.cc b/chromium/base/strings/abseil_string_number_conversions_unittest.cc index 27d7653f5d8..1b6d67bc057 100644 --- a/chromium/base/strings/abseil_string_number_conversions_unittest.cc +++ b/chromium/base/strings/abseil_string_number_conversions_unittest.cc @@ -1,4 +1,4 @@ -// Copyright 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/escape.cc b/chromium/base/strings/escape.cc index 8c79bcdfc5b..d76bb6e2aa6 100644 --- a/chromium/base/strings/escape.cc +++ b/chromium/base/strings/escape.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -49,7 +49,7 @@ std::string Escape(StringPiece text, bool keep_escaped = false) { std::string escaped; escaped.reserve(text.length() * 3); - for (unsigned int i = 0; i < text.length(); ++i) { + for (size_t i = 0; i < text.length(); ++i) { unsigned char c = static_cast<unsigned char>(text[i]); if (use_plus && ' ' == c) { escaped.push_back('+'); diff --git a/chromium/base/strings/escape.h b/chromium/base/strings/escape.h index 9eb6258b123..9ada67c9a90 100644 --- a/chromium/base/strings/escape.h +++ b/chromium/base/strings/escape.h @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/escape_unittest.cc b/chromium/base/strings/escape_unittest.cc index ce296aefcf2..3ad76611edc 100644 --- a/chromium/base/strings/escape_unittest.cc +++ b/chromium/base/strings/escape_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/latin1_string_conversions.cc b/chromium/base/strings/latin1_string_conversions.cc index 63f67dfffc5..4261146cf0d 100644 --- a/chromium/base/strings/latin1_string_conversions.cc +++ b/chromium/base/strings/latin1_string_conversions.cc @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/latin1_string_conversions.h b/chromium/base/strings/latin1_string_conversions.h index cdec35b1e46..19dbbe1cd8c 100644 --- a/chromium/base/strings/latin1_string_conversions.h +++ b/chromium/base/strings/latin1_string_conversions.h @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/no_trigraphs_unittest.cc b/chromium/base/strings/no_trigraphs_unittest.cc index 736679b9055..6c427eec6d5 100644 --- a/chromium/base/strings/no_trigraphs_unittest.cc +++ b/chromium/base/strings/no_trigraphs_unittest.cc @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/pattern.cc b/chromium/base/strings/pattern.cc index 9b01b2a3796..cc747aab670 100644 --- a/chromium/base/strings/pattern.cc +++ b/chromium/base/strings/pattern.cc @@ -1,4 +1,4 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. +// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/pattern.h b/chromium/base/strings/pattern.h index b5172abf5e1..472f5f6e126 100644 --- a/chromium/base/strings/pattern.h +++ b/chromium/base/strings/pattern.h @@ -1,4 +1,4 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. +// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/pattern_unittest.cc b/chromium/base/strings/pattern_unittest.cc index 24a279f4d81..03255cf0410 100644 --- a/chromium/base/strings/pattern_unittest.cc +++ b/chromium/base/strings/pattern_unittest.cc @@ -1,4 +1,4 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. +// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/safe_sprintf.cc b/chromium/base/strings/safe_sprintf.cc index 4f9ed82382e..6fc1ebffea0 100644 --- a/chromium/base/strings/safe_sprintf.cc +++ b/chromium/base/strings/safe_sprintf.cc @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/safe_sprintf.h b/chromium/base/strings/safe_sprintf.h index 6e8eafffdc4..8e24a5a1dd2 100644 --- a/chromium/base/strings/safe_sprintf.h +++ b/chromium/base/strings/safe_sprintf.h @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/safe_sprintf_unittest.cc b/chromium/base/strings/safe_sprintf_unittest.cc index 550bcaaf585..df0a4e0dd2e 100644 --- a/chromium/base/strings/safe_sprintf_unittest.cc +++ b/chromium/base/strings/safe_sprintf_unittest.cc @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -12,6 +12,7 @@ #include <limits> #include <memory> +#include "base/allocator/partition_allocator/partition_alloc_config.h" #include "base/check_op.h" #include "build/build_config.h" #include "testing/gtest/include/gtest/gtest.h" @@ -482,7 +483,14 @@ class ScopedSafeSPrintfSSizeMaxSetter { } // anonymous namespace -TEST(SafeSPrintfTest, Truncation) { +// TODO(crbug.com/1369007): Fails when OOB protection is turned on. +#if BUILDFLAG(ENABLE_BACKUP_REF_PTR_SUPPORT) || \ + BUILDFLAG(ENABLE_MTE_CHECKED_PTR_SUPPORT) +#define MAYBE_Truncation DISABLED_Truncation +#else +#define MAYBE_Truncation Truncation +#endif +TEST(SafeSPrintfTest, MAYBE_Truncation) { // We use PrintLongString() to print a complex long string and then // truncate to all possible lengths. This ends up exercising a lot of // different code paths in SafeSPrintf() and IToASCII(), as truncation can diff --git a/chromium/base/strings/strcat.cc b/chromium/base/strings/strcat.cc index d99cf88d091..f5e90ea2062 100644 --- a/chromium/base/strings/strcat.cc +++ b/chromium/base/strings/strcat.cc @@ -1,4 +1,4 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. +// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/strcat.h b/chromium/base/strings/strcat.h index 5cce5f4e16e..5d150c0fc79 100644 --- a/chromium/base/strings/strcat.h +++ b/chromium/base/strings/strcat.h @@ -1,4 +1,4 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. +// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/strcat_internal.h b/chromium/base/strings/strcat_internal.h index 0083093f92f..f54b069569c 100644 --- a/chromium/base/strings/strcat_internal.h +++ b/chromium/base/strings/strcat_internal.h @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/strcat_unittest.cc b/chromium/base/strings/strcat_unittest.cc index ca107de0870..6f81ccd515b 100644 --- a/chromium/base/strings/strcat_unittest.cc +++ b/chromium/base/strings/strcat_unittest.cc @@ -1,4 +1,4 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. +// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/strcat_win.cc b/chromium/base/strings/strcat_win.cc index 381b05b9bed..ce5079f1d45 100644 --- a/chromium/base/strings/strcat_win.cc +++ b/chromium/base/strings/strcat_win.cc @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/strcat_win.h b/chromium/base/strings/strcat_win.h index 3abf8a2cfaa..f103d829558 100644 --- a/chromium/base/strings/strcat_win.h +++ b/chromium/base/strings/strcat_win.h @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_number_conversions.cc b/chromium/base/strings/string_number_conversions.cc index c97c1755c5a..cde0c650f9a 100644 --- a/chromium/base/strings/string_number_conversions.cc +++ b/chromium/base/strings/string_number_conversions.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_number_conversions.h b/chromium/base/strings/string_number_conversions.h index 8ef207d5287..f8a3bd8862f 100644 --- a/chromium/base/strings/string_number_conversions.h +++ b/chromium/base/strings/string_number_conversions.h @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_number_conversions_fuzzer.cc b/chromium/base/strings/string_number_conversions_fuzzer.cc index 3ec395ce021..eaeb40b5393 100644 --- a/chromium/base/strings/string_number_conversions_fuzzer.cc +++ b/chromium/base/strings/string_number_conversions_fuzzer.cc @@ -1,4 +1,4 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. +// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_number_conversions_internal.h b/chromium/base/strings/string_number_conversions_internal.h index cff3205127d..f4308574aaf 100644 --- a/chromium/base/strings/string_number_conversions_internal.h +++ b/chromium/base/strings/string_number_conversions_internal.h @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -275,7 +275,7 @@ bool StringToDoubleImpl(STRING input, const CHAR* data, double& output) { // - If the first character is a space, there was leading whitespace return !input.empty() && output != HUGE_VAL && output != -HUGE_VAL && static_cast<size_t>(processed_characters_count) == input.size() && - !IsUnicodeWhitespace(input[0]); + !IsWhitespace(input[0]); } template <typename Char, typename OutIter> diff --git a/chromium/base/strings/string_number_conversions_unittest.cc b/chromium/base/strings/string_number_conversions_unittest.cc index f306262cce7..7834139350f 100644 --- a/chromium/base/strings/string_number_conversions_unittest.cc +++ b/chromium/base/strings/string_number_conversions_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_number_conversions_win.cc b/chromium/base/strings/string_number_conversions_win.cc index ef9fbd6eca3..eed83c5c181 100644 --- a/chromium/base/strings/string_number_conversions_win.cc +++ b/chromium/base/strings/string_number_conversions_win.cc @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_number_conversions_win.h b/chromium/base/strings/string_number_conversions_win.h index e7e73550996..c167e5f04d0 100644 --- a/chromium/base/strings/string_number_conversions_win.h +++ b/chromium/base/strings/string_number_conversions_win.h @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_piece.cc b/chromium/base/strings/string_piece.cc index 28aabe46767..5ee7de570a6 100644 --- a/chromium/base/strings/string_piece.cc +++ b/chromium/base/strings/string_piece.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_piece.h b/chromium/base/strings/string_piece.h index be27bc57f5e..30dd1491aca 100644 --- a/chromium/base/strings/string_piece.h +++ b/chromium/base/strings/string_piece.h @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -33,6 +33,7 @@ #include "base/check.h" #include "base/check_op.h" #include "base/compiler_specific.h" +#include "base/cxx20_is_constant_evaluated.h" #include "base/strings/string_piece_forward.h" // IWYU pragma: export #include "build/build_config.h" diff --git a/chromium/base/strings/string_piece_forward.h b/chromium/base/strings/string_piece_forward.h index c546e8f6a71..690e374a022 100644 --- a/chromium/base/strings/string_piece_forward.h +++ b/chromium/base/strings/string_piece_forward.h @@ -1,4 +1,4 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. +// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // diff --git a/chromium/base/strings/string_piece_rust.h b/chromium/base/strings/string_piece_rust.h index 80b6caa2d1d..cc160c69f33 100644 --- a/chromium/base/strings/string_piece_rust.h +++ b/chromium/base/strings/string_piece_rust.h @@ -1,4 +1,4 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_piece_rust_unittest.cc b/chromium/base/strings/string_piece_rust_unittest.cc index 7a2e4bc9ff5..718a7db72bb 100644 --- a/chromium/base/strings/string_piece_rust_unittest.cc +++ b/chromium/base/strings/string_piece_rust_unittest.cc @@ -1,4 +1,4 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_piece_unittest.cc b/chromium/base/strings/string_piece_unittest.cc index cc7184c2352..babad6392c6 100644 --- a/chromium/base/strings/string_piece_unittest.cc +++ b/chromium/base/strings/string_piece_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_piece_unittest.nc b/chromium/base/strings/string_piece_unittest.nc index e7614048e73..eb007430fe9 100644 --- a/chromium/base/strings/string_piece_unittest.nc +++ b/chromium/base/strings/string_piece_unittest.nc @@ -1,4 +1,4 @@ -// Copyright 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_split.cc b/chromium/base/strings/string_split.cc index a6acde1428a..3f5125ea765 100644 --- a/chromium/base/strings/string_split.cc +++ b/chromium/base/strings/string_split.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_split.h b/chromium/base/strings/string_split.h index a123cf26158..e8c677be6eb 100644 --- a/chromium/base/strings/string_split.h +++ b/chromium/base/strings/string_split.h @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_split_internal.h b/chromium/base/strings/string_split_internal.h index cd42d8f47fa..8858d4e81e9 100644 --- a/chromium/base/strings/string_split_internal.h +++ b/chromium/base/strings/string_split_internal.h @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_split_unittest.cc b/chromium/base/strings/string_split_unittest.cc index fcd4d58024f..1225d2096e3 100644 --- a/chromium/base/strings/string_split_unittest.cc +++ b/chromium/base/strings/string_split_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_split_win.cc b/chromium/base/strings/string_split_win.cc index 2820842bf9a..59151e33fa5 100644 --- a/chromium/base/strings/string_split_win.cc +++ b/chromium/base/strings/string_split_win.cc @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_split_win.h b/chromium/base/strings/string_split_win.h index 38761913a27..98dd515cf52 100644 --- a/chromium/base/strings/string_split_win.h +++ b/chromium/base/strings/string_split_win.h @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_tokenizer.h b/chromium/base/strings/string_tokenizer.h index 450bab27fdb..65a51a4596e 100644 --- a/chromium/base/strings/string_tokenizer.h +++ b/chromium/base/strings/string_tokenizer.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright 2011 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_tokenizer_fuzzer.cc b/chromium/base/strings/string_tokenizer_fuzzer.cc index b3a45454615..55fcd8fd8b7 100644 --- a/chromium/base/strings/string_tokenizer_fuzzer.cc +++ b/chromium/base/strings/string_tokenizer_fuzzer.cc @@ -1,4 +1,4 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. +// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_tokenizer_unittest.cc b/chromium/base/strings/string_tokenizer_unittest.cc index b77a32ba5a5..aa3c6191157 100644 --- a/chromium/base/strings/string_tokenizer_unittest.cc +++ b/chromium/base/strings/string_tokenizer_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright 2006-2008 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_util.cc b/chromium/base/strings/string_util.cc index 26a3b36dece..7d9800526c6 100644 --- a/chromium/base/strings/string_util.cc +++ b/chromium/base/strings/string_util.cc @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_util.h b/chromium/base/strings/string_util.h index 60bc28ff92d..33d4eaedbbd 100644 --- a/chromium/base/strings/string_util.h +++ b/chromium/base/strings/string_util.h @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -14,6 +14,7 @@ #include <algorithm> #include <initializer_list> +#include <sstream> #include <string> #include <type_traits> #include <vector> @@ -110,6 +111,14 @@ constexpr WStringPiece MakeWStringPiece(Iter begin, Iter end) { return MakeBasicStringPiece<wchar_t>(begin, end); } +// Convert a type with defined `operator<<` into a string. +template <typename... Streamable> +std::string StreamableToString(const Streamable&... values) { + std::ostringstream ss; + (ss << ... << values); + return ss.str(); +} + // ASCII-specific tolower. The standard library's tolower is locale sensitive, // so we don't want to use it here. template <typename CharT, @@ -376,7 +385,12 @@ BASE_EXPORT bool EndsWith( // library versions will change based on locale). template <typename Char> inline bool IsAsciiWhitespace(Char c) { - return c == ' ' || c == '\r' || c == '\n' || c == '\t' || c == '\f'; + // kWhitespaceASCII is a null-terminated string. + for (const char* cur = kWhitespaceASCII; *cur; ++cur) { + if (*cur == c) + return true; + } + return false; } template <typename Char> inline bool IsAsciiAlpha(Char c) { @@ -421,17 +435,33 @@ inline char HexDigitToInt(char16_t c) { return HexDigitToInt(static_cast<char>(c)); } -// Returns true if it's a Unicode whitespace character. -template <typename Char> +// Returns whether `c` is a Unicode whitespace character. +// This cannot be used on eight-bit characters, since if they are ASCII you +// should call IsAsciiWhitespace(), and if they are from a UTF-8 string they may +// be individual units of a multi-unit code point. Convert to 16- or 32-bit +// values known to hold the full code point before calling this. +template <typename Char, typename = std::enable_if_t<(sizeof(Char) > 1)>> inline bool IsUnicodeWhitespace(Char c) { - // kWhitespaceWide is a NUL-terminated string + // kWhitespaceWide is a null-terminated string. for (const auto* cur = kWhitespaceWide; *cur; ++cur) { if (static_cast<typename std::make_unsigned_t<wchar_t>>(*cur) == static_cast<typename std::make_unsigned_t<Char>>(c)) return true; } return false; -}; +} + +// DANGEROUS: Assumes ASCII or not base on the size of `Char`. You should +// probably be explicitly calling IsUnicodeWhitespace() or IsAsciiWhitespace() +// instead! +template <typename Char> +inline bool IsWhitespace(Char c) { + if constexpr (sizeof(Char) > 1) { + return IsUnicodeWhitespace(c); + } else { + return IsAsciiWhitespace(c); + } +} // Return a byte string in human-readable format with a unit suffix. Not // appropriate for use in any UI; use of FormatBytes and friends in ui/base is diff --git a/chromium/base/strings/string_util_constants.cc b/chromium/base/strings/string_util_constants.cc index 17591682458..b570f35d5f6 100644 --- a/chromium/base/strings/string_util_constants.cc +++ b/chromium/base/strings/string_util_constants.cc @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_util_internal.h b/chromium/base/strings/string_util_internal.h index acfa0515877..3bedb37e8a6 100644 --- a/chromium/base/strings/string_util_internal.h +++ b/chromium/base/strings/string_util_internal.h @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -149,7 +149,7 @@ std::basic_string<CharT> CollapseWhitespaceT( size_t chars_written = 0; for (auto c : text) { - if (IsUnicodeWhitespace(c)) { + if (IsWhitespace(c)) { if (!in_whitespace) { // Reduce all whitespace sequences to a single space. in_whitespace = true; diff --git a/chromium/base/strings/string_util_perftest.cc b/chromium/base/strings/string_util_perftest.cc index 5f534a114b5..0802c7b2fb7 100644 --- a/chromium/base/strings/string_util_perftest.cc +++ b/chromium/base/strings/string_util_perftest.cc @@ -1,4 +1,4 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. +// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_util_posix.h b/chromium/base/strings/string_util_posix.h index 817de463828..6496c30c078 100644 --- a/chromium/base/strings/string_util_posix.h +++ b/chromium/base/strings/string_util_posix.h @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_util_unittest.cc b/chromium/base/strings/string_util_unittest.cc index d892bb1212b..d0926fdab36 100644 --- a/chromium/base/strings/string_util_unittest.cc +++ b/chromium/base/strings/string_util_unittest.cc @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -479,23 +479,26 @@ static const struct collapse_case_ascii { const bool trim; const char* output; } collapse_cases_ascii[] = { - {" Google Video ", false, "Google Video"}, - {"Google Video", false, "Google Video"}, - {"", false, ""}, - {" ", false, ""}, - {"\t\rTest String\n", false, "Test String"}, - {" Test \n \t String ", false, "Test String"}, - {" Test String", false, "Test String"}, - {"Test String ", false, "Test String"}, - {"Test String", false, "Test String"}, - {"", true, ""}, - {"\n", true, ""}, - {" \r ", true, ""}, - {"\nFoo", true, "Foo"}, - {"\r Foo ", true, "Foo"}, - {" Foo bar ", true, "Foo bar"}, - {" \tFoo bar \n", true, "Foo bar"}, - {" a \r b\n c \r\n d \t\re \t f \n ", true, "abcde f"}, + {" Google Video ", false, "Google Video"}, + {"Google Video", false, "Google Video"}, + {"", false, ""}, + {" ", false, ""}, + {"\t\rTest String\n", false, "Test String"}, + {" Test \n \t String ", false, "Test String"}, + {" Test String", false, "Test String"}, + {"Test String ", false, "Test String"}, + {"Test String", false, "Test String"}, + {"", true, ""}, + {"\n", true, ""}, + {" \r ", true, ""}, + {"\nFoo", true, "Foo"}, + {"\r Foo ", true, "Foo"}, + {" Foo bar ", true, "Foo bar"}, + // \u00A0 is whitespace, but not _ASCII_ whitespace, so it should not be + // collapsed by CollapseWhitespaceASCII(). + {"Foo\u00A0bar", true, "Foo\u00A0bar"}, + {" \tFoo bar \n", true, "Foo bar"}, + {" a \r b\n c \r\n d \t\re \t f \n ", true, "abcde f"}, }; TEST(StringUtilTest, CollapseWhitespaceASCII) { @@ -1324,6 +1327,28 @@ TEST(StringUtilTest, MakeBasicStringPieceTest) { EXPECT_TRUE(MakeWStringPiece(baz.end(), baz.end()).empty()); } +enum class StreamableTestEnum { kGreeting, kLocation }; + +std::ostream& operator<<(std::ostream& os, const StreamableTestEnum& value) { + switch (value) { + case StreamableTestEnum::kGreeting: + return os << "hello"; + case StreamableTestEnum::kLocation: + return os << "world"; + } +} + +TEST(StringUtilTest, StreamableToString) { + EXPECT_EQ(StreamableToString("foo"), "foo"); + EXPECT_EQ(StreamableToString(123), "123"); + EXPECT_EQ(StreamableToString(StreamableTestEnum::kGreeting), "hello"); + EXPECT_EQ(StreamableToString(StreamableTestEnum::kGreeting, " ", + StreamableTestEnum::kLocation), + "hello world"); + EXPECT_EQ(StreamableToString("42 in hex is ", std::hex, 42), + "42 in hex is 2a"); +} + TEST(StringUtilTest, RemoveChars) { const char kRemoveChars[] = "-/+*"; std::string input = "A-+bc/d!*"; diff --git a/chromium/base/strings/string_util_win.cc b/chromium/base/strings/string_util_win.cc index 3baac225759..73ddacddd4f 100644 --- a/chromium/base/strings/string_util_win.cc +++ b/chromium/base/strings/string_util_win.cc @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/string_util_win.h b/chromium/base/strings/string_util_win.h index 908c0b98675..716a6978df1 100644 --- a/chromium/base/strings/string_util_win.h +++ b/chromium/base/strings/string_util_win.h @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/stringize_macros.h b/chromium/base/strings/stringize_macros.h index d4e27071e45..355aee38fde 100644 --- a/chromium/base/strings/stringize_macros.h +++ b/chromium/base/strings/stringize_macros.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright 2010 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // diff --git a/chromium/base/strings/stringize_macros_unittest.cc b/chromium/base/strings/stringize_macros_unittest.cc index d7f9e560aeb..c3c34798e16 100644 --- a/chromium/base/strings/stringize_macros_unittest.cc +++ b/chromium/base/strings/stringize_macros_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright 2010 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/stringprintf.cc b/chromium/base/strings/stringprintf.cc index aee227c6e5e..4ac965a5a64 100644 --- a/chromium/base/strings/stringprintf.cc +++ b/chromium/base/strings/stringprintf.cc @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/stringprintf.h b/chromium/base/strings/stringprintf.h index 98bb15fc6e9..7894c49320a 100644 --- a/chromium/base/strings/stringprintf.h +++ b/chromium/base/strings/stringprintf.h @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/stringprintf_unittest.cc b/chromium/base/strings/stringprintf_unittest.cc index f3e9cb47ed7..270afe11f68 100644 --- a/chromium/base/strings/stringprintf_unittest.cc +++ b/chromium/base/strings/stringprintf_unittest.cc @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/sys_string_conversions.h b/chromium/base/strings/sys_string_conversions.h index 95630614ed5..9bb872fbf6f 100644 --- a/chromium/base/strings/sys_string_conversions.h +++ b/chromium/base/strings/sys_string_conversions.h @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/sys_string_conversions_mac.mm b/chromium/base/strings/sys_string_conversions_mac.mm index 2a29b77b0c0..1ccd200991e 100644 --- a/chromium/base/strings/sys_string_conversions_mac.mm +++ b/chromium/base/strings/sys_string_conversions_mac.mm @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/sys_string_conversions_mac_unittest.mm b/chromium/base/strings/sys_string_conversions_mac_unittest.mm index 0ffbf59b71b..f786ad4870a 100644 --- a/chromium/base/strings/sys_string_conversions_mac_unittest.mm +++ b/chromium/base/strings/sys_string_conversions_mac_unittest.mm @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/sys_string_conversions_posix.cc b/chromium/base/strings/sys_string_conversions_posix.cc index 241a85ecfd8..82215c542c7 100644 --- a/chromium/base/strings/sys_string_conversions_posix.cc +++ b/chromium/base/strings/sys_string_conversions_posix.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/sys_string_conversions_unittest.cc b/chromium/base/strings/sys_string_conversions_unittest.cc index 07111d3cd0a..66e716df7ce 100644 --- a/chromium/base/strings/sys_string_conversions_unittest.cc +++ b/chromium/base/strings/sys_string_conversions_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright 2011 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/sys_string_conversions_win.cc b/chromium/base/strings/sys_string_conversions_win.cc index 340b25de9c4..58dbe080e61 100644 --- a/chromium/base/strings/sys_string_conversions_win.cc +++ b/chromium/base/strings/sys_string_conversions_win.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright 2006-2008 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/utf_offset_string_conversions.cc b/chromium/base/strings/utf_offset_string_conversions.cc index b4eb0e8f8b9..e7335c6f105 100644 --- a/chromium/base/strings/utf_offset_string_conversions.cc +++ b/chromium/base/strings/utf_offset_string_conversions.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright 2011 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/utf_offset_string_conversions.h b/chromium/base/strings/utf_offset_string_conversions.h index 7ffbddc7771..c535b961216 100644 --- a/chromium/base/strings/utf_offset_string_conversions.h +++ b/chromium/base/strings/utf_offset_string_conversions.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright 2011 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/utf_offset_string_conversions_unittest.cc b/chromium/base/strings/utf_offset_string_conversions_unittest.cc index aea9bd0484f..932a0728679 100644 --- a/chromium/base/strings/utf_offset_string_conversions_unittest.cc +++ b/chromium/base/strings/utf_offset_string_conversions_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright 2011 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/utf_string_conversion_utils.cc b/chromium/base/strings/utf_string_conversion_utils.cc index 47fbbd732ba..8906df71d69 100644 --- a/chromium/base/strings/utf_string_conversion_utils.cc +++ b/chromium/base/strings/utf_string_conversion_utils.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Copyright 2009 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/utf_string_conversion_utils.h b/chromium/base/strings/utf_string_conversion_utils.h index 1f6bc0ec168..cb4fe8df9a9 100644 --- a/chromium/base/strings/utf_string_conversion_utils.h +++ b/chromium/base/strings/utf_string_conversion_utils.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright 2011 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/utf_string_conversions.cc b/chromium/base/strings/utf_string_conversions.cc index cd856372cea..eca48f0e606 100644 --- a/chromium/base/strings/utf_string_conversions.cc +++ b/chromium/base/strings/utf_string_conversions.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2018 The Chromium Authors. All rights reserved. +// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/utf_string_conversions.h b/chromium/base/strings/utf_string_conversions.h index a06a094add1..d9d01b35283 100644 --- a/chromium/base/strings/utf_string_conversions.h +++ b/chromium/base/strings/utf_string_conversions.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright 2011 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/utf_string_conversions_fuzzer.cc b/chromium/base/strings/utf_string_conversions_fuzzer.cc index 54a9ff72891..12e4b54c765 100644 --- a/chromium/base/strings/utf_string_conversions_fuzzer.cc +++ b/chromium/base/strings/utf_string_conversions_fuzzer.cc @@ -1,4 +1,4 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. +// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chromium/base/strings/utf_string_conversions_unittest.cc b/chromium/base/strings/utf_string_conversions_unittest.cc index 30550409635..5036a46653a 100644 --- a/chromium/base/strings/utf_string_conversions_unittest.cc +++ b/chromium/base/strings/utf_string_conversions_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright 2010 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. |