summaryrefslogtreecommitdiffstats
path: root/components/enhanced_bookmarks
diff options
context:
space:
mode:
authordanduong <danduong@chromium.org>2014-10-30 11:21:18 -0700
committerCommit bot <commit-bot@chromium.org>2014-10-30 18:21:34 +0000
commit2d0c8cfc2d67eea473132d8582430c21529ce897 (patch)
tree75bc1b71022497bf3c5b6ddc873c1c60733e847a /components/enhanced_bookmarks
parenta3fe70262d92dbc36b32dbedac50930eb7920234 (diff)
downloadchromium_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')
-rw-r--r--components/enhanced_bookmarks/bookmark_server_cluster_service.cc5
-rw-r--r--components/enhanced_bookmarks/bookmark_server_cluster_service.h1
-rw-r--r--components/enhanced_bookmarks/enhanced_bookmark_model.cc7
-rw-r--r--components/enhanced_bookmarks/enhanced_bookmark_model.h2
-rw-r--r--components/enhanced_bookmarks/enhanced_bookmark_model_observer.h3
-rw-r--r--components/enhanced_bookmarks/enhanced_bookmark_model_unittest.cc17
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();