Index: chrome/browser/bookmarks/bookmark_model.cc |
diff --git a/chrome/browser/bookmarks/bookmark_model.cc b/chrome/browser/bookmarks/bookmark_model.cc |
index f118e55cbfa69b5ba51d032f28b154e5c41de910..9e4156e6af078ae366fe4a6021693c81e1b88603 100644 |
--- a/chrome/browser/bookmarks/bookmark_model.cc |
+++ b/chrome/browser/bookmarks/bookmark_model.cc |
@@ -496,14 +496,29 @@ void BookmarkModel::SetURL(const BookmarkNode* node, const GURL& url) { |
void BookmarkModel::SetNodeMetaInfo(const BookmarkNode* node, |
const std::string& key, |
const std::string& value) { |
+ // TODO(noyau): Right now the notification is send even if the meta info |
+ // doesn't change. Checking first with the current API will decode the meta |
+ // info twice, a non optimal solution. |
+ FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, |
+ OnWillChangeBookmarkMetaInfo(this, node)); |
+ |
if (AsMutable(node)->SetMetaInfo(key, value) && store_.get()) |
store_->ScheduleSave(); |
+ |
+ FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, |
+ BookmarkMetaInfoChanged(this, node)); |
} |
void BookmarkModel::DeleteNodeMetaInfo(const BookmarkNode* node, |
const std::string& key) { |
+ FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, |
+ OnWillChangeBookmarkMetaInfo(this, node)); |
+ |
if (AsMutable(node)->DeleteMetaInfo(key) && store_.get()) |
store_->ScheduleSave(); |
+ |
+ FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, |
+ BookmarkMetaInfoChanged(this, node)); |
} |
void BookmarkModel::SetDateAdded(const BookmarkNode* node, |