diff options
author | haitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-31 21:42:39 +0000 |
---|---|---|
committer | haitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-31 21:42:39 +0000 |
commit | e9d91ff8ae5d3c6412db8bc81aefdf62bb7f5200 (patch) | |
tree | 48f072a88f6829441793299495b423d7f3178f17 /sync/internal_api/public | |
parent | 04782106da17474fd72ac06988fcbef155c784ae (diff) | |
download | chromium_src-e9d91ff8ae5d3c6412db8bc81aefdf62bb7f5200.zip chromium_src-e9d91ff8ae5d3c6412db8bc81aefdf62bb7f5200.tar.gz chromium_src-e9d91ff8ae5d3c6412db8bc81aefdf62bb7f5200.tar.bz2 |
Prioritize configuration of data types in data type manager.
Download and associate high-priority types (control types, priority preference and managed users for now) before other types.
BUG=236456
Review URL: https://chromiumcodereview.appspot.com/15067016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203486 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/internal_api/public')
4 files changed, 46 insertions, 13 deletions
diff --git a/sync/internal_api/public/data_type_association_stats.cc b/sync/internal_api/public/data_type_association_stats.cc index 0a77a7c..4ae4bd1 100644 --- a/sync/internal_api/public/data_type_association_stats.cc +++ b/sync/internal_api/public/data_type_association_stats.cc @@ -7,8 +7,7 @@ namespace syncer { DataTypeAssociationStats::DataTypeAssociationStats() - : model_type(UNSPECIFIED), - num_local_items_before_association(0), + : num_local_items_before_association(0), num_sync_items_before_association(0), num_local_items_after_association(0), num_sync_items_after_association(0), diff --git a/sync/internal_api/public/data_type_association_stats.h b/sync/internal_api/public/data_type_association_stats.h index c779dcd..bda8ff3 100644 --- a/sync/internal_api/public/data_type_association_stats.h +++ b/sync/internal_api/public/data_type_association_stats.h @@ -7,7 +7,6 @@ #include "base/time.h" #include "sync/base/sync_export.h" -#include "sync/internal_api/public/base/model_type.h" namespace syncer { @@ -16,9 +15,6 @@ struct SYNC_EXPORT DataTypeAssociationStats { DataTypeAssociationStats(); ~DataTypeAssociationStats(); - // The datatype that was associated. - ModelType model_type; - // The state of the world before association. int num_local_items_before_association; int num_sync_items_before_association; @@ -39,10 +35,8 @@ struct SYNC_EXPORT DataTypeAssociationStats { // Whether a datatype unrecoverable error was encountered during association. bool had_error; - // Time spent on downloading data for association. - base::TimeDelta download_time; - - // Time waiting for local model loading and preceding data types to finish. + // Waiting time within association manager for loading local models and + // associating other types. base::TimeDelta association_wait_time; // Time spent on association. diff --git a/sync/internal_api/public/data_type_debug_info_listener.cc b/sync/internal_api/public/data_type_debug_info_listener.cc new file mode 100644 index 0000000..08355dd --- /dev/null +++ b/sync/internal_api/public/data_type_debug_info_listener.cc @@ -0,0 +1,15 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "sync/internal_api/public/data_type_debug_info_listener.h" + +namespace syncer { + +DataTypeConfigurationStats::DataTypeConfigurationStats() + : model_type(UNSPECIFIED) {} + +DataTypeConfigurationStats::~DataTypeConfigurationStats() {} + +} // namespace syncer + diff --git a/sync/internal_api/public/data_type_debug_info_listener.h b/sync/internal_api/public/data_type_debug_info_listener.h index 81ee889..82d6459 100644 --- a/sync/internal_api/public/data_type_debug_info_listener.h +++ b/sync/internal_api/public/data_type_debug_info_listener.h @@ -10,12 +10,37 @@ namespace syncer { +struct SYNC_EXPORT DataTypeConfigurationStats { + DataTypeConfigurationStats(); + ~DataTypeConfigurationStats(); + + // The datatype that was configured. + ModelType model_type; + + // Waiting time before downloading starts. + base::TimeDelta download_wait_time; + + // Time spent on downloading data for first-sync data types. + base::TimeDelta download_time; + + // Waiting time for association of higher priority types to finish before + // asking association manager to associate. + base::TimeDelta association_wait_time_for_high_priority; + + // Types configured before this type. + ModelTypeSet high_priority_types_configured_before; + ModelTypeSet same_priority_types_configured_before; + + // Association stats. + DataTypeAssociationStats association_stats; +}; + // Interface for the sync internals to listen to external sync events. class DataTypeDebugInfoListener { public: - // Notify the listener that a datatype's association has completed. - virtual void OnDataTypeAssociationComplete( - const DataTypeAssociationStats& association_stats) = 0; + // Notify the listener that configuration of one data type has completed. + virtual void OnSingleDataTypeConfigureComplete( + const DataTypeConfigurationStats& configuration_stats) = 0; // Notify the listener that configuration has completed and sync has begun. virtual void OnConfigureComplete() = 0; |