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 "chrome/browser/android/thumbnail/thumbnail_cache.h" | 5 #include "chrome/browser/android/thumbnail/thumbnail_cache.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 thumbnail = approximation_cache_.Get(tab_id); | 217 thumbnail = approximation_cache_.Get(tab_id); |
218 if (thumbnail) { | 218 if (thumbnail) { |
219 thumbnail->CreateUIResource(); | 219 thumbnail->CreateUIResource(); |
220 return thumbnail; | 220 return thumbnail; |
221 } | 221 } |
222 } | 222 } |
223 | 223 |
224 return NULL; | 224 return NULL; |
225 } | 225 } |
226 | 226 |
227 void ThumbnailCache::RemoveFromDiskAtAndAboveId(TabId min_id) { | |
228 base::Closure remove_task = | |
229 base::Bind(&ThumbnailCache::RemoveFromDiskAtAndAboveIdTask, | |
230 min_id); | |
231 content::BrowserThread::PostTask( | |
232 content::BrowserThread::FILE, FROM_HERE, remove_task); | |
233 } | |
234 | |
235 void ThumbnailCache::InvalidateThumbnailIfChanged(TabId tab_id, | 227 void ThumbnailCache::InvalidateThumbnailIfChanged(TabId tab_id, |
236 const GURL& url) { | 228 const GURL& url) { |
237 ThumbnailMetaDataMap::iterator meta_data_iter = | 229 ThumbnailMetaDataMap::iterator meta_data_iter = |
238 thumbnail_meta_data_.find(tab_id); | 230 thumbnail_meta_data_.find(tab_id); |
239 if (meta_data_iter == thumbnail_meta_data_.end()) { | 231 if (meta_data_iter == thumbnail_meta_data_.end()) { |
240 thumbnail_meta_data_[tab_id] = ThumbnailMetaData(base::Time(), url); | 232 thumbnail_meta_data_[tab_id] = ThumbnailMetaData(base::Time(), url); |
241 } else if (meta_data_iter->second.url() != url) { | 233 } else if (meta_data_iter->second.url() != url) { |
242 Remove(tab_id); | 234 Remove(tab_id); |
243 } | 235 } |
244 } | 236 } |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
336 content::BrowserThread::PostTask( | 328 content::BrowserThread::PostTask( |
337 content::BrowserThread::FILE, FROM_HERE, task); | 329 content::BrowserThread::FILE, FROM_HERE, task); |
338 } | 330 } |
339 | 331 |
340 void ThumbnailCache::RemoveFromDiskTask(TabId tab_id) { | 332 void ThumbnailCache::RemoveFromDiskTask(TabId tab_id) { |
341 base::FilePath file_path = GetFilePath(tab_id); | 333 base::FilePath file_path = GetFilePath(tab_id); |
342 if (base::PathExists(file_path)) | 334 if (base::PathExists(file_path)) |
343 base::DeleteFile(file_path, false); | 335 base::DeleteFile(file_path, false); |
344 } | 336 } |
345 | 337 |
346 void ThumbnailCache::RemoveFromDiskAtAndAboveIdTask(TabId min_id) { | |
347 base::FilePath dir_path = GetCacheDirectory(); | |
348 base::FileEnumerator enumerator(dir_path, false, base::FileEnumerator::FILES); | |
349 while (true) { | |
350 base::FilePath path = enumerator.Next(); | |
351 if (path.empty()) | |
352 break; | |
353 base::FileEnumerator::FileInfo info = enumerator.GetInfo(); | |
354 TabId tab_id; | |
355 bool success = base::StringToInt(info.GetName().value(), &tab_id); | |
356 if (success && tab_id >= min_id) | |
357 base::DeleteFile(path, false); | |
358 } | |
359 } | |
360 | |
361 void ThumbnailCache::WriteThumbnailIfNecessary( | 338 void ThumbnailCache::WriteThumbnailIfNecessary( |
362 TabId tab_id, | 339 TabId tab_id, |
363 skia::RefPtr<SkPixelRef> compressed_data, | 340 skia::RefPtr<SkPixelRef> compressed_data, |
364 float scale, | 341 float scale, |
365 const gfx::Size& content_size) { | 342 const gfx::Size& content_size) { |
366 if (write_tasks_count_ >= write_queue_max_size_) | 343 if (write_tasks_count_ >= write_queue_max_size_) |
367 return; | 344 return; |
368 | 345 |
369 write_tasks_count_++; | 346 write_tasks_count_++; |
370 | 347 |
(...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
931 dst_bitmap.eraseColor(0); | 908 dst_bitmap.eraseColor(0); |
932 SkAutoLockPixels dst_bitmap_lock(dst_bitmap); | 909 SkAutoLockPixels dst_bitmap_lock(dst_bitmap); |
933 | 910 |
934 SkCanvas canvas(dst_bitmap); | 911 SkCanvas canvas(dst_bitmap); |
935 canvas.scale(new_scale, new_scale); | 912 canvas.scale(new_scale, new_scale); |
936 canvas.drawBitmap(bitmap, 0, 0, NULL); | 913 canvas.drawBitmap(bitmap, 0, 0, NULL); |
937 dst_bitmap.setImmutable(); | 914 dst_bitmap.setImmutable(); |
938 | 915 |
939 return std::make_pair(dst_bitmap, new_scale * scale); | 916 return std::make_pair(dst_bitmap, new_scale * scale); |
940 } | 917 } |
OLD | NEW |