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

Unified Diff: chrome/browser/supervised_user/legacy/supervised_user_shared_settings_service.cc

Issue 1530763004: Add Statistics for SupervisedUserSettingService during merging and syncing data. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing review comments. Created 4 years, 11 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
« no previous file with comments | « no previous file | chrome/browser/supervised_user/legacy/supervised_user_shared_settings_service_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/supervised_user/legacy/supervised_user_shared_settings_service.cc
diff --git a/chrome/browser/supervised_user/legacy/supervised_user_shared_settings_service.cc b/chrome/browser/supervised_user/legacy/supervised_user_shared_settings_service.cc
index 60ec741691a6160e6fb02412b393bfb035aeac18..1f1caf3e99cac0148196d420535bde5b4c10c895 100644
--- a/chrome/browser/supervised_user/legacy/supervised_user_shared_settings_service.cc
+++ b/chrome/browser/supervised_user/legacy/supervised_user_shared_settings_service.cc
@@ -42,7 +42,7 @@ const char kValue[] = "value";
DictionaryValue* FindOrCreateDictionary(DictionaryValue* parent,
const std::string& key) {
- DictionaryValue* dict = NULL;
+ DictionaryValue* dict = nullptr;
if (!parent->GetDictionaryWithoutPathExpansion(key, &dict)) {
dict = new DictionaryValue;
parent->SetWithoutPathExpansion(key, dict);
@@ -75,11 +75,11 @@ SyncData CreateSyncDataForValue(
const std::string& su_id,
const std::string& key,
const Value& dict_value) {
- const DictionaryValue* dict = NULL;
+ const DictionaryValue* dict = nullptr;
if (!dict_value.GetAsDictionary(&dict))
return SyncData();
- const Value* value = NULL;
+ const Value* value = nullptr;
if (!dict->Get(kValue, &value))
return SyncData();
@@ -107,7 +107,7 @@ void SupervisedUserSharedSettingsService::SetValueInternal(
ScopedSupervisedUserSharedSettingsUpdate update(prefs_, su_id);
DictionaryValue* update_dict = update.Get();
- DictionaryValue* dict = NULL;
+ DictionaryValue* dict = nullptr;
bool has_key = update_dict->GetDictionaryWithoutPathExpansion(key, &dict);
if (!has_key) {
dict = new DictionaryValue;
@@ -133,17 +133,17 @@ const Value* SupervisedUserSharedSettingsService::GetValue(
const std::string& key) {
const DictionaryValue* data =
prefs_->GetDictionary(prefs::kSupervisedUserSharedSettings);
- const DictionaryValue* dict = NULL;
+ const DictionaryValue* dict = nullptr;
if (!data->GetDictionaryWithoutPathExpansion(su_id, &dict))
- return NULL;
+ return nullptr;
- const DictionaryValue* settings = NULL;
+ const DictionaryValue* settings = nullptr;
if (!dict->GetDictionaryWithoutPathExpansion(key, &settings))
- return NULL;
+ return nullptr;
- const Value* value = NULL;
+ const Value* value = nullptr;
if (!settings->GetWithoutPathExpansion(kValue, &value))
- return NULL;
+ return nullptr;
return value;
}
@@ -198,9 +198,24 @@ SupervisedUserSharedSettingsService::MergeDataAndStartSyncing(
sync_processor_ = std::move(sync_processor);
error_handler_ = std::move(error_handler);
+ int num_before_association = 0;
+ std::map<std::string, std::set<std::string> > pref_seen_keys;
+ const DictionaryValue* pref_dict =
+ prefs_->GetDictionary(prefs::kSupervisedUserSharedSettings);
+ for (DictionaryValue::Iterator it(*pref_dict); !it.IsAtEnd(); it.Advance()) {
+ const DictionaryValue* dict = nullptr;
+ bool success = it.value().GetAsDictionary(&dict);
+ DCHECK(success);
+ num_before_association += dict->size();
+ for (DictionaryValue::Iterator jt(*dict); !jt.IsAtEnd(); jt.Advance())
+ pref_seen_keys[it.key()].insert(jt.key());
+ }
+
// We keep a map from MU ID to the set of keys that we have seen in the
// initial sync data.
- std::map<std::string, std::set<std::string> > seen_keys;
+ std::map<std::string, std::set<std::string> > sync_seen_keys;
+ int num_added = 0;
+ int num_modified = 0;
// Iterate over all initial sync data, and update it locally. This means that
// the value from the server always wins over a local value.
@@ -224,21 +239,28 @@ SupervisedUserSharedSettingsService::MergeDataAndStartSyncing(
kAcknowledged, supervised_user_shared_setting.acknowledged());
callbacks_.Notify(su_id, key);
- seen_keys[su_id].insert(key);
+ if (pref_seen_keys.find(su_id) == pref_seen_keys.end())
+ num_added++;
+ else
+ num_modified++;
+
+ sync_seen_keys[su_id].insert(key);
}
// Iterate over all settings that we have locally, which includes settings
- // that were just synced down. We filter those out using |seen_keys|.
+ // that were just synced down. We filter those out using |sync_seen_keys|.
SyncChangeList change_list;
+ int num_after_association = 0;
const DictionaryValue* all_settings =
prefs_->GetDictionary(prefs::kSupervisedUserSharedSettings);
for (DictionaryValue::Iterator it(*all_settings); !it.IsAtEnd();
it.Advance()) {
- const DictionaryValue* dict = NULL;
+ const DictionaryValue* dict = nullptr;
bool success = it.value().GetAsDictionary(&dict);
DCHECK(success);
- const std::set<std::string>& seen = seen_keys[it.key()];
+ const std::set<std::string>& seen = sync_seen_keys[it.key()];
+ num_after_association += dict->size();
for (DictionaryValue::Iterator jt(*dict); !jt.IsAtEnd(); jt.Advance()) {
// We only need to upload settings that we haven't seen in the initial
// sync data (which means they were added locally).
@@ -259,7 +281,10 @@ SupervisedUserSharedSettingsService::MergeDataAndStartSyncing(
sync_processor_->ProcessSyncChanges(FROM_HERE, change_list));
}
- // TODO(bauerb): Statistics?
+ result.set_num_items_added(num_added);
+ result.set_num_items_modified(num_modified);
+ result.set_num_items_before_association(num_before_association);
+ result.set_num_items_after_association(num_after_association);
return result;
}
@@ -277,7 +302,7 @@ syncer::SyncDataList SupervisedUserSharedSettingsService::GetAllSyncData(
prefs_->GetDictionary(prefs::kSupervisedUserSharedSettings);
for (DictionaryValue::Iterator it(*all_settings); !it.IsAtEnd();
it.Advance()) {
- const DictionaryValue* dict = NULL;
+ const DictionaryValue* dict = nullptr;
bool success = it.value().GetAsDictionary(&dict);
DCHECK(success);
for (DictionaryValue::Iterator jt(*dict); !jt.IsAtEnd(); jt.Advance()) {
@@ -300,7 +325,7 @@ syncer::SyncError SupervisedUserSharedSettingsService::ProcessSyncChanges(
const std::string& su_id = supervised_user_shared_setting.mu_id();
ScopedSupervisedUserSharedSettingsUpdate update(prefs_, su_id);
DictionaryValue* update_dict = update.Get();
- DictionaryValue* dict = NULL;
+ DictionaryValue* dict = nullptr;
bool has_key = update_dict->GetDictionaryWithoutPathExpansion(key, &dict);
switch (sync_change.change_type()) {
case SyncChange::ACTION_ADD:
@@ -328,7 +353,7 @@ syncer::SyncError SupervisedUserSharedSettingsService::ProcessSyncChanges(
}
case SyncChange::ACTION_DELETE: {
if (has_key)
- update_dict->RemoveWithoutPathExpansion(key, NULL);
+ update_dict->RemoveWithoutPathExpansion(key, nullptr);
else
NOTREACHED() << "Trying to delete nonexistent key " << key;
break;
« no previous file with comments | « no previous file | chrome/browser/supervised_user/legacy/supervised_user_shared_settings_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698