Index: chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_service.cc |
diff --git a/chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_service.cc b/chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_service.cc |
index 2643b3999cf432621c9525d332cbe68172e5b656..e270c5356257974be9e464961bf984e4aa209e3e 100644 |
--- a/chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_service.cc |
+++ b/chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_service.cc |
@@ -37,8 +37,8 @@ |
BookmarkServerServiceObserver* observer) { |
BookmarkServerClusterService::AddObserver(observer); |
if (sync_refresh_skipped_) { |
+ sync_refresh_skipped_ = false; |
TriggerTokenRequest(false); |
- sync_refresh_skipped_ = false; |
} |
} |
@@ -50,55 +50,19 @@ |
// The stars cluster API relies on the information in chrome-sync. Sending a |
// cluster request immediately after a bookmark is changed from the bookmark |
// observer notification will yield the wrong results. The request must be |
- // delayed until the sync cycle has completed. |
+ // delayed until the sync cycle has completed. In fact, the ideal signal would |
+ // be "bookmark changed by sync", but we don't have that yet, and this is a |
+ // compromise. |
// Note that we will be skipping calling this cluster API if there is no |
// observer attached, because calling that is meaningless without UI to show. |
- // We also will avoid requesting for clusters if the bookmark data hasn't |
- // changed. |
- if (refreshes_needed_ > 0) { |
- DCHECK(model_->loaded()); |
+ if (model_->loaded()) { |
if (observers_.might_have_observers()) { |
TriggerTokenRequest(false); |
sync_refresh_skipped_ = false; |
} else { |
sync_refresh_skipped_ = true; |
} |
- --refreshes_needed_; |
} |
} |
-void ChromeBookmarkServerClusterService::EnhancedBookmarkAdded( |
- const BookmarkNode* node) { |
- BookmarkServerClusterService::EnhancedBookmarkAdded(node); |
- InvalidateCache(); |
-} |
- |
-void ChromeBookmarkServerClusterService::EnhancedBookmarkRemoved( |
- const BookmarkNode* node) { |
- BookmarkServerClusterService::EnhancedBookmarkRemoved(node); |
- InvalidateCache(); |
-} |
- |
-void ChromeBookmarkServerClusterService::EnhancedBookmarkNodeChanged( |
- const BookmarkNode* node) { |
- BookmarkServerClusterService::EnhancedBookmarkNodeChanged(node); |
- InvalidateCache(); |
-} |
- |
-void ChromeBookmarkServerClusterService::InvalidateCache() { |
- // Bookmark changes can happen locally or via sync. It is difficult to |
- // determine if a given SyncCycle contains all the local modifications. |
- // |
- // Consider the following sequence: |
- // 1. SyncCycleBeginning (bookmark version:1) |
- // 2. Bookmarks mutate locally (bookmark version:2) |
- // 3. SyncCycleCompleted (bookmark version:1) |
- // |
- // In this case, the bookmarks modified locally won't be sent to the server |
- // until the next SyncCycleCompleted. Since we can't accurately determine |
- // if a bookmark change has been sent on a SyncCycleCompleted, we're always |
- // assuming that we need to wait for 2 sync cycles. |
- refreshes_needed_ = 2; |
-} |
- |
} // namespace enhanced_bookmarks |