diff options
author | pkasting <pkasting@chromium.org> | 2015-08-06 18:29:50 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-07 01:30:28 +0000 |
commit | c4afb05f67511e980cd13c021abf26e04b902977 (patch) | |
tree | 125f79c7a354095c4519128b0fe2c9983f644152 /extensions | |
parent | ac97e8e270e8783230272fa07d18d360d2409d5f (diff) | |
download | chromium_src-c4afb05f67511e980cd13c021abf26e04b902977.zip chromium_src-c4afb05f67511e980cd13c021abf26e04b902977.tar.gz chromium_src-c4afb05f67511e980cd13c021abf26e04b902977.tar.bz2 |
Revert of Update SplitString calls to new form (patchset #5 id:80001 of https://codereview.chromium.org/1272823003/ )
Reason for revert:
Caused Blink layout test failures in media/encrypted-media/encrypted-media-requestmediakeysystemaccess.html :
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&tests=media%2Fencrypted-media%2Fencrypted-media-requestmediakeysystemaccess.html
Original issue's description:
> Update SplitString calls to new form
>
> Uses the new form for most (but not quite all) of the remaining users of the old form.
>
> Changes media mime util codec list parsing to expect no result from the string "," rather than two empty strings. The old SplitString call had a special case where if the input was empty, it would return empty, but if it had one split character, it would return two empty strings as results.
>
> The new one lets you choose but the options are either (1) empty string -> one empty string and "," -> two empty strings, or (2) map both to no results for when you don't want empty results. I'm pretty sure media codec parsing actually wants the latter behavior, so I updated the call to discard empty results and MimeUtilTest.ParseCodecString is updated.
>
> Committed: https://crrev.com/0aa7c64253cca8b636d52d1d01d94f96ab9c13fa
> Cr-Commit-Position: refs/heads/master@{#342238}
TBR=sky@chromium.org,dalecurtis@chromium.org,brettw@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1278973003
Cr-Commit-Position: refs/heads/master@{#342257}
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/browser/api/networking_private/networking_private_linux.cc | 6 | ||||
-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 | ||||
-rw-r--r-- | extensions/renderer/dispatcher.cc | 4 |
8 files changed, 31 insertions, 28 deletions
diff --git a/extensions/browser/api/networking_private/networking_private_linux.cc b/extensions/browser/api/networking_private/networking_private_linux.cc index bd07dc5..1bdb116 100644 --- a/extensions/browser/api/networking_private/networking_private_linux.cc +++ b/extensions/browser/api/networking_private/networking_private_linux.cc @@ -51,8 +51,10 @@ bool ParseNetworkGuid(const std::string& guid, std::string* device_path, std::string* access_point_path, std::string* ssid) { - std::vector<std::string> guid_parts = - base::SplitString(guid, "|", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); + std::vector<std::string> guid_parts; + + base::SplitString(guid, '|', &guid_parts); + if (guid_parts.size() != 3) { return false; } diff --git a/extensions/common/csp_validator.cc b/extensions/common/csp_validator.cc index d19b983..1fe2217 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, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); + std::vector<std::string> directives; + base::SplitString(policy, ';', &directives); DirectiveStatus default_src_status(kDefaultSrc); DirectiveStatus script_src_status(kScriptSrc); @@ -307,9 +307,13 @@ 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 (const std::string& input : base::SplitString( - policy, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL)) { + + for (size_t i = 0; i < directives.size(); ++i) { + std::string& input = directives[i]; 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 cae08d6..472e1f55 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(), ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); + std::vector<std::string> split; + base::SplitString(iter.key(), '.', &split); // 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(), ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); + std::vector<std::string> split; + base::SplitString(feature->name(), '.', &split); if (split.size() < 2) return nullptr; split.pop_back(); diff --git a/extensions/common/manifest.cc b/extensions/common/manifest.cc index c552de7..f072488 100644 --- a/extensions/common/manifest.cc +++ b/extensions/common/manifest.cc @@ -240,10 +240,11 @@ 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 (const base::StringPiece& component : base::SplitStringPiece( - path, ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL)) { - component.AppendToString(&key); + for (size_t i = 0; i < components.size(); ++i) { + key += components[i]; 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 f22f14a..a01c20f 100644 --- a/extensions/common/permissions/socket_permission_data.cc +++ b/extensions/common/permissions/socket_permission_data.cc @@ -124,9 +124,8 @@ SocketPermissionEntry& SocketPermissionData::entry() { bool SocketPermissionData::Parse(const std::string& permission) { Reset(); - std::vector<std::string> tokens = - base::SplitString(permission, std::string(1, kColon), - base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL); + std::vector<std::string> tokens; + base::SplitStringDontTrim(permission, kColon, &tokens); if (tokens.empty()) return false; diff --git a/extensions/common/permissions/socket_permission_entry.cc b/extensions/common/permissions/socket_permission_entry.cc index 86c61de..8b2d355 100644 --- a/extensions/common/permissions/socket_permission_entry.cc +++ b/extensions/common/permissions/socket_permission_entry.cc @@ -128,9 +128,8 @@ bool SocketPermissionEntry::ParseHostPattern( SocketPermissionRequest::OperationType type, const std::string& pattern, SocketPermissionEntry* entry) { - std::vector<std::string> tokens = - base::SplitString(pattern, std::string(1, kColon), base::KEEP_WHITESPACE, - base::SPLIT_WANT_ALL); + std::vector<std::string> tokens; + base::SplitStringDontTrim(pattern, kColon, &tokens); return ParseHostPattern(type, tokens, entry); } @@ -169,9 +168,8 @@ 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, std::string(1, kDot), - base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); + std::vector<std::string> host_components; + base::SplitString(result.pattern_.host, kDot, &host_components); 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 b91d438..502c459 100644 --- a/extensions/common/url_pattern.cc +++ b/extensions/common/url_pattern.cc @@ -237,12 +237,11 @@ 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_, ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); + std::vector<std::string> host_components; + base::SplitString(host_, '.', &host_components); // Could be empty if the host only consists of whitespace characters. - if (host_components.empty() || - (host_components.size() == 1 && host_components[0].empty())) + if (host_components.empty()) return PARSE_ERROR_EMPTY_HOST; if (host_components[0] == "*") { diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc index 94bfb78..997185e 100644 --- a/extensions/renderer/dispatcher.cc +++ b/extensions/renderer/dispatcher.cc @@ -1347,8 +1347,8 @@ v8::Local<v8::Object> Dispatcher::GetOrCreateBindObjectIfAvailable( const std::string& api_name, std::string* bind_name, ScriptContext* context) { - std::vector<std::string> split = base::SplitString( - api_name, ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); + std::vector<std::string> split; + base::SplitString(api_name, '.', &split); v8::Local<v8::Object> bind_object; |