OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |