Index: chrome/browser/sync/sessions/status_controller.cc |
diff --git a/chrome/browser/sync/sessions/status_controller.cc b/chrome/browser/sync/sessions/status_controller.cc |
index 7c1602df0776e78e7e4b1ae793a78335c0c322b3..c8d6866b78c95f2a71814b7c6f29a738ebcd30e6 100644 |
--- a/chrome/browser/sync/sessions/status_controller.cc |
+++ b/chrome/browser/sync/sessions/status_controller.cc |
@@ -16,7 +16,6 @@ using syncable::MODEL_TYPE_COUNT; |
StatusController::StatusController(const ModelSafeRoutingInfo& routes) |
: shared_(&is_dirty_), |
per_model_group_deleter_(&per_model_group_), |
- per_model_type_deleter_(&per_model_type_), |
is_dirty_(false), |
group_restriction_in_effect_(false), |
group_restriction_(GROUP_PASSIVE), |
@@ -42,26 +41,22 @@ PerModelSafeGroupState* StatusController::GetOrCreateModelSafeGroupState( |
return per_model_group_[group]; |
} |
-PerModelTypeState* StatusController::GetOrCreateModelTypeState( |
- bool restrict, syncable::ModelType model) { |
- if (restrict) { |
- DCHECK(group_restriction_in_effect_) << "No group restriction in effect!"; |
- DCHECK_EQ(group_restriction_, GetGroupForModelType(model, routing_info_)); |
- } |
- if (per_model_type_.find(model) == per_model_type_.end()) { |
- PerModelTypeState* state = new PerModelTypeState(&is_dirty_); |
- per_model_type_[model] = state; |
- return state; |
- } |
- return per_model_type_[model]; |
-} |
- |
void StatusController::increment_num_conflicting_commits_by(int value) { |
if (value == 0) |
return; |
shared_.error_counters.mutate()->num_conflicting_commits += value; |
} |
+void StatusController::increment_num_updates_downloaded_by(int value) { |
+ shared_.syncer_status.mutate()->num_updates_downloaded_total += value; |
+} |
+ |
+void StatusController::increment_num_tombstone_updates_downloaded_by( |
+ int value) { |
+ shared_.syncer_status.mutate()->num_tombstone_updates_downloaded_total += |
+ value; |
+} |
+ |
void StatusController::reset_num_conflicting_commits() { |
if (shared_.error_counters.value().num_conflicting_commits != 0) |
shared_.error_counters.mutate()->num_conflicting_commits = 0; |
@@ -87,14 +82,6 @@ void StatusController::set_num_consecutive_errors(int value) { |
shared_.error_counters.mutate()->consecutive_errors = value; |
} |
-void StatusController::set_current_download_timestamp( |
- syncable::ModelType model, |
- int64 current_timestamp) { |
- PerModelTypeState* state = GetOrCreateModelTypeState(false, model); |
- if (current_timestamp > state->current_download_timestamp.value()) |
- *(state->current_download_timestamp.mutate()) = current_timestamp; |
-} |
- |
void StatusController::set_num_server_changes_remaining( |
int64 changes_remaining) { |
if (shared_.num_server_changes_remaining.value() != changes_remaining) |
@@ -181,17 +168,6 @@ bool StatusController::CurrentCommitIdProjectionHasIndex(size_t index) { |
return std::binary_search(proj.begin(), proj.end(), index); |
} |
-int64 StatusController::ComputeMaxLocalTimestamp() const { |
- std::map<syncable::ModelType, PerModelTypeState*>::const_iterator it = |
- per_model_type_.begin(); |
- int64 max_timestamp = 0; |
- for (; it != per_model_type_.end(); ++it) { |
- if (it->second->current_download_timestamp.value() > max_timestamp) |
- max_timestamp = it->second->current_download_timestamp.value(); |
- } |
- return max_timestamp; |
-} |
- |
bool StatusController::HasConflictingUpdates() const { |
DCHECK(!group_restriction_in_effect_) |
<< "HasConflictingUpdates applies to all ModelSafeGroups"; |
@@ -219,23 +195,14 @@ int StatusController::TotalNumConflictingItems() const { |
bool StatusController::ServerSaysNothingMoreToDownload() const { |
if (!download_updates_succeeded()) |
return false; |
- // If we didn't request every enabled datatype, then we can't say for |
- // sure that there's nothing left to download. |
- for (int i = FIRST_REAL_MODEL_TYPE; i < MODEL_TYPE_COUNT; ++i) { |
- if (!updates_request_parameters().data_types[i] && |
- routing_info_.count(syncable::ModelTypeFromInt(i)) != 0) { |
- return false; |
- } |
+ |
+ if (!updates_response().get_updates().has_changes_remaining()) { |
+ NOTREACHED(); // Server should always send changes remaining. |
+ return false; // Avoid looping forever. |
} |
// Changes remaining is an estimate, but if it's estimated to be |
// zero, that's firm and we don't have to ask again. |
- if (updates_response().get_updates().has_changes_remaining() && |
- updates_response().get_updates().changes_remaining() == 0) { |
- return true; |
- } |
- // Otherwise, the server can also indicate "you're up to date" |
- // by not sending a new timestamp. |
- return !updates_response().get_updates().has_new_timestamp(); |
+ return updates_response().get_updates().changes_remaining() == 0; |
} |
} // namespace sessions |