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

Side by Side Diff: chrome/browser/extensions/extension_sync_data.cc

Issue 1136543003: Extensions: Store disable reasons in Sync (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review Created 5 years, 7 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/extension_sync_data.h" 5 #include "chrome/browser/extensions/extension_sync_data.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/metrics/histogram_macros.h" 8 #include "base/metrics/histogram_macros.h"
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "chrome/browser/extensions/app_sync_data.h" 10 #include "chrome/browser/extensions/app_sync_data.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 void RecordBadSyncData(BadSyncDataReason reason) { 48 void RecordBadSyncData(BadSyncDataReason reason) {
49 UMA_HISTOGRAM_ENUMERATION("Extensions.BadSyncDataReason", reason, 49 UMA_HISTOGRAM_ENUMERATION("Extensions.BadSyncDataReason", reason,
50 NUM_BAD_SYNC_DATA_REASONS); 50 NUM_BAD_SYNC_DATA_REASONS);
51 } 51 }
52 52
53 } // namespace 53 } // namespace
54 54
55 ExtensionSyncData::ExtensionSyncData() 55 ExtensionSyncData::ExtensionSyncData()
56 : uninstalled_(false), 56 : uninstalled_(false),
57 enabled_(false), 57 enabled_(false),
58 disable_reasons_(Extension::DISABLE_NONE),
58 incognito_enabled_(false), 59 incognito_enabled_(false),
59 remote_install_(false), 60 remote_install_(false),
60 all_urls_enabled_(BOOLEAN_UNSET), 61 all_urls_enabled_(BOOLEAN_UNSET),
61 installed_by_custodian_(false) { 62 installed_by_custodian_(false) {
62 } 63 }
63 64
64 ExtensionSyncData::ExtensionSyncData(const Extension& extension, 65 ExtensionSyncData::ExtensionSyncData(const Extension& extension,
65 bool enabled, 66 bool enabled,
67 int disable_reasons,
66 bool incognito_enabled, 68 bool incognito_enabled,
67 bool remote_install, 69 bool remote_install,
68 OptionalBoolean all_urls_enabled) 70 OptionalBoolean all_urls_enabled)
69 : id_(extension.id()), 71 : id_(extension.id()),
70 uninstalled_(false), 72 uninstalled_(false),
71 enabled_(enabled), 73 enabled_(enabled),
74 disable_reasons_(disable_reasons),
72 incognito_enabled_(incognito_enabled), 75 incognito_enabled_(incognito_enabled),
73 remote_install_(remote_install), 76 remote_install_(remote_install),
74 all_urls_enabled_(all_urls_enabled), 77 all_urls_enabled_(all_urls_enabled),
75 installed_by_custodian_(extension.was_installed_by_custodian()), 78 installed_by_custodian_(extension.was_installed_by_custodian()),
76 version_(extension.from_bookmark() ? base::Version("0") 79 version_(extension.from_bookmark() ? base::Version("0")
77 : *extension.version()), 80 : *extension.version()),
78 update_url_(ManifestURL::GetUpdateURL(&extension)), 81 update_url_(ManifestURL::GetUpdateURL(&extension)),
79 name_(extension.non_localized_name()) { 82 name_(extension.non_localized_name()) {
80 } 83 }
81 84
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 return syncer::SyncChange(FROM_HERE, change_type, GetSyncData()); 118 return syncer::SyncChange(FROM_HERE, change_type, GetSyncData());
116 } 119 }
117 120
118 void ExtensionSyncData::PopulateExtensionSpecifics( 121 void ExtensionSyncData::PopulateExtensionSpecifics(
119 sync_pb::ExtensionSpecifics* specifics) const { 122 sync_pb::ExtensionSpecifics* specifics) const {
120 DCHECK(crx_file::id_util::IdIsValid(id_)); 123 DCHECK(crx_file::id_util::IdIsValid(id_));
121 specifics->set_id(id_); 124 specifics->set_id(id_);
122 specifics->set_update_url(update_url_.spec()); 125 specifics->set_update_url(update_url_.spec());
123 specifics->set_version(version_.GetString()); 126 specifics->set_version(version_.GetString());
124 specifics->set_enabled(enabled_); 127 specifics->set_enabled(enabled_);
128 specifics->set_disable_reasons(disable_reasons_);
125 specifics->set_incognito_enabled(incognito_enabled_); 129 specifics->set_incognito_enabled(incognito_enabled_);
126 specifics->set_remote_install(remote_install_); 130 specifics->set_remote_install(remote_install_);
127 if (all_urls_enabled_ != BOOLEAN_UNSET) 131 if (all_urls_enabled_ != BOOLEAN_UNSET)
128 specifics->set_all_urls_enabled(all_urls_enabled_ == BOOLEAN_TRUE); 132 specifics->set_all_urls_enabled(all_urls_enabled_ == BOOLEAN_TRUE);
129 specifics->set_installed_by_custodian(installed_by_custodian_); 133 specifics->set_installed_by_custodian(installed_by_custodian_);
130 specifics->set_name(name_); 134 specifics->set_name(name_);
131 } 135 }
132 136
133 bool ExtensionSyncData::PopulateFromExtensionSpecifics( 137 bool ExtensionSyncData::PopulateFromExtensionSpecifics(
134 const sync_pb::ExtensionSpecifics& specifics) { 138 const sync_pb::ExtensionSpecifics& specifics) {
(...skipping 18 matching lines...) Expand all
153 LOG(ERROR) << "Attempt to sync bad ExtensionSpecifics (bad update URL):\n" 157 LOG(ERROR) << "Attempt to sync bad ExtensionSpecifics (bad update URL):\n"
154 << GetExtensionSpecificsLogMessage(specifics); 158 << GetExtensionSpecificsLogMessage(specifics);
155 RecordBadSyncData(BAD_UPDATE_URL); 159 RecordBadSyncData(BAD_UPDATE_URL);
156 return false; 160 return false;
157 } 161 }
158 162
159 id_ = specifics.id(); 163 id_ = specifics.id();
160 update_url_ = specifics_update_url; 164 update_url_ = specifics_update_url;
161 version_ = specifics_version; 165 version_ = specifics_version;
162 enabled_ = specifics.enabled(); 166 enabled_ = specifics.enabled();
167 disable_reasons_ = specifics.disable_reasons();
163 incognito_enabled_ = specifics.incognito_enabled(); 168 incognito_enabled_ = specifics.incognito_enabled();
164 if (specifics.has_all_urls_enabled()) { 169 if (specifics.has_all_urls_enabled()) {
165 all_urls_enabled_ = 170 all_urls_enabled_ =
166 specifics.all_urls_enabled() ? BOOLEAN_TRUE : BOOLEAN_FALSE; 171 specifics.all_urls_enabled() ? BOOLEAN_TRUE : BOOLEAN_FALSE;
167 } else { 172 } else {
168 // Set this explicitly (even though it's the default) on the offchance 173 // Set this explicitly (even though it's the default) on the offchance
169 // that someone is re-using an ExtensionSyncData object. 174 // that someone is re-using an ExtensionSyncData object.
170 all_urls_enabled_ = BOOLEAN_UNSET; 175 all_urls_enabled_ = BOOLEAN_UNSET;
171 } 176 }
172 remote_install_ = specifics.remote_install(); 177 remote_install_ = specifics.remote_install();
(...skipping 12 matching lines...) Expand all
185 190
186 if (entity_specifics.has_extension()) 191 if (entity_specifics.has_extension())
187 return PopulateFromExtensionSpecifics(entity_specifics.extension()); 192 return PopulateFromExtensionSpecifics(entity_specifics.extension());
188 193
189 LOG(ERROR) << "Attempt to sync bad EntitySpecifics: no extension data."; 194 LOG(ERROR) << "Attempt to sync bad EntitySpecifics: no extension data.";
190 RecordBadSyncData(NO_EXTENSION_SPECIFICS); 195 RecordBadSyncData(NO_EXTENSION_SPECIFICS);
191 return false; 196 return false;
192 } 197 }
193 198
194 } // namespace extensions 199 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698