Index: chrome/browser/sync/glue/data_type_manager_impl.cc |
diff --git a/chrome/browser/sync/glue/data_type_manager_impl.cc b/chrome/browser/sync/glue/data_type_manager_impl.cc |
index c5cbc8ef830a6418d2cb1369355b19970cff6352..3fe7e05e770378fd6cfbb228cf78f4134ce785cd 100644 |
--- a/chrome/browser/sync/glue/data_type_manager_impl.cc |
+++ b/chrome/browser/sync/glue/data_type_manager_impl.cc |
@@ -377,30 +377,25 @@ void DataTypeManagerImpl::OnSingleDataTypeAssociationDone( |
if (!debug_info_listener_.IsInitialized()) |
return; |
- syncer::DataTypeConfigurationStats configuration_stats; |
- configuration_stats.model_type = type; |
- configuration_stats.association_stats = association_stats; |
+ configuration_stats_.push_back(syncer::DataTypeConfigurationStats()); |
+ configuration_stats_.back().model_type = type; |
+ configuration_stats_.back().association_stats = association_stats; |
AssociationTypesInfo& info = association_types_queue_.front(); |
- configuration_stats.download_wait_time = |
+ configuration_stats_.back().download_wait_time = |
info.download_start_time - last_restart_time_; |
if (info.first_sync_types.Has(type)) { |
- configuration_stats.download_time = |
+ configuration_stats_.back().download_time = |
info.download_ready_time - info.download_start_time; |
} |
- configuration_stats.association_wait_time_for_high_priority = |
+ configuration_stats_.back().association_wait_time_for_high_priority = |
info.association_request_time - info.download_ready_time; |
- configuration_stats.high_priority_types_configured_before = |
+ configuration_stats_.back().high_priority_types_configured_before = |
info.high_priority_types_before; |
- configuration_stats.same_priority_types_configured_before = |
+ configuration_stats_.back().same_priority_types_configured_before = |
info.configured_types; |
info.configured_types.Put(type); |
- |
- debug_info_listener_.Call( |
- FROM_HERE, |
- &syncer::DataTypeDebugInfoListener::OnSingleDataTypeConfigureComplete, |
- configuration_stats); |
} |
void DataTypeManagerImpl::OnModelAssociationDone( |
@@ -547,6 +542,14 @@ void DataTypeManagerImpl::NotifyDone(const ConfigureResult& result) { |
DVLOG(1) << "NotifyDone called with result: OK"; |
UMA_HISTOGRAM_LONG_TIMES("Sync.ConfigureTime_Long.OK", |
configure_time_delta_); |
+ if (debug_info_listener_.IsInitialized() && |
+ !configuration_stats_.empty()) { |
+ debug_info_listener_.Call( |
+ FROM_HERE, |
+ &syncer::DataTypeDebugInfoListener::OnDataTypeConfigureComplete, |
+ configuration_stats_); |
+ } |
+ configuration_stats_.clear(); |
break; |
case DataTypeManager::ABORTED: |
DVLOG(1) << "NotifyDone called with result: ABORTED"; |