| 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/common/extensions/sync_helper.h" | 5 #include "chrome/common/extensions/sync_helper.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "chrome/common/extensions/api/plugins/plugins_handler.h" | 8 #include "chrome/common/extensions/api/plugins/plugins_handler.h" |
| 9 #include "chrome/common/extensions/extension_constants.h" | 9 #include "chrome/common/extensions/extension_constants.h" |
| 10 #include "extensions/common/constants.h" | 10 #include "extensions/common/constants.h" |
| 11 #include "extensions/common/extension.h" | 11 #include "extensions/common/extension.h" |
| 12 #include "extensions/common/features/behavior_feature.h" | 12 #include "extensions/common/features/behavior_feature.h" |
| 13 #include "extensions/common/features/feature.h" |
| 13 #include "extensions/common/features/feature_provider.h" | 14 #include "extensions/common/features/feature_provider.h" |
| 14 #include "extensions/common/manifest.h" | 15 #include "extensions/common/manifest.h" |
| 15 #include "extensions/common/manifest_url_handlers.h" | 16 #include "extensions/common/manifest_url_handlers.h" |
| 16 #include "extensions/common/permissions/permissions_data.h" | 17 #include "extensions/common/permissions/permissions_data.h" |
| 17 | 18 |
| 18 namespace extensions { | 19 namespace extensions { |
| 19 namespace sync_helper { | 20 namespace sync_helper { |
| 20 | 21 |
| 21 bool IsSyncable(const Extension* extension) { | 22 bool IsSyncable(const Extension* extension) { |
| 22 if (FeatureProvider::GetBehaviorFeature(BehaviorFeature::kDoNotSync) | 23 const Feature* feature = |
| 23 ->IsAvailableToExtension(extension) | 24 FeatureProvider::GetBehaviorFeature(BehaviorFeature::kDoNotSync); |
| 24 .is_available()) { | 25 if (feature && feature->IsAvailableToExtension(extension).is_available()) |
| 25 return false; | 26 return false; |
| 26 } | |
| 27 | 27 |
| 28 // Default apps are not synced because otherwise they will pollute profiles | 28 // Default apps are not synced because otherwise they will pollute profiles |
| 29 // that don't already have them. Specially, if a user doesn't have default | 29 // that don't already have them. Specially, if a user doesn't have default |
| 30 // apps, creates a new profile (which get default apps) and then enables sync | 30 // apps, creates a new profile (which get default apps) and then enables sync |
| 31 // for it, then their profile everywhere gets the default apps. | 31 // for it, then their profile everywhere gets the default apps. |
| 32 bool is_syncable = (extension->location() == Manifest::INTERNAL && | 32 bool is_syncable = (extension->location() == Manifest::INTERNAL && |
| 33 !extension->was_installed_by_default()); | 33 !extension->was_installed_by_default()); |
| 34 if (!is_syncable && !IsSyncableComponentExtension(extension)) { | 34 if (!is_syncable && !IsSyncableComponentExtension(extension)) { |
| 35 // We have a non-standard location. | 35 // We have a non-standard location. |
| 36 return false; | 36 return false; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 | 81 |
| 82 bool IsSyncableComponentExtension(const Extension* extension) { | 82 bool IsSyncableComponentExtension(const Extension* extension) { |
| 83 if (!Manifest::IsComponentLocation(extension->location())) | 83 if (!Manifest::IsComponentLocation(extension->location())) |
| 84 return false; | 84 return false; |
| 85 return (extension->id() == extensions::kWebStoreAppId) || | 85 return (extension->id() == extensions::kWebStoreAppId) || |
| 86 (extension->id() == extension_misc::kChromeAppId); | 86 (extension->id() == extension_misc::kChromeAppId); |
| 87 } | 87 } |
| 88 | 88 |
| 89 } // namespace sync_helper | 89 } // namespace sync_helper |
| 90 } // namespace extensions | 90 } // namespace extensions |
| OLD | NEW |