summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/strings/string_util.cc24
-rw-r--r--base/strings/string_util.h16
-rw-r--r--base/strings/string_util_unittest.cc102
-rw-r--r--base/trace_event/trace_event_memory.cc8
-rwxr-xr-xchrome/browser/devtools/devtools_protocol_constants_generator.py5
-rw-r--r--content/browser/accessibility/dump_accessibility_tree_browsertest.cc7
-rw-r--r--content/browser/appcache/view_appcache_internals_job.cc25
-rw-r--r--content/browser/cache_storage/cache_storage_cache.cc10
-rwxr-xr-xcontent/browser/devtools/protocol/devtools_protocol_handler_generator.py5
-rw-r--r--content/common/sandbox_mac.mm7
-rw-r--r--content/test/mock_google_streaming_server.cc12
-rw-r--r--extensions/browser/api/vpn_provider/vpn_provider_api.cc7
-rw-r--r--extensions/common/manifest_handlers/shared_module_info.cc9
-rw-r--r--google_apis/drive/time_util.cc71
-rw-r--r--google_apis/gaia/oauth2_mint_token_flow.cc9
-rw-r--r--google_apis/gcm/engine/account_mapping.cc5
-rw-r--r--gpu/command_buffer/service/feature_info.cc4
-rw-r--r--gpu/command_buffer/service/test_helper.cc4
-rw-r--r--media/blink/cache_util_unittest.cc13
-rw-r--r--media/ffmpeg/ffmpeg_common.cc30
-rw-r--r--media/filters/stream_parser_factory.cc7
-rw-r--r--media/formats/mp4/avc_unittest.cc12
-rw-r--r--media/test/pipeline_integration_test.cc4
-rw-r--r--net/proxy/proxy_config_service_linux.cc9
-rw-r--r--net/server/http_server_request_info.cc12
-rw-r--r--net/tools/dump_cache/url_to_filename_encoder_unittest.cc9
-rw-r--r--net/tools/quic/quic_client_bin.cc8
-rw-r--r--net/tools/quic/quic_simple_client_bin.cc8
-rw-r--r--net/url_request/url_request_http_job_unittest.cc9
-rw-r--r--remoting/base/capabilities.cc18
-rw-r--r--remoting/base/capabilities_unittest.cc12
-rw-r--r--remoting/host/client_session_unittest.cc11
-rw-r--r--remoting/host/host_extension_session_manager_unittest.cc6
-rw-r--r--sync/test/fake_server/fake_server_entity.cc7
-rw-r--r--ui/aura/window_tree_host_x11.cc8
-rw-r--r--ui/base/dragdrop/os_exchange_data_provider_aurax11.cc10
-rw-r--r--ui/base/ime/chromeos/input_method_whitelist.cc6
-rw-r--r--ui/base/x/selection_utils.cc7
-rw-r--r--ui/events/ozone/evdev/libgestures_glue/gesture_property_provider.cc3
-rw-r--r--ui/events/ozone/evdev/touch_event_converter_evdev.cc10
-rw-r--r--ui/gl/gl_egl_api_implementation.cc12
-rw-r--r--ui/gl/gl_gl_api_implementation.cc14
-rw-r--r--win8/metro_driver/file_picker.cc10
-rw-r--r--win8/metro_driver/file_picker_ash.cc11
44 files changed, 260 insertions, 336 deletions
diff --git a/base/strings/string_util.cc b/base/strings/string_util.cc
index e2b7311..380d455 100644
--- a/base/strings/string_util.cc
+++ b/base/strings/string_util.cc
@@ -810,30 +810,6 @@ void ReplaceSubstringsAfterOffset(std::string* str,
} // namespace base
-size_t Tokenize(const base::string16& str,
- const base::string16& delimiters,
- std::vector<base::string16>* tokens) {
- *tokens = base::SplitString(
- str, delimiters, base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
- return tokens->size();
-}
-
-size_t Tokenize(const std::string& str,
- const std::string& delimiters,
- std::vector<std::string>* tokens) {
- *tokens = base::SplitString(
- str, delimiters, base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
- return tokens->size();
-}
-
-size_t Tokenize(const base::StringPiece& str,
- const base::StringPiece& delimiters,
- std::vector<base::StringPiece>* tokens) {
- *tokens = base::SplitStringPiece(
- str, delimiters, base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
- return tokens->size();
-}
-
template<typename STR>
static STR JoinStringT(const std::vector<STR>& parts, const STR& sep) {
if (parts.empty())
diff --git a/base/strings/string_util.h b/base/strings/string_util.h
index f5cf0b3..c231609 100644
--- a/base/strings/string_util.h
+++ b/base/strings/string_util.h
@@ -492,22 +492,6 @@ inline typename string_type::value_type* WriteInto(string_type* str,
//-----------------------------------------------------------------------------
-// Splits a string into its fields delimited by any of the characters in
-// |delimiters|. Each field is added to the |tokens| vector. Returns the
-// number of tokens found.
-//
-// DEPRECATED. Use base::SplitString for new code (these just forward).
-// TODO(brettw) convert callers and delete these forwarders.
-BASE_EXPORT size_t Tokenize(const base::string16& str,
- const base::string16& delimiters,
- std::vector<base::string16>* tokens);
-BASE_EXPORT size_t Tokenize(const std::string& str,
- const std::string& delimiters,
- std::vector<std::string>* tokens);
-BASE_EXPORT size_t Tokenize(const base::StringPiece& str,
- const base::StringPiece& delimiters,
- std::vector<base::StringPiece>* tokens);
-
// Does the opposite of SplitString().
BASE_EXPORT base::string16 JoinString(const std::vector<base::string16>& parts,
base::char16 s);
diff --git a/base/strings/string_util_unittest.cc b/base/strings/string_util_unittest.cc
index ad7ff24..02b184c 100644
--- a/base/strings/string_util_unittest.cc
+++ b/base/strings/string_util_unittest.cc
@@ -669,108 +669,6 @@ TEST(StringUtilTest, HexDigitToInt) {
EXPECT_EQ(15, HexDigitToInt('f'));
}
-// Test for Tokenize
-template <typename STR>
-void TokenizeTest() {
- std::vector<STR> r;
- size_t size;
-
- size = Tokenize(STR("This is a string"), STR(" "), &r);
- EXPECT_EQ(4U, size);
- ASSERT_EQ(4U, r.size());
- EXPECT_EQ(r[0], STR("This"));
- EXPECT_EQ(r[1], STR("is"));
- EXPECT_EQ(r[2], STR("a"));
- EXPECT_EQ(r[3], STR("string"));
- r.clear();
-
- size = Tokenize(STR("one,two,three"), STR(","), &r);
- EXPECT_EQ(3U, size);
- ASSERT_EQ(3U, r.size());
- EXPECT_EQ(r[0], STR("one"));
- EXPECT_EQ(r[1], STR("two"));
- EXPECT_EQ(r[2], STR("three"));
- r.clear();
-
- size = Tokenize(STR("one,two:three;four"), STR(",:"), &r);
- EXPECT_EQ(3U, size);
- ASSERT_EQ(3U, r.size());
- EXPECT_EQ(r[0], STR("one"));
- EXPECT_EQ(r[1], STR("two"));
- EXPECT_EQ(r[2], STR("three;four"));
- r.clear();
-
- size = Tokenize(STR("one,two:three;four"), STR(";,:"), &r);
- EXPECT_EQ(4U, size);
- ASSERT_EQ(4U, r.size());
- EXPECT_EQ(r[0], STR("one"));
- EXPECT_EQ(r[1], STR("two"));
- EXPECT_EQ(r[2], STR("three"));
- EXPECT_EQ(r[3], STR("four"));
- r.clear();
-
- size = Tokenize(STR("one, two, three"), STR(","), &r);
- EXPECT_EQ(3U, size);
- ASSERT_EQ(3U, r.size());
- EXPECT_EQ(r[0], STR("one"));
- EXPECT_EQ(r[1], STR(" two"));
- EXPECT_EQ(r[2], STR(" three"));
- r.clear();
-
- size = Tokenize(STR("one, two, three, "), STR(","), &r);
- EXPECT_EQ(4U, size);
- ASSERT_EQ(4U, r.size());
- EXPECT_EQ(r[0], STR("one"));
- EXPECT_EQ(r[1], STR(" two"));
- EXPECT_EQ(r[2], STR(" three"));
- EXPECT_EQ(r[3], STR(" "));
- r.clear();
-
- size = Tokenize(STR("one, two, three,"), STR(","), &r);
- EXPECT_EQ(3U, size);
- ASSERT_EQ(3U, r.size());
- EXPECT_EQ(r[0], STR("one"));
- EXPECT_EQ(r[1], STR(" two"));
- EXPECT_EQ(r[2], STR(" three"));
- r.clear();
-
- size = Tokenize(STR(), STR(","), &r);
- EXPECT_EQ(0U, size);
- ASSERT_EQ(0U, r.size());
- r.clear();
-
- size = Tokenize(STR(","), STR(","), &r);
- EXPECT_EQ(0U, size);
- ASSERT_EQ(0U, r.size());
- r.clear();
-
- size = Tokenize(STR(",;:."), STR(".:;,"), &r);
- EXPECT_EQ(0U, size);
- ASSERT_EQ(0U, r.size());
- r.clear();
-
- size = Tokenize(STR("\t\ta\t"), STR("\t"), &r);
- EXPECT_EQ(1U, size);
- ASSERT_EQ(1U, r.size());
- EXPECT_EQ(r[0], STR("a"));
- r.clear();
-
- size = Tokenize(STR("\ta\t\nb\tcc"), STR("\n"), &r);
- EXPECT_EQ(2U, size);
- ASSERT_EQ(2U, r.size());
- EXPECT_EQ(r[0], STR("\ta\t"));
- EXPECT_EQ(r[1], STR("b\tcc"));
- r.clear();
-}
-
-TEST(StringUtilTest, TokenizeStdString) {
- TokenizeTest<std::string>();
-}
-
-TEST(StringUtilTest, TokenizeStringPiece) {
- TokenizeTest<StringPiece>();
-}
-
// Test for JoinString
TEST(StringUtilTest, JoinString) {
std::vector<std::string> in;
diff --git a/base/trace_event/trace_event_memory.cc b/base/trace_event/trace_event_memory.cc
index b173838..73c8536 100644
--- a/base/trace_event/trace_event_memory.cc
+++ b/base/trace_event/trace_event_memory.cc
@@ -347,8 +347,8 @@ void AppendHeapProfileTotalsAsTraceFormat(const std::string& line,
// 55227 = Outstanding bytes (malloc bytes - free bytes)
// 14653 = Total allocations (mallocs)
// 2624014 = Total bytes (malloc bytes)
- std::vector<std::string> tokens;
- Tokenize(line, " :[]@", &tokens);
+ std::vector<std::string> tokens = base::SplitString(
+ line, " :[]@", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
if (tokens.size() < 4) {
DLOG(WARNING) << "Invalid totals line " << line;
return;
@@ -377,8 +377,8 @@ bool AppendHeapProfileLineAsTraceFormat(const std::string& line,
// 0x7fa7fa9b9ba0 0x7fa7f4b3be13 = Stack trace represented as pointers to
// static strings from trace event categories
// and names.
- std::vector<std::string> tokens;
- Tokenize(line, " :[]@", &tokens);
+ std::vector<std::string> tokens = base::SplitString(
+ line, " :[]@", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
// It's valid to have no stack addresses, so only require 4 tokens.
if (tokens.size() < 4) {
DLOG(WARNING) << "Invalid line " << line;
diff --git a/chrome/browser/devtools/devtools_protocol_constants_generator.py b/chrome/browser/devtools/devtools_protocol_constants_generator.py
index 372874d..7e53ac1 100755
--- a/chrome/browser/devtools/devtools_protocol_constants_generator.py
+++ b/chrome/browser/devtools/devtools_protocol_constants_generator.py
@@ -57,6 +57,7 @@ template_cc = string.Template("""\
// content/browser/devtools/browser_protocol.json
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "$package/browser/devtools/devtools_protocol_constants.h"
@@ -66,8 +67,8 @@ namespace devtools {
const char kProtocolVersion[] = "$major.$minor";
bool IsSupportedProtocolVersion(const std::string& version) {
- std::vector<std::string> tokens;
- Tokenize(version, ".", &tokens);
+ std::vector<base::StringPiece> tokens = base::SplitStringPiece(
+ version, ".", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
int major, minor;
return tokens.size() == 2 &&
base::StringToInt(tokens[0], &major) && major == $major &&
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
index b138380..62ce4a2 100644
--- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
+++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -9,6 +9,7 @@
#include "base/command_line.h"
#include "base/path_service.h"
#include "base/strings/string16.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "content/browser/accessibility/accessibility_tree_formatter.h"
@@ -94,9 +95,9 @@ class DumpAccessibilityTreeTest : public DumpAccessibilityTestBase {
base::string16 actual_contents_utf16;
formatter.FormatAccessibilityTree(&actual_contents_utf16);
std::string actual_contents = base::UTF16ToUTF8(actual_contents_utf16);
- std::vector<std::string> actual_lines;
- Tokenize(actual_contents, "\n", &actual_lines);
- return actual_lines;
+ return base::SplitString(
+ actual_contents, "\n",
+ base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
}
};
diff --git a/content/browser/appcache/view_appcache_internals_job.cc b/content/browser/appcache/view_appcache_internals_job.cc
index 3ef6f81..f7a814a 100644
--- a/content/browser/appcache/view_appcache_internals_job.cc
+++ b/content/browser/appcache/view_appcache_internals_job.cc
@@ -276,7 +276,7 @@ void EmitHexDump(const char *buf, size_t buf_len, size_t total_len,
out->append("</pre>");
}
-GURL DecodeBase64URL(const std::string& base64) {
+GURL DecodeBase64URL(base::StringPiece base64) {
std::string url;
base::Base64Decode(base64, &url);
return GURL(url);
@@ -647,16 +647,19 @@ net::URLRequestJob* ViewAppCacheInternalsJobFactory::CreateJobForRequest(
return new ViewAppCacheJob(request, network_delegate, service,
DecodeBase64URL(param));
- std::vector<std::string> tokens;
- int64 response_id = 0;
- int64 group_id = 0;
- if (command == kViewEntryCommand && Tokenize(param, "|", &tokens) == 4u &&
- base::StringToInt64(tokens[2], &response_id) &&
- base::StringToInt64(tokens[3], &group_id)) {
- return new ViewEntryJob(request, network_delegate, service,
- DecodeBase64URL(tokens[0]), // manifest url
- DecodeBase64URL(tokens[1]), // entry url
- response_id, group_id);
+ if (command == kViewEntryCommand) {
+ std::vector<base::StringPiece> tokens = base::SplitStringPiece(
+ param, "|", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ int64 response_id = 0;
+ int64 group_id = 0;
+ if (tokens.size() == 4u &&
+ base::StringToInt64(tokens[2], &response_id) &&
+ base::StringToInt64(tokens[3], &group_id)) {
+ return new ViewEntryJob(request, network_delegate, service,
+ DecodeBase64URL(tokens[0]), // manifest url
+ DecodeBase64URL(tokens[1]), // entry url
+ response_id, group_id);
+ }
}
return new RedirectToMainPageJob(request, network_delegate, service);
diff --git a/content/browser/cache_storage/cache_storage_cache.cc b/content/browser/cache_storage/cache_storage_cache.cc
index 31a5129..2755666 100644
--- a/content/browser/cache_storage/cache_storage_cache.cc
+++ b/content/browser/cache_storage/cache_storage_cache.cc
@@ -10,6 +10,7 @@
#include "base/files/file_path.h"
#include "base/guid.h"
#include "base/metrics/histogram_macros.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "content/browser/cache_storage/cache_storage.pb.h"
#include "content/browser/cache_storage/cache_storage_blob_to_disk_cache.h"
@@ -114,12 +115,9 @@ bool VaryMatches(const ServiceWorkerHeaderMap& request,
if (vary_iter == response.end())
return true;
- std::vector<std::string> vary_keys;
- Tokenize(vary_iter->second, ",", &vary_keys);
- for (std::vector<std::string>::const_iterator it = vary_keys.begin();
- it != vary_keys.end(); ++it) {
- std::string trimmed;
- base::TrimWhitespaceASCII(*it, base::TRIM_ALL, &trimmed);
+ for (const std::string& trimmed :
+ base::SplitString(vary_iter->second, ",",
+ base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY)) {
if (trimmed == "*")
return false;
diff --git a/content/browser/devtools/protocol/devtools_protocol_handler_generator.py b/content/browser/devtools/protocol/devtools_protocol_handler_generator.py
index 0ba7415..da98468 100755
--- a/content/browser/devtools/protocol/devtools_protocol_handler_generator.py
+++ b/content/browser/devtools/protocol/devtools_protocol_handler_generator.py
@@ -244,6 +244,7 @@ template_cc = string.Template(header + """\
#include "base/bind.h"
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
${includes}\
namespace content {
@@ -271,8 +272,8 @@ namespace devtools {
const char kProtocolVersion[] = "${major}.${minor}";
bool IsSupportedProtocolVersion(const std::string& version) {
- std::vector<std::string> tokens;
- Tokenize(version, ".", &tokens);
+ std::vector<base::StringPiece> tokens = base::SplitStringPiece(
+ version, ".", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
int major, minor;
return tokens.size() == 2 &&
base::StringToInt(tokens[0], &major) && major == ${major} &&
diff --git a/content/common/sandbox_mac.mm b/content/common/sandbox_mac.mm
index a13aaf7..2da81a9 100644
--- a/content/common/sandbox_mac.mm
+++ b/content/common/sandbox_mac.mm
@@ -27,6 +27,7 @@ extern "C" {
#include "base/rand_util.h"
#include "base/strings/string16.h"
#include "base/strings/string_piece.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/sys_string_conversions.h"
@@ -456,8 +457,10 @@ bool Sandbox::PostProcessSandboxProfile(
}
// Split string on "@" characters.
- std::vector<std::string> raw_sandbox_pieces;
- if (Tokenize([sandbox_data UTF8String], "@", &raw_sandbox_pieces) == 0) {
+ std::vector<std::string> raw_sandbox_pieces = base::SplitString(
+ [sandbox_data UTF8String], "@", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY);
+ if (raw_sandbox_pieces.empty()) {
DLOG(FATAL) << "Bad Sandbox profile, should contain at least one token ("
<< [sandbox_data UTF8String]
<< ")";
diff --git a/content/test/mock_google_streaming_server.cc b/content/test/mock_google_streaming_server.cc
index 5d8b846..ad9937aa 100644
--- a/content/test/mock_google_streaming_server.cc
+++ b/content/test/mock_google_streaming_server.cc
@@ -6,6 +6,7 @@
#include "base/bind.h"
#include "base/numerics/safe_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/sys_byteorder.h"
@@ -41,17 +42,16 @@ void MockGoogleStreamingServer::OnRequestStart(int fetcher_id) {
// Extract request argument from the the request URI.
std::string query = GetURLFetcher(true)->GetOriginalURL().query();
- std::vector<std::string> query_params;
- Tokenize(query, "&", &query_params);
const net::UnescapeRule::Type kUnescapeAll =
net::UnescapeRule::NORMAL |
net::UnescapeRule::SPACES |
net::UnescapeRule::URL_SPECIAL_CHARS |
net::UnescapeRule::REPLACE_PLUS_WITH_SPACE;
- for (size_t i = 0; i < query_params.size(); ++i) {
- const std::string query_param = query_params[i];
- std::vector<std::string> param_parts;
- Tokenize(query_param, "=", &param_parts);
+ for (const base::StringPiece& query_param :
+ base::SplitStringPiece(query, "&", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY)) {
+ std::vector<std::string> param_parts = base::SplitString(
+ query_param, "=", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
if (param_parts.size() != 2)
continue;
std::string param_key = net::UnescapeURLComponent(param_parts[0],
diff --git a/extensions/browser/api/vpn_provider/vpn_provider_api.cc b/extensions/browser/api/vpn_provider/vpn_provider_api.cc
index fb82aab..069f171 100644
--- a/extensions/browser/api/vpn_provider/vpn_provider_api.cc
+++ b/extensions/browser/api/vpn_provider/vpn_provider_api.cc
@@ -9,6 +9,7 @@
#include "base/bind.h"
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/values.h"
#include "extensions/browser/api/vpn_provider/vpn_service.h"
@@ -100,8 +101,10 @@ void ConvertParameters(const api_vpn::Parameters& parameters,
return;
}
- std::vector<std::string> cidr_parts;
- CHECK(Tokenize(parameters.address, kCIDRSeperator, &cidr_parts) == 2);
+ std::vector<std::string> cidr_parts = base::SplitString(
+ parameters.address, kCIDRSeperator, base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY);
+ CHECK_EQ(2u, cidr_parts.size());
parameter_value->SetStringWithoutPathExpansion(
shill::kAddressParameterThirdPartyVpn, cidr_parts[0]);
diff --git a/extensions/common/manifest_handlers/shared_module_info.cc b/extensions/common/manifest_handlers/shared_module_info.cc
index 70f6ea9..99efe88 100644
--- a/extensions/common/manifest_handlers/shared_module_info.cc
+++ b/extensions/common/manifest_handlers/shared_module_info.cc
@@ -7,6 +7,7 @@
#include "base/lazy_instance.h"
#include "base/memory/scoped_ptr.h"
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/version.h"
@@ -50,8 +51,8 @@ SharedModuleInfo::~SharedModuleInfo() {
void SharedModuleInfo::ParseImportedPath(const std::string& path,
std::string* import_id,
std::string* import_relative_path) {
- std::vector<std::string> tokens;
- Tokenize(path, std::string("/"), &tokens);
+ std::vector<std::string> tokens = base::SplitString(
+ path, "/", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
if (tokens.size() > 2 && tokens[0] == kModulesDir &&
crx_file::id_util::IdIsValid(tokens[1])) {
*import_id = tokens[1];
@@ -63,8 +64,8 @@ void SharedModuleInfo::ParseImportedPath(const std::string& path,
// static
bool SharedModuleInfo::IsImportedPath(const std::string& path) {
- std::vector<std::string> tokens;
- Tokenize(path, std::string("/"), &tokens);
+ std::vector<std::string> tokens = base::SplitString(
+ path, "/", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
if (tokens.size() > 2 && tokens[0] == kModulesDir &&
crx_file::id_util::IdIsValid(tokens[1])) {
return true;
diff --git a/google_apis/drive/time_util.cc b/google_apis/drive/time_util.cc
index 6ac55e9..cf2b453 100644
--- a/google_apis/drive/time_util.cc
+++ b/google_apis/drive/time_util.cc
@@ -8,6 +8,7 @@
#include <vector>
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/time/time.h"
@@ -24,15 +25,15 @@ bool ParseTimezone(const base::StringPiece& timezone,
int* out_offset_to_utc_in_minutes) {
DCHECK(out_offset_to_utc_in_minutes);
- std::vector<base::StringPiece> parts;
- int num_of_token = Tokenize(timezone, ":", &parts);
+ std::vector<base::StringPiece> parts = base::SplitStringPiece(
+ timezone, ":", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
int hour = 0;
- if (!base::StringToInt(parts[0], &hour))
+ if (parts.empty() || !base::StringToInt(parts[0], &hour))
return false;
int minute = 0;
- if (num_of_token > 1 && !base::StringToInt(parts[1], &minute))
+ if (parts.size() > 1 && !base::StringToInt(parts[1], &minute))
return false;
*out_offset_to_utc_in_minutes = (hour * 60 + minute) * (ahead ? +1 : -1);
@@ -52,8 +53,9 @@ bool GetTimeFromString(const base::StringPiece& raw_value,
// Splits the string into "date" part and "time" part.
{
- std::vector<base::StringPiece> parts;
- if (Tokenize(raw_value, "T", &parts) != 2)
+ std::vector<base::StringPiece> parts = base::SplitStringPiece(
+ raw_value, "T", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ if (parts.size() != 2)
return false;
date = parts[0];
time_and_tz = parts[1];
@@ -68,28 +70,37 @@ bool GetTimeFromString(const base::StringPiece& raw_value,
offset_to_utc_in_minutes = 0;
time = time_and_tz;
time.remove_suffix(1);
- } else if (Tokenize(time_and_tz, "+", &parts) == 2) {
- // Timezone is "+hh:mm" format
- if (!ParseTimezone(parts[1], true, &offset_to_utc_in_minutes))
- return false;
- has_timezone = true;
- time = parts[0];
- } else if (Tokenize(time_and_tz, "-", &parts) == 2) {
- // Timezone is "-hh:mm" format
- if (!ParseTimezone(parts[1], false, &offset_to_utc_in_minutes))
- return false;
- has_timezone = true;
- time = parts[0];
} else {
- // No timezone (uses local timezone)
- time = time_and_tz;
+ parts = base::SplitStringPiece(
+ time_and_tz, "+", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ if (parts.size() == 2) {
+ // Timezone is "+hh:mm" format
+ if (!ParseTimezone(parts[1], true, &offset_to_utc_in_minutes))
+ return false;
+ has_timezone = true;
+ time = parts[0];
+ } else {
+ parts = base::SplitStringPiece(
+ time_and_tz, "-", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ if (parts.size() == 2) {
+ // Timezone is "-hh:mm" format
+ if (!ParseTimezone(parts[1], false, &offset_to_utc_in_minutes))
+ return false;
+ has_timezone = true;
+ time = parts[0];
+ } else {
+ // No timezone (uses local timezone)
+ time = time_and_tz;
+ }
+ }
}
}
// Parses the date part.
{
- std::vector<base::StringPiece> parts;
- if (Tokenize(date, "-", &parts) != 3)
+ std::vector<base::StringPiece> parts = base::SplitStringPiece(
+ date, "-", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ if (parts.size() != 3)
return false;
if (!base::StringToInt(parts[0], &exploded.year) ||
@@ -101,9 +112,9 @@ bool GetTimeFromString(const base::StringPiece& raw_value,
// Parses the time part.
{
- std::vector<base::StringPiece> parts;
- int num_of_token = Tokenize(time, ":", &parts);
- if (num_of_token != 3)
+ std::vector<base::StringPiece> parts = base::SplitStringPiece(
+ time, ":", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ if (parts.size() != 3)
return false;
if (!base::StringToInt(parts[0], &exploded.hour) ||
@@ -111,16 +122,16 @@ bool GetTimeFromString(const base::StringPiece& raw_value,
return false;
}
- std::vector<base::StringPiece> seconds_parts;
- int num_of_seconds_token = Tokenize(parts[2], ".", &seconds_parts);
- if (num_of_seconds_token >= 3)
+ std::vector<base::StringPiece> seconds_parts = base::SplitStringPiece(
+ parts[2], ".", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ if (seconds_parts.size() >= 3)
return false;
if (!base::StringToInt(seconds_parts[0], &exploded.second))
- return false;
+ return false;
// Only accept milli-seconds (3-digits).
- if (num_of_seconds_token > 1 &&
+ if (seconds_parts.size() > 1 &&
seconds_parts[1].length() == 3 &&
!base::StringToInt(seconds_parts[1], &exploded.millisecond)) {
return false;
diff --git a/google_apis/gaia/oauth2_mint_token_flow.cc b/google_apis/gaia/oauth2_mint_token_flow.cc
index 9818f08..0316c63 100644
--- a/google_apis/gaia/oauth2_mint_token_flow.cc
+++ b/google_apis/gaia/oauth2_mint_token_flow.cc
@@ -13,6 +13,7 @@
#include "base/json/json_reader.h"
#include "base/message_loop/message_loop.h"
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
@@ -262,11 +263,9 @@ bool OAuth2MintTokenFlow::ParseIssueAdviceResponse(
}
base::TrimWhitespace(entry.description, base::TRIM_ALL, &entry.description);
- static const base::string16 detail_separators =
- base::ASCIIToUTF16(kDetailSeparators);
- Tokenize(detail, detail_separators, &entry.details);
- for (size_t i = 0; i < entry.details.size(); i++)
- base::TrimWhitespace(entry.details[i], base::TRIM_ALL, &entry.details[i]);
+ entry.details = base::SplitString(
+ detail, base::ASCIIToUTF16(kDetailSeparators),
+ base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
issue_advice->push_back(entry);
}
diff --git a/google_apis/gcm/engine/account_mapping.cc b/google_apis/gcm/engine/account_mapping.cc
index db7b3a1..7b0bfb0 100644
--- a/google_apis/gcm/engine/account_mapping.cc
+++ b/google_apis/gcm/engine/account_mapping.cc
@@ -5,6 +5,7 @@
#include "google_apis/gcm/engine/account_mapping.h"
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
namespace gcm {
@@ -80,8 +81,8 @@ std::string AccountMapping::SerializeAsString() const {
}
bool AccountMapping::ParseFromString(const std::string& value) {
- std::vector<std::string> values;
- Tokenize(value, kSeparator, &values);
+ std::vector<std::string> values = base::SplitString(
+ value, kSeparator, base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
if (values.size() != kSizeWithNoMessage &&
values.size() != kSizeWithMessage) {
return false;
diff --git a/gpu/command_buffer/service/feature_info.cc b/gpu/command_buffer/service/feature_info.cc
index c747383..0ce9980 100644
--- a/gpu/command_buffer/service/feature_info.cc
+++ b/gpu/command_buffer/service/feature_info.cc
@@ -56,8 +56,8 @@ class StringSet {
}
void Init(const std::string& str) {
- std::vector<std::string> tokens;
- Tokenize(str, " ", &tokens);
+ std::vector<std::string> tokens = base::SplitString(
+ str, " ", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
string_set_.insert(tokens.begin(), tokens.end());
}
diff --git a/gpu/command_buffer/service/test_helper.cc b/gpu/command_buffer/service/test_helper.cc
index a0f144b..308ab8e8 100644
--- a/gpu/command_buffer/service/test_helper.cc
+++ b/gpu/command_buffer/service/test_helper.cc
@@ -8,6 +8,7 @@
#include <string>
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_tokenizer.h"
#include "gpu/command_buffer/service/buffer_manager.h"
#include "gpu/command_buffer/service/error_state_mock.h"
@@ -364,7 +365,8 @@ void TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion(
// Persistent storage is needed for the split extension string.
split_extensions_.clear();
if (extensions) {
- Tokenize(extensions, " ", &split_extensions_);
+ split_extensions_ = base::SplitString(
+ extensions, " ", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
}
gfx::GLVersionInfo gl_info(gl_version, gl_renderer, extensions);
diff --git a/media/blink/cache_util_unittest.cc b/media/blink/cache_util_unittest.cc
index 7ea2f13..56dc49e 100644
--- a/media/blink/cache_util_unittest.cc
+++ b/media/blink/cache_util_unittest.cc
@@ -8,6 +8,7 @@
#include "base/format_macros.h"
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -33,13 +34,13 @@ static WebURLResponse CreateResponse(const GRFUTestCase& test) {
response.initialize();
response.setHTTPVersion(test.version);
response.setHTTPStatusCode(test.status_code);
- std::vector<std::string> lines;
- Tokenize(test.headers, "\n", &lines);
- for (size_t i = 0; i < lines.size(); ++i) {
- size_t colon = lines[i].find(": ");
+ for (const std::string& line :
+ base::SplitString(test.headers, "\n", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY)) {
+ size_t colon = line.find(": ");
response.addHTTPHeaderField(
- WebString::fromUTF8(lines[i].substr(0, colon)),
- WebString::fromUTF8(lines[i].substr(colon + 2)));
+ WebString::fromUTF8(line.substr(0, colon)),
+ WebString::fromUTF8(line.substr(colon + 2)));
}
return response;
}
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
index 25f6ed4..cb806c7 100644
--- a/media/ffmpeg/ffmpeg_common.cc
+++ b/media/ffmpeg/ffmpeg_common.cc
@@ -8,6 +8,7 @@
#include "base/logging.h"
#include "base/metrics/histogram.h"
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "media/base/decoder_buffer.h"
#include "media/base/video_util.h"
@@ -563,23 +564,30 @@ PixelFormat VideoFormatToPixelFormat(VideoFrame::Format video_format) {
return PIX_FMT_NONE;
}
-bool FFmpegUTCDateToTime(const char* date_utc,
- base::Time* out) {
+bool FFmpegUTCDateToTime(const char* date_utc, base::Time* out) {
DCHECK(date_utc);
DCHECK(out);
- std::vector<std::string> fields;
- std::vector<std::string> date_fields;
- std::vector<std::string> time_fields;
- base::Time::Exploded exploded;
- exploded.millisecond = 0;
+ std::vector<base::StringPiece> fields = base::SplitStringPiece(
+ date_utc, " ", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ if (fields.size() != 2)
+ return false;
+
+ std::vector<base::StringPiece> date_fields = base::SplitStringPiece(
+ fields[0], "-", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ if (date_fields.size() != 3)
+ return false;
// TODO(acolwell): Update this parsing code when FFmpeg returns sub-second
// information.
- if ((Tokenize(date_utc, " ", &fields) == 2) &&
- (Tokenize(fields[0], "-", &date_fields) == 3) &&
- (Tokenize(fields[1], ":", &time_fields) == 3) &&
- base::StringToInt(date_fields[0], &exploded.year) &&
+ std::vector<base::StringPiece> time_fields = base::SplitStringPiece(
+ fields[1], ":", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ if (time_fields.size() != 3)
+ return false;
+
+ base::Time::Exploded exploded;
+ exploded.millisecond = 0;
+ if (base::StringToInt(date_fields[0], &exploded.year) &&
base::StringToInt(date_fields[1], &exploded.month) &&
base::StringToInt(date_fields[2], &exploded.day_of_month) &&
base::StringToInt(time_fields[0], &exploded.hour) &&
diff --git a/media/filters/stream_parser_factory.cc b/media/filters/stream_parser_factory.cc
index cac29e1..9ea2b0e 100644
--- a/media/filters/stream_parser_factory.cc
+++ b/media/filters/stream_parser_factory.cc
@@ -8,6 +8,7 @@
#include "base/metrics/histogram.h"
#include "base/strings/pattern.h"
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "media/base/media_switches.h"
#include "media/formats/mpeg/adts_stream_parser.h"
@@ -111,9 +112,9 @@ static int GetMP4AudioObjectType(const std::string& codec_id,
// the second element is a hexadecimal representation of the MP4 Registration
// Authority ObjectTypeIndication (OTI). Note that MP4RA uses a leading "0x"
// with these values, which is omitted here and hence implied.
- std::vector<std::string> tokens;
- if (Tokenize(codec_id, ".", &tokens) == 3 &&
- tokens[0] == "mp4a" && tokens[1] == "40") {
+ std::vector<base::StringPiece> tokens = base::SplitStringPiece(
+ codec_id, ".", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ if (tokens.size() == 3 && tokens[0] == "mp4a" && tokens[1] == "40") {
// From RFC 6381 section 3.3:
// One of the OTI values for 'mp4a' is 40 (identifying MPEG-4 audio). For
// this value, the third element identifies the audio ObjectTypeIndication
diff --git a/media/formats/mp4/avc_unittest.cc b/media/formats/mp4/avc_unittest.cc
index b0aa976..e9ec17b 100644
--- a/media/formats/mp4/avc_unittest.cc
+++ b/media/formats/mp4/avc_unittest.cc
@@ -5,6 +5,7 @@
#include <string.h>
#include "base/basictypes.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "media/base/decrypt_config.h"
#include "media/base/stream_parser_buffer.h"
@@ -134,16 +135,19 @@ void StringToAnnexB(const std::string& str, std::vector<uint8>* buffer,
std::vector<SubsampleEntry>* subsamples) {
DCHECK(!str.empty());
- std::vector<std::string> subsample_specs;
- EXPECT_GT(Tokenize(str, " ", &subsample_specs), 0u);
+ std::vector<std::string> subsample_specs = base::SplitString(
+ str, " ", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ EXPECT_GT(subsample_specs.size(), 0u);
buffer->clear();
for (size_t i = 0; i < subsample_specs.size(); ++i) {
SubsampleEntry entry;
size_t start = buffer->size();
- std::vector<std::string> subsample_nalus;
- EXPECT_GT(Tokenize(subsample_specs[i], ",", &subsample_nalus), 0u);
+ std::vector<std::string> subsample_nalus = base::SplitString(
+ subsample_specs[i], ",", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY);
+ EXPECT_GT(subsample_nalus.size(), 0u);
for (size_t j = 0; j < subsample_nalus.size(); ++j) {
WriteStartCodeAndNALUType(buffer, subsample_nalus[j]);
diff --git a/media/test/pipeline_integration_test.cc b/media/test/pipeline_integration_test.cc
index 71d0f3c..766afae 100644
--- a/media/test/pipeline_integration_test.cc
+++ b/media/test/pipeline_integration_test.cc
@@ -6,6 +6,7 @@
#include "base/command_line.h"
#include "base/memory/scoped_ptr.h"
#include "base/stl_util.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "build/build_config.h"
#include "media/base/cdm_callback_promise.h"
@@ -566,7 +567,8 @@ class MockMediaSource {
std::string codecs_param =
mimetype_.substr(codecs_param_start,
codecs_param_end - codecs_param_start);
- Tokenize(codecs_param, ",", &codecs);
+ codecs = base::SplitString(
+ codecs_param, ",", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
}
CHECK_EQ(chunk_demuxer_->AddId(kSourceId, type, codecs), ChunkDemuxer::kOk);
diff --git a/net/proxy/proxy_config_service_linux.cc b/net/proxy/proxy_config_service_linux.cc
index de4d472..c26c0e1 100644
--- a/net/proxy/proxy_config_service_linux.cc
+++ b/net/proxy/proxy_config_service_linux.cc
@@ -29,6 +29,7 @@
#include "base/nix/xdg_util.h"
#include "base/single_thread_task_runner.h"
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_tokenizer.h"
#include "base/strings/string_util.h"
#include "base/threading/thread_restrictions.h"
@@ -836,10 +837,10 @@ bool SettingGetterImplGSettings::LoadAndCheckVersion(
// need them now, and to figure out where to get them, we have to check
// for this binary. See http://crbug.com/69057 for additional details.
base::ThreadRestrictions::ScopedAllowIO allow_io;
- std::vector<std::string> paths;
- Tokenize(path, ":", &paths);
- for (size_t i = 0; i < paths.size(); ++i) {
- base::FilePath file(paths[i]);
+
+ for (const base::StringPiece& path_str : base::SplitStringPiece(
+ path, ":", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY)) {
+ base::FilePath file(path_str);
if (base::PathExists(file.Append("gnome-network-properties"))) {
VLOG(1) << "Found gnome-network-properties. Will fall back to gconf.";
return false;
diff --git a/net/server/http_server_request_info.cc b/net/server/http_server_request_info.cc
index 23729b2..df5cff6 100644
--- a/net/server/http_server_request_info.cc
+++ b/net/server/http_server_request_info.cc
@@ -4,6 +4,7 @@
#include "net/server/http_server_request_info.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
namespace net {
@@ -28,12 +29,11 @@ bool HttpServerRequestInfo::HasHeaderValue(
DCHECK_EQ(base::StringToLowerASCII(header_value), header_value);
std::string complete_value = GetHeaderValue(header_name);
base::StringToLowerASCII(&complete_value);
- std::vector<std::string> value_items;
- Tokenize(complete_value, ",", &value_items);
- for (std::vector<std::string>::iterator it = value_items.begin();
- it != value_items.end(); ++it) {
- base::TrimString(*it, " \t", &*it);
- if (*it == header_value)
+
+ for (const base::StringPiece& cur :
+ base::SplitString(complete_value, ",", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY)) {
+ if (base::TrimString(cur, " \t", base::TRIM_ALL) == header_value)
return true;
}
return false;
diff --git a/net/tools/dump_cache/url_to_filename_encoder_unittest.cc b/net/tools/dump_cache/url_to_filename_encoder_unittest.cc
index a1a9665..e4d866f 100644
--- a/net/tools/dump_cache/url_to_filename_encoder_unittest.cc
+++ b/net/tools/dump_cache/url_to_filename_encoder_unittest.cc
@@ -7,6 +7,7 @@
#include <string>
#include <vector>
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/string_piece.h"
@@ -32,11 +33,11 @@ class UrlToFilenameEncoderTest : public ::testing::Test {
}
void CheckSegmentLength(const StringPiece& escaped_word) {
- std::vector<StringPiece> components;
- Tokenize(escaped_word, StringPiece("/"), &components);
- for (size_t i = 0; i < components.size(); ++i) {
+ for (const base::StringPiece& component :
+ base::SplitStringPiece(escaped_word, "/", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY)) {
EXPECT_GE(UrlToFilenameEncoder::kMaximumSubdirectoryLength,
- components[i].size());
+ component.size());
}
}
diff --git a/net/tools/quic/quic_client_bin.cc b/net/tools/quic/quic_client_bin.cc
index 3fc8be1..e14843e 100644
--- a/net/tools/quic/quic_client_bin.cc
+++ b/net/tools/quic/quic_client_bin.cc
@@ -234,11 +234,11 @@ int main(int argc, char *argv[]) {
FLAGS_body.empty() ? "GET" : "POST", url.spec(), "HTTP/1.1");
// Append any additional headers supplied on the command line.
- vector<string> headers_tokenized;
- Tokenize(FLAGS_headers, ";", &headers_tokenized);
- for (size_t i = 0; i < headers_tokenized.size(); ++i) {
+ for (const std::string& header :
+ base::SplitString(FLAGS_headers, ";", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY)) {
string sp;
- base::TrimWhitespaceASCII(headers_tokenized[i], base::TRIM_ALL, &sp);
+ base::TrimWhitespaceASCII(header, base::TRIM_ALL, &sp);
if (sp.empty()) {
continue;
}
diff --git a/net/tools/quic/quic_simple_client_bin.cc b/net/tools/quic/quic_simple_client_bin.cc
index 824521d..827e685 100644
--- a/net/tools/quic/quic_simple_client_bin.cc
+++ b/net/tools/quic/quic_simple_client_bin.cc
@@ -234,11 +234,11 @@ int main(int argc, char *argv[]) {
request.url = url;
// Append any additional headers supplied on the command line.
- vector<string> headers_tokenized;
- Tokenize(FLAGS_headers, ";", &headers_tokenized);
- for (size_t i = 0; i < headers_tokenized.size(); ++i) {
+ for (const std::string& header :
+ base::SplitString(FLAGS_headers, ";", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY)) {
string sp;
- base::TrimWhitespaceASCII(headers_tokenized[i], base::TRIM_ALL, &sp);
+ base::TrimWhitespaceASCII(header, base::TRIM_ALL, &sp);
if (sp.empty()) {
continue;
}
diff --git a/net/url_request/url_request_http_job_unittest.cc b/net/url_request/url_request_http_job_unittest.cc
index 5ca046f..fde6568 100644
--- a/net/url_request/url_request_http_job_unittest.cc
+++ b/net/url_request/url_request_http_job_unittest.cc
@@ -10,6 +10,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/run_loop.h"
+#include "base/strings/string_split.h"
#include "net/base/auth.h"
#include "net/base/request_priority.h"
#include "net/http/http_transaction_factory.h"
@@ -73,10 +74,10 @@ class URLRequestHttpJobTest : public ::testing::Test {
// This check isn't wrapped with EXPECT* macros because different
// results from this function may be expected in different tests.
- std::vector<std::string> tokens;
- size_t num_tokens = Tokenize(encoding_headers, ", ", &tokens);
- for (size_t i = 0; i < num_tokens; i++) {
- if (!base::strncasecmp(tokens[i].data(), "sdch", tokens[i].length()))
+ for (const std::string& token :
+ base::SplitString(encoding_headers, ", ", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY)) {
+ if (!base::strncasecmp(token.data(), "sdch", token.length()))
return true;
}
return false;
diff --git a/remoting/base/capabilities.cc b/remoting/base/capabilities.cc
index 4e52ef8..1226492 100644
--- a/remoting/base/capabilities.cc
+++ b/remoting/base/capabilities.cc
@@ -8,24 +8,28 @@
#include <vector>
#include "base/stl_util.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
namespace remoting {
bool HasCapability(const std::string& capabilities, const std::string& key) {
- std::vector<std::string> caps;
- Tokenize(capabilities, " ", &caps);
- return std::find(caps.begin(), caps.end(), key) != caps.end();
+ std::vector<base::StringPiece> caps = base::SplitStringPiece(
+ capabilities, " ", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ return std::find(caps.begin(), caps.end(), base::StringPiece(key)) !=
+ caps.end();
}
std::string IntersectCapabilities(const std::string& client_capabilities,
const std::string& host_capabilities) {
- std::vector<std::string> client_caps;
- Tokenize(client_capabilities, " ", &client_caps);
+ std::vector<std::string> client_caps = base::SplitString(
+ client_capabilities, " ", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY);
std::sort(client_caps.begin(), client_caps.end());
- std::vector<std::string> host_caps;
- Tokenize(host_capabilities, " ", &host_caps);
+ std::vector<std::string> host_caps = base::SplitString(
+ host_capabilities, " ", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY);
std::sort(host_caps.begin(), host_caps.end());
std::vector<std::string> result =
diff --git a/remoting/base/capabilities_unittest.cc b/remoting/base/capabilities_unittest.cc
index 162c96d..71dbd56 100644
--- a/remoting/base/capabilities_unittest.cc
+++ b/remoting/base/capabilities_unittest.cc
@@ -5,6 +5,7 @@
#include <algorithm>
#include <vector>
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "remoting/base/capabilities.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -61,9 +62,9 @@ TEST(CapabilitiesTest, HasCapability) {
// Verify that HasCapability(|capabilities|, |key|) returns |result|.
// |result|.
for (size_t i = 0; i < arraysize(data); ++i) {
- std::vector<std::string> caps;
- Tokenize(data[i].capabilities, " ", &caps);
-
+ std::vector<std::string> caps = base::SplitString(
+ data[i].capabilities, " ", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY);
do {
EXPECT_EQ(data[i].result,
HasCapability(JoinString(caps, " "), data[i].key));
@@ -93,9 +94,8 @@ TEST(CapabilitiesTest, Intersect) {
// Verify that intersection of |right| with all permutations of |left| yields
// |result|.
for (size_t i = 0; i < arraysize(data); ++i) {
- std::vector<std::string> caps;
- Tokenize(data[i].left, " ", &caps);
-
+ std::vector<std::string> caps = base::SplitString(
+ data[i].left, " ", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
do {
EXPECT_EQ(data[i].result,
IntersectCapabilities(JoinString(caps, " "), data[i].right));
diff --git a/remoting/host/client_session_unittest.cc b/remoting/host/client_session_unittest.cc
index 4ce6319..696f83f 100644
--- a/remoting/host/client_session_unittest.cc
+++ b/remoting/host/client_session_unittest.cc
@@ -8,6 +8,7 @@
#include "base/message_loop/message_loop.h"
#include "base/run_loop.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/test/test_simple_task_runner.h"
#include "remoting/base/auto_thread_task_runner.h"
@@ -100,10 +101,12 @@ MATCHER_P(EqCapabilities, expected_capabilities, "") {
if (!arg.has_capabilities())
return false;
- std::vector<std::string> words_args;
- std::vector<std::string> words_expected;
- Tokenize(arg.capabilities(), " ", &words_args);
- Tokenize(expected_capabilities, " ", &words_expected);
+ std::vector<std::string> words_args = base::SplitString(
+ arg.capabilities(), " ", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY);
+ std::vector<std::string> words_expected = base::SplitString(
+ expected_capabilities, " ", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY);
std::sort(words_args.begin(), words_args.end());
std::sort(words_expected.begin(), words_expected.end());
return words_args == words_expected;
diff --git a/remoting/host/host_extension_session_manager_unittest.cc b/remoting/host/host_extension_session_manager_unittest.cc
index 25e18c4..5be438b 100644
--- a/remoting/host/host_extension_session_manager_unittest.cc
+++ b/remoting/host/host_extension_session_manager_unittest.cc
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "remoting/codec/video_encoder.h"
#include "remoting/host/fake_host_extension.h"
@@ -79,8 +80,9 @@ TEST_F(HostExtensionSessionManagerTest, ExtensionCapabilities_AreReported) {
HostExtensionSessionManager extension_manager(extensions_,
&client_session_control_);
- std::vector<std::string> reported_caps;
- Tokenize(extension_manager.GetCapabilities(), " ", &reported_caps);
+ std::vector<std::string> reported_caps = base::SplitString(
+ extension_manager.GetCapabilities(), " ", base::KEEP_WHITESPACE,
+ base::SPLIT_WANT_NONEMPTY);
std::sort(reported_caps.begin(), reported_caps.end());
ASSERT_EQ(2U, reported_caps.size());
diff --git a/sync/test/fake_server/fake_server_entity.cc b/sync/test/fake_server/fake_server_entity.cc
index 4dd8411..784eeb5 100644
--- a/sync/test/fake_server/fake_server_entity.cc
+++ b/sync/test/fake_server/fake_server_entity.cc
@@ -14,6 +14,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "net/base/net_errors.h"
@@ -81,11 +82,11 @@ std::string FakeServerEntity::GetTopLevelId(const ModelType& model_type) {
// static
ModelType FakeServerEntity::GetModelTypeFromId(const string& id) {
- vector<string> tokens;
- size_t token_count = Tokenize(id, kIdSeparator, &tokens);
+ vector<base::StringPiece> tokens = base::SplitStringPiece(
+ id, kIdSeparator, base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
int field_number;
- if (token_count != 2 || !base::StringToInt(tokens[0], &field_number)) {
+ if (tokens.size() != 2 || !base::StringToInt(tokens[0], &field_number)) {
return syncer::UNSPECIFIED;
}
diff --git a/ui/aura/window_tree_host_x11.cc b/ui/aura/window_tree_host_x11.cc
index 65fbc49..8059d90 100644
--- a/ui/aura/window_tree_host_x11.cc
+++ b/ui/aura/window_tree_host_x11.cc
@@ -20,6 +20,7 @@
#include "base/command_line.h"
#include "base/stl_util.h"
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/sys_info.h"
@@ -115,10 +116,11 @@ class TouchEventCalibrate : public ui::PlatformEventObserver {
TouchEventCalibrate() : left_(0), right_(0), top_(0), bottom_(0) {
if (ui::PlatformEventSource::GetInstance())
ui::PlatformEventSource::GetInstance()->AddPlatformEventObserver(this);
- std::vector<std::string> parts;
- if (Tokenize(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
+ std::vector<std::string> parts = base::SplitString(
+ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
switches::kTouchCalibration),
- ",", &parts) >= 4) {
+ ",", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ if (parts.size() >= 4) {
if (!base::StringToInt(parts[0], &left_))
DLOG(ERROR) << "Incorrect left border calibration value passed.";
if (!base::StringToInt(parts[1], &right_))
diff --git a/ui/base/dragdrop/os_exchange_data_provider_aurax11.cc b/ui/base/dragdrop/os_exchange_data_provider_aurax11.cc
index c9285a0..e7a815c4 100644
--- a/ui/base/dragdrop/os_exchange_data_provider_aurax11.cc
+++ b/ui/base/dragdrop/os_exchange_data_provider_aurax11.cc
@@ -6,6 +6,7 @@
#include "base/logging.h"
#include "base/memory/ref_counted_memory.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "net/base/filename_util.h"
@@ -259,10 +260,11 @@ bool OSExchangeDataProviderAuraX11::GetURLAndTitle(
base::string16 unparsed;
data.AssignTo(&unparsed);
- std::vector<base::string16> tokens;
- size_t num_tokens = Tokenize(unparsed, base::ASCIIToUTF16("\n"), &tokens);
- if (num_tokens > 0) {
- if (num_tokens > 1)
+ std::vector<base::string16> tokens = base::SplitString(
+ unparsed, base::ASCIIToUTF16("\n"),
+ base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ if (tokens.size() > 0) {
+ if (tokens.size() > 1)
*title = tokens[1];
else
*title = base::string16();
diff --git a/ui/base/ime/chromeos/input_method_whitelist.cc b/ui/base/ime/chromeos/input_method_whitelist.cc
index 568e91c..8086ef9 100644
--- a/ui/base/ime/chromeos/input_method_whitelist.cc
+++ b/ui/base/ime/chromeos/input_method_whitelist.cc
@@ -6,6 +6,7 @@
#include <vector>
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "chromeos/ime/input_methods.h"
#include "ui/base/ime/chromeos/extension_ime_util.h"
@@ -38,8 +39,9 @@ InputMethodWhitelist::GetSupportedInputMethods() const {
std::vector<std::string> layouts;
layouts.push_back(kInputMethods[i].xkb_layout_id);
- std::vector<std::string> languages;
- Tokenize(kInputMethods[i].language_code, kLanguageDelimiter, &languages);
+ std::vector<std::string> languages = base::SplitString(
+ kInputMethods[i].language_code, kLanguageDelimiter,
+ base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
DCHECK(!languages.empty());
input_methods->push_back(InputMethodDescriptor(
diff --git a/ui/base/x/selection_utils.cc b/ui/base/x/selection_utils.cc
index d5ce1c0..cc9afbe 100644
--- a/ui/base/x/selection_utils.cc
+++ b/ui/base/x/selection_utils.cc
@@ -8,6 +8,7 @@
#include "base/i18n/icu_string_conversions.h"
#include "base/logging.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "ui/base/clipboard/clipboard.h"
@@ -79,10 +80,8 @@ std::vector<std::string> ParseURIList(const SelectionData& data) {
// uri-lists are newline separated file lists in URL encoding.
std::string unparsed;
data.AssignTo(&unparsed);
-
- std::vector<std::string> tokens;
- Tokenize(unparsed, "\n", &tokens);
- return tokens;
+ return base::SplitString(
+ unparsed, "\n", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
}
std::string RefCountedMemoryToString(
diff --git a/ui/events/ozone/evdev/libgestures_glue/gesture_property_provider.cc b/ui/events/ozone/evdev/libgestures_glue/gesture_property_provider.cc
index 3adb358..45cd381 100644
--- a/ui/events/ozone/evdev/libgestures_glue/gesture_property_provider.cc
+++ b/ui/events/ozone/evdev/libgestures_glue/gesture_property_provider.cc
@@ -721,7 +721,8 @@ struct ConfigurationSection {
MatchCriteria::MatchCriteria(const std::string& arg) {
// TODO(sheckylin): Should we trim all tokens here?
- Tokenize(arg, "|", &args_);
+ args_ = base::SplitString(
+ arg, "|", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
if (args_.empty()) {
LOG(ERROR) << "Empty match pattern found, will evaluate to the default "
"value (true): \"" << arg << "\"";
diff --git a/ui/events/ozone/evdev/touch_event_converter_evdev.cc b/ui/events/ozone/evdev/touch_event_converter_evdev.cc
index 7596242..4a46de3 100644
--- a/ui/events/ozone/evdev/touch_event_converter_evdev.cc
+++ b/ui/events/ozone/evdev/touch_event_converter_evdev.cc
@@ -21,6 +21,7 @@
#include "base/memory/scoped_vector.h"
#include "base/message_loop/message_loop.h"
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/trace_event/trace_event.h"
@@ -48,10 +49,11 @@ struct TouchCalibration {
};
void GetTouchCalibration(TouchCalibration* cal) {
- std::vector<std::string> parts;
- if (Tokenize(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
- switches::kTouchCalibration),
- ",", &parts) >= 4) {
+ std::vector<std::string> parts = base::SplitString(
+ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
+ switches::kTouchCalibration),
+ ",", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ if (parts.size() >= 4) {
if (!base::StringToInt(parts[0], &cal->bezel_left))
LOG(ERROR) << "Incorrect left border calibration value passed.";
if (!base::StringToInt(parts[1], &cal->bezel_right))
diff --git a/ui/gl/gl_egl_api_implementation.cc b/ui/gl/gl_egl_api_implementation.cc
index 792fdc5..cfdd026 100644
--- a/ui/gl/gl_egl_api_implementation.cc
+++ b/ui/gl/gl_egl_api_implementation.cc
@@ -11,13 +11,14 @@
#include "ui/gl/gl_implementation.h"
namespace {
+
std::string FilterExtensionList(
const char* extensions,
const std::vector<std::string>& disabled_extensions) {
if (extensions == NULL)
return "";
- std::vector<std::string> extension_vec;
- base::SplitString(extensions, ' ', &extension_vec);
+ std::vector<std::string> extension_vec = base::SplitString(
+ extensions, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
extension_vec.erase(std::remove_if(
extension_vec.begin(), extension_vec.end(),
[&disabled_extensions](const std::string& ext) {
@@ -26,7 +27,8 @@ std::string FilterExtensionList(
}), extension_vec.end());
return JoinString(extension_vec, " ");
}
-}
+
+} // namespace
namespace gfx {
@@ -92,7 +94,9 @@ void RealEGLApi::InitializeWithCommandLine(DriverEGL* driver,
disabled_exts_.clear();
filtered_exts_.clear();
if (!disabled_extensions.empty()) {
- Tokenize(disabled_extensions, ", ;", &disabled_exts_);
+ disabled_exts_ = base::SplitString(
+ disabled_extensions, ", ;",
+ base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
}
}
diff --git a/ui/gl/gl_gl_api_implementation.cc b/ui/gl/gl_gl_api_implementation.cc
index a8d4dbe..1d6fcb1 100644
--- a/ui/gl/gl_gl_api_implementation.cc
+++ b/ui/gl/gl_gl_api_implementation.cc
@@ -417,7 +417,9 @@ void RealGLApi::InitializeWithCommandLine(DriverGL* driver,
const std::string disabled_extensions = command_line->GetSwitchValueASCII(
switches::kDisableGLExtensions);
if (!disabled_extensions.empty()) {
- Tokenize(disabled_extensions, ", ;", &disabled_exts_);
+ disabled_exts_ = base::SplitString(
+ disabled_extensions, ", ;",
+ base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
}
}
@@ -466,8 +468,10 @@ void RealGLApi::InitializeFilteredExtensions() {
gfx::kGLImplementationDesktopGLCoreProfile) {
const char* gl_extensions = reinterpret_cast<const char*>(
GLApiBase::glGetStringFn(GL_EXTENSIONS));
- if (gl_extensions)
- base::SplitString(gl_extensions, ' ', &filtered_exts_);
+ if (gl_extensions) {
+ filtered_exts_ = base::SplitString(
+ gl_extensions, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
+ }
} else {
GLint num_extensions = 0;
GLApiBase::glGetIntegervFn(GL_NUM_EXTENSIONS, &num_extensions);
@@ -515,8 +519,8 @@ void VirtualGLApi::Initialize(DriverGL* driver, GLContext* real_context) {
DCHECK(real_context->IsCurrent(NULL));
std::string ext_string = real_context->GetExtensions();
- std::vector<std::string> ext;
- Tokenize(ext_string, " ", &ext);
+ std::vector<std::string> ext = base::SplitString(
+ ext_string, " ", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
std::vector<std::string>::iterator it;
// We can't support GL_EXT_occlusion_query_boolean which is
diff --git a/win8/metro_driver/file_picker.cc b/win8/metro_driver/file_picker.cc
index 1ccfbb9..b41e6be 100644
--- a/win8/metro_driver/file_picker.cc
+++ b/win8/metro_driver/file_picker.cc
@@ -305,9 +305,8 @@ HRESULT OpenFilePickerSession::StartFilePicker() {
break;
// There can be a single extension, or a list of semicolon-separated ones.
- std::vector<base::string16> extensions_win32_style;
- size_t extension_count = Tokenize(walk, L";", &extensions_win32_style);
- DCHECK_EQ(extension_count, extensions_win32_style.size());
+ std::vector<base::string16> extensions_win32_style = base::SplitString(
+ walk, L";", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
// Metro wants suffixes only, not patterns.
mswrw::HString extension;
@@ -476,9 +475,8 @@ HRESULT SaveFilePickerSession::StartFilePicker() {
break;
// There can be a single extension, or a list of semicolon-separated ones.
- std::vector<base::string16> extensions_win32_style;
- size_t extension_count = Tokenize(walk, L";", &extensions_win32_style);
- DCHECK_EQ(extension_count, extensions_win32_style.size());
+ std::vector<base::string16> extensions_win32_style = base::SplitString(
+ walk, L";", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
// Metro wants suffixes only, not patterns. Also, metro does not support
// the all files ("*") pattern in the save picker.
diff --git a/win8/metro_driver/file_picker_ash.cc b/win8/metro_driver/file_picker_ash.cc
index e45301c..a420b53 100644
--- a/win8/metro_driver/file_picker_ash.cc
+++ b/win8/metro_driver/file_picker_ash.cc
@@ -8,6 +8,7 @@
#include "base/bind.h"
#include "base/logging.h"
#include "base/message_loop/message_loop.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/synchronization/waitable_event.h"
#include "base/win/metro.h"
@@ -239,9 +240,8 @@ HRESULT OpenFilePickerSession::StartFilePicker() {
break;
// There can be a single extension, or a list of semicolon-separated ones.
- std::vector<base::string16> extensions_win32_style;
- size_t extension_count = Tokenize(walk, L";", &extensions_win32_style);
- DCHECK_EQ(extension_count, extensions_win32_style.size());
+ std::vector<base::string16> extensions_win32_style = base::SplitString(
+ walk, L";", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
// Metro wants suffixes only, not patterns.
mswrw::HString extension;
@@ -421,9 +421,8 @@ HRESULT SaveFilePickerSession::StartFilePicker() {
break;
// There can be a single extension, or a list of semicolon-separated ones.
- std::vector<base::string16> extensions_win32_style;
- size_t extension_count = Tokenize(walk, L";", &extensions_win32_style);
- DCHECK_EQ(extension_count, extensions_win32_style.size());
+ std::vector<base::string16> extensions_win32_style = base::SplitString(
+ walk, L";", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
// Metro wants suffixes only, not patterns. Also, metro does not support
// the all files ("*") pattern in the save picker.