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

Side by Side Diff: chrome/browser/favicon/favicon_service.cc

Issue 10918065: Introduce structures to reduce the number of arguments in the FaviconService methods. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: mac build fix. Created 8 years, 3 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) 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/favicon/favicon_service.h" 5 #include "chrome/browser/favicon/favicon_service.h"
6 6
7 #include "chrome/browser/favicon/select_favicon_frames.h" 7 #include "chrome/browser/favicon/select_favicon_frames.h"
8 #include "chrome/browser/history/history.h" 8 #include "chrome/browser/history/history.h"
9 #include "chrome/browser/history/history_backend.h" 9 #include "chrome/browser/history/history_backend.h"
10 #include "chrome/browser/history/history_service_factory.h" 10 #include "chrome/browser/history/history_service_factory.h"
11 #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" 11 #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h"
12 #include "chrome/common/url_constants.h" 12 #include "chrome/common/url_constants.h"
13 #include "third_party/skia/include/core/SkBitmap.h" 13 #include "third_party/skia/include/core/SkBitmap.h"
14 #include "ui/gfx/codec/png_codec.h" 14 #include "ui/gfx/codec/png_codec.h"
15 #include "ui/gfx/image/image_skia.h" 15 #include "ui/gfx/image/image_skia.h"
16 16
17 FaviconService::FaviconService(HistoryService* history_service) 17 FaviconService::FaviconService(HistoryService* history_service)
18 : history_service_(history_service) { 18 : history_service_(history_service) {
19 } 19 }
20 20
21 FaviconService::Handle FaviconService::GetFaviconImage( 21 FaviconService::Handle FaviconService::GetFaviconImage(
22 const GURL& icon_url, 22 const FaviconParams& params,
23 history::IconType icon_type,
24 int desired_size_in_dip,
25 CancelableRequestConsumerBase* consumer,
26 const FaviconImageCallback& callback) { 23 const FaviconImageCallback& callback) {
27 GetFaviconRequest* request = new GetFaviconRequest(base::Bind( 24 GetFaviconRequest* request = new GetFaviconRequest(base::Bind(
28 &FaviconService::GetFaviconImageCallback, 25 &FaviconService::GetFaviconImageCallback,
29 base::Unretained(this), 26 base::Unretained(this),
30 desired_size_in_dip, 27 params.desired_size_in_dip,
31 callback)); 28 callback));
32 AddRequest(request, consumer); 29 AddRequest(request, params.consumer);
33 // TODO(pkotwicz): Pass in desired size and scale factors. 30 // TODO(pkotwicz): Pass in desired size and scale factors.
34 if (history_service_) 31 if (history_service_)
35 history_service_->GetFavicon(request, icon_url, icon_type); 32 history_service_->GetFavicon(request, params.icon_url, params.icon_type);
36 else 33 else
37 ForwardEmptyResultAsync(request); 34 ForwardEmptyResultAsync(request);
38 return request->handle(); 35 return request->handle();
39 } 36 }
40 37
41 FaviconService::Handle FaviconService::GetRawFavicon( 38 FaviconService::Handle FaviconService::GetRawFavicon(
42 const GURL& icon_url, 39 const FaviconParams& params,
43 history::IconType icon_type,
44 int desired_size_in_dip,
45 ui::ScaleFactor desired_scale_factor, 40 ui::ScaleFactor desired_scale_factor,
46 CancelableRequestConsumerBase* consumer,
47 const FaviconRawCallback& callback) { 41 const FaviconRawCallback& callback) {
48 GetFaviconRequest* request = new GetFaviconRequest(base::Bind( 42 GetFaviconRequest* request = new GetFaviconRequest(base::Bind(
49 &FaviconService::GetRawFaviconCallback, 43 &FaviconService::GetRawFaviconCallback,
50 base::Unretained(this), 44 base::Unretained(this),
51 desired_size_in_dip, 45 params.desired_size_in_dip,
52 desired_scale_factor, 46 desired_scale_factor,
53 callback)); 47 callback));
54 AddRequest(request, consumer); 48 AddRequest(request, params.consumer);
55 // TODO(pkotwicz): Pass in desired size and scale factor. 49 // TODO(pkotwicz): Pass in desired size and scale factor.
56 if (history_service_) 50 if (history_service_)
57 history_service_->GetFavicon(request, icon_url, icon_type); 51 history_service_->GetFavicon(request, params.icon_url, params.icon_type);
58 else 52 else
59 ForwardEmptyResultAsync(request); 53 ForwardEmptyResultAsync(request);
60 return request->handle(); 54 return request->handle();
61 } 55 }
62 56
63 FaviconService::Handle FaviconService::GetFavicon( 57 FaviconService::Handle FaviconService::GetFavicon(
64 const GURL& icon_url, 58 const FaviconParams& params,
65 history::IconType icon_type,
66 int desired_size_in_dip,
67 const std::vector<ui::ScaleFactor>& desired_scale_factors, 59 const std::vector<ui::ScaleFactor>& desired_scale_factors,
68 CancelableRequestConsumerBase* consumer,
69 const FaviconResultsCallback& callback) { 60 const FaviconResultsCallback& callback) {
70 GetFaviconRequest* request = new GetFaviconRequest(callback); 61 GetFaviconRequest* request = new GetFaviconRequest(callback);
71 AddRequest(request, consumer); 62 AddRequest(request, params.consumer);
72 if (history_service_) 63 if (history_service_)
73 history_service_->GetFavicon(request, icon_url, icon_type); 64 history_service_->GetFavicon(request, params.icon_url, params.icon_type);
74 else 65 else
75 ForwardEmptyResultAsync(request); 66 ForwardEmptyResultAsync(request);
76 return request->handle(); 67 return request->handle();
77 } 68 }
78 69
79 FaviconService::Handle FaviconService::UpdateFaviconMappingAndFetch( 70 FaviconService::Handle FaviconService::UpdateFaviconMappingAndFetch(
80 const GURL& page_url, 71 const GURL& page_url,
81 const GURL& icon_url, 72 const GURL& icon_url,
82 history::IconType icon_type, 73 history::IconType icon_type,
83 CancelableRequestConsumerBase* consumer, 74 CancelableRequestConsumerBase* consumer,
84 const FaviconResultsCallback& callback) { 75 const FaviconResultsCallback& callback) {
85 GetFaviconRequest* request = new GetFaviconRequest(callback); 76 GetFaviconRequest* request = new GetFaviconRequest(callback);
86 AddRequest(request, consumer); 77 AddRequest(request, consumer);
87 if (history_service_) 78 if (history_service_)
88 history_service_->UpdateFaviconMappingAndFetch(request, page_url, 79 history_service_->UpdateFaviconMappingAndFetch(request, page_url,
89 icon_url, icon_type); 80 icon_url, icon_type);
90 else 81 else
91 ForwardEmptyResultAsync(request); 82 ForwardEmptyResultAsync(request);
92 return request->handle(); 83 return request->handle();
93 } 84 }
94 85
95 FaviconService::Handle FaviconService::GetFaviconImageForURL( 86 FaviconService::Handle FaviconService::GetFaviconImageForURL(
96 Profile* profile, 87 const FaviconForURLParams& params,
97 const GURL& page_url,
98 int icon_types,
99 int desired_size_in_dip,
100 CancelableRequestConsumerBase* consumer,
101 const FaviconImageCallback& callback) { 88 const FaviconImageCallback& callback) {
102 GetFaviconRequest* request = new GetFaviconRequest(base::Bind( 89 GetFaviconRequest* request = new GetFaviconRequest(base::Bind(
103 &FaviconService::GetFaviconImageCallback, 90 &FaviconService::GetFaviconImageCallback,
104 base::Unretained(this), 91 base::Unretained(this),
105 desired_size_in_dip, 92 params.desired_size_in_dip,
106 callback)); 93 callback));
107 94
108 std::vector<ui::ScaleFactor> desired_scale_factors = 95 std::vector<ui::ScaleFactor> desired_scale_factors =
109 ui::GetSupportedScaleFactors(); 96 ui::GetSupportedScaleFactors();
110 return GetFaviconForURLImpl(profile, page_url, icon_types, 97 return GetFaviconForURLImpl(params, desired_scale_factors, request);
111 desired_size_in_dip, desired_scale_factors, consumer, request);
112 } 98 }
113 99
114 FaviconService::Handle FaviconService::GetRawFaviconForURL( 100 FaviconService::Handle FaviconService::GetRawFaviconForURL(
115 Profile* profile, 101 const FaviconForURLParams& params,
116 const GURL& page_url,
117 int icon_types,
118 int desired_size_in_dip,
119 ui::ScaleFactor desired_scale_factor, 102 ui::ScaleFactor desired_scale_factor,
120 CancelableRequestConsumerBase* consumer,
121 const FaviconRawCallback& callback) { 103 const FaviconRawCallback& callback) {
122 GetFaviconRequest* request = new GetFaviconRequest(base::Bind( 104 GetFaviconRequest* request = new GetFaviconRequest(base::Bind(
123 &FaviconService::GetRawFaviconCallback, 105 &FaviconService::GetRawFaviconCallback,
124 base::Unretained(this), 106 base::Unretained(this),
125 desired_size_in_dip, 107 params.desired_size_in_dip,
126 desired_scale_factor, 108 desired_scale_factor,
127 callback)); 109 callback));
128 110
129 std::vector<ui::ScaleFactor> desired_scale_factors; 111 std::vector<ui::ScaleFactor> desired_scale_factors;
130 desired_scale_factors.push_back(desired_scale_factor); 112 desired_scale_factors.push_back(desired_scale_factor);
131 return GetFaviconForURLImpl(profile, page_url, icon_types, 113 return GetFaviconForURLImpl(params, desired_scale_factors, request);
132 desired_size_in_dip, desired_scale_factors, consumer, request);
133 } 114 }
134 115
135 FaviconService::Handle FaviconService::GetFaviconForURL( 116 FaviconService::Handle FaviconService::GetFaviconForURL(
136 Profile* profile, 117 const FaviconForURLParams& params,
137 const GURL& page_url,
138 int icon_types,
139 int desired_size_in_dip,
140 const std::vector<ui::ScaleFactor>& desired_scale_factors, 118 const std::vector<ui::ScaleFactor>& desired_scale_factors,
141 CancelableRequestConsumerBase* consumer,
142 const FaviconResultsCallback& callback) { 119 const FaviconResultsCallback& callback) {
143 GetFaviconRequest* request = new GetFaviconRequest(callback); 120 GetFaviconRequest* request = new GetFaviconRequest(callback);
144 return GetFaviconForURLImpl(profile, page_url, icon_types, 121 return GetFaviconForURLImpl(params, desired_scale_factors, request);
145 desired_size_in_dip, desired_scale_factors, consumer, request);
146 } 122 }
147 123
148 FaviconService::Handle FaviconService::GetRawFaviconForID( 124 FaviconService::Handle FaviconService::GetRawFaviconForID(
149 history::FaviconID favicon_id, 125 history::FaviconID favicon_id,
150 int desired_size_in_dip, 126 int desired_size_in_dip,
151 ui::ScaleFactor desired_scale_factor, 127 ui::ScaleFactor desired_scale_factor,
152 CancelableRequestConsumerBase* consumer, 128 CancelableRequestConsumerBase* consumer,
153 const FaviconRawCallback& callback) { 129 const FaviconRawCallback& callback) {
154 GetFaviconRequest* request = new GetFaviconRequest(base::Bind( 130 GetFaviconRequest* request = new GetFaviconRequest(base::Bind(
155 &FaviconService::GetRawFaviconCallback, 131 &FaviconService::GetRawFaviconCallback,
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 const std::vector<unsigned char>& image_data, 168 const std::vector<unsigned char>& image_data,
193 history::IconType icon_type) { 169 history::IconType icon_type) {
194 if (history_service_) 170 if (history_service_)
195 history_service_->SetFavicon(page_url, icon_url, image_data, icon_type); 171 history_service_->SetFavicon(page_url, icon_url, image_data, icon_type);
196 } 172 }
197 173
198 FaviconService::~FaviconService() { 174 FaviconService::~FaviconService() {
199 } 175 }
200 176
201 FaviconService::Handle FaviconService::GetFaviconForURLImpl( 177 FaviconService::Handle FaviconService::GetFaviconForURLImpl(
202 Profile* profile, 178 const FaviconForURLParams& params,
203 const GURL& page_url,
204 int icon_types,
205 int desired_size_in_dip,
206 const std::vector<ui::ScaleFactor>& desired_scale_factors, 179 const std::vector<ui::ScaleFactor>& desired_scale_factors,
207 CancelableRequestConsumerBase* consumer,
208 GetFaviconRequest* request) { 180 GetFaviconRequest* request) {
209 AddRequest(request, consumer); 181 AddRequest(request, params.consumer);
210 FaviconService::Handle handle = request->handle(); 182 FaviconService::Handle handle = request->handle();
211 if (page_url.SchemeIs(chrome::kChromeUIScheme) || 183 if (params.page_url.SchemeIs(chrome::kChromeUIScheme) ||
212 page_url.SchemeIs(chrome::kExtensionScheme)) { 184 params.page_url.SchemeIs(chrome::kExtensionScheme)) {
213 // TODO(pkotwicz): Pass in desired size and desired scale factors. 185 // TODO(pkotwicz): Pass in desired size and desired scale factors.
214 ChromeWebUIControllerFactory::GetInstance()->GetFaviconForURL( 186 ChromeWebUIControllerFactory::GetInstance()->GetFaviconForURL(
215 profile, request, page_url); 187 params.profile, request, params.page_url);
216 } else { 188 } else {
217 // TODO(pkotwicz): Pass in desired size and desired scale factors. 189 // TODO(pkotwicz): Pass in desired size and desired scale factors.
218 if (history_service_) 190 if (history_service_)
awong 2012/09/05 17:52:44 nit: use braces for the if/else since one of the b
Leandro GraciĆ” Gil 2012/09/05 18:28:37 Done.
219 history_service_->GetFaviconForURL(request, page_url, icon_types); 191 history_service_->GetFaviconForURL(request,
192 params.page_url,
193 params.icon_types);
220 else 194 else
221 ForwardEmptyResultAsync(request); 195 ForwardEmptyResultAsync(request);
222 } 196 }
223 return handle; 197 return handle;
224 } 198 }
225 199
226 void FaviconService::GetFaviconImageCallback( 200 void FaviconService::GetFaviconImageCallback(
227 int desired_size_in_dip, 201 int desired_size_in_dip,
228 FaviconImageCallback callback, 202 FaviconImageCallback callback,
229 Handle handle, 203 Handle handle,
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 bitmap_result.bitmap_data = base::RefCountedBytes::TakeVector( 277 bitmap_result.bitmap_data = base::RefCountedBytes::TakeVector(
304 &resized_bitmap_data); 278 &resized_bitmap_data);
305 callback.Run(handle, bitmap_result); 279 callback.Run(handle, bitmap_result);
306 } 280 }
307 281
308 void FaviconService::ForwardEmptyResultAsync(GetFaviconRequest* request) { 282 void FaviconService::ForwardEmptyResultAsync(GetFaviconRequest* request) {
309 request->ForwardResultAsync(request->handle(), 283 request->ForwardResultAsync(request->handle(),
310 std::vector<history::FaviconBitmapResult>(), 284 std::vector<history::FaviconBitmapResult>(),
311 history::IconURLSizesMap()); 285 history::IconURLSizesMap());
312 } 286 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698