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

Side by Side Diff: chrome/browser/themes/browser_theme_pack.h

Issue 16977007: Only load theme images for the scale factors that use them (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: delay GetRawMemory Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_THEMES_BROWSER_THEME_PACK_H_ 5 #ifndef CHROME_BROWSER_THEMES_BROWSER_THEME_PACK_H_
6 #define CHROME_BROWSER_THEMES_BROWSER_THEME_PACK_H_ 6 #define CHROME_BROWSER_THEMES_BROWSER_THEME_PACK_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 83
84 // Returns the theme pack image for |id|. Returns an empty image if an image 84 // Returns the theme pack image for |id|. Returns an empty image if an image
85 // is not found. 85 // is not found.
86 gfx::Image GetImageNamed(int id); 86 gfx::Image GetImageNamed(int id);
87 87
88 // Returns the raw PNG encoded data for IDR_THEME_NTP_*. This method is only 88 // Returns the raw PNG encoded data for IDR_THEME_NTP_*. This method is only
89 // supposed to work for the NTP attribution and background resources. 89 // supposed to work for the NTP attribution and background resources.
90 base::RefCountedMemory* GetRawData(int id, 90 base::RefCountedMemory* GetRawData(int id,
91 ui::ScaleFactor scale_factor) const; 91 ui::ScaleFactor scale_factor) const;
92 92
93 // Returns the raw PNG encoded data for IDR_THEME_NTP_* for the available
94 // scale factor with the highest scale if available, otherwise NULL.
95 // The corresponding scale factor is returned in |scale_factor|.
96 base::RefCountedMemory* GetRawDataWithHighestScale(
97 int id,
98 ui::ScaleFactor* scale_factor) const;
99
93 // Returns the set of image idrs which can be overwritten by a user provided 100 // Returns the set of image idrs which can be overwritten by a user provided
94 // theme. 101 // theme.
95 static void GetThemeableImageIDRs(std::set<int>* result); 102 static void GetThemeableImageIDRs(std::set<int>* result);
96 103
97 // Whether this theme provides an image for |id|. 104 // Whether this theme provides an image for |id|.
98 bool HasCustomImage(int id) const; 105 bool HasCustomImage(int id) const;
99 106
100 private: 107 private:
101 friend struct content::BrowserThread::DeleteOnThread< 108 friend struct content::BrowserThread::DeleteOnThread<
102 content::BrowserThread::FILE>; 109 content::BrowserThread::FILE>;
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 } *display_properties_; 267 } *display_properties_;
261 268
262 // A list of included source images. A pointer to a -1 terminated array of 269 // A list of included source images. A pointer to a -1 terminated array of
263 // our persistent IDs. 270 // our persistent IDs.
264 int* source_images_; 271 int* source_images_;
265 #pragma pack(pop) 272 #pragma pack(pop)
266 273
267 // The scale factors represented by the images in the theme pack. 274 // The scale factors represented by the images in the theme pack.
268 std::vector<ui::ScaleFactor> scale_factors_; 275 std::vector<ui::ScaleFactor> scale_factors_;
269 276
277 // The scale factors ordered by scale from lowest to highest.
278 std::vector<ui::ScaleFactor> scale_factors_ordered_by_scale_;
279
270 // References to raw PNG data. This map isn't touched when |data_pack_| is 280 // References to raw PNG data. This map isn't touched when |data_pack_| is
271 // non-NULL; |image_memory_| is only filled during BuildFromExtension(). Any 281 // non-NULL; |image_memory_| is only filled during BuildFromExtension(). Any
272 // image data that needs to be written to the DataPack during WriteToDisk() 282 // image data that needs to be written to the DataPack during WriteToDisk()
273 // needs to be in |image_memory_|. 283 // needs to be in |image_memory_|.
274 RawImages image_memory_; 284 RawImages image_memory_;
275 285
276 // Loaded images. These are loaded from |image_memory_|, from |data_pack_|, 286 // Loaded images. These are loaded from |image_memory_|, from |data_pack_|,
277 // and by BuildFromExtension(). These images should only be accessed on the UI 287 // and by BuildFromExtension(). These images should only be accessed on the UI
278 // thread. 288 // thread.
279 ImageCache images_on_ui_thread_; 289 ImageCache images_on_ui_thread_;
280 290
281 // Cache of images created in BuildFromExtension(). Once the theme pack is 291 // Cache of images created in BuildFromExtension(). Once the theme pack is
282 // created, this cache should only be accessed on the file thread. There 292 // created, this cache should only be accessed on the file thread. There
283 // should be no IDs in |image_memory_| that are in |images_on_file_thread_| 293 // should be no IDs in |image_memory_| that are in |images_on_file_thread_|
284 // or vice versa. 294 // or vice versa.
285 ImageCache images_on_file_thread_; 295 ImageCache images_on_file_thread_;
286 296
297 base::WeakPtrFactory<BrowserThemePack> weak_ptr_factory_;
298
287 DISALLOW_COPY_AND_ASSIGN(BrowserThemePack); 299 DISALLOW_COPY_AND_ASSIGN(BrowserThemePack);
288 }; 300 };
289 301
290 #endif // CHROME_BROWSER_THEMES_BROWSER_THEME_PACK_H_ 302 #endif // CHROME_BROWSER_THEMES_BROWSER_THEME_PACK_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/themes/browser_theme_pack.cc » ('j') | chrome/browser/themes/browser_theme_pack.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698