| 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 b57fb06f3c37ae0563662a19d708b6557b4a880a..27845427a8d475faada11d190cbf5ef611e2deab 100644
|
| --- a/chrome/browser/bookmarks/chrome_bookmark_client.cc
|
| +++ b/chrome/browser/bookmarks/chrome_bookmark_client.cc
|
| @@ -31,10 +31,18 @@ void NotifyHistoryOfRemovedURLs(Profile* profile,
|
|
|
| } // namespace
|
|
|
| -ChromeBookmarkClient::ChromeBookmarkClient(Profile* profile, bool index_urls)
|
| - : profile_(profile),
|
| - model_(new BookmarkModel(this, index_urls)) {
|
| +ChromeBookmarkClient::ChromeBookmarkClient(Profile* profile)
|
| + : profile_(profile), model_(NULL) {
|
| +}
|
| +
|
| +ChromeBookmarkClient::~ChromeBookmarkClient() {
|
| +}
|
| +
|
| +void ChromeBookmarkClient::Init(BookmarkModel* model) {
|
| + DCHECK(!model_ && model);
|
| + model_ = model;
|
| model_->AddObserver(this);
|
| +
|
| // Listen for changes to favicons so that we can update the favicon of the
|
| // node appropriately.
|
| registrar_.Add(this,
|
| @@ -42,10 +50,13 @@ ChromeBookmarkClient::ChromeBookmarkClient(Profile* profile, bool index_urls)
|
| content::Source<Profile>(profile_));
|
| }
|
|
|
| -ChromeBookmarkClient::~ChromeBookmarkClient() {
|
| - model_->RemoveObserver(this);
|
| +void ChromeBookmarkClient::Shutdown() {
|
| + if (model_) {
|
| + registrar_.RemoveAll();
|
|
|
| - registrar_.RemoveAll();
|
| + model_->RemoveObserver(this);
|
| + model_ = NULL;
|
| + }
|
| }
|
|
|
| bool ChromeBookmarkClient::PreferTouchIcon() {
|
| @@ -131,10 +142,6 @@ void ChromeBookmarkClient::Observe(
|
| }
|
| }
|
|
|
| -void ChromeBookmarkClient::Shutdown() {
|
| - model_->Shutdown();
|
| -}
|
| -
|
| void ChromeBookmarkClient::BookmarkModelChanged() {
|
| }
|
|
|
|
|