Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(310)

Side by Side Diff: chrome/browser/history/top_sites.cc

Issue 8342048: Make NotificationService an interface in the content namespace, and switch callers to use it. Mov... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/history/history_tab_helper.cc ('k') | chrome/browser/importer/profile_writer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/history/top_sites.h" 5 #include "chrome/browser/history/top_sites.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 14 matching lines...) Expand all
25 #include "chrome/browser/ui/webui/ntp/most_visited_handler.h" 25 #include "chrome/browser/ui/webui/ntp/most_visited_handler.h"
26 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h" 26 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
27 #include "chrome/common/chrome_notification_types.h" 27 #include "chrome/common/chrome_notification_types.h"
28 #include "chrome/common/pref_names.h" 28 #include "chrome/common/pref_names.h"
29 #include "chrome/common/thumbnail_score.h" 29 #include "chrome/common/thumbnail_score.h"
30 #include "content/browser/browser_thread.h" 30 #include "content/browser/browser_thread.h"
31 #include "content/browser/tab_contents/navigation_controller.h" 31 #include "content/browser/tab_contents/navigation_controller.h"
32 #include "content/browser/tab_contents/navigation_details.h" 32 #include "content/browser/tab_contents/navigation_details.h"
33 #include "content/browser/tab_contents/navigation_entry.h" 33 #include "content/browser/tab_contents/navigation_entry.h"
34 #include "content/browser/tab_contents/tab_contents.h" 34 #include "content/browser/tab_contents/tab_contents.h"
35 #include "content/common/notification_service.h" 35 #include "content/public/browser/notification_service.h"
36 #include "grit/chromium_strings.h" 36 #include "grit/chromium_strings.h"
37 #include "grit/generated_resources.h" 37 #include "grit/generated_resources.h"
38 #include "grit/locale_settings.h" 38 #include "grit/locale_settings.h"
39 #include "ui/base/l10n/l10n_util.h" 39 #include "ui/base/l10n/l10n_util.h"
40 #include "ui/gfx/image/image_util.h" 40 #include "ui/gfx/image/image_util.h"
41 41
42 namespace history { 42 namespace history {
43 43
44 // How many top sites to store in the cache. 44 // How many top sites to store in the cache.
45 static const size_t kTopSitesNumber = 20; 45 static const size_t kTopSitesNumber = 20;
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 profile_(profile), 141 profile_(profile),
142 last_num_urls_changed_(0), 142 last_num_urls_changed_(0),
143 blacklist_(NULL), 143 blacklist_(NULL),
144 pinned_urls_(NULL), 144 pinned_urls_(NULL),
145 history_state_(HISTORY_LOADING), 145 history_state_(HISTORY_LOADING),
146 top_sites_state_(TOP_SITES_LOADING), 146 top_sites_state_(TOP_SITES_LOADING),
147 loaded_(false) { 147 loaded_(false) {
148 if (!profile_) 148 if (!profile_)
149 return; 149 return;
150 150
151 if (NotificationService::current()) { 151 if (content::NotificationService::current()) {
152 registrar_.Add(this, chrome::NOTIFICATION_HISTORY_URLS_DELETED, 152 registrar_.Add(this, chrome::NOTIFICATION_HISTORY_URLS_DELETED,
153 content::Source<Profile>(profile_)); 153 content::Source<Profile>(profile_));
154 // Listen for any nav commits. We'll ignore those not related to this 154 // Listen for any nav commits. We'll ignore those not related to this
155 // profile when we get the notification. 155 // profile when we get the notification.
156 registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, 156 registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED,
157 NotificationService::AllSources()); 157 content::NotificationService::AllSources());
158 } 158 }
159 159
160 // We create update objects here to be sure that dictionaries are created 160 // We create update objects here to be sure that dictionaries are created
161 // in the user preferences. 161 // in the user preferences.
162 DictionaryPrefUpdate(profile_->GetPrefs(), 162 DictionaryPrefUpdate(profile_->GetPrefs(),
163 prefs::kNTPMostVisitedURLsBlacklist).Get(); 163 prefs::kNTPMostVisitedURLsBlacklist).Get();
164 DictionaryPrefUpdate(profile_->GetPrefs(), 164 DictionaryPrefUpdate(profile_->GetPrefs(),
165 prefs::kNTPMostVisitedPinnedURLs).Get(); 165 prefs::kNTPMostVisitedPinnedURLs).Get();
166 166
167 // Now the dictionaries are guaranteed to exist and we can cache pointers 167 // Now the dictionaries are guaranteed to exist and we can cache pointers
(...skipping 757 matching lines...) Expand 10 before | Expand all | Expand 10 after
925 // Now that we're loaded we can service the queued up callbacks. Copy them 925 // Now that we're loaded we can service the queued up callbacks. Copy them
926 // here and service them outside the lock. 926 // here and service them outside the lock.
927 if (!pending_callbacks_.empty()) { 927 if (!pending_callbacks_.empty()) {
928 filtered_urls = thread_safe_cache_->top_sites(); 928 filtered_urls = thread_safe_cache_->top_sites();
929 pending_callbacks.swap(pending_callbacks_); 929 pending_callbacks.swap(pending_callbacks_);
930 } 930 }
931 } 931 }
932 932
933 ProcessPendingCallbacks(pending_callbacks, filtered_urls); 933 ProcessPendingCallbacks(pending_callbacks, filtered_urls);
934 934
935 NotificationService::current()->Notify(chrome::NOTIFICATION_TOP_SITES_LOADED, 935 content::NotificationService::current()->Notify(
936 content::Source<Profile>(profile_), 936 chrome::NOTIFICATION_TOP_SITES_LOADED,
937 content::Details<TopSites>(this)); 937 content::Source<Profile>(profile_),
938 content::Details<TopSites>(this));
938 } 939 }
939 940
940 void TopSites::ResetThreadSafeCache() { 941 void TopSites::ResetThreadSafeCache() {
941 base::AutoLock lock(lock_); 942 base::AutoLock lock(lock_);
942 MostVisitedURLList cached; 943 MostVisitedURLList cached;
943 ApplyBlacklistAndPinnedURLs(cache_->top_sites(), &cached); 944 ApplyBlacklistAndPinnedURLs(cache_->top_sites(), &cached);
944 thread_safe_cache_->SetTopSites(cached); 945 thread_safe_cache_->SetTopSites(cached);
945 } 946 }
946 947
947 void TopSites::ResetThreadSafeImageCache() { 948 void TopSites::ResetThreadSafeImageCache() {
948 base::AutoLock lock(lock_); 949 base::AutoLock lock(lock_);
949 thread_safe_cache_->SetThumbnails(cache_->images()); 950 thread_safe_cache_->SetThumbnails(cache_->images());
950 thread_safe_cache_->RemoveUnreferencedThumbnails(); 951 thread_safe_cache_->RemoveUnreferencedThumbnails();
951 } 952 }
952 953
953 void TopSites::NotifyTopSitesChanged() { 954 void TopSites::NotifyTopSitesChanged() {
954 NotificationService::current()->Notify( 955 content::NotificationService::current()->Notify(
955 chrome::NOTIFICATION_TOP_SITES_CHANGED, 956 chrome::NOTIFICATION_TOP_SITES_CHANGED,
956 content::Source<TopSites>(this), 957 content::Source<TopSites>(this),
957 NotificationService::NoDetails()); 958 content::NotificationService::NoDetails());
958 } 959 }
959 960
960 void TopSites::RestartQueryForTopSitesTimer(base::TimeDelta delta) { 961 void TopSites::RestartQueryForTopSitesTimer(base::TimeDelta delta) {
961 if (timer_.IsRunning() && ((timer_start_time_ + timer_.GetCurrentDelay()) < 962 if (timer_.IsRunning() && ((timer_start_time_ + timer_.GetCurrentDelay()) <
962 (base::TimeTicks::Now() + delta))) { 963 (base::TimeTicks::Now() + delta))) {
963 return; 964 return;
964 } 965 }
965 966
966 timer_start_time_ = base::TimeTicks::Now(); 967 timer_start_time_ = base::TimeTicks::Now();
967 timer_.Stop(); 968 timer_.Stop();
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1018 } 1019 }
1019 } 1020 }
1020 } 1021 }
1021 1022
1022 void TopSites::OnTopSitesAvailableFromHistory( 1023 void TopSites::OnTopSitesAvailableFromHistory(
1023 CancelableRequestProvider::Handle handle, 1024 CancelableRequestProvider::Handle handle,
1024 MostVisitedURLList pages) { 1025 MostVisitedURLList pages) {
1025 SetTopSites(pages); 1026 SetTopSites(pages);
1026 1027
1027 // Used only in testing. 1028 // Used only in testing.
1028 NotificationService::current()->Notify( 1029 content::NotificationService::current()->Notify(
1029 chrome::NOTIFICATION_TOP_SITES_UPDATED, 1030 chrome::NOTIFICATION_TOP_SITES_UPDATED,
1030 content::Source<TopSites>(this), 1031 content::Source<TopSites>(this),
1031 content::Details<CancelableRequestProvider::Handle>(&handle)); 1032 content::Details<CancelableRequestProvider::Handle>(&handle));
1032 } 1033 }
1033 1034
1034 } // namespace history 1035 } // namespace history
OLDNEW
« no previous file with comments | « chrome/browser/history/history_tab_helper.cc ('k') | chrome/browser/importer/profile_writer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698