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

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

Issue 6902054: [Sync] Rip out overly-complicated ExtensionData class (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed asargent's comments 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
« no previous file with comments | « chrome/browser/sync/glue/extension_util.h ('k') | chrome/browser/sync/glue/extension_util_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 72401f175f17aaca575db458667e47d180a5f8b7..3c3162a8f0385c65ba955ede24bb4c8f15390e5d 100644
--- a/chrome/browser/sync/glue/extension_util.cc
+++ b/chrome/browser/sync/glue/extension_util.cc
@@ -9,7 +9,6 @@
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "base/version.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"
@@ -59,111 +58,6 @@ std::string ExtensionSpecificsToString(
return ss.str();
}
-bool IsExtensionSpecificsValid(
- const sync_pb::ExtensionSpecifics& specifics) {
- 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;
- }
-
- return true;
-}
-
-void DcheckIsExtensionSpecificsValid(
- const sync_pb::ExtensionSpecifics& specifics) {
- DCHECK(IsExtensionSpecificsValid(specifics))
- << ExtensionSpecificsToString(specifics);
-}
-
-bool AreExtensionSpecificsEqual(const sync_pb::ExtensionSpecifics& a,
- const sync_pb::ExtensionSpecifics& b) {
- // TODO(akalin): Figure out if we have to worry about version/URL
- // strings that are not identical but map to the same object.
- return ((a.id() == b.id()) &&
- (a.version() == b.version()) &&
- (a.update_url() == b.update_url()) &&
- (a.enabled() == b.enabled()) &&
- (a.incognito_enabled() == b.incognito_enabled()) &&
- (a.name() == b.name()));
-}
-
-bool IsExtensionSpecificsUnset(
- const sync_pb::ExtensionSpecifics& specifics) {
- return AreExtensionSpecificsEqual(specifics,
- sync_pb::ExtensionSpecifics());
-}
-
-void CopyUserProperties(
- const sync_pb::ExtensionSpecifics& specifics,
- sync_pb::ExtensionSpecifics* dest_specifics) {
- DCHECK(dest_specifics);
- dest_specifics->set_enabled(specifics.enabled());
- dest_specifics->set_incognito_enabled(specifics.incognito_enabled());
-}
-
-void CopyNonUserProperties(
- const sync_pb::ExtensionSpecifics& specifics,
- sync_pb::ExtensionSpecifics* dest_specifics) {
- DCHECK(dest_specifics);
- sync_pb::ExtensionSpecifics old_dest_specifics(*dest_specifics);
- *dest_specifics = specifics;
- CopyUserProperties(old_dest_specifics, dest_specifics);
-}
-
-bool AreExtensionSpecificsUserPropertiesEqual(
- const sync_pb::ExtensionSpecifics& a,
- const sync_pb::ExtensionSpecifics& b) {
- sync_pb::ExtensionSpecifics a_user_properties, b_user_properties;
- CopyUserProperties(a, &a_user_properties);
- CopyUserProperties(b, &b_user_properties);
- return AreExtensionSpecificsEqual(a_user_properties, b_user_properties);
-}
-
-bool AreExtensionSpecificsNonUserPropertiesEqual(
- const sync_pb::ExtensionSpecifics& a,
- const sync_pb::ExtensionSpecifics& b) {
- sync_pb::ExtensionSpecifics a_non_user_properties, b_non_user_properties;
- CopyNonUserProperties(a, &a_non_user_properties);
- CopyNonUserProperties(b, &b_non_user_properties);
- return AreExtensionSpecificsEqual(
- a_non_user_properties, b_non_user_properties);
-}
-
-void MergeExtensionSpecifics(
- const sync_pb::ExtensionSpecifics& specifics,
- bool merge_user_properties,
- sync_pb::ExtensionSpecifics* merged_specifics) {
- DcheckIsExtensionSpecificsValid(*merged_specifics);
- DcheckIsExtensionSpecificsValid(specifics);
- DCHECK_EQ(specifics.id(), merged_specifics->id());
- // TODO(akalin): Merge enabled permissions when we sync those.
- scoped_ptr<Version> version(
- Version::GetVersionFromString(specifics.version()));
- CHECK(version.get());
- scoped_ptr<Version> merged_version(
- Version::GetVersionFromString(merged_specifics->version()));
- CHECK(merged_version.get());
- if (version->CompareTo(*merged_version) >= 0) {
- // |specifics| has a more recent or the same version, so merge it
- // in.
- CopyNonUserProperties(specifics, merged_specifics);
- if (merge_user_properties) {
- CopyUserProperties(specifics, merged_specifics);
- }
- }
-}
-
bool SpecificsToSyncData(
const sync_pb::ExtensionSpecifics& specifics,
ExtensionSyncData* sync_data) {
« no previous file with comments | « chrome/browser/sync/glue/extension_util.h ('k') | chrome/browser/sync/glue/extension_util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698