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

Unified Diff: chrome/browser/bookmarks/chrome_bookmark_client.cc

Issue 484213002: Refactor HistoryService to not send NOTIFICATION_FAVICON_CHANGED (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix android compilation Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/bookmarks/chrome_bookmark_client.cc
diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser/bookmarks/chrome_bookmark_client.cc
index 6ed8d2fa789d9e84a4642b7d9664eaf79c3c711d..c6a22a69fc0e1f2d52cacaa720f67c90eee60ee6 100644
--- a/chrome/browser/bookmarks/chrome_bookmark_client.cc
+++ b/chrome/browser/bookmarks/chrome_bookmark_client.cc
@@ -8,8 +8,6 @@
#include "base/bind_helpers.h"
#include "base/logging.h"
#include "base/values.h"
-#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/favicon/favicon_changed_details.h"
#include "chrome/browser/favicon/favicon_service.h"
#include "chrome/browser/favicon/favicon_service_factory.h"
#include "chrome/browser/history/history_service.h"
@@ -52,6 +50,12 @@ void RunCallbackWithImage(
callback.Run(result);
}
+void OnFaviconChanged(BookmarkModel* model,
+ HistoryService* history_service,
+ const std::set<GURL>& changed_favicons) {
+ model->OnFaviconChanged(changed_favicons);
+}
+
} // namespace
ChromeBookmarkClient::ChromeBookmarkClient(Profile* profile)
@@ -73,16 +77,17 @@ void ChromeBookmarkClient::Init(BookmarkModel* model) {
base::Bind(&ChromeBookmarkClient::GetManagedBookmarksDomain,
base::Unretained(this))));
- // Listen for changes to favicons so that we can update the favicon of the
- // node appropriately.
- registrar_.Add(this,
- chrome::NOTIFICATION_FAVICON_CHANGED,
- content::Source<Profile>(profile_));
+ HistoryService* history_service =
+ HistoryServiceFactory::GetForProfile(profile_, Profile::EXPLICIT_ACCESS);
+ if (history_service) {
+ favicon_changed_subscription_ = history_service->AddFaviconChangedCallback(
+ base::Bind(&OnFaviconChanged, base::Unretained(model_)));
+ }
}
void ChromeBookmarkClient::Shutdown() {
if (model_) {
- registrar_.RemoveAll();
+ favicon_changed_subscription_.reset();
model_->RemoveObserver(this);
model_ = NULL;
@@ -209,23 +214,6 @@ bool ChromeBookmarkClient::CanBeEditedByUser(const BookmarkNode* node) {
return !IsDescendantOfManagedNode(node);
}
-void ChromeBookmarkClient::Observe(
- int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) {
- switch (type) {
- case chrome::NOTIFICATION_FAVICON_CHANGED: {
- content::Details<FaviconChangedDetails> favicon_details(details);
- model_->OnFaviconChanged(favicon_details->urls);
- break;
- }
-
- default:
- NOTREACHED();
- break;
- }
-}
-
void ChromeBookmarkClient::BookmarkModelChanged() {
}

Powered by Google App Engine
This is Rietveld 408576698