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

Unified Diff: chrome/browser/managed_mode/managed_user_sync_service.cc

Issue 23653007: Avatar syncing for supervised users (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ... Created 7 years, 3 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: chrome/browser/managed_mode/managed_user_sync_service.cc
diff --git a/chrome/browser/managed_mode/managed_user_sync_service.cc b/chrome/browser/managed_mode/managed_user_sync_service.cc
index 77f478c6f3f9be985079a3fd96603518124d067c..4e17e97c25cd7df133b926b1b539759c32b0e415 100644
--- a/chrome/browser/managed_mode/managed_user_sync_service.cc
+++ b/chrome/browser/managed_mode/managed_user_sync_service.cc
@@ -6,6 +6,7 @@
#include "base/bind.h"
#include "base/callback.h"
+#include "base/strings/stringprintf.h"
#include "base/values.h"
#include "chrome/browser/prefs/scoped_user_pref_update.h"
#include "chrome/browser/profiles/profile.h"
@@ -35,16 +36,24 @@ using sync_pb::ManagedUserSpecifics;
namespace {
const char kAcknowledged[] = "acknowledged";
+const char kChromeAvatar[] = "chromeAvatar";
+const char kChromeOsAvatar[] = "chromeOsAvatar";
const char kName[] = "name";
const char kMasterKey[] = "masterKey";
SyncData CreateLocalSyncData(const std::string& id,
const std::string& name,
bool acknowledged,
- const std::string& master_key) {
+ const std::string& master_key,
+ const std::string& chrome_avatar,
+ const std::string& chromeos_avatar) {
::sync_pb::EntitySpecifics specifics;
specifics.mutable_managed_user()->set_id(id);
specifics.mutable_managed_user()->set_name(name);
+ if (!chrome_avatar.empty())
+ specifics.mutable_managed_user()->set_chrome_avatar(chrome_avatar);
+ if (!chromeos_avatar.empty())
+ specifics.mutable_managed_user()->set_chromeos_avatar(chromeos_avatar);
if (!master_key.empty())
specifics.mutable_managed_user()->set_master_key(master_key);
if (acknowledged)
@@ -52,6 +61,27 @@ SyncData CreateLocalSyncData(const std::string& id,
return SyncData::CreateLocalData(id, name, specifics);
}
+SyncData CreateSyncDataFromDictionaryEntry(
+ const DictionaryValue::Iterator& it) {
+ const DictionaryValue* dict = NULL;
+ bool success = it.value().GetAsDictionary(&dict);
+ DCHECK(success);
+ bool acknowledged = false;
+ dict->GetBoolean(kAcknowledged, &acknowledged);
+ std::string name;
+ dict->GetString(kName, &name);
+ DCHECK(!name.empty());
+ std::string master_key;
+ dict->GetString(kMasterKey, &master_key);
+ std::string chrome_avatar;
+ dict->GetString(kChromeAvatar, &chrome_avatar);
+ std::string chromeos_avatar;
+ dict->GetString(kChromeOsAvatar, &chromeos_avatar);
+
+ return CreateLocalSyncData(it.key(), name, acknowledged, master_key,
+ chrome_avatar, chromeos_avatar);
+}
+
} // namespace
ManagedUserSyncService::ManagedUserSyncService(PrefService* prefs)
@@ -85,12 +115,27 @@ void ManagedUserSyncService::RemoveObserver(
void ManagedUserSyncService::AddManagedUser(const std::string& id,
const std::string& name,
- const std::string& master_key) {
+ const std::string& master_key,
+ int avatar_index) {
DictionaryPrefUpdate update(prefs_, prefs::kManagedUsers);
DictionaryValue* dict = update.Get();
DictionaryValue* value = new DictionaryValue;
value->SetString(kName, name);
value->SetString(kMasterKey, master_key);
+ std::string chrome_avatar;
+#if defined(CHROME_OS)
+ // This is a dummy value that is passed when a supervised user is created on
+ // Chrome OS.
+ // TODO(ibraaaa): update this to use the correct avatar index
+ // once avatar syncing for supervised users is implemented on Chrome OS.
+ DCHECK_EQ(avatar_index, -111);
+#else
+ chrome_avatar = base::StringPrintf("chrome-avatar-index:%d", avatar_index);
+#endif
+ value->SetString(kChromeAvatar, chrome_avatar);
+ // TODO(ibraaaa): this should be updated to allow supervised
+ // users avatar syncing on Chrome OS.
+ value->SetString(kChromeOsAvatar, std::string());
DCHECK(!dict->HasKey(id));
dict->SetWithoutPathExpansion(id, value);
@@ -102,7 +147,8 @@ void ManagedUserSyncService::AddManagedUser(const std::string& id,
change_list.push_back(SyncChange(
FROM_HERE,
SyncChange::ACTION_ADD,
- CreateLocalSyncData(id, name, false, master_key)));
+ CreateLocalSyncData(id, name, false, master_key,
+ chrome_avatar, std::string())));
SyncError error =
sync_processor_->ProcessSyncChanges(FROM_HERE, change_list);
DCHECK(!error.IsSet()) << error.ToString();
@@ -170,6 +216,8 @@ SyncMergeResult ManagedUserSyncService::MergeDataAndStartSyncing(
value->SetString(kName, managed_user.name());
value->SetBoolean(kAcknowledged, managed_user.acknowledged());
value->SetString(kMasterKey, managed_user.master_key());
+ value->SetString(kChromeAvatar, managed_user.chrome_avatar());
+ value->SetString(kChromeOsAvatar, managed_user.chromeos_avatar());
if (dict->HasKey(managed_user.id()))
num_items_modified++;
else
@@ -182,19 +230,8 @@ SyncMergeResult ManagedUserSyncService::MergeDataAndStartSyncing(
if (seen_ids.find(it.key()) != seen_ids.end())
continue;
- const DictionaryValue* dict = NULL;
- bool success = it.value().GetAsDictionary(&dict);
- DCHECK(success);
- bool acknowledged = false;
- dict->GetBoolean(kAcknowledged, &acknowledged);
- std::string name;
- dict->GetString(kName, &name);
- std::string master_key;
- dict->GetString(kMasterKey, &master_key);
- DCHECK(!name.empty());
- change_list.push_back(
- SyncChange(FROM_HERE, SyncChange::ACTION_ADD,
- CreateLocalSyncData(it.key(), name, acknowledged, master_key)));
+ change_list.push_back(SyncChange(FROM_HERE, SyncChange::ACTION_ADD,
+ CreateSyncDataFromDictionaryEntry(it)));
}
result.set_error(sync_processor_->ProcessSyncChanges(FROM_HERE, change_list));
@@ -221,19 +258,9 @@ SyncDataList ManagedUserSyncService::GetAllSyncData(
SyncDataList data;
DictionaryPrefUpdate update(prefs_, prefs::kManagedUsers);
DictionaryValue* dict = update.Get();
- for (DictionaryValue::Iterator it(*dict); !it.IsAtEnd(); it.Advance()) {
- const DictionaryValue* dict = NULL;
- bool success = it.value().GetAsDictionary(&dict);
- DCHECK(success);
- std::string name;
- dict->GetString(kName, &name);
- std::string master_key;
- dict->GetString(kMasterKey, &master_key);
- bool acknowledged = false;
- dict->GetBoolean(kAcknowledged, &acknowledged);
- data.push_back(
- CreateLocalSyncData(it.key(), name, acknowledged, master_key));
- }
+ for (DictionaryValue::Iterator it(*dict); !it.IsAtEnd(); it.Advance())
+ data.push_back(CreateSyncDataFromDictionaryEntry(it));
+
return data;
}
@@ -272,6 +299,8 @@ SyncError ManagedUserSyncService::ProcessSyncChanges(
value->SetString(kName, managed_user.name());
value->SetBoolean(kAcknowledged, managed_user.acknowledged());
value->SetString(kMasterKey, managed_user.master_key());
+ value->SetString(kChromeAvatar, managed_user.chrome_avatar());
+ value->SetString(kChromeOsAvatar, managed_user.chromeos_avatar());
dict->SetWithoutPathExpansion(managed_user.id(), value);
break;
}

Powered by Google App Engine
This is Rietveld 408576698