Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(598)

Unified Diff: components/sync/engine_impl/model_type_worker.cc

Issue 2420213002: [USS] Show USS counters in Types tab (Closed)
Patch Set: git rebase Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/sync/engine_impl/model_type_worker.cc
diff --git a/components/sync/engine_impl/model_type_worker.cc b/components/sync/engine_impl/model_type_worker.cc
index 25422f64b1d5263f3a9f4e73fd65495db997067b..12d0e3fc680d1a6f73315627690629af303ed158 100644
--- a/components/sync/engine_impl/model_type_worker.cc
+++ b/components/sync/engine_impl/model_type_worker.cc
@@ -26,11 +26,13 @@ namespace syncer {
ModelTypeWorker::ModelTypeWorker(
ModelType type,
+ NonBlockingTypeDebugInfoEmitter* debug_info_emitter,
const sync_pb::ModelTypeState& initial_state,
std::unique_ptr<Cryptographer> cryptographer,
NudgeHandler* nudge_handler,
std::unique_ptr<ModelTypeProcessor> model_type_processor)
: type_(type),
+ debug_info_emitter_(debug_info_emitter),
model_type_state_(initial_state),
model_type_processor_(std::move(model_type_processor)),
cryptographer_(std::move(cryptographer)),
@@ -96,6 +98,9 @@ SyncerError ModelTypeWorker::ProcessGetUpdatesResponse(
*model_type_state_.mutable_type_context() = mutated_context;
*model_type_state_.mutable_progress_marker() = progress_marker;
+ UpdateCounters* counters = debug_info_emitter_->GetMutableUpdateCounters();
+ counters->num_updates_received += applicable_updates.size();
+
for (const sync_pb::SyncEntity* update_entity : applicable_updates) {
// Skip updates for permanent folders.
// TODO(crbug.com/516866): might need to handle this for hierarchical types.
@@ -122,6 +127,15 @@ SyncerError ModelTypeWorker::ProcessGetUpdatesResponse(
WorkerEntityTracker* entity = GetOrCreateEntityTracker(data);
+ if (!entity->UpdateContainsNewVersion(response_data)) {
+ status->increment_num_reflected_updates_downloaded_by(1);
+ ++counters->num_reflected_updates_received;
+ }
+ if (update_entity->deleted()) {
+ status->increment_num_tombstone_updates_downloaded_by(1);
+ ++counters->num_tombstone_updates_received;
+ }
+
Gang Wu 2016/10/17 19:26:30 same as https://cs.chromium.org/chromium/src/compo
// Deleted entities must use the default instance of EntitySpecifics in
// order for EntityData to correctly reflect that they are deleted.
const sync_pb::EntitySpecifics& specifics =
@@ -152,6 +166,7 @@ SyncerError ModelTypeWorker::ProcessGetUpdatesResponse(
}
}
+ debug_info_emitter_->EmitUpdateCountersUpdate();
return SYNCER_OK;
}
@@ -179,6 +194,11 @@ void ModelTypeWorker::ApplyPendingUpdates() {
<< base::StringPrintf("Delivering %" PRIuS " applicable updates.",
pending_updates_.size());
model_type_processor_->OnUpdateReceived(model_type_state_, pending_updates_);
+
+ // The new UpdateCounter counters.
+ UpdateCounters* counters = debug_info_emitter_->GetMutableUpdateCounters();
+ counters->num_updates_applied += pending_updates_.size();
pavely 2016/10/19 18:18:59 Should there be Emit... call for this counter chan
Gang Wu 2016/10/20 21:35:36 Done.
+
pending_updates_.clear();
}
@@ -229,7 +249,8 @@ std::unique_ptr<CommitContribution> ModelTypeWorker::GetContribution(
return std::unique_ptr<CommitContribution>();
return base::MakeUnique<NonBlockingTypeCommitContribution>(
- model_type_state_.type_context(), commit_entities, this);
+ model_type_state_.type_context(), commit_entities, this,
+ debug_info_emitter_);
}
void ModelTypeWorker::OnCommitResponse(CommitResponseDataList* response_list) {

Powered by Google App Engine
This is Rietveld 408576698