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

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

Issue 7327007: Moving notification types which are chrome specific to a new header file chrome_notification_type... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 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.h ('k') | chrome/browser/history/history_backend.h » ('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 // 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 26 matching lines...) Expand all
37 #include "chrome/browser/history/history_notifications.h" 37 #include "chrome/browser/history/history_notifications.h"
38 #include "chrome/browser/history/history_types.h" 38 #include "chrome/browser/history/history_types.h"
39 #include "chrome/browser/history/in_memory_database.h" 39 #include "chrome/browser/history/in_memory_database.h"
40 #include "chrome/browser/history/in_memory_history_backend.h" 40 #include "chrome/browser/history/in_memory_history_backend.h"
41 #include "chrome/browser/history/top_sites.h" 41 #include "chrome/browser/history/top_sites.h"
42 #include "chrome/browser/prefs/pref_service.h" 42 #include "chrome/browser/prefs/pref_service.h"
43 #include "chrome/browser/profiles/profile.h" 43 #include "chrome/browser/profiles/profile.h"
44 #include "chrome/browser/ui/profile_error_dialog.h" 44 #include "chrome/browser/ui/profile_error_dialog.h"
45 #include "chrome/browser/visitedlink/visitedlink_master.h" 45 #include "chrome/browser/visitedlink/visitedlink_master.h"
46 #include "chrome/common/chrome_constants.h" 46 #include "chrome/common/chrome_constants.h"
47 #include "chrome/common/chrome_notification_types.h"
47 #include "chrome/common/pref_names.h" 48 #include "chrome/common/pref_names.h"
48 #include "chrome/common/thumbnail_score.h" 49 #include "chrome/common/thumbnail_score.h"
49 #include "chrome/common/url_constants.h" 50 #include "chrome/common/url_constants.h"
50 #include "content/browser/browser_thread.h" 51 #include "content/browser/browser_thread.h"
51 #include "content/common/notification_service.h" 52 #include "content/common/notification_service.h"
52 #include "grit/chromium_strings.h" 53 #include "grit/chromium_strings.h"
53 #include "grit/generated_resources.h" 54 #include "grit/generated_resources.h"
54 #include "third_party/skia/include/core/SkBitmap.h" 55 #include "third_party/skia/include/core/SkBitmap.h"
55 56
56 using base::Time; 57 using base::Time;
(...skipping 23 matching lines...) Expand all
80 } 81 }
81 82
82 virtual void SetInMemoryBackend( 83 virtual void SetInMemoryBackend(
83 history::InMemoryHistoryBackend* backend) OVERRIDE { 84 history::InMemoryHistoryBackend* backend) OVERRIDE {
84 // Send the backend to the history service on the main thread. 85 // Send the backend to the history service on the main thread.
85 message_loop_->PostTask(FROM_HERE, NewRunnableMethod(history_service_.get(), 86 message_loop_->PostTask(FROM_HERE, NewRunnableMethod(history_service_.get(),
86 &HistoryService::SetInMemoryBackend, backend)); 87 &HistoryService::SetInMemoryBackend, backend));
87 } 88 }
88 89
89 virtual void BroadcastNotifications( 90 virtual void BroadcastNotifications(
90 NotificationType type, 91 int type,
91 history::HistoryDetails* details) OVERRIDE { 92 history::HistoryDetails* details) OVERRIDE {
92 // Send the notification on the history thread. 93 // Send the notification on the history thread.
93 if (NotificationService::current()) { 94 if (NotificationService::current()) {
94 Details<history::HistoryDetails> det(details); 95 Details<history::HistoryDetails> det(details);
95 NotificationService::current()->Notify(type, 96 NotificationService::current()->Notify(type,
96 NotificationService::AllSources(), 97 NotificationService::AllSources(),
97 det); 98 det);
98 } 99 }
99 // Send the notification to the history service on the main thread. 100 // Send the notification to the history service on the main thread.
100 message_loop_->PostTask(FROM_HERE, NewRunnableMethod(history_service_.get(), 101 message_loop_->PostTask(FROM_HERE, NewRunnableMethod(history_service_.get(),
(...skipping 28 matching lines...) Expand all
129 } 130 }
130 131
131 HistoryService::HistoryService(Profile* profile) 132 HistoryService::HistoryService(Profile* profile)
132 : thread_(new base::Thread(kHistoryThreadName)), 133 : thread_(new base::Thread(kHistoryThreadName)),
133 profile_(profile), 134 profile_(profile),
134 backend_loaded_(false), 135 backend_loaded_(false),
135 bookmark_service_(NULL), 136 bookmark_service_(NULL),
136 no_db_(false), 137 no_db_(false),
137 needs_top_sites_migration_(false) { 138 needs_top_sites_migration_(false) {
138 DCHECK(profile_); 139 DCHECK(profile_);
139 registrar_.Add(this, NotificationType::HISTORY_URLS_DELETED, 140 registrar_.Add(this, chrome::NOTIFICATION_HISTORY_URLS_DELETED,
140 Source<Profile>(profile_)); 141 Source<Profile>(profile_));
141 registrar_.Add(this, NotificationType::TEMPLATE_URL_REMOVED, 142 registrar_.Add(this, chrome::NOTIFICATION_TEMPLATE_URL_REMOVED,
142 Source<Profile>(profile_)); 143 Source<Profile>(profile_));
143 } 144 }
144 145
145 HistoryService::~HistoryService() { 146 HistoryService::~HistoryService() {
146 // Shutdown the backend. This does nothing if Cleanup was already invoked. 147 // Shutdown the backend. This does nothing if Cleanup was already invoked.
147 Cleanup(); 148 Cleanup();
148 } 149 }
149 150
150 bool HistoryService::BackendLoaded() { 151 bool HistoryService::BackendLoaded() {
151 // NOTE: We start the backend loading even though it completes asynchronously 152 // NOTE: We start the backend loading even though it completes asynchronously
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after
611 int result_count, 612 int result_count,
612 int days_back, 613 int days_back,
613 CancelableRequestConsumerBase* consumer, 614 CancelableRequestConsumerBase* consumer,
614 QueryMostVisitedURLsCallback* callback) { 615 QueryMostVisitedURLsCallback* callback) {
615 return Schedule(PRIORITY_NORMAL, &HistoryBackend::QueryMostVisitedURLs, 616 return Schedule(PRIORITY_NORMAL, &HistoryBackend::QueryMostVisitedURLs,
616 consumer, 617 consumer,
617 new history::QueryMostVisitedURLsRequest(callback), 618 new history::QueryMostVisitedURLsRequest(callback),
618 result_count, days_back); 619 result_count, days_back);
619 } 620 }
620 621
621 void HistoryService::Observe(NotificationType type, 622 void HistoryService::Observe(int type,
622 const NotificationSource& source, 623 const NotificationSource& source,
623 const NotificationDetails& details) { 624 const NotificationDetails& details) {
624 if (!thread_) 625 if (!thread_)
625 return; 626 return;
626 627
627 switch (type.value) { 628 switch (type) {
628 case NotificationType::HISTORY_URLS_DELETED: { 629 case chrome::NOTIFICATION_HISTORY_URLS_DELETED: {
629 // Update the visited link system for deleted URLs. We will update the 630 // Update the visited link system for deleted URLs. We will update the
630 // visited link system for added URLs as soon as we get the add 631 // visited link system for added URLs as soon as we get the add
631 // notification (we don't have to wait for the backend, which allows us to 632 // notification (we don't have to wait for the backend, which allows us to
632 // be faster to update the state). 633 // be faster to update the state).
633 // 634 //
634 // For deleted URLs, we don't typically know what will be deleted since 635 // For deleted URLs, we don't typically know what will be deleted since
635 // delete notifications are by time. We would also like to be more 636 // delete notifications are by time. We would also like to be more
636 // respectful of privacy and never tell the user something is gone when it 637 // respectful of privacy and never tell the user something is gone when it
637 // isn't. Therefore, we update the delete URLs after the fact. 638 // isn't. Therefore, we update the delete URLs after the fact.
638 if (!profile_) 639 if (!profile_)
639 return; // No profile, probably unit testing. 640 return; // No profile, probably unit testing.
640 Details<history::URLsDeletedDetails> deleted_details(details); 641 Details<history::URLsDeletedDetails> deleted_details(details);
641 VisitedLinkMaster* visited_links = profile_->GetVisitedLinkMaster(); 642 VisitedLinkMaster* visited_links = profile_->GetVisitedLinkMaster();
642 if (!visited_links) 643 if (!visited_links)
643 return; // Nobody to update. 644 return; // Nobody to update.
644 if (deleted_details->all_history) 645 if (deleted_details->all_history)
645 visited_links->DeleteAllURLs(); 646 visited_links->DeleteAllURLs();
646 else // Delete individual ones. 647 else // Delete individual ones.
647 visited_links->DeleteURLs(deleted_details->urls); 648 visited_links->DeleteURLs(deleted_details->urls);
648 break; 649 break;
649 } 650 }
650 651
651 case NotificationType::TEMPLATE_URL_REMOVED: 652 case chrome::NOTIFICATION_TEMPLATE_URL_REMOVED:
652 DeleteAllSearchTermsForKeyword(*(Details<TemplateURLID>(details).ptr())); 653 DeleteAllSearchTermsForKeyword(*(Details<TemplateURLID>(details).ptr()));
653 break; 654 break;
654 655
655 default: 656 default:
656 NOTREACHED(); 657 NOTREACHED();
657 } 658 }
658 } 659 }
659 660
660 bool HistoryService::Init(const FilePath& history_dir, 661 bool HistoryService::Init(const FilePath& history_dir,
661 BookmarkService* bookmark_service, 662 BookmarkService* bookmark_service,
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
735 CancelableRequestConsumerBase* consumer, 736 CancelableRequestConsumerBase* consumer,
736 ExpireHistoryCallback* callback) { 737 ExpireHistoryCallback* callback) {
737 738
738 // We will update the visited links when we observe the delete notifications. 739 // We will update the visited links when we observe the delete notifications.
739 Schedule(PRIORITY_UI, &HistoryBackend::ExpireHistoryBetween, consumer, 740 Schedule(PRIORITY_UI, &HistoryBackend::ExpireHistoryBetween, consumer,
740 new history::ExpireHistoryRequest(callback), 741 new history::ExpireHistoryRequest(callback),
741 restrict_urls, begin_time, end_time); 742 restrict_urls, begin_time, end_time);
742 } 743 }
743 744
744 void HistoryService::BroadcastNotifications( 745 void HistoryService::BroadcastNotifications(
745 NotificationType type, 746 int type,
746 history::HistoryDetails* details_deleted) { 747 history::HistoryDetails* details_deleted) {
747 // We take ownership of the passed-in pointer and delete it. It was made for 748 // We take ownership of the passed-in pointer and delete it. It was made for
748 // us on another thread, so the caller doesn't know when we will handle it. 749 // us on another thread, so the caller doesn't know when we will handle it.
749 scoped_ptr<history::HistoryDetails> details(details_deleted); 750 scoped_ptr<history::HistoryDetails> details(details_deleted);
750 // TODO(evanm): this is currently necessitated by generate_profile, which 751 // TODO(evanm): this is currently necessitated by generate_profile, which
751 // runs without a browser process. generate_profile should really create 752 // runs without a browser process. generate_profile should really create
752 // a browser process, at which point this check can then be nuked. 753 // a browser process, at which point this check can then be nuked.
753 if (!g_browser_process) 754 if (!g_browser_process)
754 return; 755 return;
755 756
(...skipping 26 matching lines...) Expand all
782 std::string languages; 783 std::string languages;
783 if (profile_) { 784 if (profile_) {
784 PrefService* prefs = profile_->GetPrefs(); 785 PrefService* prefs = profile_->GetPrefs();
785 languages = prefs->GetString(prefs::kAcceptLanguages); 786 languages = prefs->GetString(prefs::kAcceptLanguages);
786 } 787 }
787 ScheduleAndForget(PRIORITY_UI, &HistoryBackend::Init, languages, no_db_); 788 ScheduleAndForget(PRIORITY_UI, &HistoryBackend::Init, languages, no_db_);
788 } 789 }
789 790
790 void HistoryService::OnDBLoaded() { 791 void HistoryService::OnDBLoaded() {
791 backend_loaded_ = true; 792 backend_loaded_ = true;
792 NotificationService::current()->Notify(NotificationType::HISTORY_LOADED, 793 NotificationService::current()->Notify(chrome::NOTIFICATION_HISTORY_LOADED,
793 Source<Profile>(profile_), 794 Source<Profile>(profile_),
794 Details<HistoryService>(this)); 795 Details<HistoryService>(this));
795 if (thread_ && profile_) { 796 if (thread_ && profile_) {
796 // We don't want to force creation of TopSites. 797 // We don't want to force creation of TopSites.
797 history::TopSites* ts = profile_->GetTopSitesWithoutCreating(); 798 history::TopSites* ts = profile_->GetTopSitesWithoutCreating();
798 if (ts) 799 if (ts)
799 ts->HistoryLoaded(); 800 ts->HistoryLoaded();
800 } 801 }
801 } 802 }
802 803
803 void HistoryService::StartTopSitesMigration() { 804 void HistoryService::StartTopSitesMigration() {
804 needs_top_sites_migration_ = true; 805 needs_top_sites_migration_ = true;
805 if (thread_ && profile_) { 806 if (thread_ && profile_) {
806 // We don't want to force creation of TopSites. 807 // We don't want to force creation of TopSites.
807 history::TopSites* ts = profile_->GetTopSitesWithoutCreating(); 808 history::TopSites* ts = profile_->GetTopSitesWithoutCreating();
808 if (ts) 809 if (ts)
809 ts->MigrateFromHistory(); 810 ts->MigrateFromHistory();
810 } 811 }
811 } 812 }
812 813
813 void HistoryService::OnTopSitesReady() { 814 void HistoryService::OnTopSitesReady() {
814 ScheduleAndForget(PRIORITY_NORMAL, 815 ScheduleAndForget(PRIORITY_NORMAL,
815 &HistoryBackend::MigrateThumbnailsDatabase); 816 &HistoryBackend::MigrateThumbnailsDatabase);
816 } 817 }
OLDNEW
« no previous file with comments | « chrome/browser/history/history.h ('k') | chrome/browser/history/history_backend.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698