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

Side by Side Diff: chrome/browser/thumbnails/simple_thumbnail_crop.cc

Issue 2799283003: remove legacy code from PlatformCanvas days (Closed)
Patch Set: Created 3 years, 8 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
« no previous file with comments | « chrome/browser/thumbnails/content_based_thumbnailing_algorithm.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/thumbnails/simple_thumbnail_crop.h" 5 #include "chrome/browser/thumbnails/simple_thumbnail_crop.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/metrics/histogram_macros.h" 9 #include "base/metrics/histogram_macros.h"
10 #include "content/public/browser/browser_thread.h" 10 #include "content/public/browser/browser_thread.h"
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 clipped_bitmap = GetClippedBitmap( 170 clipped_bitmap = GetClippedBitmap(
171 bmp, desired_size.width(), desired_size.height(), clip_result); 171 bmp, desired_size.width(), desired_size.height(), clip_result);
172 } else { 172 } else {
173 clipped_bitmap = bitmap; 173 clipped_bitmap = bitmap;
174 } 174 }
175 175
176 // Need to resize it to the size we want, so downsample until it's 176 // Need to resize it to the size we want, so downsample until it's
177 // close, and let the caller make it the exact size if desired. 177 // close, and let the caller make it the exact size if desired.
178 SkBitmap result = SkBitmapOperations::DownsampleByTwoUntilSize( 178 SkBitmap result = SkBitmapOperations::DownsampleByTwoUntilSize(
179 clipped_bitmap, desired_size.width(), desired_size.height()); 179 clipped_bitmap, desired_size.width(), desired_size.height());
180 #if !defined(USE_AURA)
181 // This is a bit subtle. SkBitmaps are refcounted, but the magic
182 // ones in PlatformCanvas can't be assigned to SkBitmap with proper
183 // refcounting. If the bitmap doesn't change, then the downsampler
184 // will return the input bitmap, which will be the reference to the
185 // weird PlatformCanvas one insetad of a regular one. To get a
186 // regular refcounted bitmap, we need to copy it.
187 //
188 // On Aura, the PlatformCanvas is platform-independent and does not have
189 // any native platform resources that can't be refounted, so this issue does
190 // not occur.
191 //
192 // Note that GetClippedBitmap() does extractSubset() but it won't copy
193 // the pixels, hence we check result size == clipped_bitmap size here.
194 if (clipped_bitmap.width() == result.width() &&
195 clipped_bitmap.height() == result.height())
196 clipped_bitmap.copyTo(&result, kN32_SkColorType);
197 #endif
198 180
199 LOCAL_HISTOGRAM_TIMES(kThumbnailHistogramName, 181 LOCAL_HISTOGRAM_TIMES(kThumbnailHistogramName,
200 base::TimeTicks::Now() - begin_compute_thumbnail); 182 base::TimeTicks::Now() - begin_compute_thumbnail);
201 return result; 183 return result;
202 } 184 }
203 185
204 } // namespace thumbnails 186 } // namespace thumbnails
OLDNEW
« no previous file with comments | « chrome/browser/thumbnails/content_based_thumbnailing_algorithm.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698