OLD | NEW |
---|---|
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 "components/enhanced_bookmarks/bookmark_image_service.h" | 5 #include "components/enhanced_bookmarks/bookmark_image_service.h" |
6 | 6 |
7 #include "base/single_thread_task_runner.h" | 7 #include "base/single_thread_task_runner.h" |
8 #include "base/task_runner_util.h" | 8 #include "base/task_runner_util.h" |
9 #include "base/thread_task_runner_handle.h" | 9 #include "base/thread_task_runner_handle.h" |
10 #include "base/threading/sequenced_worker_pool.h" | 10 #include "base/threading/sequenced_worker_pool.h" |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
183 RetrieveImageFromStore(page_url, | 183 RetrieveImageFromStore(page_url, |
184 base::Bind(&BookmarkImageService::FetchCallback, | 184 base::Bind(&BookmarkImageService::FetchCallback, |
185 base::Unretained(this), | 185 base::Unretained(this), |
186 page_url, | 186 page_url, |
187 callback)); | 187 callback)); |
188 } | 188 } |
189 } | 189 } |
190 | 190 |
191 void BookmarkImageService::ProcessNewImage(const GURL& page_url, | 191 void BookmarkImageService::ProcessNewImage(const GURL& page_url, |
192 bool update_bookmarks, | 192 bool update_bookmarks, |
193 const gfx::Image& image, | 193 const GURL& image_url, |
194 const GURL& image_url) { | 194 const gfx::Image& image) { |
195 DCHECK(CalledOnValidThread()); | 195 DCHECK(CalledOnValidThread()); |
196 PostTaskToStoreImage(image, image_url, page_url); | 196 PostTaskToStoreImage(image, image_url, page_url); |
197 if (update_bookmarks && image_url.is_valid()) { | 197 if (update_bookmarks && image_url.is_valid()) { |
198 const BookmarkNode* bookmark = | 198 const BookmarkNode* bookmark = |
199 enhanced_bookmark_model_->bookmark_model() | 199 enhanced_bookmark_model_->bookmark_model() |
200 ->GetMostRecentlyAddedUserNodeForURL(page_url); | 200 ->GetMostRecentlyAddedUserNodeForURL(page_url); |
201 if (bookmark) { | 201 if (bookmark) { |
202 const gfx::Size& size = image.Size(); | 202 const gfx::Size& size = image.Size(); |
203 bool result = enhanced_bookmark_model_->SetOriginalImage( | 203 bool result = enhanced_bookmark_model_->SetOriginalImage( |
204 bookmark, image_url, size.width(), size.height()); | 204 bookmark, image_url, size.width(), size.height()); |
205 DCHECK(result); | 205 DCHECK(result); |
206 } | 206 } |
207 } | 207 } |
208 } | 208 } |
209 | 209 |
210 bool BookmarkImageService::IsPageUrlInProgress(const GURL& page_url) { | 210 bool BookmarkImageService::IsPageUrlInProgress(const GURL& page_url) { |
211 DCHECK(CalledOnValidThread()); | 211 DCHECK(CalledOnValidThread()); |
212 return in_progress_page_urls_.find(page_url) != in_progress_page_urls_.end(); | 212 return in_progress_page_urls_.find(page_url) != in_progress_page_urls_.end(); |
213 } | 213 } |
214 | 214 |
215 ImageRecord BookmarkImageService::StoreImage(const gfx::Image& image, | 215 ImageRecord BookmarkImageService::ResizeAndStoreImage(const gfx::Image& image, |
216 const GURL& image_url, | 216 const GURL& image_url, |
217 const GURL& page_url) { | 217 const GURL& page_url) { |
Kibeom Kim (inactive)
2015/02/17 21:32:59
How about putting DCHECK(!CalledOnValidThread());
Ian Wen
2015/02/23 18:54:57
I think the convention here is that if a function
| |
218 ImageRecord image_info(image, image_url, SK_ColorBLACK); | 218 gfx::Image resized_image = ResizeImage(image); |
219 if (!image.IsEmpty()) { | 219 ImageRecord image_info(resized_image, image_url, SK_ColorBLACK); |
220 image_info.dominant_color = DominantColorForImage(image); | 220 if (!resized_image.IsEmpty()) { |
221 image_info.dominant_color = DominantColorForImage(resized_image); | |
221 // TODO(lpromero): this should be saved all the time, even when there is an | 222 // TODO(lpromero): this should be saved all the time, even when there is an |
222 // empty image. http://crbug.com/451450 | 223 // empty image. http://crbug.com/451450 |
223 pool_->PostNamedSequencedWorkerTask( | 224 pool_->PostNamedSequencedWorkerTask( |
224 kSequenceToken, FROM_HERE, | 225 kSequenceToken, FROM_HERE, |
225 base::Bind(&ImageStore::Insert, base::Unretained(store_.get()), | 226 base::Bind(&ImageStore::Insert, base::Unretained(store_.get()), |
226 page_url, image_info)); | 227 page_url, image_info)); |
227 } | 228 } |
228 return image_info; | 229 return image_info; |
229 } | 230 } |
230 | 231 |
231 void BookmarkImageService::PostTaskToStoreImage(const gfx::Image& image, | 232 void BookmarkImageService::PostTaskToStoreImage(const gfx::Image& image, |
232 const GURL& image_url, | 233 const GURL& image_url, |
233 const GURL& page_url) { | 234 const GURL& page_url) { |
234 DCHECK(CalledOnValidThread()); | 235 DCHECK(CalledOnValidThread()); |
235 | 236 |
236 base::Callback<ImageRecord(void)> task = | 237 base::Callback<ImageRecord(void)> task = |
237 base::Bind(&BookmarkImageService::StoreImage, base::Unretained(this), | 238 base::Bind(&BookmarkImageService::ResizeAndStoreImage, |
238 image, image_url, page_url); | 239 base::Unretained(this), image, image_url, page_url); |
239 base::Callback<void(const ImageRecord&)> reply = | 240 base::Callback<void(const ImageRecord&)> reply = |
240 base::Bind(&BookmarkImageService::OnStoreImagePosted, | 241 base::Bind(&BookmarkImageService::OnStoreImagePosted, |
241 base::Unretained(this), page_url); | 242 base::Unretained(this), page_url); |
242 | 243 |
243 base::PostTaskAndReplyWithResult(pool_.get(), FROM_HERE, task, reply); | 244 base::PostTaskAndReplyWithResult(pool_.get(), FROM_HERE, task, reply); |
244 } | 245 } |
245 | 246 |
246 void BookmarkImageService::OnStoreImagePosted(const GURL& page_url, | 247 void BookmarkImageService::OnStoreImagePosted(const GURL& page_url, |
247 const ImageRecord& image) { | 248 const ImageRecord& image) { |
248 DCHECK(CalledOnValidThread()); | 249 DCHECK(CalledOnValidThread()); |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
359 const BookmarkNode* node) { | 360 const BookmarkNode* node) { |
360 } | 361 } |
361 | 362 |
362 void BookmarkImageService::BookmarkAllUserNodesRemoved( | 363 void BookmarkImageService::BookmarkAllUserNodesRemoved( |
363 BookmarkModel* model, | 364 BookmarkModel* model, |
364 const std::set<GURL>& removed_urls) { | 365 const std::set<GURL>& removed_urls) { |
365 ClearAll(); | 366 ClearAll(); |
366 } | 367 } |
367 | 368 |
368 } // namespace enhanced_bookmarks | 369 } // namespace enhanced_bookmarks |
OLD | NEW |