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() { |
} |