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

Side by Side Diff: chrome/browser/ui/webui/ntp/most_visited_handler.cc

Issue 7554008: Removal of Profile from content part 6. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Profile helper function, rebase Created 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/ui/webui/ntp/most_visited_handler.h" 5 #include "chrome/browser/ui/webui/ntp/most_visited_handler.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 }; 47 };
48 48
49 MostVisitedHandler::MostVisitedHandler() 49 MostVisitedHandler::MostVisitedHandler()
50 : got_first_most_visited_request_(false) { 50 : got_first_most_visited_request_(false) {
51 } 51 }
52 52
53 MostVisitedHandler::~MostVisitedHandler() { 53 MostVisitedHandler::~MostVisitedHandler() {
54 } 54 }
55 55
56 WebUIMessageHandler* MostVisitedHandler::Attach(WebUI* web_ui) { 56 WebUIMessageHandler* MostVisitedHandler::Attach(WebUI* web_ui) {
57 Profile* profile = web_ui->GetProfile(); 57 Profile* profile = Profile::FromWebUI(web_ui);
58 // Set up our sources for thumbnail and favicon data. 58 // Set up our sources for thumbnail and favicon data.
59 ThumbnailSource* thumbnail_src = new ThumbnailSource(profile); 59 ThumbnailSource* thumbnail_src = new ThumbnailSource(profile);
60 profile->GetChromeURLDataManager()->AddDataSource(thumbnail_src); 60 profile->GetChromeURLDataManager()->AddDataSource(thumbnail_src);
61 61
62 profile->GetChromeURLDataManager()->AddDataSource( 62 profile->GetChromeURLDataManager()->AddDataSource(
63 new FaviconSource(profile, FaviconSource::FAVICON)); 63 new FaviconSource(profile, FaviconSource::FAVICON));
64 64
65 WebUIMessageHandler* result = WebUIMessageHandler::Attach(web_ui); 65 WebUIMessageHandler* result = WebUIMessageHandler::Attach(web_ui);
66 66
67 history::TopSites* ts = profile->GetTopSites(); 67 history::TopSites* ts = profile->GetTopSites();
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 // If our initial data is already here, return it. 107 // If our initial data is already here, return it.
108 SendPagesValue(); 108 SendPagesValue();
109 got_first_most_visited_request_ = true; 109 got_first_most_visited_request_ = true;
110 } else { 110 } else {
111 StartQueryForMostVisited(); 111 StartQueryForMostVisited();
112 } 112 }
113 } 113 }
114 114
115 void MostVisitedHandler::SendPagesValue() { 115 void MostVisitedHandler::SendPagesValue() {
116 if (pages_value_.get()) { 116 if (pages_value_.get()) {
117 Profile* profile = web_ui_->GetProfile(); 117 Profile* profile = Profile::FromWebUI(web_ui_);
118 const DictionaryValue* url_blacklist = 118 const DictionaryValue* url_blacklist =
119 profile->GetPrefs()->GetDictionary(prefs::kNTPMostVisitedURLsBlacklist); 119 profile->GetPrefs()->GetDictionary(prefs::kNTPMostVisitedURLsBlacklist);
120 bool has_blacklisted_urls = !url_blacklist->empty(); 120 bool has_blacklisted_urls = !url_blacklist->empty();
121 history::TopSites* ts = profile->GetTopSites(); 121 history::TopSites* ts = profile->GetTopSites();
122 if (ts) 122 if (ts)
123 has_blacklisted_urls = ts->HasBlacklistedItems(); 123 has_blacklisted_urls = ts->HasBlacklistedItems();
124 FundamentalValue has_blacklisted_urls_value(has_blacklisted_urls); 124 FundamentalValue has_blacklisted_urls_value(has_blacklisted_urls);
125 web_ui_->CallJavascriptFunction("setMostVisitedPages", 125 web_ui_->CallJavascriptFunction("setMostVisitedPages",
126 *(pages_value_.get()), 126 *(pages_value_.get()),
127 has_blacklisted_urls_value); 127 has_blacklisted_urls_value);
128 pages_value_.reset(); 128 pages_value_.reset();
129 } 129 }
130 } 130 }
131 131
132 void MostVisitedHandler::StartQueryForMostVisited() { 132 void MostVisitedHandler::StartQueryForMostVisited() {
133 history::TopSites* ts = web_ui_->GetProfile()->GetTopSites(); 133 history::TopSites* ts = Profile::FromWebUI(web_ui_)->GetTopSites();
134 if (ts) { 134 if (ts) {
135 ts->GetMostVisitedURLs( 135 ts->GetMostVisitedURLs(
136 &topsites_consumer_, 136 &topsites_consumer_,
137 NewCallback(this, &MostVisitedHandler::OnMostVisitedURLsAvailable)); 137 NewCallback(this, &MostVisitedHandler::OnMostVisitedURLsAvailable));
138 } 138 }
139 } 139 }
140 140
141 void MostVisitedHandler::HandleBlacklistURL(const ListValue* args) { 141 void MostVisitedHandler::HandleBlacklistURL(const ListValue* args) {
142 std::string url = UTF16ToUTF8(ExtractStringValue(args)); 142 std::string url = UTF16ToUTF8(ExtractStringValue(args));
143 BlacklistURL(GURL(url)); 143 BlacklistURL(GURL(url));
144 } 144 }
145 145
146 void MostVisitedHandler::HandleRemoveURLsFromBlacklist(const ListValue* args) { 146 void MostVisitedHandler::HandleRemoveURLsFromBlacklist(const ListValue* args) {
147 DCHECK(args->GetSize() != 0); 147 DCHECK(args->GetSize() != 0);
148 148
149 for (ListValue::const_iterator iter = args->begin(); 149 for (ListValue::const_iterator iter = args->begin();
150 iter != args->end(); ++iter) { 150 iter != args->end(); ++iter) {
151 std::string url; 151 std::string url;
152 bool r = (*iter)->GetAsString(&url); 152 bool r = (*iter)->GetAsString(&url);
153 if (!r) { 153 if (!r) {
154 NOTREACHED(); 154 NOTREACHED();
155 return; 155 return;
156 } 156 }
157 UserMetrics::RecordAction(UserMetricsAction("MostVisited_UrlRemoved")); 157 UserMetrics::RecordAction(UserMetricsAction("MostVisited_UrlRemoved"));
158 history::TopSites* ts = web_ui_->GetProfile()->GetTopSites(); 158 history::TopSites* ts = Profile::FromWebUI(web_ui_)->GetTopSites();
159 if (ts) 159 if (ts)
160 ts->RemoveBlacklistedURL(GURL(url)); 160 ts->RemoveBlacklistedURL(GURL(url));
161 } 161 }
162 } 162 }
163 163
164 void MostVisitedHandler::HandleClearBlacklist(const ListValue* args) { 164 void MostVisitedHandler::HandleClearBlacklist(const ListValue* args) {
165 UserMetrics::RecordAction(UserMetricsAction("MostVisited_BlacklistCleared")); 165 UserMetrics::RecordAction(UserMetricsAction("MostVisited_BlacklistCleared"));
166 166
167 history::TopSites* ts = web_ui_->GetProfile()->GetTopSites(); 167 history::TopSites* ts = Profile::FromWebUI(web_ui_)->GetTopSites();
168 if (ts) 168 if (ts)
169 ts->ClearBlacklistedURLs(); 169 ts->ClearBlacklistedURLs();
170 } 170 }
171 171
172 void MostVisitedHandler::HandleAddPinnedURL(const ListValue* args) { 172 void MostVisitedHandler::HandleAddPinnedURL(const ListValue* args) {
173 DCHECK_EQ(5U, args->GetSize()) << "Wrong number of params to addPinnedURL"; 173 DCHECK_EQ(5U, args->GetSize()) << "Wrong number of params to addPinnedURL";
174 MostVisitedPage mvp; 174 MostVisitedPage mvp;
175 std::string tmp_string; 175 std::string tmp_string;
176 string16 tmp_string16; 176 string16 tmp_string16;
177 int index; 177 int index;
(...skipping 19 matching lines...) Expand all
197 mvp.thumbnail_url = GURL(tmp_string); 197 mvp.thumbnail_url = GURL(tmp_string);
198 198
199 r = args->GetString(4, &tmp_string); 199 r = args->GetString(4, &tmp_string);
200 DCHECK(r) << "Missing index in addPinnedURL from the NTP Most Visited."; 200 DCHECK(r) << "Missing index in addPinnedURL from the NTP Most Visited.";
201 base::StringToInt(tmp_string, &index); 201 base::StringToInt(tmp_string, &index);
202 202
203 AddPinnedURL(mvp, index); 203 AddPinnedURL(mvp, index);
204 } 204 }
205 205
206 void MostVisitedHandler::AddPinnedURL(const MostVisitedPage& page, int index) { 206 void MostVisitedHandler::AddPinnedURL(const MostVisitedPage& page, int index) {
207 history::TopSites* ts = web_ui_->GetProfile()->GetTopSites(); 207 history::TopSites* ts = Profile::FromWebUI(web_ui_)->GetTopSites();
208 if (ts) 208 if (ts)
209 ts->AddPinnedURL(page.url, index); 209 ts->AddPinnedURL(page.url, index);
210 UserMetrics::RecordAction(UserMetricsAction("MostVisited_UrlPinned")); 210 UserMetrics::RecordAction(UserMetricsAction("MostVisited_UrlPinned"));
211 } 211 }
212 212
213 void MostVisitedHandler::HandleRemovePinnedURL(const ListValue* args) { 213 void MostVisitedHandler::HandleRemovePinnedURL(const ListValue* args) {
214 std::string url = UTF16ToUTF8(ExtractStringValue(args)); 214 std::string url = UTF16ToUTF8(ExtractStringValue(args));
215 RemovePinnedURL(GURL(url)); 215 RemovePinnedURL(GURL(url));
216 } 216 }
217 217
218 void MostVisitedHandler::RemovePinnedURL(const GURL& url) { 218 void MostVisitedHandler::RemovePinnedURL(const GURL& url) {
219 history::TopSites* ts = web_ui_->GetProfile()->GetTopSites(); 219 history::TopSites* ts = Profile::FromWebUI(web_ui_)->GetTopSites();
220 if (ts) 220 if (ts)
221 ts->RemovePinnedURL(url); 221 ts->RemovePinnedURL(url);
222 UserMetrics::RecordAction(UserMetricsAction("MostVisited_UrlUnpinned")); 222 UserMetrics::RecordAction(UserMetricsAction("MostVisited_UrlUnpinned"));
223 } 223 }
224 224
225 bool MostVisitedHandler::GetPinnedURLAtIndex(int index, 225 bool MostVisitedHandler::GetPinnedURLAtIndex(int index,
226 MostVisitedPage* page) { 226 MostVisitedPage* page) {
227 // This iterates over all the pinned URLs. It might seem like it is worth 227 // This iterates over all the pinned URLs. It might seem like it is worth
228 // having a map from the index to the item but the number of items is limited 228 // having a map from the index to the item but the number of items is limited
229 // to the number of items the most visited section is showing on the NTP so 229 // to the number of items the most visited section is showing on the NTP so
230 // this will be fast enough for now. 230 // this will be fast enough for now.
231 PrefService* prefs = web_ui_->GetProfile()->GetPrefs(); 231 PrefService* prefs = Profile::FromWebUI(web_ui_)->GetPrefs();
232 const DictionaryValue* pinned_urls = 232 const DictionaryValue* pinned_urls =
233 prefs->GetDictionary(prefs::kNTPMostVisitedPinnedURLs); 233 prefs->GetDictionary(prefs::kNTPMostVisitedPinnedURLs);
234 for (DictionaryValue::key_iterator it = pinned_urls->begin_keys(); 234 for (DictionaryValue::key_iterator it = pinned_urls->begin_keys();
235 it != pinned_urls->end_keys(); ++it) { 235 it != pinned_urls->end_keys(); ++it) {
236 Value* value; 236 Value* value;
237 if (pinned_urls->GetWithoutPathExpansion(*it, &value)) { 237 if (pinned_urls->GetWithoutPathExpansion(*it, &value)) {
238 if (!value->IsType(DictionaryValue::TYPE_DICTIONARY)) { 238 if (!value->IsType(DictionaryValue::TYPE_DICTIONARY)) {
239 // Moved on to TopSites and now going back. 239 // Moved on to TopSites and now going back.
240 DictionaryPrefUpdate update(prefs, prefs::kNTPMostVisitedPinnedURLs); 240 DictionaryPrefUpdate update(prefs, prefs::kNTPMostVisitedPinnedURLs);
241 update.Get()->Clear(); 241 update.Get()->Clear();
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 page_value->SetString("thumbnailUrl", 290 page_value->SetString("thumbnailUrl",
291 "chrome://theme/IDR_NEWTAB_CHROME_WELCOME_PAGE_THUMBNAIL"); 291 "chrome://theme/IDR_NEWTAB_CHROME_WELCOME_PAGE_THUMBNAIL");
292 page_value->SetString("faviconDominantColor", "rgb(0, 147, 60)"); 292 page_value->SetString("faviconDominantColor", "rgb(0, 147, 60)");
293 } else if (url.url.spec() == 293 } else if (url.url.spec() ==
294 l10n_util::GetStringUTF8(IDS_WEBSTORE_URL)) { 294 l10n_util::GetStringUTF8(IDS_WEBSTORE_URL)) {
295 page_value->SetString("thumbnailUrl", 295 page_value->SetString("thumbnailUrl",
296 "chrome://theme/IDR_NEWTAB_WEBSTORE_THUMBNAIL"); 296 "chrome://theme/IDR_NEWTAB_WEBSTORE_THUMBNAIL");
297 page_value->SetString("faviconDominantColor", "rgb(63, 132, 197)"); 297 page_value->SetString("faviconDominantColor", "rgb(63, 132, 197)");
298 } 298 }
299 299
300 history::TopSites* ts = web_ui_->GetProfile()->GetTopSites(); 300 history::TopSites* ts = Profile::FromWebUI(web_ui_)->GetTopSites();
301 if (ts && ts->IsURLPinned(url.url)) 301 if (ts && ts->IsURLPinned(url.url))
302 page_value->SetBoolean("pinned", true); 302 page_value->SetBoolean("pinned", true);
303 pages_value_->Append(page_value); 303 pages_value_->Append(page_value);
304 } 304 }
305 } 305 }
306 306
307 void MostVisitedHandler::OnMostVisitedURLsAvailable( 307 void MostVisitedHandler::OnMostVisitedURLsAvailable(
308 const history::MostVisitedURLList& data) { 308 const history::MostVisitedURLList& data) {
309 SetPagesValueFromTopSites(data); 309 SetPagesValueFromTopSites(data);
310 if (got_first_most_visited_request_) { 310 if (got_first_most_visited_request_) {
311 SendPagesValue(); 311 SendPagesValue();
312 } 312 }
313 } 313 }
314 314
315 void MostVisitedHandler::Observe(int type, 315 void MostVisitedHandler::Observe(int type,
316 const NotificationSource& source, 316 const NotificationSource& source,
317 const NotificationDetails& details) { 317 const NotificationDetails& details) {
318 DCHECK_EQ(type, chrome::NOTIFICATION_TOP_SITES_CHANGED); 318 DCHECK_EQ(type, chrome::NOTIFICATION_TOP_SITES_CHANGED);
319 319
320 // Most visited urls changed, query again. 320 // Most visited urls changed, query again.
321 StartQueryForMostVisited(); 321 StartQueryForMostVisited();
322 } 322 }
323 323
324 void MostVisitedHandler::BlacklistURL(const GURL& url) { 324 void MostVisitedHandler::BlacklistURL(const GURL& url) {
325 history::TopSites* ts = web_ui_->GetProfile()->GetTopSites(); 325 history::TopSites* ts = Profile::FromWebUI(web_ui_)->GetTopSites();
326 if (ts) 326 if (ts)
327 ts->AddBlacklistedURL(url); 327 ts->AddBlacklistedURL(url);
328 UserMetrics::RecordAction(UserMetricsAction("MostVisited_UrlBlacklisted")); 328 UserMetrics::RecordAction(UserMetricsAction("MostVisited_UrlBlacklisted"));
329 } 329 }
330 330
331 std::string MostVisitedHandler::GetDictionaryKeyForURL(const std::string& url) { 331 std::string MostVisitedHandler::GetDictionaryKeyForURL(const std::string& url) {
332 return base::MD5String(url); 332 return base::MD5String(url);
333 } 333 }
334 334
335 // static 335 // static
336 void MostVisitedHandler::RegisterUserPrefs(PrefService* prefs) { 336 void MostVisitedHandler::RegisterUserPrefs(PrefService* prefs) {
337 prefs->RegisterDictionaryPref(prefs::kNTPMostVisitedURLsBlacklist, 337 prefs->RegisterDictionaryPref(prefs::kNTPMostVisitedURLsBlacklist,
338 PrefService::UNSYNCABLE_PREF); 338 PrefService::UNSYNCABLE_PREF);
339 prefs->RegisterDictionaryPref(prefs::kNTPMostVisitedPinnedURLs, 339 prefs->RegisterDictionaryPref(prefs::kNTPMostVisitedPinnedURLs,
340 PrefService::UNSYNCABLE_PREF); 340 PrefService::UNSYNCABLE_PREF);
341 } 341 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/ntp/foreign_session_handler.cc ('k') | chrome/browser/ui/webui/ntp/new_tab_page_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698