Index: chrome/common/extensions/extension.cc |
diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc |
index 54883497fa37a3db96979a89b969fd53959afd3b..a96099d8e2a80c14ac21c4a763457b61c405be17 100644 |
--- a/chrome/common/extensions/extension.cc |
+++ b/chrome/common/extensions/extension.cc |
@@ -2824,6 +2824,51 @@ bool Extension::OverlapsWithOrigin(const GURL& origin) const { |
return web_extent().OverlapsWith(origin_only_pattern_list); |
} |
+Extension::SyncType Extension::GetSyncType() const { |
+ // TODO(akalin): Figure out if we need to allow some other types. |
+ if (location() != Extension::INTERNAL) { |
+ // We have a non-standard location. |
+ return SYNC_TYPE_NONE; |
+ } |
+ |
+ // Disallow extensions with non-gallery auto-update URLs for now. |
+ // |
+ // TODO(akalin): Relax this restriction once we've put in UI to |
+ // approve synced extensions. |
+ if (!update_url().is_empty() && |
+ (update_url() != GalleryUpdateUrl(false)) && |
+ (update_url() != GalleryUpdateUrl(true))) { |
+ return SYNC_TYPE_NONE; |
+ } |
+ |
+ // Disallow extensions with native code plugins. |
+ // |
+ // TODO(akalin): Relax this restriction once we've put in UI to |
+ // approve synced extensions. |
+ if (!plugins().empty()) { |
+ return SYNC_TYPE_NONE; |
+ } |
+ |
+ switch (GetType()) { |
+ case Extension::TYPE_EXTENSION: |
+ return SYNC_TYPE_EXTENSION; |
+ |
+ case Extension::TYPE_USER_SCRIPT: |
+ // We only want to sync user scripts with update URLs. |
akalin
2011/08/12 03:35:02
clarify that we want to sync user scripts with gal
|
+ if (update_url().is_empty()) |
+ return SYNC_TYPE_NONE; |
+ else |
+ return SYNC_TYPE_EXTENSION; |
+ |
+ case Extension::TYPE_HOSTED_APP: |
+ case Extension::TYPE_PACKAGED_APP: |
+ return SYNC_TYPE_APP; |
+ |
+ default: |
+ return SYNC_TYPE_NONE; |
+ } |
+} |
+ |
ExtensionInfo::ExtensionInfo(const DictionaryValue* manifest, |
const std::string& id, |
const FilePath& path, |