summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync
diff options
context:
space:
mode:
authoratwilson@chromium.org <atwilson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-14 23:05:42 +0000
committeratwilson@chromium.org <atwilson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-14 23:05:42 +0000
commitd252e84a8be5a8e373e7dc860c10eb841e6bfbb7 (patch)
treefbdb0080a22d8d2f356ddb785ff2f4162dd3afae /chrome/browser/sync
parent6b823fc389cfcabc3bfb4358ae058c8b713d3192 (diff)
downloadchromium_src-d252e84a8be5a8e373e7dc860c10eb841e6bfbb7.zip
chromium_src-d252e84a8be5a8e373e7dc860c10eb841e6bfbb7.tar.gz
chromium_src-d252e84a8be5a8e373e7dc860c10eb841e6bfbb7.tar.bz2
Added more DCHECK code to track bug 89059.
BUG=89059 TEST=none Review URL: http://codereview.chromium.org/7360003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92620 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync')
-rw-r--r--chrome/browser/sync/glue/typed_url_model_associator.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/chrome/browser/sync/glue/typed_url_model_associator.cc b/chrome/browser/sync/glue/typed_url_model_associator.cc
index 337a7c4..4aad3e5 100644
--- a/chrome/browser/sync/glue/typed_url_model_associator.cc
+++ b/chrome/browser/sync/glue/typed_url_model_associator.cc
@@ -7,6 +7,7 @@
#include <algorithm>
#include <set>
+#include "base/logging.h"
#include "base/tracked.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/history/history_backend.h"
@@ -18,6 +19,19 @@ namespace browser_sync {
const char kTypedUrlTag[] = "google_chrome_typed_urls";
+static bool CheckVisitOrdering(const history::VisitVector& visits) {
+ int64 previous_visit_time = 0;
+ for (history::VisitVector::const_iterator visit = visits.begin();
+ visit != visits.end(); ++visit) {
+ if (visit != visits.begin() &&
+ previous_visit_time >= visit->visit_time.ToInternalValue()) {
+ return false;
+ }
+ previous_visit_time = visit->visit_time.ToInternalValue();
+ }
+ return true;
+}
+
TypedUrlModelAssociator::TypedUrlModelAssociator(
ProfileSyncService* sync_service,
history::HistoryBackend* history_backend)
@@ -61,6 +75,7 @@ bool TypedUrlModelAssociator::AssociateModels() {
ix->id(), ix->last_visit(), 0, PageTransition::TYPED, 0);
visit_vectors[ix->id()].push_back(visit);
}
+ DCHECK(CheckVisitOrdering(visit_vectors[ix->id()]));
}
TypedUrlTitleVector titles;
@@ -483,6 +498,7 @@ int TypedUrlModelAssociator::MergeUrls(
}
}
+ DCHECK(CheckVisitOrdering(*visits));
if (different & DIFF_LOCAL_VISITS_ADDED) {
// Insert new visits into the apropriate place in the visits vector.
history::VisitVector::iterator visit_ix = visits->begin();
@@ -499,6 +515,7 @@ int TypedUrlModelAssociator::MergeUrls(
++visit_ix;
}
}
+ DCHECK(CheckVisitOrdering(*visits));
new_url->set_last_visit(visits->back().visit_time);
return different;
@@ -518,6 +535,7 @@ void TypedUrlModelAssociator::WriteToSyncNode(
typed_url.set_title(UTF16ToUTF8(url.title()));
typed_url.set_hidden(url.hidden());
+ DCHECK(CheckVisitOrdering(visits));
for (history::VisitVector::const_iterator visit = visits.begin();
visit != visits.end(); ++visit) {
typed_url.add_visits(visit->visit_time.ToInternalValue());