Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3112)

Unified Diff: chrome/browser/sync/glue/extension_util.cc

Issue 6852029: [Sync] Move some extension-sync-related logic to ExtensionService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add TODO, fix lint Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sync/glue/extension_util.cc
diff --git a/chrome/browser/sync/glue/extension_util.cc b/chrome/browser/sync/glue/extension_util.cc
index 4d24a43b95b85900ffc60008379f195f82a7310f..13e4796e067b683977adfdc02763e669e4f8a194 100644
--- a/chrome/browser/sync/glue/extension_util.cc
+++ b/chrome/browser/sync/glue/extension_util.cc
@@ -12,8 +12,8 @@
#include "base/version.h"
#include "chrome/browser/extensions/extension_prefs.h"
#include "chrome/browser/extensions/extension_service.h"
+#include "chrome/browser/extensions/extension_sync_data.h"
#include "chrome/browser/sync/protocol/extension_specifics.pb.h"
-#include "chrome/common/extensions/extension.h"
#include "chrome/common/extensions/extension_constants.h"
namespace browser_sync {
@@ -157,19 +157,6 @@ void GetExtensionSpecifics(const Extension& extension,
DcheckIsExtensionSpecificsValid(*specifics);
}
-bool IsExtensionOutdated(const Extension& extension,
- const sync_pb::ExtensionSpecifics& specifics) {
- DCHECK(IsExtensionValid(extension));
- DcheckIsExtensionSpecificsValid(specifics);
- scoped_ptr<Version> specifics_version(
- Version::GetVersionFromString(specifics.version()));
- if (!specifics_version.get()) {
- // If version is invalid, assume we're up-to-date.
- return false;
- }
- return extension.version()->CompareTo(*specifics_version) < 0;
-}
-
void MergeExtensionSpecifics(
const sync_pb::ExtensionSpecifics& specifics,
bool merge_user_properties,
@@ -194,4 +181,60 @@ void MergeExtensionSpecifics(
}
}
+bool GetExtensionSyncData(
+ const sync_pb::ExtensionSpecifics& specifics,
+ ExtensionSyncData* sync_data) {
+ if (!Extension::IdIsValid(specifics.id())) {
+ return false;
+ }
+
+ scoped_ptr<Version> version(
+ Version::GetVersionFromString(specifics.version()));
+ if (!version.get()) {
+ return false;
+ }
+
+ // The update URL must be either empty or valid.
+ GURL update_url(specifics.update_url());
+ if (!update_url.is_empty() && !update_url.is_valid()) {
+ return false;
+ }
+
+ sync_data->id = specifics.id();
+ sync_data->update_url = update_url;
+ sync_data->version = *version;
+ sync_data->enabled = specifics.enabled();
+ sync_data->incognito_enabled = specifics.incognito_enabled();
+ return true;
+}
+
+bool IsSyncableExtension(Extension::Type type, const GURL& update_url) {
+ switch (type) {
+ case Extension::TYPE_EXTENSION:
+ return true;
+ case Extension::TYPE_USER_SCRIPT:
+ // We only want to sync user scripts with update URLs.
+ return !update_url.is_empty();
+ default:
+ return false;
+ }
+}
+
+bool IsValidAndSyncableExtension(const Extension& extension) {
+ return
+ IsExtensionValid(extension) &&
+ IsSyncableExtension(extension.GetType(), extension.update_url());
+}
+
+bool IsSyncableApp(Extension::Type type) {
+ return
+ (type == Extension::TYPE_HOSTED_APP) ||
+ (type == Extension::TYPE_PACKAGED_APP);
+}
+
+bool IsValidAndSyncableApp(
+ const Extension& extension) {
+ return IsExtensionValid(extension) && IsSyncableApp(extension.GetType());
+}
+
} // namespace browser_sync

Powered by Google App Engine
This is Rietveld 408576698