summaryrefslogtreecommitdiffstats
path: root/sync/internal_api/public
diff options
context:
space:
mode:
authorhaitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-31 21:42:39 +0000
committerhaitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-31 21:42:39 +0000
commite9d91ff8ae5d3c6412db8bc81aefdf62bb7f5200 (patch)
tree48f072a88f6829441793299495b423d7f3178f17 /sync/internal_api/public
parent04782106da17474fd72ac06988fcbef155c784ae (diff)
downloadchromium_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')
-rw-r--r--sync/internal_api/public/data_type_association_stats.cc3
-rw-r--r--sync/internal_api/public/data_type_association_stats.h10
-rw-r--r--sync/internal_api/public/data_type_debug_info_listener.cc15
-rw-r--r--sync/internal_api/public/data_type_debug_info_listener.h31
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;