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 685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
696 extension.get(), error)) { | 696 extension.get(), error)) { |
697 content::NotificationService::current()->Notify( | 697 content::NotificationService::current()->Notify( |
698 chrome::NOTIFICATION_EXTENSION_UNINSTALL_NOT_ALLOWED, | 698 chrome::NOTIFICATION_EXTENSION_UNINSTALL_NOT_ALLOWED, |
699 content::Source<Profile>(profile_), | 699 content::Source<Profile>(profile_), |
700 content::Details<const Extension>(extension)); | 700 content::Details<const Extension>(extension)); |
701 return false; | 701 return false; |
702 } | 702 } |
703 | 703 |
704 // Extract the data we need for sync now, but don't actually sync until we've | 704 // Extract the data we need for sync now, but don't actually sync until we've |
705 // completed the uninstallation. | 705 // completed the uninstallation. |
706 SyncChange sync_change; | 706 csync::SyncChange sync_change; |
707 if (app_sync_bundle_.HandlesApp(*extension)) { | 707 if (app_sync_bundle_.HandlesApp(*extension)) { |
708 sync_change = app_sync_bundle_.CreateSyncChangeToDelete(extension); | 708 sync_change = app_sync_bundle_.CreateSyncChangeToDelete(extension); |
709 } else if (extension_sync_bundle_.HandlesExtension(*extension)) { | 709 } else if (extension_sync_bundle_.HandlesExtension(*extension)) { |
710 sync_change = extension_sync_bundle_.CreateSyncChangeToDelete(extension); | 710 sync_change = extension_sync_bundle_.CreateSyncChangeToDelete(extension); |
711 } | 711 } |
712 | 712 |
713 UMA_HISTOGRAM_ENUMERATION("Extensions.UninstallType", | 713 UMA_HISTOGRAM_ENUMERATION("Extensions.UninstallType", |
714 extension->GetType(), 100); | 714 extension->GetType(), 100); |
715 RecordPermissionMessagesHistogram( | 715 RecordPermissionMessagesHistogram( |
716 extension, "Extensions.Permissions_Uninstall"); | 716 extension, "Extensions.Permissions_Uninstall"); |
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1181 // Sync can start updating before all the external providers are ready | 1181 // Sync can start updating before all the external providers are ready |
1182 // during startup. Start the update as soon as those providers are ready, | 1182 // during startup. Start the update as soon as those providers are ready, |
1183 // but not before. | 1183 // but not before. |
1184 update_once_all_providers_are_ready_ = true; | 1184 update_once_all_providers_are_ready_ = true; |
1185 } | 1185 } |
1186 } else { | 1186 } else { |
1187 LOG(WARNING) << "CheckForUpdatesSoon() called with auto-update turned off"; | 1187 LOG(WARNING) << "CheckForUpdatesSoon() called with auto-update turned off"; |
1188 } | 1188 } |
1189 } | 1189 } |
1190 | 1190 |
1191 SyncError ExtensionService::MergeDataAndStartSyncing( | 1191 csync::SyncError ExtensionService::MergeDataAndStartSyncing( |
1192 syncable::ModelType type, | 1192 syncable::ModelType type, |
1193 const SyncDataList& initial_sync_data, | 1193 const csync::SyncDataList& initial_sync_data, |
1194 scoped_ptr<SyncChangeProcessor> sync_processor, | 1194 scoped_ptr<csync::SyncChangeProcessor> sync_processor, |
1195 scoped_ptr<SyncErrorFactory> sync_error_factory) { | 1195 scoped_ptr<csync::SyncErrorFactory> sync_error_factory) { |
1196 CHECK(sync_processor.get()); | 1196 CHECK(sync_processor.get()); |
1197 CHECK(sync_error_factory.get()); | 1197 CHECK(sync_error_factory.get()); |
1198 | 1198 |
1199 switch (type) { | 1199 switch (type) { |
1200 case syncable::EXTENSIONS: | 1200 case syncable::EXTENSIONS: |
1201 extension_sync_bundle_.SetupSync(sync_processor.release(), | 1201 extension_sync_bundle_.SetupSync(sync_processor.release(), |
1202 sync_error_factory.release(), | 1202 sync_error_factory.release(), |
1203 initial_sync_data); | 1203 initial_sync_data); |
1204 break; | 1204 break; |
1205 | 1205 |
1206 case syncable::APPS: | 1206 case syncable::APPS: |
1207 app_sync_bundle_.SetupSync(sync_processor.release(), | 1207 app_sync_bundle_.SetupSync(sync_processor.release(), |
1208 sync_error_factory.release(), | 1208 sync_error_factory.release(), |
1209 initial_sync_data); | 1209 initial_sync_data); |
1210 break; | 1210 break; |
1211 | 1211 |
1212 default: | 1212 default: |
1213 LOG(FATAL) << "Got " << type << " ModelType"; | 1213 LOG(FATAL) << "Got " << type << " ModelType"; |
1214 } | 1214 } |
1215 | 1215 |
1216 // Process local extensions. | 1216 // Process local extensions. |
1217 // TODO(yoz): Determine whether pending extensions should be considered too. | 1217 // TODO(yoz): Determine whether pending extensions should be considered too. |
1218 // See crbug.com/104399. | 1218 // See crbug.com/104399. |
1219 SyncDataList sync_data_list = GetAllSyncData(type); | 1219 csync::SyncDataList sync_data_list = GetAllSyncData(type); |
1220 SyncChangeList sync_change_list; | 1220 csync::SyncChangeList sync_change_list; |
1221 for (SyncDataList::const_iterator i = sync_data_list.begin(); | 1221 for (csync::SyncDataList::const_iterator i = sync_data_list.begin(); |
1222 i != sync_data_list.end(); | 1222 i != sync_data_list.end(); |
1223 ++i) { | 1223 ++i) { |
1224 switch (type) { | 1224 switch (type) { |
1225 case syncable::EXTENSIONS: | 1225 case syncable::EXTENSIONS: |
1226 sync_change_list.push_back( | 1226 sync_change_list.push_back( |
1227 extension_sync_bundle_.CreateSyncChange(*i)); | 1227 extension_sync_bundle_.CreateSyncChange(*i)); |
1228 break; | 1228 break; |
1229 case syncable::APPS: | 1229 case syncable::APPS: |
1230 sync_change_list.push_back(app_sync_bundle_.CreateSyncChange(*i)); | 1230 sync_change_list.push_back(app_sync_bundle_.CreateSyncChange(*i)); |
1231 break; | 1231 break; |
1232 default: | 1232 default: |
1233 LOG(FATAL) << "Got " << type << " ModelType"; | 1233 LOG(FATAL) << "Got " << type << " ModelType"; |
1234 } | 1234 } |
1235 } | 1235 } |
1236 | 1236 |
1237 | 1237 |
1238 if (type == syncable::EXTENSIONS) { | 1238 if (type == syncable::EXTENSIONS) { |
1239 extension_sync_bundle_.ProcessSyncChangeList(sync_change_list); | 1239 extension_sync_bundle_.ProcessSyncChangeList(sync_change_list); |
1240 } else if (type == syncable::APPS) { | 1240 } else if (type == syncable::APPS) { |
1241 app_sync_bundle_.ProcessSyncChangeList(sync_change_list); | 1241 app_sync_bundle_.ProcessSyncChangeList(sync_change_list); |
1242 } | 1242 } |
1243 | 1243 |
1244 return SyncError(); | 1244 return csync::SyncError(); |
1245 } | 1245 } |
1246 | 1246 |
1247 void ExtensionService::StopSyncing(syncable::ModelType type) { | 1247 void ExtensionService::StopSyncing(syncable::ModelType type) { |
1248 if (type == syncable::APPS) { | 1248 if (type == syncable::APPS) { |
1249 app_sync_bundle_.Reset(); | 1249 app_sync_bundle_.Reset(); |
1250 } else if (type == syncable::EXTENSIONS) { | 1250 } else if (type == syncable::EXTENSIONS) { |
1251 extension_sync_bundle_.Reset(); | 1251 extension_sync_bundle_.Reset(); |
1252 } | 1252 } |
1253 } | 1253 } |
1254 | 1254 |
1255 SyncDataList ExtensionService::GetAllSyncData(syncable::ModelType type) const { | 1255 csync::SyncDataList ExtensionService::GetAllSyncData( |
| 1256 syncable::ModelType type) const { |
1256 if (type == syncable::EXTENSIONS) { | 1257 if (type == syncable::EXTENSIONS) { |
1257 return extension_sync_bundle_.GetAllSyncData(); | 1258 return extension_sync_bundle_.GetAllSyncData(); |
1258 | 1259 |
1259 } else if (type == syncable::APPS) { | 1260 } else if (type == syncable::APPS) { |
1260 return app_sync_bundle_.GetAllSyncData(); | 1261 return app_sync_bundle_.GetAllSyncData(); |
1261 } | 1262 } |
1262 | 1263 |
1263 // We should only get sync data for extensions and apps. | 1264 // We should only get sync data for extensions and apps. |
1264 NOTREACHED(); | 1265 NOTREACHED(); |
1265 | 1266 |
1266 return SyncDataList(); | 1267 return csync::SyncDataList(); |
1267 } | 1268 } |
1268 | 1269 |
1269 SyncError ExtensionService::ProcessSyncChanges( | 1270 csync::SyncError ExtensionService::ProcessSyncChanges( |
1270 const tracked_objects::Location& from_here, | 1271 const tracked_objects::Location& from_here, |
1271 const SyncChangeList& change_list) { | 1272 const csync::SyncChangeList& change_list) { |
1272 for (SyncChangeList::const_iterator i = change_list.begin(); | 1273 for (csync::SyncChangeList::const_iterator i = change_list.begin(); |
1273 i != change_list.end(); | 1274 i != change_list.end(); |
1274 ++i) { | 1275 ++i) { |
1275 syncable::ModelType type = i->sync_data().GetDataType(); | 1276 syncable::ModelType type = i->sync_data().GetDataType(); |
1276 if (type == syncable::EXTENSIONS) { | 1277 if (type == syncable::EXTENSIONS) { |
1277 extension_sync_bundle_.ProcessSyncChange( | 1278 extension_sync_bundle_.ProcessSyncChange( |
1278 extensions::ExtensionSyncData(*i)); | 1279 extensions::ExtensionSyncData(*i)); |
1279 } else if (type == syncable::APPS) { | 1280 } else if (type == syncable::APPS) { |
1280 app_sync_bundle_.ProcessSyncChange(extensions::AppSyncData(*i)); | 1281 app_sync_bundle_.ProcessSyncChange(extensions::AppSyncData(*i)); |
1281 } | 1282 } |
1282 } | 1283 } |
1283 | 1284 |
1284 extension_prefs()->extension_sorting()->FixNTPOrdinalCollisions(); | 1285 extension_prefs()->extension_sorting()->FixNTPOrdinalCollisions(); |
1285 | 1286 |
1286 return SyncError(); | 1287 return csync::SyncError(); |
1287 } | 1288 } |
1288 | 1289 |
1289 extensions::ExtensionSyncData ExtensionService::GetExtensionSyncData( | 1290 extensions::ExtensionSyncData ExtensionService::GetExtensionSyncData( |
1290 const Extension& extension) const { | 1291 const Extension& extension) const { |
1291 return extensions::ExtensionSyncData(extension, | 1292 return extensions::ExtensionSyncData(extension, |
1292 IsExtensionEnabled(extension.id()), | 1293 IsExtensionEnabled(extension.id()), |
1293 IsIncognitoEnabled(extension.id())); | 1294 IsIncognitoEnabled(extension.id())); |
1294 } | 1295 } |
1295 | 1296 |
1296 extensions::AppSyncData ExtensionService::GetAppSyncData( | 1297 extensions::AppSyncData ExtensionService::GetAppSyncData( |
1297 const Extension& extension) const { | 1298 const Extension& extension) const { |
1298 return extensions::AppSyncData( | 1299 return extensions::AppSyncData( |
1299 extension, | 1300 extension, |
(...skipping 1256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2556 | 2557 |
2557 // To coexist with certain unit tests that don't have a work-thread message | 2558 // To coexist with certain unit tests that don't have a work-thread message |
2558 // loop available at ExtensionService shutdown, we lazy-initialize this | 2559 // loop available at ExtensionService shutdown, we lazy-initialize this |
2559 // object so that those cases neither create nor destroy an | 2560 // object so that those cases neither create nor destroy an |
2560 // APIResourceController. | 2561 // APIResourceController. |
2561 if (!api_resource_controller_.get()) { | 2562 if (!api_resource_controller_.get()) { |
2562 api_resource_controller_.reset(new extensions::APIResourceController()); | 2563 api_resource_controller_.reset(new extensions::APIResourceController()); |
2563 } | 2564 } |
2564 return api_resource_controller_.get(); | 2565 return api_resource_controller_.get(); |
2565 } | 2566 } |
OLD | NEW |