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

Side by Side Diff: chrome/browser/extensions/api/storage/setting_sync_data.cc

Issue 1549233002: Convert Pass()→std::move() in //chrome/browser/extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/storage/setting_sync_data.h" 5 #include "chrome/browser/extensions/api/storage/setting_sync_data.h"
6 6
7 #include <utility>
8
7 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
8 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
9 #include "sync/api/sync_data.h" 11 #include "sync/api/sync_data.h"
10 #include "sync/protocol/app_setting_specifics.pb.h" 12 #include "sync/protocol/app_setting_specifics.pb.h"
11 #include "sync/protocol/extension_setting_specifics.pb.h" 13 #include "sync/protocol/extension_setting_specifics.pb.h"
12 #include "sync/protocol/sync.pb.h" 14 #include "sync/protocol/sync.pb.h"
13 15
14 namespace extensions { 16 namespace extensions {
15 17
16 SettingSyncData::SettingSyncData(const syncer::SyncChange& sync_change) 18 SettingSyncData::SettingSyncData(const syncer::SyncChange& sync_change)
17 : change_type_(sync_change.change_type()) { 19 : change_type_(sync_change.change_type()) {
18 ExtractSyncData(sync_change.sync_data()); 20 ExtractSyncData(sync_change.sync_data());
19 } 21 }
20 22
21 SettingSyncData::SettingSyncData(const syncer::SyncData& sync_data) 23 SettingSyncData::SettingSyncData(const syncer::SyncData& sync_data)
22 : change_type_(syncer::SyncChange::ACTION_INVALID) { 24 : change_type_(syncer::SyncChange::ACTION_INVALID) {
23 ExtractSyncData(sync_data); 25 ExtractSyncData(sync_data);
24 } 26 }
25 27
26 SettingSyncData::SettingSyncData(syncer::SyncChange::SyncChangeType change_type, 28 SettingSyncData::SettingSyncData(syncer::SyncChange::SyncChangeType change_type,
27 const std::string& extension_id, 29 const std::string& extension_id,
28 const std::string& key, 30 const std::string& key,
29 scoped_ptr<base::Value> value) 31 scoped_ptr<base::Value> value)
30 : change_type_(change_type), 32 : change_type_(change_type),
31 extension_id_(extension_id), 33 extension_id_(extension_id),
32 key_(key), 34 key_(key),
33 value_(value.Pass()) { 35 value_(std::move(value)) {}
34 }
35 36
36 SettingSyncData::~SettingSyncData() {} 37 SettingSyncData::~SettingSyncData() {}
37 38
38 scoped_ptr<base::Value> SettingSyncData::PassValue() { 39 scoped_ptr<base::Value> SettingSyncData::PassValue() {
39 DCHECK(value_) << "value has already been Pass()ed"; 40 DCHECK(value_) << "value has already been Pass()ed";
40 return value_.Pass(); 41 return std::move(value_);
41 } 42 }
42 43
43 void SettingSyncData::ExtractSyncData(const syncer::SyncData& sync_data) { 44 void SettingSyncData::ExtractSyncData(const syncer::SyncData& sync_data) {
44 sync_pb::EntitySpecifics specifics = sync_data.GetSpecifics(); 45 sync_pb::EntitySpecifics specifics = sync_data.GetSpecifics();
45 // The specifics are exclusively either extension or app settings. 46 // The specifics are exclusively either extension or app settings.
46 DCHECK_NE(specifics.has_extension_setting(), specifics.has_app_setting()); 47 DCHECK_NE(specifics.has_extension_setting(), specifics.has_app_setting());
47 const sync_pb::ExtensionSettingSpecifics& extension_specifics = 48 const sync_pb::ExtensionSettingSpecifics& extension_specifics =
48 specifics.has_extension_setting() 49 specifics.has_extension_setting()
49 ? specifics.extension_setting() 50 ? specifics.extension_setting()
50 : specifics.app_setting().extension_setting(); 51 : specifics.app_setting().extension_setting();
51 52
52 extension_id_ = extension_specifics.extension_id(); 53 extension_id_ = extension_specifics.extension_id();
53 key_ = extension_specifics.key(); 54 key_ = extension_specifics.key();
54 value_ = base::JSONReader::Read(extension_specifics.value()); 55 value_ = base::JSONReader::Read(extension_specifics.value());
55 56
56 if (!value_) { 57 if (!value_) {
57 LOG(WARNING) << "Specifics for " << extension_id_ << "/" << key_ 58 LOG(WARNING) << "Specifics for " << extension_id_ << "/" << key_
58 << " had bad JSON for value: " << extension_specifics.value(); 59 << " had bad JSON for value: " << extension_specifics.value();
59 value_.reset(new base::DictionaryValue()); 60 value_.reset(new base::DictionaryValue());
60 } 61 }
61 } 62 }
62 63
63 } // namespace extensions 64 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/storage/policy_value_store.cc ('k') | chrome/browser/extensions/api/storage/settings_apitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698