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 #ifndef CHROME_BROWSER_ANDROID_THUMBNAIL_THUMBNAIL_CACHE_H_ | 5 #ifndef CHROME_BROWSER_ANDROID_THUMBNAIL_THUMBNAIL_CACHE_H_ |
6 #define CHROME_BROWSER_ANDROID_THUMBNAIL_THUMBNAIL_CACHE_H_ | 6 #define CHROME_BROWSER_ANDROID_THUMBNAIL_THUMBNAIL_CACHE_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <list> | 10 #include <list> |
11 #include <set> | 11 #include <set> |
12 #include <string> | 12 #include <string> |
13 | 13 |
14 #include "base/bind.h" | 14 #include "base/bind.h" |
15 #include "base/containers/hash_tables.h" | 15 #include "base/containers/hash_tables.h" |
16 #include "base/files/file_path.h" | 16 #include "base/files/file_path.h" |
17 #include "base/macros.h" | 17 #include "base/macros.h" |
| 18 #include "base/memory/memory_pressure_listener.h" |
18 #include "base/memory/ref_counted.h" | 19 #include "base/memory/ref_counted.h" |
19 #include "base/observer_list.h" | 20 #include "base/observer_list.h" |
20 #include "base/time/time.h" | 21 #include "base/time/time.h" |
21 #include "chrome/browser/android/thumbnail/scoped_ptr_expiring_cache.h" | 22 #include "chrome/browser/android/thumbnail/scoped_ptr_expiring_cache.h" |
22 #include "chrome/browser/android/thumbnail/thumbnail.h" | 23 #include "chrome/browser/android/thumbnail/thumbnail.h" |
23 #include "third_party/skia/include/core/SkBitmap.h" | 24 #include "third_party/skia/include/core/SkBitmap.h" |
24 #include "third_party/skia/include/core/SkRefCnt.h" | 25 #include "third_party/skia/include/core/SkRefCnt.h" |
25 #include "ui/android/resources/ui_resource_provider.h" | 26 #include "ui/android/resources/ui_resource_provider.h" |
26 #include "ui/gfx/geometry/point.h" | 27 #include "ui/gfx/geometry/point.h" |
27 #include "ui/gfx/geometry/size.h" | 28 #include "ui/gfx/geometry/size.h" |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 post_read_task); | 141 post_read_task); |
141 void PostReadTask(TabId tab_id, | 142 void PostReadTask(TabId tab_id, |
142 sk_sp<SkPixelRef> compressed_data, | 143 sk_sp<SkPixelRef> compressed_data, |
143 float scale, | 144 float scale, |
144 const gfx::Size& content_size); | 145 const gfx::Size& content_size); |
145 void NotifyObserversOfThumbnailRead(TabId tab_id); | 146 void NotifyObserversOfThumbnailRead(TabId tab_id); |
146 void RemoveOnMatchedTimeStamp(TabId tab_id, const base::Time& time_stamp); | 147 void RemoveOnMatchedTimeStamp(TabId tab_id, const base::Time& time_stamp); |
147 static std::pair<SkBitmap, float> CreateApproximation(const SkBitmap& bitmap, | 148 static std::pair<SkBitmap, float> CreateApproximation(const SkBitmap& bitmap, |
148 float scale); | 149 float scale); |
149 | 150 |
| 151 void OnMemoryPressure( |
| 152 base::MemoryPressureListener::MemoryPressureLevel level); |
| 153 |
150 const size_t compression_queue_max_size_; | 154 const size_t compression_queue_max_size_; |
151 const size_t write_queue_max_size_; | 155 const size_t write_queue_max_size_; |
152 const bool use_approximation_thumbnail_; | 156 const bool use_approximation_thumbnail_; |
153 | 157 |
154 size_t compression_tasks_count_; | 158 size_t compression_tasks_count_; |
155 size_t write_tasks_count_; | 159 size_t write_tasks_count_; |
156 bool read_in_progress_; | 160 bool read_in_progress_; |
157 | 161 |
158 ExpiringThumbnailCache cache_; | 162 ExpiringThumbnailCache cache_; |
159 ExpiringThumbnailCache approximation_cache_; | 163 ExpiringThumbnailCache approximation_cache_; |
160 base::ObserverList<ThumbnailCacheObserver> observers_; | 164 base::ObserverList<ThumbnailCacheObserver> observers_; |
161 ThumbnailMetaDataMap thumbnail_meta_data_; | 165 ThumbnailMetaDataMap thumbnail_meta_data_; |
162 TabIdList read_queue_; | 166 TabIdList read_queue_; |
163 TabIdList visible_ids_; | 167 TabIdList visible_ids_; |
164 | 168 |
165 ui::UIResourceProvider* ui_resource_provider_; | 169 ui::UIResourceProvider* ui_resource_provider_; |
166 | 170 |
| 171 std::unique_ptr<base::MemoryPressureListener> memory_pressure_; |
167 base::WeakPtrFactory<ThumbnailCache> weak_factory_; | 172 base::WeakPtrFactory<ThumbnailCache> weak_factory_; |
168 | 173 |
169 DISALLOW_COPY_AND_ASSIGN(ThumbnailCache); | 174 DISALLOW_COPY_AND_ASSIGN(ThumbnailCache); |
170 }; | 175 }; |
171 | 176 |
172 #endif // CHROME_BROWSER_ANDROID_THUMBNAIL_THUMBNAIL_CACHE_H_ | 177 #endif // CHROME_BROWSER_ANDROID_THUMBNAIL_THUMBNAIL_CACHE_H_ |
OLD | NEW |