Chromium Code Reviews| Index: base/trace_event/trace_config.cc |
| diff --git a/base/trace_event/trace_config.cc b/base/trace_event/trace_config.cc |
| index 9a17adb969a79f12935800b2f69b8da310379d1d..8982616d5691e0de69839bed086ebebd9ed69725 100644 |
| --- a/base/trace_event/trace_config.cc |
| +++ b/base/trace_event/trace_config.cc |
| @@ -48,8 +48,10 @@ const char kSyntheticDelayCategoryFilterPrefix[] = "DELAY("; |
| const char kMemoryDumpConfigParam[] = "memory_dump_config"; |
| const char kAllowedDumpModesParam[] = "allowed_dump_modes"; |
| const char kTriggersParam[] = "triggers"; |
| -const char kPeriodicIntervalParam[] = "periodic_interval_ms"; |
| -const char kModeParam[] = "mode"; |
| +const char kTriggerModeParam[] = "mode"; |
| +const char kMinTimeBetweenDumps[] = "min_time_between_dumps_ms"; |
| +const char kTriggerTypeParam[] = "type"; |
| +const char kPeriodicIntervalParam[] = "periodic_interval_ms"; // legacy config |
|
Primiano Tucci (use gerrit)
2016/12/15 15:40:43
maybe add Legacy to the name (kPeriodicIntervalLeg
ssid
2016/12/15 19:48:07
Done.
|
| const char kHeapProfilerOptions[] = "heap_profiler_options"; |
| const char kBreakdownThresholdBytes[] = "breakdown_threshold_bytes"; |
| @@ -60,11 +62,11 @@ const char kFilterArgsParam[] = "filter_args"; |
| // Default configuration of memory dumps. |
| const TraceConfig::MemoryDumpConfig::Trigger kDefaultHeavyMemoryDumpTrigger = { |
| - 2000, // periodic_interval_ms |
| - MemoryDumpLevelOfDetail::DETAILED}; |
| + 2000, // min_time_between_dumps_ms |
| + MemoryDumpLevelOfDetail::DETAILED, MemoryDumpType::PERIODIC_INTERVAL}; |
| const TraceConfig::MemoryDumpConfig::Trigger kDefaultLightMemoryDumpTrigger = { |
| - 250, // periodic_interval_ms |
| - MemoryDumpLevelOfDetail::LIGHT}; |
| + 250, // min_time_between_dumps_ms |
| + MemoryDumpLevelOfDetail::LIGHT, MemoryDumpType::PERIODIC_INTERVAL}; |
| class ConvertableTraceConfigToTraceFormat |
| : public base::trace_event::ConvertableToTraceFormat { |
| @@ -592,17 +594,26 @@ void TraceConfig::SetMemoryDumpConfigFromConfigDict( |
| if (!trigger_list->GetDictionary(i, &trigger)) |
| continue; |
| + MemoryDumpConfig::Trigger dump_config; |
| int interval = 0; |
| - if (!trigger->GetInteger(kPeriodicIntervalParam, &interval)) |
| - continue; |
| - |
| + if (!trigger->GetInteger(kMinTimeBetweenDumps, &interval)) { |
| + // If "min_time_between_dumps_ms" param was not given, then the trace |
| + // config uses old format where only periodic dumps are supported. |
| + trigger->GetInteger(kPeriodicIntervalParam, &interval); |
|
Primiano Tucci (use gerrit)
2016/12/15 15:40:43
don't you have to keep the path where you skip if
ssid
2016/12/15 19:48:07
um, this will happen if someone writes:
memory_dum
Primiano Tucci (use gerrit)
2016/12/16 12:13:55
Yeah I just didn't see the "!", sorry ignore my pr
|
| + dump_config.trigger_type = MemoryDumpType::PERIODIC_INTERVAL; |
| + } else { |
| + std::string trigger_type_str; |
| + trigger->GetString(kTriggerTypeParam, &trigger_type_str); |
| + dump_config.trigger_type = StringToMemoryDumpType(trigger_type_str); |
| + } |
| DCHECK_GT(interval, 0); |
| - MemoryDumpConfig::Trigger dump_config; |
| - dump_config.periodic_interval_ms = static_cast<uint32_t>(interval); |
| + dump_config.min_time_between_dumps_ms = static_cast<uint32_t>(interval); |
| + |
| std::string level_of_detail_str; |
| - trigger->GetString(kModeParam, &level_of_detail_str); |
| + trigger->GetString(kTriggerModeParam, &level_of_detail_str); |
| dump_config.level_of_detail = |
| StringToMemoryDumpLevelOfDetail(level_of_detail_str); |
| + |
| memory_dump_config_.triggers.push_back(dump_config); |
| } |
| } |
| @@ -751,10 +762,14 @@ std::unique_ptr<DictionaryValue> TraceConfig::ToDict() const { |
| auto triggers_list = MakeUnique<ListValue>(); |
| for (const auto& config : memory_dump_config_.triggers) { |
| auto trigger_dict = MakeUnique<DictionaryValue>(); |
| - trigger_dict->SetInteger(kPeriodicIntervalParam, |
| - static_cast<int>(config.periodic_interval_ms)); |
| + trigger_dict->SetString(kTriggerTypeParam, |
| + MemoryDumpTypeToString(config.trigger_type)); |
| + trigger_dict->SetInteger( |
| + kMinTimeBetweenDumps, |
| + static_cast<int>(config.min_time_between_dumps_ms)); |
| trigger_dict->SetString( |
| - kModeParam, MemoryDumpLevelOfDetailToString(config.level_of_detail)); |
| + kTriggerModeParam, |
| + MemoryDumpLevelOfDetailToString(config.level_of_detail)); |
| triggers_list->Append(std::move(trigger_dict)); |
| } |