Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/sync_bookmarks/bookmark_model_associator.h" | 5 #include "components/sync_bookmarks/bookmark_model_associator.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/containers/hash_tables.h" | 9 #include "base/containers/hash_tables.h" |
| 10 #include "base/format_macros.h" | 10 #include "base/format_macros.h" |
| (...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 364 weak_factory_(this) { | 364 weak_factory_(this) { |
| 365 DCHECK(bookmark_model_); | 365 DCHECK(bookmark_model_); |
| 366 DCHECK(user_share_); | 366 DCHECK(user_share_); |
| 367 DCHECK(unrecoverable_error_handler_); | 367 DCHECK(unrecoverable_error_handler_); |
| 368 } | 368 } |
| 369 | 369 |
| 370 BookmarkModelAssociator::~BookmarkModelAssociator() { | 370 BookmarkModelAssociator::~BookmarkModelAssociator() { |
| 371 DCHECK(thread_checker_.CalledOnValidThread()); | 371 DCHECK(thread_checker_.CalledOnValidThread()); |
| 372 } | 372 } |
| 373 | 373 |
| 374 void BookmarkModelAssociator::UpdatePermanentNodeVisibility() { | |
| 375 DCHECK(thread_checker_.CalledOnValidThread()); | |
| 376 DCHECK(bookmark_model_->loaded()); | |
| 377 | |
| 378 BookmarkNode::Type bookmark_node_types[] = { | |
| 379 BookmarkNode::BOOKMARK_BAR, | |
| 380 BookmarkNode::OTHER_NODE, | |
| 381 BookmarkNode::MOBILE, | |
| 382 }; | |
| 383 for (size_t i = 0; i < arraysize(bookmark_node_types); ++i) { | |
| 384 int64 id = bookmark_model_->PermanentNode(bookmark_node_types[i])->id(); | |
| 385 bookmark_model_->SetPermanentNodeVisible( | |
| 386 bookmark_node_types[i], | |
| 387 id_map_.find(id) != id_map_.end()); | |
| 388 } | |
| 389 | |
| 390 // Note: the root node may have additional extra nodes. Currently their | |
| 391 // visibility is not affected by sync. | |
| 392 } | |
| 393 | |
| 394 syncer::SyncError BookmarkModelAssociator::DisassociateModels() { | 374 syncer::SyncError BookmarkModelAssociator::DisassociateModels() { |
| 395 id_map_.clear(); | 375 id_map_.clear(); |
| 396 id_map_inverse_.clear(); | 376 id_map_inverse_.clear(); |
| 397 dirty_associations_sync_ids_.clear(); | 377 dirty_associations_sync_ids_.clear(); |
| 398 return syncer::SyncError(); | 378 return syncer::SyncError(); |
| 399 } | 379 } |
| 400 | 380 |
| 401 int64 BookmarkModelAssociator::GetSyncIdFromChromeId(const int64& node_id) { | 381 int64 BookmarkModelAssociator::GetSyncIdFromChromeId(const int64& node_id) { |
| 402 BookmarkIdToSyncIdMap::const_iterator iter = id_map_.find(node_id); | 382 BookmarkIdToSyncIdMap::const_iterator iter = id_map_.find(node_id); |
| 403 return iter == id_map_.end() ? syncer::kInvalidId : iter->second; | 383 return iter == id_map_.end() ? syncer::kInvalidId : iter->second; |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 430 DCHECK(id_map_.find(node_id) == id_map_.end()); | 410 DCHECK(id_map_.find(node_id) == id_map_.end()); |
| 431 DCHECK(id_map_inverse_.find(sync_id) == id_map_inverse_.end()); | 411 DCHECK(id_map_inverse_.find(sync_id) == id_map_inverse_.end()); |
| 432 id_map_[node_id] = sync_id; | 412 id_map_[node_id] = sync_id; |
| 433 id_map_inverse_[sync_id] = node; | 413 id_map_inverse_[sync_id] = node; |
| 434 } | 414 } |
| 435 | 415 |
| 436 void BookmarkModelAssociator::Associate(const BookmarkNode* node, | 416 void BookmarkModelAssociator::Associate(const BookmarkNode* node, |
| 437 const syncer::BaseNode& sync_node) { | 417 const syncer::BaseNode& sync_node) { |
| 438 AddAssociation(node, sync_node.GetId()); | 418 AddAssociation(node, sync_node.GetId()); |
| 439 | 419 |
| 440 // TODO(stanisc): crbug.com/456876: consider not doing this on every single | |
|
noyau (Ping after 24h)
2015/11/18 16:49:15
Please add this bug number to the bug description
| |
| 441 // association. | |
| 442 UpdatePermanentNodeVisibility(); | |
| 443 | |
| 444 // The same check exists in PersistAssociations. However it is better to | 420 // The same check exists in PersistAssociations. However it is better to |
| 445 // do the check earlier to avoid the cost of decrypting nodes again | 421 // do the check earlier to avoid the cost of decrypting nodes again |
| 446 // in PersistAssociations. | 422 // in PersistAssociations. |
| 447 if (node->id() != sync_node.GetExternalId()) { | 423 if (node->id() != sync_node.GetExternalId()) { |
| 448 dirty_associations_sync_ids_.insert(sync_node.GetId()); | 424 dirty_associations_sync_ids_.insert(sync_node.GetId()); |
| 449 PostPersistAssociationsTask(); | 425 PostPersistAssociationsTask(); |
| 450 } | 426 } |
| 451 } | 427 } |
| 452 | 428 |
| 453 void BookmarkModelAssociator::Disassociate(int64 sync_id) { | 429 void BookmarkModelAssociator::Disassociate(int64 sync_id) { |
| (...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1186 syncer::BOOKMARKS); | 1162 syncer::BOOKMARKS); |
| 1187 } else { | 1163 } else { |
| 1188 context->set_native_model_sync_state(BEHIND); | 1164 context->set_native_model_sync_state(BEHIND); |
| 1189 } | 1165 } |
| 1190 } | 1166 } |
| 1191 } | 1167 } |
| 1192 return syncer::SyncError(); | 1168 return syncer::SyncError(); |
| 1193 } | 1169 } |
| 1194 | 1170 |
| 1195 } // namespace browser_sync | 1171 } // namespace browser_sync |
| OLD | NEW |