| 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
|
|
|