OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/extensions/api/top_sites/top_sites_api.h" | 5 #include "chrome/browser/extensions/api/top_sites/top_sites_api.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/values.h" | 8 #include "base/values.h" |
9 #include "chrome/browser/history/top_sites.h" | 9 #include "chrome/browser/history/top_sites.h" |
10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
11 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h" | 11 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h" |
12 | 12 |
13 namespace extensions { | 13 namespace extensions { |
14 | 14 |
15 GetTopSitesFunction::GetTopSitesFunction() | 15 TopSitesGetFunction::TopSitesGetFunction() |
16 : ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) {} | 16 : ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) {} |
17 | 17 |
18 GetTopSitesFunction::~GetTopSitesFunction() {} | 18 TopSitesGetFunction::~TopSitesGetFunction() {} |
19 | 19 |
20 bool GetTopSitesFunction::RunImpl() { | 20 bool TopSitesGetFunction::RunImpl() { |
21 history::TopSites* ts = profile()->GetTopSites(); | 21 history::TopSites* ts = profile()->GetTopSites(); |
22 if (!ts) | 22 if (!ts) |
23 return false; | 23 return false; |
24 | 24 |
25 ts->GetMostVisitedURLs( | 25 ts->GetMostVisitedURLs( |
26 base::Bind(&GetTopSitesFunction::OnMostVisitedURLsAvailable, | 26 base::Bind(&TopSitesGetFunction::OnMostVisitedURLsAvailable, |
27 weak_ptr_factory_.GetWeakPtr())); | 27 weak_ptr_factory_.GetWeakPtr())); |
28 return true; | 28 return true; |
29 } | 29 } |
30 | 30 |
31 void GetTopSitesFunction::OnMostVisitedURLsAvailable( | 31 void TopSitesGetFunction::OnMostVisitedURLsAvailable( |
32 const history::MostVisitedURLList& data) { | 32 const history::MostVisitedURLList& data) { |
33 scoped_ptr<base::ListValue> pages_value(new ListValue); | 33 scoped_ptr<base::ListValue> pages_value(new ListValue); |
34 for (size_t i = 0; i < data.size(); i++) { | 34 for (size_t i = 0; i < data.size(); i++) { |
35 const history::MostVisitedURL& url = data[i]; | 35 const history::MostVisitedURL& url = data[i]; |
36 if (!url.url.is_empty()) { | 36 if (!url.url.is_empty()) { |
37 DictionaryValue* page_value = new DictionaryValue(); | 37 DictionaryValue* page_value = new DictionaryValue(); |
38 page_value->SetString("url", url.url.spec()); | 38 page_value->SetString("url", url.url.spec()); |
39 if (url.title.empty()) | 39 if (url.title.empty()) |
40 page_value->SetString("title", url.url.spec()); | 40 page_value->SetString("title", url.url.spec()); |
41 else | 41 else |
42 page_value->SetString("title", url.title); | 42 page_value->SetString("title", url.title); |
43 pages_value->Append(page_value); | 43 pages_value->Append(page_value); |
44 } | 44 } |
45 } | 45 } |
46 | 46 |
47 SetResult(pages_value.release()); | 47 SetResult(pages_value.release()); |
48 SendResponse(true); | 48 SendResponse(true); |
49 } | 49 } |
50 | 50 |
51 } // namespace extensions | 51 } // namespace extensions |
OLD | NEW |