diff options
author | danduong <danduong@chromium.org> | 2014-10-30 11:21:18 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-30 18:21:34 +0000 |
commit | 2d0c8cfc2d67eea473132d8582430c21529ce897 (patch) | |
tree | 75bc1b71022497bf3c5b6ddc873c1c60733e847a /components/enhanced_bookmarks | |
parent | a3fe70262d92dbc36b32dbedac50930eb7920234 (diff) | |
download | chromium_src-2d0c8cfc2d67eea473132d8582430c21529ce897.zip chromium_src-2d0c8cfc2d67eea473132d8582430c21529ce897.tar.gz chromium_src-2d0c8cfc2d67eea473132d8582430c21529ce897.tar.bz2 |
Reduce frequency of requesting bookmark clusters.
Currently, we fetch for bookmarks on SyncCycleCompleted. We
actually just want to trigger a request for clusters when
bookmarks change due to a SyncCycle. By watching for
ExtensiveChanges from the BookmarksModel and saving some
state, we can more accurately determine this.
BUG=424254
Review URL: https://codereview.chromium.org/682933002
Cr-Commit-Position: refs/heads/master@{#302111}
Diffstat (limited to 'components/enhanced_bookmarks')
6 files changed, 35 insertions, 0 deletions
diff --git a/components/enhanced_bookmarks/bookmark_server_cluster_service.cc b/components/enhanced_bookmarks/bookmark_server_cluster_service.cc index 0d85539..2eeb45e 100644 --- a/components/enhanced_bookmarks/bookmark_server_cluster_service.cc +++ b/components/enhanced_bookmarks/bookmark_server_cluster_service.cc @@ -198,6 +198,11 @@ void BookmarkServerClusterService::EnhancedBookmarkRemoved( // filtered in ClustersForBookmark() this is not strictly necessary. } +void BookmarkServerClusterService::EnhancedBookmarkNodeChanged( + const BookmarkNode* node) { + // Nothing to do. +} + void BookmarkServerClusterService::EnhancedBookmarkAllUserNodesRemoved() { if (!cluster_data_.empty()) { ClusterMap empty; diff --git a/components/enhanced_bookmarks/bookmark_server_cluster_service.h b/components/enhanced_bookmarks/bookmark_server_cluster_service.h index 717d49f..cc3ae51 100644 --- a/components/enhanced_bookmarks/bookmark_server_cluster_service.h +++ b/components/enhanced_bookmarks/bookmark_server_cluster_service.h @@ -67,6 +67,7 @@ class BookmarkServerClusterService : public KeyedService, void EnhancedBookmarkModelLoaded() override; void EnhancedBookmarkAdded(const BookmarkNode* node) override; void EnhancedBookmarkRemoved(const BookmarkNode* node) override; + void EnhancedBookmarkNodeChanged(const BookmarkNode* node) override; void EnhancedBookmarkAllUserNodesRemoved() override; void EnhancedBookmarkRemoteIdChanged(const BookmarkNode* node, const std::string& old_remote_id, diff --git a/components/enhanced_bookmarks/enhanced_bookmark_model.cc b/components/enhanced_bookmarks/enhanced_bookmark_model.cc index ba54759..ffcc02a 100644 --- a/components/enhanced_bookmarks/enhanced_bookmark_model.cc +++ b/components/enhanced_bookmarks/enhanced_bookmark_model.cc @@ -321,6 +321,13 @@ void EnhancedBookmarkModel::BookmarkNodeRemoved( EnhancedBookmarkModelObserver, observers_, EnhancedBookmarkRemoved(node)); } +void EnhancedBookmarkModel::BookmarkNodeChanged(BookmarkModel* model, + const BookmarkNode* node) { + FOR_EACH_OBSERVER( + EnhancedBookmarkModelObserver, observers_, + EnhancedBookmarkNodeChanged(node)); +} + void EnhancedBookmarkModel::OnWillChangeBookmarkMetaInfo( BookmarkModel* model, const BookmarkNode* node) { diff --git a/components/enhanced_bookmarks/enhanced_bookmark_model.h b/components/enhanced_bookmarks/enhanced_bookmark_model.h index d708d8d..4196f64 100644 --- a/components/enhanced_bookmarks/enhanced_bookmark_model.h +++ b/components/enhanced_bookmarks/enhanced_bookmark_model.h @@ -149,6 +149,8 @@ class EnhancedBookmarkModel : public KeyedService, int old_index, const BookmarkNode* node, const std::set<GURL>& removed_urls) override; + void BookmarkNodeChanged(BookmarkModel* model, + const BookmarkNode* node) override; void OnWillChangeBookmarkMetaInfo(BookmarkModel* model, const BookmarkNode* node) override; void BookmarkMetaInfoChanged(BookmarkModel* model, diff --git a/components/enhanced_bookmarks/enhanced_bookmark_model_observer.h b/components/enhanced_bookmarks/enhanced_bookmark_model_observer.h index 5ebfa16..eb83b57 100644 --- a/components/enhanced_bookmarks/enhanced_bookmark_model_observer.h +++ b/components/enhanced_bookmarks/enhanced_bookmark_model_observer.h @@ -25,6 +25,9 @@ class EnhancedBookmarkModelObserver { // Called when a node is removed from the model. virtual void EnhancedBookmarkRemoved(const BookmarkNode* node) = 0; + // Called when a node has changed. + virtual void EnhancedBookmarkNodeChanged(const BookmarkNode* node) = 0; + // Called when all user editable nodes are removed from the model. virtual void EnhancedBookmarkAllUserNodesRemoved() = 0; diff --git a/components/enhanced_bookmarks/enhanced_bookmark_model_unittest.cc b/components/enhanced_bookmarks/enhanced_bookmark_model_unittest.cc index f1b8994..0d12de1 100644 --- a/components/enhanced_bookmarks/enhanced_bookmark_model_unittest.cc +++ b/components/enhanced_bookmarks/enhanced_bookmark_model_unittest.cc @@ -35,10 +35,12 @@ class EnhancedBookmarkModelTest shutting_down_calls_(0), added_calls_(0), removed_calls_(0), + changed_calls_(0), all_user_nodes_removed_calls_(0), remote_id_changed_calls_(0), last_added_(NULL), last_removed_(NULL), + last_changed_(NULL), last_remote_id_node_(NULL) {} ~EnhancedBookmarkModelTest() override {} @@ -118,6 +120,10 @@ class EnhancedBookmarkModelTest removed_calls_++; last_removed_ = node; } + void EnhancedBookmarkNodeChanged(const BookmarkNode* node) override { + changed_calls_++; + last_changed_ = node; + } void EnhancedBookmarkAllUserNodesRemoved() override { all_user_nodes_removed_calls_++; } @@ -135,12 +141,14 @@ class EnhancedBookmarkModelTest int shutting_down_calls_; int added_calls_; int removed_calls_; + int changed_calls_; int all_user_nodes_removed_calls_; int remote_id_changed_calls_; // Observer parameter cache: const BookmarkNode* last_added_; const BookmarkNode* last_removed_; + const BookmarkNode* last_changed_; const BookmarkNode* last_remote_id_node_; std::string last_old_remote_id_; std::string last_remote_id_; @@ -592,6 +600,15 @@ TEST_F(EnhancedBookmarkModelTest, ObserverNodeRemovedEvent) { EXPECT_EQ(folder, last_removed_); } +TEST_F(EnhancedBookmarkModelTest, ObserverNodeChangedEvent) { + const BookmarkNode* node = AddBookmark(); + + EXPECT_EQ(0, changed_calls_); + bookmark_model_->SetTitle(node, base::ASCIIToUTF16("New Title")); + EXPECT_EQ(1, changed_calls_); + EXPECT_EQ(node, last_changed_); +} + TEST_F(EnhancedBookmarkModelTest, ObserverAllUserNodesRemovedEvent) { AddBookmark(); AddFolder(); |