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

Side by Side Diff: chrome/browser/bookmarks/chrome_bookmark_client.cc

Issue 306293006: Introduce ChromeBookmarkClientFactory (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@364865
Patch Set: Fix #includes Created 6 years, 6 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "chrome/browser/bookmarks/chrome_bookmark_client.h" 5 #include "chrome/browser/bookmarks/chrome_bookmark_client.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chrome/browser/chrome_notification_types.h" 8 #include "chrome/browser/chrome_notification_types.h"
9 #include "chrome/browser/favicon/favicon_changed_details.h" 9 #include "chrome/browser/favicon/favicon_changed_details.h"
10 #include "chrome/browser/favicon/favicon_service.h" 10 #include "chrome/browser/favicon/favicon_service.h"
(...skipping 13 matching lines...) Expand all
24 void NotifyHistoryOfRemovedURLs(Profile* profile, 24 void NotifyHistoryOfRemovedURLs(Profile* profile,
25 const std::set<GURL>& removed_urls) { 25 const std::set<GURL>& removed_urls) {
26 HistoryService* history_service = 26 HistoryService* history_service =
27 HistoryServiceFactory::GetForProfile(profile, Profile::EXPLICIT_ACCESS); 27 HistoryServiceFactory::GetForProfile(profile, Profile::EXPLICIT_ACCESS);
28 if (history_service) 28 if (history_service)
29 history_service->URLsNoLongerBookmarked(removed_urls); 29 history_service->URLsNoLongerBookmarked(removed_urls);
30 } 30 }
31 31
32 } // namespace 32 } // namespace
33 33
34 ChromeBookmarkClient::ChromeBookmarkClient(Profile* profile, bool index_urls) 34 ChromeBookmarkClient::ChromeBookmarkClient(Profile* profile)
35 : profile_(profile), 35 : profile_(profile), model_(NULL) {
36 model_(new BookmarkModel(this, index_urls)) { 36 }
37
38 ChromeBookmarkClient::~ChromeBookmarkClient() {
39 }
40
41 void ChromeBookmarkClient::Init(BookmarkModel* model) {
42 DCHECK(!model_ && model);
43 model_ = model;
37 model_->AddObserver(this); 44 model_->AddObserver(this);
45
38 // Listen for changes to favicons so that we can update the favicon of the 46 // Listen for changes to favicons so that we can update the favicon of the
39 // node appropriately. 47 // node appropriately.
40 registrar_.Add(this, 48 registrar_.Add(this,
41 chrome::NOTIFICATION_FAVICON_CHANGED, 49 chrome::NOTIFICATION_FAVICON_CHANGED,
42 content::Source<Profile>(profile_)); 50 content::Source<Profile>(profile_));
43 } 51 }
44 52
45 ChromeBookmarkClient::~ChromeBookmarkClient() { 53 void ChromeBookmarkClient::Shutdown() {
46 model_->RemoveObserver(this); 54 if (model_) {
55 registrar_.RemoveAll();
47 56
48 registrar_.RemoveAll(); 57 model_->RemoveObserver(this);
58 model_ = NULL;
59 }
blundell 2014/06/05 09:48:30 You should call BookmarkClient::Shutdown() here.
sdefresne 2014/06/10 13:12:21 Done.
49 } 60 }
50 61
51 bool ChromeBookmarkClient::PreferTouchIcon() { 62 bool ChromeBookmarkClient::PreferTouchIcon() {
52 #if !defined(OS_IOS) 63 #if !defined(OS_IOS)
53 return false; 64 return false;
54 #else 65 #else
55 return true; 66 return true;
56 #endif 67 #endif
57 } 68 }
58 69
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 model_->OnFaviconChanged(favicon_details->urls); 135 model_->OnFaviconChanged(favicon_details->urls);
125 break; 136 break;
126 } 137 }
127 138
128 default: 139 default:
129 NOTREACHED(); 140 NOTREACHED();
130 break; 141 break;
131 } 142 }
132 } 143 }
133 144
134 void ChromeBookmarkClient::Shutdown() {
135 model_->Shutdown();
136 }
137
138 void ChromeBookmarkClient::BookmarkModelChanged() { 145 void ChromeBookmarkClient::BookmarkModelChanged() {
139 } 146 }
140 147
141 void ChromeBookmarkClient::BookmarkNodeRemoved( 148 void ChromeBookmarkClient::BookmarkNodeRemoved(
142 BookmarkModel* model, 149 BookmarkModel* model,
143 const BookmarkNode* parent, 150 const BookmarkNode* parent,
144 int old_index, 151 int old_index,
145 const BookmarkNode* node, 152 const BookmarkNode* node,
146 const std::set<GURL>& removed_urls) { 153 const std::set<GURL>& removed_urls) {
147 NotifyHistoryOfRemovedURLs(profile_, removed_urls); 154 NotifyHistoryOfRemovedURLs(profile_, removed_urls);
148 } 155 }
149 156
150 void ChromeBookmarkClient::BookmarkAllNodesRemoved( 157 void ChromeBookmarkClient::BookmarkAllNodesRemoved(
151 BookmarkModel* model, 158 BookmarkModel* model,
152 const std::set<GURL>& removed_urls) { 159 const std::set<GURL>& removed_urls) {
153 NotifyHistoryOfRemovedURLs(profile_, removed_urls); 160 NotifyHistoryOfRemovedURLs(profile_, removed_urls);
154 } 161 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698