Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: base/trace_event/trace_event_etw_export_win.cc

Issue 2780983003: Reland: Avoid calling strlen() where possible in base/trace_config (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 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_event_etw_export_win.h" 5 #include "base/trace_event/trace_event_etw_export_win.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 void TraceEventETWExport::AddCompleteEndEvent(const char* name) { 341 void TraceEventETWExport::AddCompleteEndEvent(const char* name) {
342 auto* instance = GetInstance(); 342 auto* instance = GetInstance();
343 if (!instance || !instance->etw_export_enabled_ || !EventEnabledChromeEvent()) 343 if (!instance || !instance->etw_export_enabled_ || !EventEnabledChromeEvent())
344 return; 344 return;
345 345
346 EventWriteChromeEvent(name, "Complete End", "", "", "", "", "", ""); 346 EventWriteChromeEvent(name, "Complete End", "", "", "", "", "", "");
347 } 347 }
348 348
349 // static 349 // static
350 bool TraceEventETWExport::IsCategoryGroupEnabled( 350 bool TraceEventETWExport::IsCategoryGroupEnabled(
351 const char* category_group_name) { 351 StringPiece category_group_name) {
352 DCHECK(category_group_name); 352 DCHECK(!category_group_name.empty());
353 auto* instance = GetInstance(); 353 auto* instance = GetInstance();
354 if (instance == nullptr) 354 if (instance == nullptr)
355 return false; 355 return false;
356 356
357 if (!instance->IsETWExportEnabled()) 357 if (!instance->IsETWExportEnabled())
358 return false; 358 return false;
359 359
360 CStringTokenizer category_group_tokens( 360 CStringTokenizer category_group_tokens(category_group_name.begin(),
361 category_group_name, category_group_name + strlen(category_group_name), 361 category_group_name.end(), ",");
362 ",");
363 while (category_group_tokens.GetNext()) { 362 while (category_group_tokens.GetNext()) {
364 std::string category_group_token = category_group_tokens.token(); 363 StringPiece category_group_token = category_group_tokens.token_piece();
365 if (instance->IsCategoryEnabled(category_group_token.c_str())) { 364 if (instance->IsCategoryEnabled(category_group_token)) {
366 return true; 365 return true;
367 } 366 }
368 } 367 }
369 return false; 368 return false;
370 } 369 }
371 370
372 bool TraceEventETWExport::UpdateEnabledCategories() { 371 bool TraceEventETWExport::UpdateEnabledCategories() {
373 if (etw_match_any_keyword_ == CHROME_Context.MatchAnyKeyword) 372 if (etw_match_any_keyword_ == CHROME_Context.MatchAnyKeyword)
374 return false; 373 return false;
375 374
(...skipping 23 matching lines...) Expand all
399 } 398 }
400 399
401 DCHECK_EQ(kNumberOfCategories, categories_status_.size()); 400 DCHECK_EQ(kNumberOfCategories, categories_status_.size());
402 401
403 // Update the categories in TraceLog. 402 // Update the categories in TraceLog.
404 TraceLog::GetInstance()->UpdateETWCategoryGroupEnabledFlags(); 403 TraceLog::GetInstance()->UpdateETWCategoryGroupEnabledFlags();
405 404
406 return true; 405 return true;
407 } 406 }
408 407
409 bool TraceEventETWExport::IsCategoryEnabled(const char* category_name) const { 408 bool TraceEventETWExport::IsCategoryEnabled(StringPiece category_name) const {
410 DCHECK_EQ(kNumberOfCategories, categories_status_.size()); 409 DCHECK_EQ(kNumberOfCategories, categories_status_.size());
411 // Try to find the category and return its status if found 410 // Try to find the category and return its status if found
412 auto it = categories_status_.find(category_name); 411 auto it = categories_status_.find(category_name);
413 if (it != categories_status_.end()) 412 if (it != categories_status_.end())
414 return it->second; 413 return it->second;
415 414
416 // Otherwise return the corresponding default status by first checking if the 415 // Otherwise return the corresponding default status by first checking if the
417 // category is disabled by default. 416 // category is disabled by default.
418 if (StringPiece(category_name).starts_with("disabled-by-default")) { 417 if (category_name.starts_with("disabled-by-default")) {
419 DCHECK(categories_status_.find(kDisabledOtherEventsGroupName) != 418 DCHECK(categories_status_.find(kDisabledOtherEventsGroupName) !=
420 categories_status_.end()); 419 categories_status_.end());
421 return categories_status_.find(kDisabledOtherEventsGroupName)->second; 420 return categories_status_.find(kDisabledOtherEventsGroupName)->second;
422 } else { 421 } else {
423 DCHECK(categories_status_.find(kOtherEventsGroupName) != 422 DCHECK(categories_status_.find(kOtherEventsGroupName) !=
424 categories_status_.end()); 423 categories_status_.end());
425 return categories_status_.find(kOtherEventsGroupName)->second; 424 return categories_status_.find(kOtherEventsGroupName)->second;
426 } 425 }
427 } 426 }
428 427
429 // static 428 // static
430 void TraceEventETWExport::UpdateETWKeyword() { 429 void TraceEventETWExport::UpdateETWKeyword() {
431 if (!IsETWExportEnabled()) 430 if (!IsETWExportEnabled())
432 return; 431 return;
433 auto* instance = GetInstance(); 432 auto* instance = GetInstance();
434 DCHECK(instance); 433 DCHECK(instance);
435 instance->UpdateEnabledCategories(); 434 instance->UpdateEnabledCategories();
436 } 435 }
437 } // namespace trace_event 436 } // namespace trace_event
438 } // namespace base 437 } // namespace base
OLDNEW
« no previous file with comments | « base/trace_event/trace_event_etw_export_win.h ('k') | chrome/browser/chromeos/arc/tracing/arc_tracing_bridge.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698