Index: chrome/browser/sync/glue/bookmark_change_processor.cc |
diff --git a/chrome/browser/sync/glue/bookmark_change_processor.cc b/chrome/browser/sync/glue/bookmark_change_processor.cc |
index ae0e854ab6b1481d461a8162089cf931aa7765a1..e706a5aebc16f1b909a46bfb7392c6b9733f7506 100644 |
--- a/chrome/browser/sync/glue/bookmark_change_processor.cc |
+++ b/chrome/browser/sync/glue/bookmark_change_processor.cc |
@@ -409,6 +409,23 @@ void BookmarkChangeProcessor::BookmarkNodeMoved(BookmarkModel* model, |
void BookmarkChangeProcessor::BookmarkNodeFaviconChanged( |
BookmarkModel* model, |
const BookmarkNode* node) { |
+ if (!CanSyncNode(node)) { |
+ return; |
+ } |
+ |
+ // We shouldn't see changes to the top-level nodes. |
+ if (model->is_permanent_node(node)) { |
+ NOTREACHED() << "Saw Favicon update to permanent node!"; |
+ return; |
+ } |
+ |
+ // Ignore changes with empty images. This can happen if the favicon is |
+ // still being loaded. |
+ const gfx::Image& favicon = model->GetFavicon(node); |
+ if (favicon.IsEmpty()) { |
+ return; |
+ } |
+ |
BookmarkNodeChanged(model, node); |
} |