| 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/strings/stringprintf.h" |
| 8 #include "chrome/browser/extensions/app_sync_data.h" | 9 #include "chrome/browser/extensions/app_sync_data.h" |
| 9 #include "chrome/browser/extensions/extension_service.h" | 10 #include "chrome/browser/extensions/extension_service.h" |
| 10 #include "components/crx_file/id_util.h" | 11 #include "components/crx_file/id_util.h" |
| 11 #include "extensions/common/extension.h" | 12 #include "extensions/common/extension.h" |
| 12 #include "extensions/common/manifest_url_handlers.h" | 13 #include "extensions/common/manifest_url_handlers.h" |
| 13 #include "sync/api/sync_data.h" | 14 #include "sync/api/sync_data.h" |
| 14 #include "sync/protocol/extension_specifics.pb.h" | 15 #include "sync/protocol/extension_specifics.pb.h" |
| 15 #include "sync/protocol/sync.pb.h" | 16 #include "sync/protocol/sync.pb.h" |
| 16 | 17 |
| 17 namespace extensions { | 18 namespace extensions { |
| 18 | 19 |
| 20 namespace { |
| 21 |
| 22 std::string GetExtensionSpecificsLogMessage( |
| 23 const sync_pb::ExtensionSpecifics& specifics) { |
| 24 return base::StringPrintf("id: %s\nversion: %s\nupdate_url: %s", |
| 25 specifics.id().c_str(), |
| 26 specifics.version().c_str(), |
| 27 specifics.update_url().c_str()); |
| 28 } |
| 29 |
| 30 } // namespace |
| 31 |
| 19 ExtensionSyncData::ExtensionSyncData() | 32 ExtensionSyncData::ExtensionSyncData() |
| 20 : uninstalled_(false), | 33 : uninstalled_(false), |
| 21 enabled_(false), | 34 enabled_(false), |
| 22 incognito_enabled_(false), | 35 incognito_enabled_(false), |
| 23 remote_install_(false), | 36 remote_install_(false), |
| 24 all_urls_enabled_(BOOLEAN_UNSET), | 37 all_urls_enabled_(BOOLEAN_UNSET), |
| 25 installed_by_custodian_(false) { | 38 installed_by_custodian_(false) { |
| 26 } | 39 } |
| 27 | 40 |
| 28 ExtensionSyncData::ExtensionSyncData(const syncer::SyncData& sync_data) | 41 ExtensionSyncData::ExtensionSyncData(const syncer::SyncData& sync_data) |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 specifics->set_remote_install(remote_install_); | 102 specifics->set_remote_install(remote_install_); |
| 90 if (all_urls_enabled_ != BOOLEAN_UNSET) | 103 if (all_urls_enabled_ != BOOLEAN_UNSET) |
| 91 specifics->set_all_urls_enabled(all_urls_enabled_ == BOOLEAN_TRUE); | 104 specifics->set_all_urls_enabled(all_urls_enabled_ == BOOLEAN_TRUE); |
| 92 specifics->set_installed_by_custodian(installed_by_custodian_); | 105 specifics->set_installed_by_custodian(installed_by_custodian_); |
| 93 specifics->set_name(name_); | 106 specifics->set_name(name_); |
| 94 } | 107 } |
| 95 | 108 |
| 96 void ExtensionSyncData::PopulateFromExtensionSpecifics( | 109 void ExtensionSyncData::PopulateFromExtensionSpecifics( |
| 97 const sync_pb::ExtensionSpecifics& specifics) { | 110 const sync_pb::ExtensionSpecifics& specifics) { |
| 98 if (!crx_file::id_util::IdIsValid(specifics.id())) { | 111 if (!crx_file::id_util::IdIsValid(specifics.id())) { |
| 99 LOG(FATAL) << "Attempt to sync bad ExtensionSpecifics."; | 112 LOG(FATAL) << "Attempt to sync bad ExtensionSpecifics (bad ID):\n" |
| 113 << GetExtensionSpecificsLogMessage(specifics); |
| 100 } | 114 } |
| 101 | 115 |
| 102 Version specifics_version(specifics.version()); | 116 Version specifics_version(specifics.version()); |
| 103 if (!specifics_version.IsValid()) | 117 if (!specifics_version.IsValid()) { |
| 104 LOG(FATAL) << "Attempt to sync bad ExtensionSpecifics."; | 118 LOG(FATAL) << "Attempt to sync bad ExtensionSpecifics (bad version):\n" |
| 119 << GetExtensionSpecificsLogMessage(specifics); |
| 120 } |
| 105 | 121 |
| 106 // The update URL must be either empty or valid. | 122 // The update URL must be either empty or valid. |
| 107 GURL specifics_update_url(specifics.update_url()); | 123 GURL specifics_update_url(specifics.update_url()); |
| 108 if (!specifics_update_url.is_empty() && !specifics_update_url.is_valid()) { | 124 if (!specifics_update_url.is_empty() && !specifics_update_url.is_valid()) { |
| 109 LOG(FATAL) << "Attempt to sync bad ExtensionSpecifics."; | 125 LOG(FATAL) << "Attempt to sync bad ExtensionSpecifics (bad update URL):\n" |
| 126 << GetExtensionSpecificsLogMessage(specifics); |
| 110 } | 127 } |
| 111 | 128 |
| 112 id_ = specifics.id(); | 129 id_ = specifics.id(); |
| 113 update_url_ = specifics_update_url; | 130 update_url_ = specifics_update_url; |
| 114 version_ = specifics_version; | 131 version_ = specifics_version; |
| 115 enabled_ = specifics.enabled(); | 132 enabled_ = specifics.enabled(); |
| 116 incognito_enabled_ = specifics.incognito_enabled(); | 133 incognito_enabled_ = specifics.incognito_enabled(); |
| 117 if (specifics.has_all_urls_enabled()) { | 134 if (specifics.has_all_urls_enabled()) { |
| 118 all_urls_enabled_ = | 135 all_urls_enabled_ = |
| 119 specifics.all_urls_enabled() ? BOOLEAN_TRUE : BOOLEAN_FALSE; | 136 specifics.all_urls_enabled() ? BOOLEAN_TRUE : BOOLEAN_FALSE; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 136 const sync_pb::EntitySpecifics& entity_specifics = sync_data.GetSpecifics(); | 153 const sync_pb::EntitySpecifics& entity_specifics = sync_data.GetSpecifics(); |
| 137 | 154 |
| 138 if (entity_specifics.has_extension()) { | 155 if (entity_specifics.has_extension()) { |
| 139 PopulateFromExtensionSpecifics(entity_specifics.extension()); | 156 PopulateFromExtensionSpecifics(entity_specifics.extension()); |
| 140 } else { | 157 } else { |
| 141 LOG(FATAL) << "Attempt to sync bad EntitySpecifics."; | 158 LOG(FATAL) << "Attempt to sync bad EntitySpecifics."; |
| 142 } | 159 } |
| 143 } | 160 } |
| 144 | 161 |
| 145 } // namespace extensions | 162 } // namespace extensions |
| OLD | NEW |