| 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_service.h" | 5 #include "chrome/browser/extensions/extension_service.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <set> | 8 #include <set> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 1240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1251 } else { | 1251 } else { |
| 1252 LOG(WARNING) << "CheckForUpdatesSoon() called with auto-update turned off"; | 1252 LOG(WARNING) << "CheckForUpdatesSoon() called with auto-update turned off"; |
| 1253 } | 1253 } |
| 1254 } | 1254 } |
| 1255 | 1255 |
| 1256 namespace { | 1256 namespace { |
| 1257 bool IsSyncableNone(const Extension& extension) { return false; } | 1257 bool IsSyncableNone(const Extension& extension) { return false; } |
| 1258 } // namespace | 1258 } // namespace |
| 1259 | 1259 |
| 1260 ExtensionService::SyncBundle::SyncBundle() | 1260 ExtensionService::SyncBundle::SyncBundle() |
| 1261 : filter(IsSyncableNone), | 1261 : filter(IsSyncableNone) { |
| 1262 sync_processor(NULL) { | |
| 1263 } | 1262 } |
| 1264 | 1263 |
| 1265 ExtensionService::SyncBundle::~SyncBundle() { | 1264 ExtensionService::SyncBundle::~SyncBundle() { |
| 1266 } | 1265 } |
| 1267 | 1266 |
| 1267 void ExtensionService::SyncBundle::Reset() { |
| 1268 filter = IsSyncableNone; |
| 1269 synced_extensions.clear(); |
| 1270 pending_sync_data.clear(); |
| 1271 sync_processor.reset(); |
| 1272 } |
| 1273 |
| 1268 bool ExtensionService::SyncBundle::HasExtensionId(const std::string& id) const { | 1274 bool ExtensionService::SyncBundle::HasExtensionId(const std::string& id) const { |
| 1269 return synced_extensions.find(id) != synced_extensions.end(); | 1275 return synced_extensions.find(id) != synced_extensions.end(); |
| 1270 } | 1276 } |
| 1271 | 1277 |
| 1272 bool ExtensionService::SyncBundle::HasPendingExtensionId(const std::string& id) | 1278 bool ExtensionService::SyncBundle::HasPendingExtensionId(const std::string& id) |
| 1273 const { | 1279 const { |
| 1274 return pending_sync_data.find(id) != pending_sync_data.end(); | 1280 return pending_sync_data.find(id) != pending_sync_data.end(); |
| 1275 } | 1281 } |
| 1276 | 1282 |
| 1277 void ExtensionService::SyncExtensionChangeIfNeeded(const Extension& extension) { | 1283 void ExtensionService::SyncExtensionChangeIfNeeded(const Extension& extension) { |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1342 ExtensionService::SyncBundle* ExtensionService::GetSyncBundleForModelType( | 1348 ExtensionService::SyncBundle* ExtensionService::GetSyncBundleForModelType( |
| 1343 syncable::ModelType type) { | 1349 syncable::ModelType type) { |
| 1344 GET_SYNC_BUNDLE_FOR_MODEL_TYPE_BODY(); | 1350 GET_SYNC_BUNDLE_FOR_MODEL_TYPE_BODY(); |
| 1345 } | 1351 } |
| 1346 | 1352 |
| 1347 #undef GET_SYNC_BUNDLE_FOR_MODEL_TYPE_BODY | 1353 #undef GET_SYNC_BUNDLE_FOR_MODEL_TYPE_BODY |
| 1348 | 1354 |
| 1349 SyncError ExtensionService::MergeDataAndStartSyncing( | 1355 SyncError ExtensionService::MergeDataAndStartSyncing( |
| 1350 syncable::ModelType type, | 1356 syncable::ModelType type, |
| 1351 const SyncDataList& initial_sync_data, | 1357 const SyncDataList& initial_sync_data, |
| 1352 SyncChangeProcessor* sync_processor) { | 1358 scoped_ptr<SyncChangeProcessor> sync_processor) { |
| 1353 CHECK(sync_processor); | |
| 1354 | |
| 1355 SyncBundle* bundle = NULL; | 1359 SyncBundle* bundle = NULL; |
| 1356 | 1360 |
| 1357 switch (type) { | 1361 switch (type) { |
| 1358 case syncable::EXTENSIONS: | 1362 case syncable::EXTENSIONS: |
| 1359 bundle = &extension_sync_bundle_; | 1363 bundle = &extension_sync_bundle_; |
| 1360 bundle->filter = IsSyncableExtension; | 1364 bundle->filter = IsSyncableExtension; |
| 1361 break; | 1365 break; |
| 1362 | 1366 |
| 1363 case syncable::APPS: | 1367 case syncable::APPS: |
| 1364 bundle = &app_sync_bundle_; | 1368 bundle = &app_sync_bundle_; |
| 1365 bundle->filter = IsSyncableApp; | 1369 bundle->filter = IsSyncableApp; |
| 1366 break; | 1370 break; |
| 1367 | 1371 |
| 1368 default: | 1372 default: |
| 1369 LOG(FATAL) << "Got " << type << " ModelType"; | 1373 LOG(FATAL) << "Got " << type << " ModelType"; |
| 1370 } | 1374 } |
| 1371 | 1375 DCHECK(!bundle->sync_processor.get()); |
| 1372 bundle->sync_processor = sync_processor; | 1376 DCHECK(sync_processor.get()); |
| 1377 bundle->sync_processor = sync_processor.Pass(); |
| 1373 | 1378 |
| 1374 // Process extensions from sync. | 1379 // Process extensions from sync. |
| 1375 for (SyncDataList::const_iterator i = initial_sync_data.begin(); | 1380 for (SyncDataList::const_iterator i = initial_sync_data.begin(); |
| 1376 i != initial_sync_data.end(); | 1381 i != initial_sync_data.end(); |
| 1377 ++i) { | 1382 ++i) { |
| 1378 ExtensionSyncData extension_sync_data = ExtensionSyncData(*i); | 1383 ExtensionSyncData extension_sync_data = ExtensionSyncData(*i); |
| 1379 bundle->synced_extensions.insert(extension_sync_data.id()); | 1384 bundle->synced_extensions.insert(extension_sync_data.id()); |
| 1380 ProcessExtensionSyncData(extension_sync_data, *bundle); | 1385 ProcessExtensionSyncData(extension_sync_data, *bundle); |
| 1381 } | 1386 } |
| 1382 | 1387 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1398 bundle->sync_processor->ProcessSyncChanges(FROM_HERE, sync_change_list); | 1403 bundle->sync_processor->ProcessSyncChanges(FROM_HERE, sync_change_list); |
| 1399 | 1404 |
| 1400 extension_prefs_->extension_sorting()->FixNTPOrdinalCollisions(); | 1405 extension_prefs_->extension_sorting()->FixNTPOrdinalCollisions(); |
| 1401 | 1406 |
| 1402 return SyncError(); | 1407 return SyncError(); |
| 1403 } | 1408 } |
| 1404 | 1409 |
| 1405 void ExtensionService::StopSyncing(syncable::ModelType type) { | 1410 void ExtensionService::StopSyncing(syncable::ModelType type) { |
| 1406 SyncBundle* bundle = GetSyncBundleForModelType(type); | 1411 SyncBundle* bundle = GetSyncBundleForModelType(type); |
| 1407 CHECK(bundle); | 1412 CHECK(bundle); |
| 1408 // This is the simplest way to clear out the bundle. | 1413 bundle->Reset(); |
| 1409 *bundle = SyncBundle(); | |
| 1410 } | 1414 } |
| 1411 | 1415 |
| 1412 SyncDataList ExtensionService::GetAllSyncData(syncable::ModelType type) const { | 1416 SyncDataList ExtensionService::GetAllSyncData(syncable::ModelType type) const { |
| 1413 const SyncBundle* bundle = GetSyncBundleForModelTypeConst(type); | 1417 const SyncBundle* bundle = GetSyncBundleForModelTypeConst(type); |
| 1414 CHECK(bundle); | 1418 CHECK(bundle); |
| 1415 std::vector<ExtensionSyncData> extension_sync_data = GetSyncDataList(*bundle); | 1419 std::vector<ExtensionSyncData> extension_sync_data = GetSyncDataList(*bundle); |
| 1416 SyncDataList result(extension_sync_data.size()); | 1420 SyncDataList result(extension_sync_data.size()); |
| 1417 for (int i = 0; i < static_cast<int>(extension_sync_data.size()); ++i) { | 1421 for (int i = 0; i < static_cast<int>(extension_sync_data.size()); ++i) { |
| 1418 result[i] = extension_sync_data[i].GetSyncData(); | 1422 result[i] = extension_sync_data[i].GetSyncData(); |
| 1419 } | 1423 } |
| (...skipping 1248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2668 return api_resource_controller_; | 2672 return api_resource_controller_; |
| 2669 } | 2673 } |
| 2670 | 2674 |
| 2671 extensions::RulesRegistryService* ExtensionService::GetRulesRegistryService() { | 2675 extensions::RulesRegistryService* ExtensionService::GetRulesRegistryService() { |
| 2672 if (!rules_registry_service_.get()) { | 2676 if (!rules_registry_service_.get()) { |
| 2673 rules_registry_service_.reset( | 2677 rules_registry_service_.reset( |
| 2674 new extensions::RulesRegistryService(profile_)); | 2678 new extensions::RulesRegistryService(profile_)); |
| 2675 } | 2679 } |
| 2676 return rules_registry_service_.get(); | 2680 return rules_registry_service_.get(); |
| 2677 } | 2681 } |
| OLD | NEW |