Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/trace_event/trace_config.h" | 5 #include "base/trace_event/trace_config.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 314 bool had_enabled_by_default = false; | 314 bool had_enabled_by_default = false; |
| 315 DCHECK(category_group_name); | 315 DCHECK(category_group_name); |
| 316 std::string category_group_name_str = category_group_name; | 316 std::string category_group_name_str = category_group_name; |
| 317 StringTokenizer category_group_tokens(category_group_name_str, ","); | 317 StringTokenizer category_group_tokens(category_group_name_str, ","); |
| 318 while (category_group_tokens.GetNext()) { | 318 while (category_group_tokens.GetNext()) { |
| 319 std::string category_group_token = category_group_tokens.token(); | 319 std::string category_group_token = category_group_tokens.token(); |
| 320 // Don't allow empty tokens, nor tokens with leading or trailing space. | 320 // Don't allow empty tokens, nor tokens with leading or trailing space. |
| 321 DCHECK(!TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( | 321 DCHECK(!TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( |
| 322 category_group_token)) | 322 category_group_token)) |
| 323 << "Disallowed category string"; | 323 << "Disallowed category string"; |
| 324 if (IsCategoryEnabled(category_group_token.c_str())) | 324 if (IsCategoryEnabled(category_group_token)) |
| 325 return true; | 325 return true; |
| 326 | 326 |
| 327 if (!MatchPattern(category_group_token, TRACE_DISABLED_BY_DEFAULT("*"))) | 327 if (!MatchPattern(category_group_token, TRACE_DISABLED_BY_DEFAULT("*"))) |
| 328 had_enabled_by_default = true; | 328 had_enabled_by_default = true; |
| 329 } | 329 } |
| 330 // Do a second pass to check for explicitly disabled categories | 330 // Do a second pass to check for explicitly disabled categories |
| 331 // (those explicitly enabled have priority due to first pass). | 331 // (those explicitly enabled have priority due to first pass). |
| 332 category_group_tokens.Reset(); | 332 category_group_tokens.Reset(); |
| 333 bool category_group_disabled = false; | 333 bool category_group_disabled = false; |
| 334 while (category_group_tokens.GetNext()) { | 334 while (category_group_tokens.GetNext()) { |
| (...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 848 int token_cnt = 0; | 848 int token_cnt = 0; |
| 849 for (const std::string& category : delays) { | 849 for (const std::string& category : delays) { |
| 850 if (token_cnt > 0 || prepend_comma) | 850 if (token_cnt > 0 || prepend_comma) |
| 851 StringAppendF(out, ","); | 851 StringAppendF(out, ","); |
| 852 StringAppendF(out, "%s%s)", kSyntheticDelayCategoryFilterPrefix, | 852 StringAppendF(out, "%s%s)", kSyntheticDelayCategoryFilterPrefix, |
| 853 category.c_str()); | 853 category.c_str()); |
| 854 ++token_cnt; | 854 ++token_cnt; |
| 855 } | 855 } |
| 856 } | 856 } |
| 857 | 857 |
| 858 bool TraceConfig::IsCategoryEnabled(const char* category_name) const { | 858 bool TraceConfig::IsCategoryEnabled(StringPiece category_name) const { |
|
Andrey Kraynov
2017/01/09 21:50:45
Later |category_name| will be used as an argument
Primiano Tucci (use gerrit)
2017/01/09 23:52:37
Please don't change this signature. This is used b
Andrey Kraynov
2017/01/10 06:24:53
My point was that in case of the old signature of
Primiano Tucci (use gerrit)
2017/01/10 10:48:43
ahh sorry you are right, it would actually happen
| |
| 859 // Check the disabled- filters and the disabled-* wildcard first so that a | 859 // Check the disabled- filters and the disabled-* wildcard first so that a |
| 860 // "*" filter does not include the disabled. | 860 // "*" filter does not include the disabled. |
| 861 for (const std::string& category : disabled_categories_) { | 861 for (const std::string& category : disabled_categories_) { |
| 862 if (MatchPattern(category_name, category)) | 862 if (MatchPattern(category_name, category)) |
| 863 return true; | 863 return true; |
| 864 } | 864 } |
| 865 | 865 |
| 866 if (MatchPattern(category_name, TRACE_DISABLED_BY_DEFAULT("*"))) | 866 if (MatchPattern(category_name, TRACE_DISABLED_BY_DEFAULT("*"))) |
| 867 return false; | 867 return false; |
| 868 | 868 |
| 869 for (const std::string& category : included_categories_) { | 869 for (const std::string& category : included_categories_) { |
| 870 if (MatchPattern(category_name, category)) | 870 if (MatchPattern(category_name, category)) |
| 871 return true; | 871 return true; |
| 872 } | 872 } |
| 873 | 873 |
| 874 return false; | 874 return false; |
| 875 } | 875 } |
| 876 | 876 |
| 877 bool TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( | 877 bool TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( |
| 878 StringPiece str) { | 878 StringPiece str) { |
| 879 return str.empty() || str.front() == ' ' || str.back() == ' '; | 879 return str.empty() || str.front() == ' ' || str.back() == ' '; |
| 880 } | 880 } |
| 881 | 881 |
| 882 bool TraceConfig::HasIncludedPatterns() const { | 882 bool TraceConfig::HasIncludedPatterns() const { |
| 883 return !included_categories_.empty(); | 883 return !included_categories_.empty(); |
| 884 } | 884 } |
| 885 | 885 |
| 886 } // namespace trace_event | 886 } // namespace trace_event |
| 887 } // namespace base | 887 } // namespace base |
| OLD | NEW |