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

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

Issue 642623004: Rename VisitDatabaseObserver to HistoryServiceObserver (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@373326
Patch Set: Created 6 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // The history system runs on a background thread so that potentially slow 5 // The history system runs on a background thread so that potentially slow
6 // database operations don't delay the browser. This backend processing is 6 // database operations don't delay the browser. This backend processing is
7 // represented by HistoryBackend. The HistoryService's job is to dispatch to 7 // represented by HistoryBackend. The HistoryService's job is to dispatch to
8 // that thread. 8 // that thread.
9 // 9 //
10 // Main thread History thread 10 // Main thread History thread
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 #include "chrome/browser/history/web_history_service.h" 43 #include "chrome/browser/history/web_history_service.h"
44 #include "chrome/browser/history/web_history_service_factory.h" 44 #include "chrome/browser/history/web_history_service_factory.h"
45 #include "chrome/browser/profiles/profile.h" 45 #include "chrome/browser/profiles/profile.h"
46 #include "chrome/common/chrome_constants.h" 46 #include "chrome/common/chrome_constants.h"
47 #include "chrome/common/chrome_switches.h" 47 #include "chrome/common/chrome_switches.h"
48 #include "chrome/common/importer/imported_favicon_usage.h" 48 #include "chrome/common/importer/imported_favicon_usage.h"
49 #include "chrome/common/pref_names.h" 49 #include "chrome/common/pref_names.h"
50 #include "chrome/common/url_constants.h" 50 #include "chrome/common/url_constants.h"
51 #include "components/dom_distiller/core/url_constants.h" 51 #include "components/dom_distiller/core/url_constants.h"
52 #include "components/history/core/browser/history_client.h" 52 #include "components/history/core/browser/history_client.h"
53 #include "components/history/core/browser/history_service_observer.h"
54 #include "components/history/core/browser/history_types.h" 53 #include "components/history/core/browser/history_types.h"
55 #include "components/history/core/browser/in_memory_database.h" 54 #include "components/history/core/browser/in_memory_database.h"
56 #include "components/history/core/browser/keyword_search_term.h" 55 #include "components/history/core/browser/keyword_search_term.h"
57 #include "components/history/core/common/thumbnail_score.h" 56 #include "components/history/core/common/thumbnail_score.h"
58 #include "components/visitedlink/browser/visitedlink_master.h" 57 #include "components/visitedlink/browser/visitedlink_master.h"
59 #include "content/public/browser/browser_thread.h" 58 #include "content/public/browser/browser_thread.h"
60 #include "content/public/browser/download_item.h" 59 #include "content/public/browser/download_item.h"
61 #include "content/public/browser/notification_service.h" 60 #include "content/public/browser/notification_service.h"
62 #include "sync/api/sync_error_factory.h" 61 #include "sync/api/sync_error_factory.h"
63 #include "third_party/skia/include/core/SkBitmap.h" 62 #include "third_party/skia/include/core/SkBitmap.h"
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 base::Time visit_time) OVERRIDE { 172 base::Time visit_time) OVERRIDE {
174 service_task_runner_->PostTask(FROM_HERE, 173 service_task_runner_->PostTask(FROM_HERE,
175 base::Bind(&HistoryService::NotifyURLVisited, 174 base::Bind(&HistoryService::NotifyURLVisited,
176 history_service_, 175 history_service_,
177 transition, 176 transition,
178 row, 177 row,
179 redirects, 178 redirects,
180 visit_time)); 179 visit_time));
181 } 180 }
182 181
182 virtual void NotifyAddVisit(const history::BriefVisitInfo& info) OVERRIDE {
183 service_task_runner_->PostTask(
184 FROM_HERE,
185 base::Bind(&HistoryService::NotifyAddVisit, history_service_, info));
186 }
187
183 virtual void BroadcastNotifications( 188 virtual void BroadcastNotifications(
184 int type, 189 int type,
185 scoped_ptr<history::HistoryDetails> details) OVERRIDE { 190 scoped_ptr<history::HistoryDetails> details) OVERRIDE {
186 // Send the notification on the history thread. 191 // Send the notification on the history thread.
187 if (content::NotificationService::current()) { 192 if (content::NotificationService::current()) {
188 content::Details<history::HistoryDetails> det(details.get()); 193 content::Details<history::HistoryDetails> det(details.get());
189 content::NotificationService::current()->Notify( 194 content::NotificationService::current()->Notify(
190 type, content::Source<Profile>(profile_), det); 195 type, content::Source<Profile>(profile_), det);
191 } 196 }
192 // Send the notification to the history service on the main thread. 197 // Send the notification to the history service on the main thread.
193 service_task_runner_->PostTask( 198 service_task_runner_->PostTask(
194 FROM_HERE, 199 FROM_HERE,
195 base::Bind(&HistoryService::BroadcastNotificationsHelper, 200 base::Bind(&HistoryService::BroadcastNotificationsHelper,
196 history_service_, type, base::Passed(&details))); 201 history_service_, type, base::Passed(&details)));
197 } 202 }
198 203
199 virtual void DBLoaded() OVERRIDE { 204 virtual void DBLoaded() OVERRIDE {
200 service_task_runner_->PostTask( 205 service_task_runner_->PostTask(
201 FROM_HERE, 206 FROM_HERE,
202 base::Bind(&HistoryService::OnDBLoaded, history_service_)); 207 base::Bind(&HistoryService::OnDBLoaded, history_service_));
203 } 208 }
204 209
205 virtual void NotifyVisitDBObserversOnAddVisit(
206 const history::BriefVisitInfo& info) OVERRIDE {
207 service_task_runner_->PostTask(
208 FROM_HERE,
209 base::Bind(&HistoryService::NotifyVisitDBObserversOnAddVisit,
210 history_service_, info));
211 }
212
213 private: 210 private:
214 const base::WeakPtr<HistoryService> history_service_; 211 const base::WeakPtr<HistoryService> history_service_;
215 const scoped_refptr<base::SequencedTaskRunner> service_task_runner_; 212 const scoped_refptr<base::SequencedTaskRunner> service_task_runner_;
216 Profile* const profile_; 213 Profile* const profile_;
217 }; 214 };
218 215
219 // The history thread is intentionally not a BrowserThread because the 216 // The history thread is intentionally not a BrowserThread because the
220 // sync integration unit tests depend on being able to create more than one 217 // sync integration unit tests depend on being able to create more than one
221 // history thread. 218 // history thread.
222 HistoryService::HistoryService() 219 HistoryService::HistoryService()
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 keyword_id, term); 338 keyword_id, term);
342 } 339 }
343 340
344 void HistoryService::URLsNoLongerBookmarked(const std::set<GURL>& urls) { 341 void HistoryService::URLsNoLongerBookmarked(const std::set<GURL>& urls) {
345 DCHECK(thread_) << "History service being called after cleanup"; 342 DCHECK(thread_) << "History service being called after cleanup";
346 DCHECK(thread_checker_.CalledOnValidThread()); 343 DCHECK(thread_checker_.CalledOnValidThread());
347 ScheduleAndForget(PRIORITY_NORMAL, &HistoryBackend::URLsNoLongerBookmarked, 344 ScheduleAndForget(PRIORITY_NORMAL, &HistoryBackend::URLsNoLongerBookmarked,
348 urls); 345 urls);
349 } 346 }
350 347
351 void HistoryService::AddHistoryServiceObserver( 348 void HistoryService::AddObserver(Observer* observer) {
352 history::HistoryServiceObserver* observer) { 349 observers_.AddObserver(observer);
353 history_service_observers_.AddObserver(observer);
354 } 350 }
355 351
356 void HistoryService::RemoveHistoryServiceObserver( 352 void HistoryService::RemoveObserver(Observer* observer) {
357 history::HistoryServiceObserver* observer) { 353 observers_.RemoveObserver(observer);
358 history_service_observers_.RemoveObserver(observer);
359 } 354 }
360 355
361 void HistoryService::ScheduleDBTask(scoped_ptr<history::HistoryDBTask> task, 356 void HistoryService::ScheduleDBTask(scoped_ptr<history::HistoryDBTask> task,
362 base::CancelableTaskTracker* tracker) { 357 base::CancelableTaskTracker* tracker) {
363 DCHECK(thread_) << "History service being called after cleanup"; 358 DCHECK(thread_) << "History service being called after cleanup";
364 DCHECK(thread_checker_.CalledOnValidThread()); 359 DCHECK(thread_checker_.CalledOnValidThread());
365 base::CancelableTaskTracker::IsCanceledCallback is_canceled; 360 base::CancelableTaskTracker::IsCanceledCallback is_canceled;
366 tracker->NewTrackedTaskId(&is_canceled); 361 tracker->NewTrackedTaskId(&is_canceled);
367 // Use base::ThreadTaskRunnerHandler::Get() to get a message loop proxy to 362 // Use base::ThreadTaskRunnerHandler::Get() to get a message loop proxy to
368 // the current message loop so that we can forward the call to the method 363 // the current message loop so that we can forward the call to the method
(...skipping 874 matching lines...) Expand 10 before | Expand all | Expand 10 after
1243 DCHECK(thread_checker_.CalledOnValidThread()); 1238 DCHECK(thread_checker_.CalledOnValidThread());
1244 history::URLDatabase* db = InMemoryDatabase(); 1239 history::URLDatabase* db = InMemoryDatabase();
1245 return db && (db->GetRowForURL(url, url_row) != 0); 1240 return db && (db->GetRowForURL(url, url_row) != 0);
1246 } 1241 }
1247 1242
1248 void HistoryService::NotifyURLVisited(ui::PageTransition transition, 1243 void HistoryService::NotifyURLVisited(ui::PageTransition transition,
1249 const history::URLRow& row, 1244 const history::URLRow& row,
1250 const history::RedirectList& redirects, 1245 const history::RedirectList& redirects,
1251 base::Time visit_time) { 1246 base::Time visit_time) {
1252 DCHECK(thread_checker_.CalledOnValidThread()); 1247 DCHECK(thread_checker_.CalledOnValidThread());
1253 FOR_EACH_OBSERVER(history::HistoryServiceObserver, 1248 FOR_EACH_OBSERVER(HistoryService::Observer,
1254 history_service_observers_, 1249 observers_,
1255 OnURLVisited(transition, row, redirects, visit_time)); 1250 OnURLVisited(transition, row, redirects, visit_time));
1256 } 1251 }
1257 1252
1258 void HistoryService::AddVisitDatabaseObserver( 1253 void HistoryService::NotifyAddVisit(const history::BriefVisitInfo& info) {
1259 history::VisitDatabaseObserver* observer) {
1260 DCHECK(thread_checker_.CalledOnValidThread()); 1254 DCHECK(thread_checker_.CalledOnValidThread());
1261 visit_database_observers_.AddObserver(observer); 1255 FOR_EACH_OBSERVER(HistoryService::Observer, observers_, OnAddVisit(info));
1262 }
1263
1264 void HistoryService::RemoveVisitDatabaseObserver(
1265 history::VisitDatabaseObserver* observer) {
1266 DCHECK(thread_checker_.CalledOnValidThread());
1267 visit_database_observers_.RemoveObserver(observer);
1268 }
1269
1270 void HistoryService::NotifyVisitDBObserversOnAddVisit(
1271 const history::BriefVisitInfo& info) {
1272 DCHECK(thread_checker_.CalledOnValidThread());
1273 FOR_EACH_OBSERVER(history::VisitDatabaseObserver, visit_database_observers_,
1274 OnAddVisit(info));
1275 } 1256 }
1276 1257
1277 scoped_ptr<base::CallbackList<void(const std::set<GURL>&)>::Subscription> 1258 scoped_ptr<base::CallbackList<void(const std::set<GURL>&)>::Subscription>
1278 HistoryService::AddFaviconChangedCallback( 1259 HistoryService::AddFaviconChangedCallback(
1279 const HistoryService::OnFaviconChangedCallback& callback) { 1260 const HistoryService::OnFaviconChangedCallback& callback) {
1280 DCHECK(thread_checker_.CalledOnValidThread()); 1261 DCHECK(thread_checker_.CalledOnValidThread());
1281 return favicon_changed_callback_list_.Add(callback); 1262 return favicon_changed_callback_list_.Add(callback);
1282 } 1263 }
1283 1264
1284 void HistoryService::NotifyFaviconChanged( 1265 void HistoryService::NotifyFaviconChanged(
1285 const std::set<GURL>& changed_favicons) { 1266 const std::set<GURL>& changed_favicons) {
1286 DCHECK(thread_checker_.CalledOnValidThread()); 1267 DCHECK(thread_checker_.CalledOnValidThread());
1287 favicon_changed_callback_list_.Notify(changed_favicons); 1268 favicon_changed_callback_list_.Notify(changed_favicons);
1288 } 1269 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698