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