| 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 |