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

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: use copies rather than refs + fix nits. 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/favicon_util.h" 7 #include "chrome/browser/favicon/favicon_util.h"
8 #include "chrome/browser/favicon/select_favicon_frames.h" 8 #include "chrome/browser/favicon/select_favicon_frames.h"
9 #include "chrome/browser/history/history.h" 9 #include "chrome/browser/history/history.h"
10 #include "chrome/browser/history/history_backend.h" 10 #include "chrome/browser/history/history_backend.h"
11 #include "chrome/browser/history/history_service_factory.h" 11 #include "chrome/browser/history/history_service_factory.h"
12 #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" 12 #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h"
13 #include "chrome/common/url_constants.h" 13 #include "chrome/common/url_constants.h"
14 #include "third_party/skia/include/core/SkBitmap.h" 14 #include "third_party/skia/include/core/SkBitmap.h"
15 #include "ui/gfx/codec/png_codec.h" 15 #include "ui/gfx/codec/png_codec.h"
16 #include "ui/gfx/image/image_skia.h" 16 #include "ui/gfx/image/image_skia.h"
17 17
18 FaviconService::FaviconService(HistoryService* history_service) 18 FaviconService::FaviconService(HistoryService* history_service)
19 : history_service_(history_service) { 19 : history_service_(history_service) {
20 } 20 }
21 21
22 FaviconService::Handle FaviconService::GetFaviconImage( 22 FaviconService::Handle FaviconService::GetFaviconImage(
23 const GURL& icon_url, 23 const FaviconParams& params,
24 history::IconType icon_type,
25 int desired_size_in_dip,
26 CancelableRequestConsumerBase* consumer,
27 const FaviconImageCallback& callback) { 24 const FaviconImageCallback& callback) {
28 GetFaviconRequest* request = new GetFaviconRequest(base::Bind( 25 GetFaviconRequest* request = new GetFaviconRequest(base::Bind(
29 &FaviconService::GetFaviconImageCallback, 26 &FaviconService::GetFaviconImageCallback,
30 base::Unretained(this), 27 base::Unretained(this),
31 desired_size_in_dip, 28 params.desired_size_in_dip,
32 callback)); 29 callback));
33 AddRequest(request, consumer); 30 AddRequest(request, params.consumer);
34 // TODO(pkotwicz): Pass in desired size and scale factors. 31 // TODO(pkotwicz): Pass in desired size and scale factors.
35 if (history_service_) 32 if (history_service_)
36 history_service_->GetFavicon(request, icon_url, icon_type); 33 history_service_->GetFavicon(request, params.icon_url, params.icon_type);
37 else 34 else
38 ForwardEmptyResultAsync(request); 35 ForwardEmptyResultAsync(request);
39 return request->handle(); 36 return request->handle();
40 } 37 }
41 38
42 FaviconService::Handle FaviconService::GetRawFavicon( 39 FaviconService::Handle FaviconService::GetRawFavicon(
43 const GURL& icon_url, 40 const FaviconParams& params,
44 history::IconType icon_type,
45 int desired_size_in_dip,
46 ui::ScaleFactor desired_scale_factor, 41 ui::ScaleFactor desired_scale_factor,
47 CancelableRequestConsumerBase* consumer,
48 const FaviconRawCallback& callback) { 42 const FaviconRawCallback& callback) {
49 GetFaviconRequest* request = new GetFaviconRequest(base::Bind( 43 GetFaviconRequest* request = new GetFaviconRequest(base::Bind(
50 &FaviconService::GetRawFaviconCallback, 44 &FaviconService::GetRawFaviconCallback,
51 base::Unretained(this), 45 base::Unretained(this),
52 desired_size_in_dip, 46 params.desired_size_in_dip,
53 desired_scale_factor, 47 desired_scale_factor,
54 callback)); 48 callback));
55 AddRequest(request, consumer); 49 AddRequest(request, params.consumer);
56 // TODO(pkotwicz): Pass in desired size and scale factor. 50 // TODO(pkotwicz): Pass in desired size and scale factor.
57 if (history_service_) 51 if (history_service_)
58 history_service_->GetFavicon(request, icon_url, icon_type); 52 history_service_->GetFavicon(request, params.icon_url, params.icon_type);
59 else 53 else
60 ForwardEmptyResultAsync(request); 54 ForwardEmptyResultAsync(request);
61 return request->handle(); 55 return request->handle();
62 } 56 }
63 57
64 FaviconService::Handle FaviconService::GetFavicon( 58 FaviconService::Handle FaviconService::GetFavicon(
65 const GURL& icon_url, 59 const FaviconParams& params,
66 history::IconType icon_type,
67 int desired_size_in_dip,
68 const std::vector<ui::ScaleFactor>& desired_scale_factors, 60 const std::vector<ui::ScaleFactor>& desired_scale_factors,
69 CancelableRequestConsumerBase* consumer,
70 const FaviconResultsCallback& callback) { 61 const FaviconResultsCallback& callback) {
71 GetFaviconRequest* request = new GetFaviconRequest(callback); 62 GetFaviconRequest* request = new GetFaviconRequest(callback);
72 AddRequest(request, consumer); 63 AddRequest(request, params.consumer);
73 if (history_service_) 64 if (history_service_)
74 history_service_->GetFavicon(request, icon_url, icon_type); 65 history_service_->GetFavicon(request, params.icon_url, params.icon_type);
75 else 66 else
76 ForwardEmptyResultAsync(request); 67 ForwardEmptyResultAsync(request);
77 return request->handle(); 68 return request->handle();
78 } 69 }
79 70
80 FaviconService::Handle FaviconService::UpdateFaviconMappingAndFetch( 71 FaviconService::Handle FaviconService::UpdateFaviconMappingAndFetch(
81 const GURL& page_url, 72 const GURL& page_url,
82 const GURL& icon_url, 73 const GURL& icon_url,
83 history::IconType icon_type, 74 history::IconType icon_type,
84 CancelableRequestConsumerBase* consumer, 75 CancelableRequestConsumerBase* consumer,
85 const FaviconResultsCallback& callback) { 76 const FaviconResultsCallback& callback) {
86 GetFaviconRequest* request = new GetFaviconRequest(callback); 77 GetFaviconRequest* request = new GetFaviconRequest(callback);
87 AddRequest(request, consumer); 78 AddRequest(request, consumer);
88 if (history_service_) 79 if (history_service_)
89 history_service_->UpdateFaviconMappingAndFetch(request, page_url, 80 history_service_->UpdateFaviconMappingAndFetch(request, page_url,
90 icon_url, icon_type); 81 icon_url, icon_type);
91 else 82 else
92 ForwardEmptyResultAsync(request); 83 ForwardEmptyResultAsync(request);
93 return request->handle(); 84 return request->handle();
94 } 85 }
95 86
96 FaviconService::Handle FaviconService::GetFaviconImageForURL( 87 FaviconService::Handle FaviconService::GetFaviconImageForURL(
97 Profile* profile, 88 const FaviconForURLParams& params,
98 const GURL& page_url,
99 int icon_types,
100 int desired_size_in_dip,
101 CancelableRequestConsumerBase* consumer,
102 const FaviconImageCallback& callback) { 89 const FaviconImageCallback& callback) {
103 GetFaviconRequest* request = new GetFaviconRequest(base::Bind( 90 GetFaviconRequest* request = new GetFaviconRequest(base::Bind(
104 &FaviconService::GetFaviconImageCallback, 91 &FaviconService::GetFaviconImageCallback,
105 base::Unretained(this), 92 base::Unretained(this),
106 desired_size_in_dip, 93 params.desired_size_in_dip,
107 callback)); 94 callback));
108 95
109 std::vector<ui::ScaleFactor> desired_scale_factors = 96 std::vector<ui::ScaleFactor> desired_scale_factors =
110 ui::GetSupportedScaleFactors(); 97 ui::GetSupportedScaleFactors();
111 return GetFaviconForURLImpl(profile, page_url, icon_types, 98 return GetFaviconForURLImpl(params, desired_scale_factors, request);
112 desired_size_in_dip, desired_scale_factors, consumer, request);
113 } 99 }
114 100
115 FaviconService::Handle FaviconService::GetRawFaviconForURL( 101 FaviconService::Handle FaviconService::GetRawFaviconForURL(
116 Profile* profile, 102 const FaviconForURLParams& params,
117 const GURL& page_url,
118 int icon_types,
119 int desired_size_in_dip,
120 ui::ScaleFactor desired_scale_factor, 103 ui::ScaleFactor desired_scale_factor,
121 CancelableRequestConsumerBase* consumer,
122 const FaviconRawCallback& callback) { 104 const FaviconRawCallback& callback) {
123 GetFaviconRequest* request = new GetFaviconRequest(base::Bind( 105 GetFaviconRequest* request = new GetFaviconRequest(base::Bind(
124 &FaviconService::GetRawFaviconCallback, 106 &FaviconService::GetRawFaviconCallback,
125 base::Unretained(this), 107 base::Unretained(this),
126 desired_size_in_dip, 108 params.desired_size_in_dip,
127 desired_scale_factor, 109 desired_scale_factor,
128 callback)); 110 callback));
129 111
130 std::vector<ui::ScaleFactor> desired_scale_factors; 112 std::vector<ui::ScaleFactor> desired_scale_factors;
131 desired_scale_factors.push_back(desired_scale_factor); 113 desired_scale_factors.push_back(desired_scale_factor);
132 return GetFaviconForURLImpl(profile, page_url, icon_types, 114 return GetFaviconForURLImpl(params, desired_scale_factors, request);
133 desired_size_in_dip, desired_scale_factors, consumer, request);
134 } 115 }
135 116
136 FaviconService::Handle FaviconService::GetFaviconForURL( 117 FaviconService::Handle FaviconService::GetFaviconForURL(
137 Profile* profile, 118 const FaviconForURLParams& params,
138 const GURL& page_url,
139 int icon_types,
140 int desired_size_in_dip,
141 const std::vector<ui::ScaleFactor>& desired_scale_factors, 119 const std::vector<ui::ScaleFactor>& desired_scale_factors,
142 CancelableRequestConsumerBase* consumer,
143 const FaviconResultsCallback& callback) { 120 const FaviconResultsCallback& callback) {
144 GetFaviconRequest* request = new GetFaviconRequest(callback); 121 GetFaviconRequest* request = new GetFaviconRequest(callback);
145 return GetFaviconForURLImpl(profile, page_url, icon_types, 122 return GetFaviconForURLImpl(params, desired_scale_factors, request);
146 desired_size_in_dip, desired_scale_factors, consumer, request);
147 } 123 }
148 124
149 FaviconService::Handle FaviconService::GetRawFaviconForID( 125 FaviconService::Handle FaviconService::GetRawFaviconForID(
150 history::FaviconID favicon_id, 126 history::FaviconID favicon_id,
151 int desired_size_in_dip, 127 int desired_size_in_dip,
152 ui::ScaleFactor desired_scale_factor, 128 ui::ScaleFactor desired_scale_factor,
153 CancelableRequestConsumerBase* consumer, 129 CancelableRequestConsumerBase* consumer,
154 const FaviconRawCallback& callback) { 130 const FaviconRawCallback& callback) {
155 GetFaviconRequest* request = new GetFaviconRequest(base::Bind( 131 GetFaviconRequest* request = new GetFaviconRequest(base::Bind(
156 &FaviconService::GetRawFaviconCallback, 132 &FaviconService::GetRawFaviconCallback,
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 const std::vector<unsigned char>& image_data, 169 const std::vector<unsigned char>& image_data,
194 history::IconType icon_type) { 170 history::IconType icon_type) {
195 if (history_service_) 171 if (history_service_)
196 history_service_->SetFavicon(page_url, icon_url, image_data, icon_type); 172 history_service_->SetFavicon(page_url, icon_url, image_data, icon_type);
197 } 173 }
198 174
199 FaviconService::~FaviconService() { 175 FaviconService::~FaviconService() {
200 } 176 }
201 177
202 FaviconService::Handle FaviconService::GetFaviconForURLImpl( 178 FaviconService::Handle FaviconService::GetFaviconForURLImpl(
203 Profile* profile, 179 const FaviconForURLParams& params,
204 const GURL& page_url,
205 int icon_types,
206 int desired_size_in_dip,
207 const std::vector<ui::ScaleFactor>& desired_scale_factors, 180 const std::vector<ui::ScaleFactor>& desired_scale_factors,
208 CancelableRequestConsumerBase* consumer,
209 GetFaviconRequest* request) { 181 GetFaviconRequest* request) {
210 AddRequest(request, consumer); 182 AddRequest(request, params.consumer);
211 FaviconService::Handle handle = request->handle(); 183 FaviconService::Handle handle = request->handle();
212 if (page_url.SchemeIs(chrome::kChromeUIScheme) || 184 if (params.page_url.SchemeIs(chrome::kChromeUIScheme) ||
213 page_url.SchemeIs(chrome::kExtensionScheme)) { 185 params.page_url.SchemeIs(chrome::kExtensionScheme)) {
214 // TODO(pkotwicz): Pass in desired size and desired scale factors. 186 // TODO(pkotwicz): Pass in desired size and desired scale factors.
215 ChromeWebUIControllerFactory::GetInstance()->GetFaviconForURL( 187 ChromeWebUIControllerFactory::GetInstance()->GetFaviconForURL(
216 profile, request, page_url); 188 params.profile, request, params.page_url);
217 } else { 189 } else {
218 // TODO(pkotwicz): Pass in desired size and desired scale factors. 190 // TODO(pkotwicz): Pass in desired size and desired scale factors.
219 if (history_service_) 191 if (history_service_) {
220 history_service_->GetFaviconForURL(request, page_url, icon_types); 192 history_service_->GetFaviconForURL(request,
221 else 193 params.page_url,
194 params.icon_types);
195 } else {
222 ForwardEmptyResultAsync(request); 196 ForwardEmptyResultAsync(request);
197 }
223 } 198 }
224 return handle; 199 return handle;
225 } 200 }
226 201
227 void FaviconService::GetFaviconImageCallback( 202 void FaviconService::GetFaviconImageCallback(
228 int desired_size_in_dip, 203 int desired_size_in_dip,
229 FaviconImageCallback callback, 204 FaviconImageCallback callback,
230 Handle handle, 205 Handle handle,
231 std::vector<history::FaviconBitmapResult> favicon_bitmap_results, 206 std::vector<history::FaviconBitmapResult> favicon_bitmap_results,
232 history::IconURLSizesMap icon_url_sizes_map) { 207 history::IconURLSizesMap icon_url_sizes_map) {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 bitmap_result.bitmap_data = base::RefCountedBytes::TakeVector( 268 bitmap_result.bitmap_data = base::RefCountedBytes::TakeVector(
294 &resized_bitmap_data); 269 &resized_bitmap_data);
295 callback.Run(handle, bitmap_result); 270 callback.Run(handle, bitmap_result);
296 } 271 }
297 272
298 void FaviconService::ForwardEmptyResultAsync(GetFaviconRequest* request) { 273 void FaviconService::ForwardEmptyResultAsync(GetFaviconRequest* request) {
299 request->ForwardResultAsync(request->handle(), 274 request->ForwardResultAsync(request->handle(),
300 std::vector<history::FaviconBitmapResult>(), 275 std::vector<history::FaviconBitmapResult>(),
301 history::IconURLSizesMap()); 276 history::IconURLSizesMap());
302 } 277 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698