OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_service.h" | 5 #include "chrome/browser/extensions/extension_sync_service.h" |
6 | 6 |
7 #include <iterator> | 7 #include <iterator> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/threading/sequenced_worker_pool.h" | 10 #include "base/threading/sequenced_worker_pool.h" |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
375 | 375 |
376 // Extension from sync was uninstalled by the user as external extensions. | 376 // Extension from sync was uninstalled by the user as external extensions. |
377 // Honor user choice and skip installation/enabling. | 377 // Honor user choice and skip installation/enabling. |
378 if (extension_service_->IsExternalExtensionUninstalled(id)) { | 378 if (extension_service_->IsExternalExtensionUninstalled(id)) { |
379 LOG(WARNING) << "Extension with id " << id | 379 LOG(WARNING) << "Extension with id " << id |
380 << " from sync was uninstalled as external extension"; | 380 << " from sync was uninstalled as external extension"; |
381 return true; | 381 return true; |
382 } | 382 } |
383 | 383 |
384 // Set user settings. | 384 // Set user settings. |
| 385 // If the extension has been disabled from sync, it may not have |
| 386 // been installed yet, so we don't know if the disable reason was a |
| 387 // permissions increase. That will be updated once CheckPermissionsIncrease |
| 388 // is called for it. |
| 389 if (extension_sync_data.enabled()) |
| 390 extension_service_->EnableExtension(id); |
| 391 else if (!IsPendingEnable(id)) |
| 392 extension_service_->DisableExtension( |
| 393 id, Extension::DISABLE_UNKNOWN_FROM_SYNC); |
385 | 394 |
386 // We need to cache some version information here because setting the | 395 // We need to cache some version information here because setting the |
387 // incognito flag invalidates the |extension| pointer (it reloads the | 396 // incognito flag invalidates the |extension| pointer (it reloads the |
388 // extension). | 397 // extension). |
389 bool extension_installed = (extension != NULL); | 398 bool extension_installed = (extension != NULL); |
390 int result = extension ? | 399 int result = extension ? |
391 extension->version()->CompareTo(extension_sync_data.version()) : 0; | 400 extension->version()->CompareTo(extension_sync_data.version()) : 0; |
392 extension_util::SetIsIncognitoEnabled( | 401 extension_util::SetIsIncognitoEnabled( |
393 id, extension_service_, extension_sync_data.incognito_enabled()); | 402 id, extension_service_, extension_sync_data.incognito_enabled()); |
394 extension = NULL; // No longer safe to use. | 403 extension = NULL; // No longer safe to use. |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
434 app_sync_bundle_.SyncChangeIfNeeded(extension); | 443 app_sync_bundle_.SyncChangeIfNeeded(extension); |
435 else if (extension_service_->is_ready() && !flare_.is_null()) | 444 else if (extension_service_->is_ready() && !flare_.is_null()) |
436 flare_.Run(syncer::APPS); | 445 flare_.Run(syncer::APPS); |
437 } else if (extensions::sync_helper::IsSyncableExtension(&extension)) { | 446 } else if (extensions::sync_helper::IsSyncableExtension(&extension)) { |
438 if (extension_sync_bundle_.IsSyncing()) | 447 if (extension_sync_bundle_.IsSyncing()) |
439 extension_sync_bundle_.SyncChangeIfNeeded(extension); | 448 extension_sync_bundle_.SyncChangeIfNeeded(extension); |
440 else if (extension_service_->is_ready() && !flare_.is_null()) | 449 else if (extension_service_->is_ready() && !flare_.is_null()) |
441 flare_.Run(syncer::EXTENSIONS); | 450 flare_.Run(syncer::EXTENSIONS); |
442 } | 451 } |
443 } | 452 } |
OLD | NEW |