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

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

Issue 292443002: linux_aura: Compile ash into chrome. (Closed) Base URL: https://chromium.googlesource.com/chromium/src
Patch Set: Rebase to ToT Created 6 years, 7 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 (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 #include "chrome/browser/themes/browser_theme_pack.h" 5 #include "chrome/browser/themes/browser_theme_pack.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/files/file.h" 9 #include "base/files/file.h"
10 #include "base/memory/ref_counted_memory.h" 10 #include "base/memory/ref_counted_memory.h"
(...skipping 25 matching lines...) Expand all
36 #include "ui/gfx/skia_util.h" 36 #include "ui/gfx/skia_util.h"
37 37
38 using content::BrowserThread; 38 using content::BrowserThread;
39 using extensions::Extension; 39 using extensions::Extension;
40 40
41 namespace { 41 namespace {
42 42
43 // Version number of the current theme pack. We just throw out and rebuild 43 // Version number of the current theme pack. We just throw out and rebuild
44 // theme packs that aren't int-equal to this. Increment this number if you 44 // theme packs that aren't int-equal to this. Increment this number if you
45 // change default theme assets. 45 // change default theme assets.
46 const int kThemePackVersion = 33; 46 const int kThemePackVersion = 34;
47 47
48 // IDs that are in the DataPack won't clash with the positive integer 48 // IDs that are in the DataPack won't clash with the positive integer
49 // uint16. kHeaderID should always have the maximum value because we want the 49 // uint16. kHeaderID should always have the maximum value because we want the
50 // "header" to be written last. That way we can detect whether the pack was 50 // "header" to be written last. That way we can detect whether the pack was
51 // successfully written and ignore and regenerate if it was only partially 51 // successfully written and ignore and regenerate if it was only partially
52 // written (i.e. chrome crashed on a different thread while writing the pack). 52 // written (i.e. chrome crashed on a different thread while writing the pack).
53 const int kMaxID = 0x0000FFFF; // Max unsigned 16-bit int. 53 const int kMaxID = 0x0000FFFF; // Max unsigned 16-bit int.
54 const int kHeaderID = kMaxID - 1; 54 const int kHeaderID = kMaxID - 1;
55 const int kTintsID = kMaxID - 2; 55 const int kTintsID = kMaxID - 2;
56 const int kColorsID = kMaxID - 3; 56 const int kColorsID = kMaxID - 3;
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 { 39, IDR_MENU_DROPARROW, NULL }, 155 { 39, IDR_MENU_DROPARROW, NULL },
156 { 40, IDR_THROBBER, NULL }, 156 { 40, IDR_THROBBER, NULL },
157 { 41, IDR_THROBBER_WAITING, NULL }, 157 { 41, IDR_THROBBER_WAITING, NULL },
158 { 42, IDR_THROBBER_LIGHT, NULL }, 158 { 42, IDR_THROBBER_LIGHT, NULL },
159 { 43, IDR_TOOLBAR_BEZEL_HOVER, NULL }, 159 { 43, IDR_TOOLBAR_BEZEL_HOVER, NULL },
160 { 44, IDR_TOOLBAR_BEZEL_PRESSED, NULL }, 160 { 44, IDR_TOOLBAR_BEZEL_PRESSED, NULL },
161 { 45, IDR_TOOLS_BAR, NULL }, 161 { 45, IDR_TOOLS_BAR, NULL },
162 }; 162 };
163 const size_t kPersistingImagesLength = arraysize(kPersistingImages); 163 const size_t kPersistingImagesLength = arraysize(kPersistingImages);
164 164
165 #if defined(OS_WIN) 165 #if defined(USE_ASH) && !defined(OS_CHROMEOS)
166 // Persistent theme ids for Windows. 166 // Persistent theme ids for Windows.
167 const int PRS_THEME_FRAME_WIN = 100; 167 const int PRS_THEME_FRAME_DESKTOP = 100;
168 const int PRS_THEME_FRAME_INACTIVE_WIN = 101; 168 const int PRS_THEME_FRAME_INACTIVE_DESKTOP = 101;
169 const int PRS_THEME_FRAME_INCOGNITO_WIN = 102; 169 const int PRS_THEME_FRAME_INCOGNITO_DESKTOP = 102;
170 const int PRS_THEME_FRAME_INCOGNITO_INACTIVE_WIN = 103; 170 const int PRS_THEME_FRAME_INCOGNITO_INACTIVE_DESKTOP = 103;
171 const int PRS_THEME_TOOLBAR_WIN = 104; 171 const int PRS_THEME_TOOLBAR_DESKTOP = 104;
172 const int PRS_THEME_TAB_BACKGROUND_WIN = 105; 172 const int PRS_THEME_TAB_BACKGROUND_DESKTOP = 105;
173 const int PRS_THEME_TAB_BACKGROUND_INCOGNITO_WIN = 106; 173 const int PRS_THEME_TAB_BACKGROUND_INCOGNITO_DESKTOP = 106;
174 174
175 // Persistent theme to resource id mapping for Windows AURA. 175 // Persistent theme to resource id mapping for Windows AURA.
176 PersistingImagesTable kPersistingImagesWinDesktopAura[] = { 176 PersistingImagesTable kPersistingImagesDesktopAura[] = {
177 { PRS_THEME_FRAME_WIN, IDR_THEME_FRAME_WIN, 177 { PRS_THEME_FRAME_DESKTOP, IDR_THEME_FRAME_DESKTOP,
178 "theme_frame" }, 178 "theme_frame" },
179 { PRS_THEME_FRAME_INACTIVE_WIN, IDR_THEME_FRAME_INACTIVE_WIN, 179 { PRS_THEME_FRAME_INACTIVE_DESKTOP, IDR_THEME_FRAME_INACTIVE_DESKTOP,
180 "theme_frame_inactive" }, 180 "theme_frame_inactive" },
181 { PRS_THEME_FRAME_INCOGNITO_WIN, IDR_THEME_FRAME_INCOGNITO_WIN, 181 { PRS_THEME_FRAME_INCOGNITO_DESKTOP, IDR_THEME_FRAME_INCOGNITO_DESKTOP,
182 "theme_frame_incognito" }, 182 "theme_frame_incognito" },
183 { PRS_THEME_FRAME_INCOGNITO_INACTIVE_WIN, 183 { PRS_THEME_FRAME_INCOGNITO_INACTIVE_DESKTOP,
184 IDR_THEME_FRAME_INCOGNITO_INACTIVE_WIN, 184 IDR_THEME_FRAME_INCOGNITO_INACTIVE_DESKTOP,
185 "theme_frame_incognito_inactive" }, 185 "theme_frame_incognito_inactive" },
186 { PRS_THEME_TOOLBAR_WIN, IDR_THEME_TOOLBAR_WIN, 186 { PRS_THEME_TOOLBAR_DESKTOP, IDR_THEME_TOOLBAR_DESKTOP,
187 "theme_toolbar" }, 187 "theme_toolbar" },
188 { PRS_THEME_TAB_BACKGROUND_WIN, IDR_THEME_TAB_BACKGROUND_WIN, 188 { PRS_THEME_TAB_BACKGROUND_DESKTOP, IDR_THEME_TAB_BACKGROUND_DESKTOP,
189 "theme_tab_background" }, 189 "theme_tab_background" },
190 { PRS_THEME_TAB_BACKGROUND_INCOGNITO_WIN, 190 { PRS_THEME_TAB_BACKGROUND_INCOGNITO_DESKTOP,
191 IDR_THEME_TAB_BACKGROUND_INCOGNITO_WIN, 191 IDR_THEME_TAB_BACKGROUND_INCOGNITO_DESKTOP,
192 "theme_tab_background_incognito" }, 192 "theme_tab_background_incognito" },
193 }; 193 };
194 const size_t kPersistingImagesWinDesktopAuraLength = 194 const size_t kPersistingImagesDesktopAuraLength =
195 arraysize(kPersistingImagesWinDesktopAura); 195 arraysize(kPersistingImagesDesktopAura);
196 #endif 196 #endif
197 197
198 int GetPersistentIDByNameHelper(const std::string& key, 198 int GetPersistentIDByNameHelper(const std::string& key,
199 const PersistingImagesTable* image_table, 199 const PersistingImagesTable* image_table,
200 size_t image_table_size) { 200 size_t image_table_size) {
201 for (size_t i = 0; i < image_table_size; ++i) { 201 for (size_t i = 0; i < image_table_size; ++i) {
202 if (image_table[i].key != NULL && 202 if (image_table[i].key != NULL &&
203 base::strcasecmp(key.c_str(), image_table[i].key) == 0) { 203 base::strcasecmp(key.c_str(), image_table[i].key) == 0) {
204 return image_table[i].persistent_id; 204 return image_table[i].persistent_id;
205 } 205 }
206 } 206 }
207 return -1; 207 return -1;
208 } 208 }
209 209
210 int GetPersistentIDByName(const std::string& key) { 210 int GetPersistentIDByName(const std::string& key) {
211 return GetPersistentIDByNameHelper(key, 211 return GetPersistentIDByNameHelper(key,
212 kPersistingImages, 212 kPersistingImages,
213 kPersistingImagesLength); 213 kPersistingImagesLength);
214 } 214 }
215 215
216 int GetPersistentIDByIDR(int idr) { 216 int GetPersistentIDByIDR(int idr) {
217 static std::map<int,int>* lookup_table = new std::map<int,int>(); 217 static std::map<int,int>* lookup_table = new std::map<int,int>();
218 if (lookup_table->empty()) { 218 if (lookup_table->empty()) {
219 for (size_t i = 0; i < kPersistingImagesLength; ++i) { 219 for (size_t i = 0; i < kPersistingImagesLength; ++i) {
220 int idr = kPersistingImages[i].idr_id; 220 int idr = kPersistingImages[i].idr_id;
221 int prs_id = kPersistingImages[i].persistent_id; 221 int prs_id = kPersistingImages[i].persistent_id;
222 (*lookup_table)[idr] = prs_id; 222 (*lookup_table)[idr] = prs_id;
223 } 223 }
224 #if defined(OS_WIN) 224 #if defined(USE_ASH) && !defined(OS_CHROMEOS)
225 for (size_t i = 0; i < kPersistingImagesWinDesktopAuraLength; ++i) { 225 for (size_t i = 0; i < kPersistingImagesDesktopAuraLength; ++i) {
226 int idr = kPersistingImagesWinDesktopAura[i].idr_id; 226 int idr = kPersistingImagesDesktopAura[i].idr_id;
227 int prs_id = kPersistingImagesWinDesktopAura[i].persistent_id; 227 int prs_id = kPersistingImagesDesktopAura[i].persistent_id;
228 (*lookup_table)[idr] = prs_id; 228 (*lookup_table)[idr] = prs_id;
229 } 229 }
230 #endif 230 #endif
231 } 231 }
232 std::map<int,int>::iterator it = lookup_table->find(idr); 232 std::map<int,int>::iterator it = lookup_table->find(idr);
233 return (it == lookup_table->end()) ? -1 : it->second; 233 return (it == lookup_table->end()) ? -1 : it->second;
234 } 234 }
235 235
236 // Returns true if the scales in |input| match those in |expected|. 236 // Returns true if the scales in |input| match those in |expected|.
237 // The order must match as the index is used in determining the raw id. 237 // The order must match as the index is used in determining the raw id.
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 // tint ID that should maybe be applied to it. 334 // tint ID that should maybe be applied to it.
335 IntToIntTable kFrameTintMap[] = { 335 IntToIntTable kFrameTintMap[] = {
336 { PRS_THEME_FRAME, ThemeProperties::TINT_FRAME }, 336 { PRS_THEME_FRAME, ThemeProperties::TINT_FRAME },
337 { PRS_THEME_FRAME_INACTIVE, ThemeProperties::TINT_FRAME_INACTIVE }, 337 { PRS_THEME_FRAME_INACTIVE, ThemeProperties::TINT_FRAME_INACTIVE },
338 { PRS_THEME_FRAME_OVERLAY, ThemeProperties::TINT_FRAME }, 338 { PRS_THEME_FRAME_OVERLAY, ThemeProperties::TINT_FRAME },
339 { PRS_THEME_FRAME_OVERLAY_INACTIVE, 339 { PRS_THEME_FRAME_OVERLAY_INACTIVE,
340 ThemeProperties::TINT_FRAME_INACTIVE }, 340 ThemeProperties::TINT_FRAME_INACTIVE },
341 { PRS_THEME_FRAME_INCOGNITO, ThemeProperties::TINT_FRAME_INCOGNITO }, 341 { PRS_THEME_FRAME_INCOGNITO, ThemeProperties::TINT_FRAME_INCOGNITO },
342 { PRS_THEME_FRAME_INCOGNITO_INACTIVE, 342 { PRS_THEME_FRAME_INCOGNITO_INACTIVE,
343 ThemeProperties::TINT_FRAME_INCOGNITO_INACTIVE }, 343 ThemeProperties::TINT_FRAME_INCOGNITO_INACTIVE },
344 #if defined(OS_WIN) 344 #if defined(USE_ASH) && !defined(OS_CHROMEOS)
345 { PRS_THEME_FRAME_WIN, ThemeProperties::TINT_FRAME }, 345 { PRS_THEME_FRAME_DESKTOP, ThemeProperties::TINT_FRAME },
346 { PRS_THEME_FRAME_INACTIVE_WIN, ThemeProperties::TINT_FRAME_INACTIVE }, 346 { PRS_THEME_FRAME_INACTIVE_DESKTOP, ThemeProperties::TINT_FRAME_INACTIVE },
347 { PRS_THEME_FRAME_INCOGNITO_WIN, ThemeProperties::TINT_FRAME_INCOGNITO }, 347 { PRS_THEME_FRAME_INCOGNITO_DESKTOP, ThemeProperties::TINT_FRAME_INCOGNITO },
348 { PRS_THEME_FRAME_INCOGNITO_INACTIVE_WIN, 348 { PRS_THEME_FRAME_INCOGNITO_INACTIVE_DESKTOP,
349 ThemeProperties::TINT_FRAME_INCOGNITO_INACTIVE }, 349 ThemeProperties::TINT_FRAME_INCOGNITO_INACTIVE },
350 #endif 350 #endif
351 }; 351 };
352 352
353 // Mapping used in GenerateTabBackgroundImages() to associate what frame image 353 // Mapping used in GenerateTabBackgroundImages() to associate what frame image
354 // goes with which tab background. 354 // goes with which tab background.
355 IntToIntTable kTabBackgroundMap[] = { 355 IntToIntTable kTabBackgroundMap[] = {
356 { PRS_THEME_TAB_BACKGROUND, PRS_THEME_FRAME }, 356 { PRS_THEME_TAB_BACKGROUND, PRS_THEME_FRAME },
357 { PRS_THEME_TAB_BACKGROUND_INCOGNITO, PRS_THEME_FRAME_INCOGNITO }, 357 { PRS_THEME_TAB_BACKGROUND_INCOGNITO, PRS_THEME_FRAME_INCOGNITO },
358 #if defined(OS_WIN) 358 #if defined(USE_ASH) && !defined(OS_CHROMEOS)
359 { PRS_THEME_TAB_BACKGROUND_WIN, PRS_THEME_FRAME_WIN }, 359 { PRS_THEME_TAB_BACKGROUND_DESKTOP, PRS_THEME_FRAME_DESKTOP },
360 { PRS_THEME_TAB_BACKGROUND_INCOGNITO_WIN, PRS_THEME_FRAME_INCOGNITO_WIN }, 360 { PRS_THEME_TAB_BACKGROUND_INCOGNITO_DESKTOP,
361 PRS_THEME_FRAME_INCOGNITO_DESKTOP },
361 #endif 362 #endif
362 }; 363 };
363 364
364 struct CropEntry { 365 struct CropEntry {
365 int prs_id; 366 int prs_id;
366 367
367 // The maximum useful height of the image at |prs_id|. 368 // The maximum useful height of the image at |prs_id|.
368 int max_height; 369 int max_height;
369 370
370 // Whether cropping the image at |prs_id| should be skipped on OSes which 371 // Whether cropping the image at |prs_id| should be skipped on OSes which
(...skipping 11 matching lines...) Expand all
382 struct CropEntry kImagesToCrop[] = { 383 struct CropEntry kImagesToCrop[] = {
383 { PRS_THEME_FRAME, 120, true }, 384 { PRS_THEME_FRAME, 120, true },
384 { PRS_THEME_FRAME_INACTIVE, 120, true }, 385 { PRS_THEME_FRAME_INACTIVE, 120, true },
385 { PRS_THEME_FRAME_INCOGNITO, 120, true }, 386 { PRS_THEME_FRAME_INCOGNITO, 120, true },
386 { PRS_THEME_FRAME_INCOGNITO_INACTIVE, 120, true }, 387 { PRS_THEME_FRAME_INCOGNITO_INACTIVE, 120, true },
387 { PRS_THEME_FRAME_OVERLAY, 120, true }, 388 { PRS_THEME_FRAME_OVERLAY, 120, true },
388 { PRS_THEME_FRAME_OVERLAY_INACTIVE, 120, true }, 389 { PRS_THEME_FRAME_OVERLAY_INACTIVE, 120, true },
389 { PRS_THEME_TOOLBAR, 200, false }, 390 { PRS_THEME_TOOLBAR, 200, false },
390 { PRS_THEME_BUTTON_BACKGROUND, 60, false }, 391 { PRS_THEME_BUTTON_BACKGROUND, 60, false },
391 { PRS_THEME_WINDOW_CONTROL_BACKGROUND, 50, false }, 392 { PRS_THEME_WINDOW_CONTROL_BACKGROUND, 50, false },
392 #if defined(OS_WIN) 393 #if defined(USE_ASH) && !defined(OS_CHROMEOS)
393 { PRS_THEME_TOOLBAR_WIN, 200, false } 394 { PRS_THEME_TOOLBAR_DESKTOP, 200, false }
394 #endif 395 #endif
395 }; 396 };
396 397
397 398
398 // A list of images that don't need tinting or any other modification and can 399 // A list of images that don't need tinting or any other modification and can
399 // be byte-copied directly into the finished DataPack. This should contain the 400 // be byte-copied directly into the finished DataPack. This should contain the
400 // persistent IDs for all themeable image IDs that aren't in kFrameTintMap, 401 // persistent IDs for all themeable image IDs that aren't in kFrameTintMap,
401 // kTabBackgroundMap or kImagesToCrop. 402 // kTabBackgroundMap or kImagesToCrop.
402 const int kPreloadIDs[] = { 403 const int kPreloadIDs[] = {
403 PRS_THEME_NTP_BACKGROUND, 404 PRS_THEME_NTP_BACKGROUND,
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
761 762
762 // static 763 // static
763 void BrowserThemePack::GetThemeableImageIDRs(std::set<int>* result) { 764 void BrowserThemePack::GetThemeableImageIDRs(std::set<int>* result) {
764 if (!result) 765 if (!result)
765 return; 766 return;
766 767
767 result->clear(); 768 result->clear();
768 for (size_t i = 0; i < kPersistingImagesLength; ++i) 769 for (size_t i = 0; i < kPersistingImagesLength; ++i)
769 result->insert(kPersistingImages[i].idr_id); 770 result->insert(kPersistingImages[i].idr_id);
770 771
771 #if defined(OS_WIN) 772 #if defined(USE_ASH) && !defined(OS_CHROMEOS)
772 for (size_t i = 0; i < kPersistingImagesWinDesktopAuraLength; ++i) 773 for (size_t i = 0; i < kPersistingImagesDesktopAuraLength; ++i)
773 result->insert(kPersistingImagesWinDesktopAura[i].idr_id); 774 result->insert(kPersistingImagesDesktopAura[i].idr_id);
774 #endif 775 #endif
775 } 776 }
776 777
777 bool BrowserThemePack::WriteToDisk(const base::FilePath& path) const { 778 bool BrowserThemePack::WriteToDisk(const base::FilePath& path) const {
778 // Add resources for each of the property arrays. 779 // Add resources for each of the property arrays.
779 RawDataForWriting resources; 780 RawDataForWriting resources;
780 resources[kHeaderID] = base::StringPiece( 781 resources[kHeaderID] = base::StringPiece(
781 reinterpret_cast<const char*>(header_), sizeof(BrowserThemePackHeader)); 782 reinterpret_cast<const char*>(header_), sizeof(BrowserThemePackHeader));
782 resources[kTintsID] = base::StringPiece( 783 resources[kTintsID] = base::StringPiece(
783 reinterpret_cast<const char*>(tints_), 784 reinterpret_cast<const char*>(tints_),
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
1201 } 1202 }
1202 } 1203 }
1203 1204
1204 void BrowserThemePack::AddFileAtScaleToMap(const std::string& image_name, 1205 void BrowserThemePack::AddFileAtScaleToMap(const std::string& image_name,
1205 ui::ScaleFactor scale_factor, 1206 ui::ScaleFactor scale_factor,
1206 const base::FilePath& image_path, 1207 const base::FilePath& image_path,
1207 FilePathMap* file_paths) const { 1208 FilePathMap* file_paths) const {
1208 int id = GetPersistentIDByName(image_name); 1209 int id = GetPersistentIDByName(image_name);
1209 if (id != -1) 1210 if (id != -1)
1210 (*file_paths)[id][scale_factor] = image_path; 1211 (*file_paths)[id][scale_factor] = image_path;
1211 #if defined(OS_WIN) 1212 #if defined(USE_ASH) && !defined(OS_CHROMEOS)
1212 id = GetPersistentIDByNameHelper(image_name, 1213 id = GetPersistentIDByNameHelper(image_name,
1213 kPersistingImagesWinDesktopAura, 1214 kPersistingImagesDesktopAura,
1214 kPersistingImagesWinDesktopAuraLength); 1215 kPersistingImagesDesktopAuraLength);
1215 if (id != -1) 1216 if (id != -1)
1216 (*file_paths)[id][scale_factor] = image_path; 1217 (*file_paths)[id][scale_factor] = image_path;
1217 #endif 1218 #endif
1218 } 1219 }
1219 1220
1220 void BrowserThemePack::BuildSourceImagesArray(const FilePathMap& file_paths) { 1221 void BrowserThemePack::BuildSourceImagesArray(const FilePathMap& file_paths) {
1221 std::vector<int> ids; 1222 std::vector<int> ids;
1222 for (FilePathMap::const_iterator it = file_paths.begin(); 1223 for (FilePathMap::const_iterator it = file_paths.begin();
1223 it != file_paths.end(); ++it) { 1224 it != file_paths.end(); ++it) {
1224 ids.push_back(it->first); 1225 ids.push_back(it->first);
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
1329 ImageCache temp_output; 1330 ImageCache temp_output;
1330 1331
1331 for (size_t i = 0; i < arraysize(kFrameTintMap); ++i) { 1332 for (size_t i = 0; i < arraysize(kFrameTintMap); ++i) {
1332 int prs_id = kFrameTintMap[i].key; 1333 int prs_id = kFrameTintMap[i].key;
1333 gfx::Image frame; 1334 gfx::Image frame;
1334 // If there's no frame image provided for the specified id, then load 1335 // If there's no frame image provided for the specified id, then load
1335 // the default provided frame. If that's not provided, skip this whole 1336 // the default provided frame. If that's not provided, skip this whole
1336 // thing and just use the default images. 1337 // thing and just use the default images.
1337 int prs_base_id = 0; 1338 int prs_base_id = 0;
1338 1339
1339 #if defined(OS_WIN) 1340 #if defined(USE_ASH) && !defined(OS_CHROMEOS)
1340 if (prs_id == PRS_THEME_FRAME_INCOGNITO_INACTIVE_WIN) { 1341 if (prs_id == PRS_THEME_FRAME_INCOGNITO_INACTIVE_DESKTOP) {
1341 prs_base_id = images->count(PRS_THEME_FRAME_INCOGNITO_WIN) ? 1342 prs_base_id = images->count(PRS_THEME_FRAME_INCOGNITO_DESKTOP) ?
1342 PRS_THEME_FRAME_INCOGNITO_WIN : PRS_THEME_FRAME_WIN; 1343 PRS_THEME_FRAME_INCOGNITO_DESKTOP : PRS_THEME_FRAME_DESKTOP;
1343 } else if (prs_id == PRS_THEME_FRAME_INACTIVE_WIN) { 1344 } else if (prs_id == PRS_THEME_FRAME_INACTIVE_DESKTOP) {
1344 prs_base_id = PRS_THEME_FRAME_WIN; 1345 prs_base_id = PRS_THEME_FRAME_DESKTOP;
1345 } else if (prs_id == PRS_THEME_FRAME_INCOGNITO_WIN && 1346 } else if (prs_id == PRS_THEME_FRAME_INCOGNITO_DESKTOP &&
1346 !images->count(PRS_THEME_FRAME_INCOGNITO_WIN)) { 1347 !images->count(PRS_THEME_FRAME_INCOGNITO_DESKTOP)) {
1347 prs_base_id = PRS_THEME_FRAME_WIN; 1348 prs_base_id = PRS_THEME_FRAME_DESKTOP;
1348 } 1349 }
1349 #endif 1350 #endif
1350 if (!prs_base_id) { 1351 if (!prs_base_id) {
1351 if (prs_id == PRS_THEME_FRAME_INCOGNITO_INACTIVE) { 1352 if (prs_id == PRS_THEME_FRAME_INCOGNITO_INACTIVE) {
1352 prs_base_id = images->count(PRS_THEME_FRAME_INCOGNITO) ? 1353 prs_base_id = images->count(PRS_THEME_FRAME_INCOGNITO) ?
1353 PRS_THEME_FRAME_INCOGNITO : PRS_THEME_FRAME; 1354 PRS_THEME_FRAME_INCOGNITO : PRS_THEME_FRAME;
1354 } else if (prs_id == PRS_THEME_FRAME_OVERLAY_INACTIVE) { 1355 } else if (prs_id == PRS_THEME_FRAME_OVERLAY_INACTIVE) {
1355 prs_base_id = PRS_THEME_FRAME_OVERLAY; 1356 prs_base_id = PRS_THEME_FRAME_OVERLAY;
1356 } else if (prs_id == PRS_THEME_FRAME_INACTIVE) { 1357 } else if (prs_id == PRS_THEME_FRAME_INACTIVE) {
1357 prs_base_id = PRS_THEME_FRAME; 1358 prs_base_id = PRS_THEME_FRAME;
1358 } else if (prs_id == PRS_THEME_FRAME_INCOGNITO && 1359 } else if (prs_id == PRS_THEME_FRAME_INCOGNITO &&
1359 !images->count(PRS_THEME_FRAME_INCOGNITO)) { 1360 !images->count(PRS_THEME_FRAME_INCOGNITO)) {
1360 prs_base_id = PRS_THEME_FRAME; 1361 prs_base_id = PRS_THEME_FRAME;
1361 } else { 1362 } else {
1362 prs_base_id = prs_id; 1363 prs_base_id = prs_id;
1363 } 1364 }
1364 } 1365 }
1365 if (images->count(prs_id)) { 1366 if (images->count(prs_id)) {
1366 frame = (*images)[prs_id]; 1367 frame = (*images)[prs_id];
1367 } else if (prs_base_id != prs_id && images->count(prs_base_id)) { 1368 } else if (prs_base_id != prs_id && images->count(prs_base_id)) {
1368 frame = (*images)[prs_base_id]; 1369 frame = (*images)[prs_base_id];
1369 } else if (prs_base_id == PRS_THEME_FRAME_OVERLAY) { 1370 } else if (prs_base_id == PRS_THEME_FRAME_OVERLAY) {
1370 #if defined(OS_WIN) 1371 #if defined(USE_ASH) && !defined(OS_CHROMEOS)
1371 if (images->count(PRS_THEME_FRAME_WIN)) { 1372 if (images->count(PRS_THEME_FRAME_DESKTOP)) {
1372 #else 1373 #else
1373 if (images->count(PRS_THEME_FRAME)) { 1374 if (images->count(PRS_THEME_FRAME)) {
1374 #endif 1375 #endif
1375 // If there is no theme overlay, don't tint the default frame, 1376 // If there is no theme overlay, don't tint the default frame,
1376 // because it will overwrite the custom frame image when we cache and 1377 // because it will overwrite the custom frame image when we cache and
1377 // reload from disk. 1378 // reload from disk.
1378 frame = gfx::Image(); 1379 frame = gfx::Image();
1379 } 1380 }
1380 } else { 1381 } else {
1381 // If the theme doesn't specify an image, then apply the tint to 1382 // If the theme doesn't specify an image, then apply the tint to
1382 // the default frame. 1383 // the default frame.
1383 frame = rb.GetImageNamed(IDR_THEME_FRAME); 1384 frame = rb.GetImageNamed(IDR_THEME_FRAME);
1384 #if defined(OS_WIN) && defined(USE_AURA) 1385 #if defined(USE_ASH) && !defined(OS_CHROMEOS)
1385 if (prs_id >= PRS_THEME_FRAME_WIN && 1386 if (prs_id >= PRS_THEME_FRAME_DESKTOP &&
1386 prs_id <= PRS_THEME_FRAME_INCOGNITO_INACTIVE_WIN) { 1387 prs_id <= PRS_THEME_FRAME_INCOGNITO_INACTIVE_DESKTOP) {
1387 frame = rb.GetImageNamed(IDR_THEME_FRAME_WIN); 1388 frame = rb.GetImageNamed(IDR_THEME_FRAME_DESKTOP);
1388 } 1389 }
1389 #endif 1390 #endif
1390 } 1391 }
1391 if (!frame.IsEmpty()) { 1392 if (!frame.IsEmpty()) {
1392 temp_output[prs_id] = CreateHSLShiftedImage( 1393 temp_output[prs_id] = CreateHSLShiftedImage(
1393 frame, GetTintInternal(kFrameTintMap[i].value)); 1394 frame, GetTintInternal(kFrameTintMap[i].value));
1394 } 1395 }
1395 } 1396 }
1396 MergeImageCaches(temp_output, images); 1397 MergeImageCaches(temp_output, images);
1397 } 1398 }
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
1603 false, 1604 false,
1604 &bitmap_data)) { 1605 &bitmap_data)) {
1605 NOTREACHED() << "Unable to encode theme image for prs_id=" 1606 NOTREACHED() << "Unable to encode theme image for prs_id="
1606 << prs_id << " for scale_factor=" << scale_factors_[i]; 1607 << prs_id << " for scale_factor=" << scale_factors_[i];
1607 break; 1608 break;
1608 } 1609 }
1609 image_memory_[scaled_raw_id] = 1610 image_memory_[scaled_raw_id] =
1610 base::RefCountedBytes::TakeVector(&bitmap_data); 1611 base::RefCountedBytes::TakeVector(&bitmap_data);
1611 } 1612 }
1612 } 1613 }
OLDNEW
« no previous file with comments | « chrome/browser/signin/signin_error_notifier_ash_unittest.cc ('k') | chrome/browser/themes/browser_theme_pack_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698