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

Side by Side Diff: chrome/browser/sync/glue/bookmark_change_processor.cc

Issue 6931018: Initial implementation of "Synced Bookmarks" folder. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Merge Created 9 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #include "chrome/browser/sync/glue/bookmark_change_processor.h" 4 #include "chrome/browser/sync/glue/bookmark_change_processor.h"
5 5
6 #include <stack> 6 #include <stack>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/string16.h" 9 #include "base/string16.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 int index, 184 int index,
185 const BookmarkNode* node) { 185 const BookmarkNode* node) {
186 DCHECK(running()); 186 DCHECK(running());
187 RemoveSyncNodeHierarchy(node); 187 RemoveSyncNodeHierarchy(node);
188 } 188 }
189 189
190 void BookmarkChangeProcessor::BookmarkNodeChanged(BookmarkModel* model, 190 void BookmarkChangeProcessor::BookmarkNodeChanged(BookmarkModel* model,
191 const BookmarkNode* node) { 191 const BookmarkNode* node) {
192 DCHECK(running()); 192 DCHECK(running());
193 // We shouldn't see changes to the top-level nodes. 193 // We shouldn't see changes to the top-level nodes.
194 if (node == model->GetBookmarkBarNode() || node == model->other_node()) { 194 if (node == model->GetBookmarkBarNode() || node == model->other_node() ||
195 node == model->synced_node()) {
195 NOTREACHED() << "Saw update to permanent node!"; 196 NOTREACHED() << "Saw update to permanent node!";
196 return; 197 return;
197 } 198 }
198 199
199 // Acquire a scoped write lock via a transaction. 200 // Acquire a scoped write lock via a transaction.
200 sync_api::WriteTransaction trans(share_handle()); 201 sync_api::WriteTransaction trans(share_handle());
201 202
202 // Lookup the sync node that's associated with |node|. 203 // Lookup the sync node that's associated with |node|.
203 sync_api::WriteNode sync_node(&trans); 204 sync_api::WriteNode sync_node(&trans);
204 if (!model_associator_->InitSyncNodeFromChromeId(node->id(), &sync_node)) { 205 if (!model_associator_->InitSyncNodeFromChromeId(node->id(), &sync_node)) {
(...skipping 13 matching lines...) Expand all
218 &sync_node)); 219 &sync_node));
219 } 220 }
220 221
221 222
222 void BookmarkChangeProcessor::BookmarkNodeMoved(BookmarkModel* model, 223 void BookmarkChangeProcessor::BookmarkNodeMoved(BookmarkModel* model,
223 const BookmarkNode* old_parent, int old_index, 224 const BookmarkNode* old_parent, int old_index,
224 const BookmarkNode* new_parent, int new_index) { 225 const BookmarkNode* new_parent, int new_index) {
225 DCHECK(running()); 226 DCHECK(running());
226 const BookmarkNode* child = new_parent->GetChild(new_index); 227 const BookmarkNode* child = new_parent->GetChild(new_index);
227 // We shouldn't see changes to the top-level nodes. 228 // We shouldn't see changes to the top-level nodes.
228 if (child == model->GetBookmarkBarNode() || child == model->other_node()) { 229 if (child == model->GetBookmarkBarNode() || child == model->other_node() ||
230 child == model->synced_node()) {
229 NOTREACHED() << "Saw update to permanent node!"; 231 NOTREACHED() << "Saw update to permanent node!";
230 return; 232 return;
231 } 233 }
232 234
233 // Acquire a scoped write lock via a transaction. 235 // Acquire a scoped write lock via a transaction.
234 sync_api::WriteTransaction trans(share_handle()); 236 sync_api::WriteTransaction trans(share_handle());
235 237
236 // Lookup the sync node that's associated with |child|. 238 // Lookup the sync node that's associated with |child|.
237 sync_api::WriteNode sync_node(&trans); 239 sync_api::WriteNode sync_node(&trans);
238 if (!model_associator_->InitSyncNodeFromChromeId(child->id(), &sync_node)) { 240 if (!model_associator_->InitSyncNodeFromChromeId(child->id(), &sync_node)) {
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 model->RemoveObserver(this); 379 model->RemoveObserver(this);
378 380
379 // A parent to hold nodes temporarily orphaned by parent deletion. It is 381 // A parent to hold nodes temporarily orphaned by parent deletion. It is
380 // lazily created inside the loop. 382 // lazily created inside the loop.
381 const BookmarkNode* foster_parent = NULL; 383 const BookmarkNode* foster_parent = NULL;
382 for (int i = 0; i < change_count; ++i) { 384 for (int i = 0; i < change_count; ++i) {
383 const BookmarkNode* dst = 385 const BookmarkNode* dst =
384 model_associator_->GetChromeNodeFromSyncId(changes[i].id); 386 model_associator_->GetChromeNodeFromSyncId(changes[i].id);
385 // Ignore changes to the permanent top-level nodes. We only care about 387 // Ignore changes to the permanent top-level nodes. We only care about
386 // their children. 388 // their children.
387 if ((dst == model->GetBookmarkBarNode()) || (dst == model->other_node())) 389 if ((dst == model->GetBookmarkBarNode()) || (dst==model->other_node()) ||
390 (dst == model->synced_node()))
388 continue; 391 continue;
389 if (changes[i].action == 392 if (changes[i].action ==
390 sync_api::SyncManager::ChangeRecord::ACTION_DELETE) { 393 sync_api::SyncManager::ChangeRecord::ACTION_DELETE) {
391 // Deletions should always be at the front of the list. 394 // Deletions should always be at the front of the list.
392 DCHECK(i == 0 || changes[i-1].action == changes[i].action); 395 DCHECK(i == 0 || changes[i-1].action == changes[i].action);
393 // Children of a deleted node should not be deleted; they may be 396 // Children of a deleted node should not be deleted; they may be
394 // reparented by a later change record. Move them to a temporary place. 397 // reparented by a later change record. Move them to a temporary place.
395 DCHECK(dst) << "Could not find node to be deleted"; 398 DCHECK(dst) << "Could not find node to be deleted";
396 if (!dst) // Can't do anything if we can't find the chrome node. 399 if (!dst) // Can't do anything if we can't find the chrome node.
397 continue; 400 continue;
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 const BookmarkNode* bookmark_node, 553 const BookmarkNode* bookmark_node,
551 BookmarkModel* model, 554 BookmarkModel* model,
552 sync_api::WriteNode* sync_node) { 555 sync_api::WriteNode* sync_node) {
553 std::vector<unsigned char> favicon_bytes; 556 std::vector<unsigned char> favicon_bytes;
554 EncodeFavicon(bookmark_node, model, &favicon_bytes); 557 EncodeFavicon(bookmark_node, model, &favicon_bytes);
555 if (!favicon_bytes.empty()) 558 if (!favicon_bytes.empty())
556 sync_node->SetFaviconBytes(favicon_bytes); 559 sync_node->SetFaviconBytes(favicon_bytes);
557 } 560 }
558 561
559 } // namespace browser_sync 562 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/sync/engine/download_updates_command.cc ('k') | chrome/browser/sync/glue/bookmark_model_associator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698