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

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

Issue 7104088: Changed typed url sync to no longer modify typed/visit_count. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updated per review comments. Created 9 years, 6 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/history/history_types.h ('k') | chrome/browser/sync/glue/typed_url_model_associator.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/glue/typed_url_change_processor.cc
diff --git a/chrome/browser/sync/glue/typed_url_change_processor.cc b/chrome/browser/sync/glue/typed_url_change_processor.cc
index 04c7ba0724bf4ef848b915136f25262cefc50117..505f2b8b8494c5ad66e9406ba3195b14387f9813 100644
--- a/chrome/browser/sync/glue/typed_url_change_processor.cc
+++ b/chrome/browser/sync/glue/typed_url_change_processor.cc
@@ -169,10 +169,15 @@ void TypedUrlChangeProcessor::HandleURLsVisited(
sync_api::WriteNode update_node(&trans);
if (!update_node.InitByClientTagLookup(syncable::TYPED_URLS, tag)) {
// If we don't know about it yet, it will be added later.
+ // TODO(atwilson): This can result in this URL not being synced until the
+ // next full association, as we may not get another notification for this
+ // URL if the navigation resulted in a redirect (http://crbug.com/85135).
return;
}
sync_pb::TypedUrlSpecifics typed_url(update_node.GetTypedUrlSpecifics());
- typed_url.add_visit(visits.back().visit_time.ToInternalValue());
+ typed_url.add_visits(visits.back().visit_time.ToInternalValue());
+ typed_url.add_visit_transitions(
+ visits.back().transition & PageTransition::CORE_MASK);
update_node.SetTypedUrlSpecifics(typed_url);
}
@@ -225,28 +230,31 @@ void TypedUrlChangeProcessor::ApplyChangesFromSyncModel(
GURL url(typed_url.url());
if (sync_api::SyncManager::ChangeRecord::ACTION_ADD == changes[i].action) {
- DCHECK(typed_url.visit_size());
- if (!typed_url.visit_size()) {
+ DCHECK(typed_url.visits_size());
+ if (!typed_url.visits_size()) {
continue;
}
- history::URLRow new_url =
- TypedUrlModelAssociator::TypedUrlSpecificsToURLRow(typed_url);
+ history::URLRow new_url(GURL(typed_url.url()));
+ TypedUrlModelAssociator::UpdateURLRowFromTypedUrlSpecifics(
+ typed_url, &new_url);
model_associator_->Associate(&new_url.url().spec(), changes[i].id);
new_urls.push_back(new_url);
- // The latest visit gets added automatically, so skip it.
- std::vector<base::Time> added_visits;
- for (int c = 0; c < typed_url.visit_size() - 1; ++c) {
- DCHECK(typed_url.visit(c) < typed_url.visit(c + 1));
- added_visits.push_back(
- base::Time::FromInternalValue(typed_url.visit(c)));
+ std::vector<history::VisitInfo> added_visits;
+ for (int c = 0; c < typed_url.visits_size(); ++c) {
+ DCHECK(c == 0 || typed_url.visits(c) > typed_url.visits(c - 1));
+ added_visits.push_back(history::VisitInfo(
+ base::Time::FromInternalValue(typed_url.visits(c)),
+ typed_url.visit_transitions(c)));
}
- new_visits.push_back(
- std::pair<GURL, std::vector<base::Time> >(url, added_visits));
+ new_visits.push_back(std::pair<GURL, std::vector<history::VisitInfo> >(
+ url, added_visits));
} else {
+ DCHECK_EQ(sync_api::SyncManager::ChangeRecord::ACTION_UPDATE,
+ changes[i].action);
history::URLRow old_url;
if (!history_backend_->GetURL(url, &old_url)) {
error_handler()->OnUnrecoverableError(FROM_HERE,
@@ -261,8 +269,9 @@ void TypedUrlChangeProcessor::ApplyChangesFromSyncModel(
return;
}
- history::URLRow new_url =
- TypedUrlModelAssociator::TypedUrlSpecificsToURLRow(typed_url);
+ history::URLRow new_url(old_url);
+ TypedUrlModelAssociator::UpdateURLRowFromTypedUrlSpecifics(
+ typed_url, &new_url);
updated_urls.push_back(
std::pair<history::URLID, history::URLRow>(old_url.id(), new_url));
@@ -272,13 +281,13 @@ void TypedUrlChangeProcessor::ApplyChangesFromSyncModel(
new_url.title()));
}
- std::vector<base::Time> added_visits;
+ std::vector<history::VisitInfo> added_visits;
history::VisitVector removed_visits;
TypedUrlModelAssociator::DiffVisits(visits, typed_url,
&added_visits, &removed_visits);
if (added_visits.size()) {
- new_visits.push_back(
- std::pair<GURL, std::vector<base::Time> >(url, added_visits));
+ new_visits.push_back(std::pair<GURL, std::vector<history::VisitInfo> >(
+ url, added_visits));
}
if (removed_visits.size()) {
deleted_visits.insert(deleted_visits.end(), removed_visits.begin(),
« no previous file with comments | « chrome/browser/history/history_types.h ('k') | chrome/browser/sync/glue/typed_url_model_associator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698