diff options
author | brettw <brettw@chromium.org> | 2015-08-07 17:28:47 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-08 00:29:27 +0000 |
commit | 26dab8f049217794bd73a230ea567021adc09672 (patch) | |
tree | 226dec9ffde922a61c6d05f0d8ee549f0a9dd02d /extensions/common | |
parent | dbae293445fa5a6c8ba5cea0c7290f436d1034ab (diff) | |
download | chromium_src-26dab8f049217794bd73a230ea567021adc09672.zip chromium_src-26dab8f049217794bd73a230ea567021adc09672.tar.gz chromium_src-26dab8f049217794bd73a230ea567021adc09672.tar.bz2 |
Update SplitString calls to new form
Uses the new form for most (but not quite all) of the remaining users of the old form.
Reland of https://codereview.chromium.org/1272823003 but with no changes to the way media parses codec lists. The previous landing attempted to simplify some handling but there are layout tests that expect the old behavior, and I'm not qualified to tell if it's OK to change.
TBR=sky
Review URL: https://codereview.chromium.org/1274123003
Cr-Commit-Position: refs/heads/master@{#342489}
Diffstat (limited to 'extensions/common')
-rw-r--r-- | extensions/common/csp_validator.cc | 12 | ||||
-rw-r--r-- | extensions/common/features/base_feature_provider.cc | 8 | ||||
-rw-r--r-- | extensions/common/manifest.cc | 7 | ||||
-rw-r--r-- | extensions/common/permissions/socket_permission_data.cc | 5 | ||||
-rw-r--r-- | extensions/common/permissions/socket_permission_entry.cc | 10 | ||||
-rw-r--r-- | extensions/common/url_pattern.cc | 7 |
6 files changed, 24 insertions, 25 deletions
diff --git a/extensions/common/csp_validator.cc b/extensions/common/csp_validator.cc index 1fe2217..d19b983 100644 --- a/extensions/common/csp_validator.cc +++ b/extensions/common/csp_validator.cc @@ -240,8 +240,8 @@ std::string SanitizeContentSecurityPolicy( int options, std::vector<InstallWarning>* warnings) { // See http://www.w3.org/TR/CSP/#parse-a-csp-policy for parsing algorithm. - std::vector<std::string> directives; - base::SplitString(policy, ';', &directives); + std::vector<std::string> directives = base::SplitString( + policy, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); DirectiveStatus default_src_status(kDefaultSrc); DirectiveStatus script_src_status(kScriptSrc); @@ -307,13 +307,9 @@ std::string SanitizeContentSecurityPolicy( bool ContentSecurityPolicyIsSandboxed( const std::string& policy, Manifest::Type type) { // See http://www.w3.org/TR/CSP/#parse-a-csp-policy for parsing algorithm. - std::vector<std::string> directives; - base::SplitString(policy, ';', &directives); - bool seen_sandbox = false; - - for (size_t i = 0; i < directives.size(); ++i) { - std::string& input = directives[i]; + for (const std::string& input : base::SplitString( + policy, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL)) { base::StringTokenizer tokenizer(input, " \t\r\n"); if (!tokenizer.GetNext()) continue; diff --git a/extensions/common/features/base_feature_provider.cc b/extensions/common/features/base_feature_provider.cc index 472e1f55..cae08d6 100644 --- a/extensions/common/features/base_feature_provider.cc +++ b/extensions/common/features/base_feature_provider.cc @@ -52,8 +52,8 @@ BaseFeatureProvider::BaseFeatureProvider(const base::DictionaryValue& root, if (iter.value().GetType() == base::Value::TYPE_DICTIONARY) { linked_ptr<SimpleFeature> feature((*factory_)()); - std::vector<std::string> split; - base::SplitString(iter.key(), '.', &split); + std::vector<std::string> split = base::SplitString( + iter.key(), ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); // Push parent features on the stack, starting with the current feature. // If one of the features has "noparent" set, stop pushing features on @@ -171,8 +171,8 @@ Feature* BaseFeatureProvider::GetParent(Feature* feature) const { if (feature->no_parent()) return nullptr; - std::vector<std::string> split; - base::SplitString(feature->name(), '.', &split); + std::vector<std::string> split = base::SplitString( + feature->name(), ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); if (split.size() < 2) return nullptr; split.pop_back(); diff --git a/extensions/common/manifest.cc b/extensions/common/manifest.cc index f072488..c552de7 100644 --- a/extensions/common/manifest.cc +++ b/extensions/common/manifest.cc @@ -240,11 +240,10 @@ int Manifest::GetManifestVersion() const { } bool Manifest::CanAccessPath(const std::string& path) const { - std::vector<std::string> components; - base::SplitString(path, '.', &components); std::string key; - for (size_t i = 0; i < components.size(); ++i) { - key += components[i]; + for (const base::StringPiece& component : base::SplitStringPiece( + path, ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL)) { + component.AppendToString(&key); if (!CanAccessKey(key)) return false; key += '.'; diff --git a/extensions/common/permissions/socket_permission_data.cc b/extensions/common/permissions/socket_permission_data.cc index a01c20f..f22f14a 100644 --- a/extensions/common/permissions/socket_permission_data.cc +++ b/extensions/common/permissions/socket_permission_data.cc @@ -124,8 +124,9 @@ SocketPermissionEntry& SocketPermissionData::entry() { bool SocketPermissionData::Parse(const std::string& permission) { Reset(); - std::vector<std::string> tokens; - base::SplitStringDontTrim(permission, kColon, &tokens); + std::vector<std::string> tokens = + base::SplitString(permission, std::string(1, kColon), + base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL); if (tokens.empty()) return false; diff --git a/extensions/common/permissions/socket_permission_entry.cc b/extensions/common/permissions/socket_permission_entry.cc index 8b2d355..86c61de 100644 --- a/extensions/common/permissions/socket_permission_entry.cc +++ b/extensions/common/permissions/socket_permission_entry.cc @@ -128,8 +128,9 @@ bool SocketPermissionEntry::ParseHostPattern( SocketPermissionRequest::OperationType type, const std::string& pattern, SocketPermissionEntry* entry) { - std::vector<std::string> tokens; - base::SplitStringDontTrim(pattern, kColon, &tokens); + std::vector<std::string> tokens = + base::SplitString(pattern, std::string(1, kColon), base::KEEP_WHITESPACE, + base::SPLIT_WANT_ALL); return ParseHostPattern(type, tokens, entry); } @@ -168,8 +169,9 @@ bool SocketPermissionEntry::ParseHostPattern( result.pattern_.host = base::StringToLowerASCII(result.pattern_.host); // The first component can optionally be '*' to match all subdomains. - std::vector<std::string> host_components; - base::SplitString(result.pattern_.host, kDot, &host_components); + std::vector<std::string> host_components = + base::SplitString(result.pattern_.host, std::string(1, kDot), + base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); DCHECK(!host_components.empty()); if (host_components[0] == kWildcard || host_components[0].empty()) { diff --git a/extensions/common/url_pattern.cc b/extensions/common/url_pattern.cc index 502c459..b91d438 100644 --- a/extensions/common/url_pattern.cc +++ b/extensions/common/url_pattern.cc @@ -237,11 +237,12 @@ URLPattern::ParseResult URLPattern::Parse(const std::string& pattern) { host_ = pattern.substr(host_start_pos, host_end_pos - host_start_pos); // The first component can optionally be '*' to match all subdomains. - std::vector<std::string> host_components; - base::SplitString(host_, '.', &host_components); + std::vector<std::string> host_components = base::SplitString( + host_, ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); // Could be empty if the host only consists of whitespace characters. - if (host_components.empty()) + if (host_components.empty() || + (host_components.size() == 1 && host_components[0].empty())) return PARSE_ERROR_EMPTY_HOST; if (host_components[0] == "*") { |