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

Side by Side Diff: components/enhanced_bookmarks/bookmark_image_service.cc

Issue 916783003: Restrict salient image size before storing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix comments Created 5 years, 9 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
OLDNEW
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
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) {
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698