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

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

Issue 2374803002: Remove a bunch of pre-MD toolbar code and assets. (Closed)
Patch Set: fix mac? Created 4 years, 2 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.h> 7 #include <limits.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <limits> 10 #include <limits>
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 42
43 using content::BrowserThread; 43 using content::BrowserThread;
44 using extensions::Extension; 44 using extensions::Extension;
45 45
46 namespace { 46 namespace {
47 47
48 // Version number of the current theme pack. We just throw out and rebuild 48 // Version number of the current theme pack. We just throw out and rebuild
49 // theme packs that aren't int-equal to this. Increment this number if you 49 // theme packs that aren't int-equal to this. Increment this number if you
50 // change default theme assets or if you need themes to recreate their generated 50 // change default theme assets or if you need themes to recreate their generated
51 // images (which are cached). 51 // images (which are cached).
52 const int kThemePackVersion = 42; 52 const int kThemePackVersion = 43;
53 53
54 // IDs that are in the DataPack won't clash with the positive integer 54 // IDs that are in the DataPack won't clash with the positive integer
55 // uint16_t. kHeaderID should always have the maximum value because we want the 55 // uint16_t. kHeaderID should always have the maximum value because we want the
56 // "header" to be written last. That way we can detect whether the pack was 56 // "header" to be written last. That way we can detect whether the pack was
57 // successfully written and ignore and regenerate if it was only partially 57 // successfully written and ignore and regenerate if it was only partially
58 // written (i.e. chrome crashed on a different thread while writing the pack). 58 // written (i.e. chrome crashed on a different thread while writing the pack).
59 const int kMaxID = 0x0000FFFF; // Max unsigned 16-bit int. 59 const int kMaxID = 0x0000FFFF; // Max unsigned 16-bit int.
60 const int kHeaderID = kMaxID - 1; 60 const int kHeaderID = kMaxID - 1;
61 const int kTintsID = kMaxID - 2; 61 const int kTintsID = kMaxID - 2;
62 const int kColorsID = kMaxID - 3; 62 const int kColorsID = kMaxID - 3;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 // someone adds a new resource. 95 // someone adds a new resource.
96 int idr_id; 96 int idr_id;
97 97
98 // String to check for when parsing theme manifests or NULL if this isn't 98 // String to check for when parsing theme manifests or NULL if this isn't
99 // supposed to be changeable by the user. 99 // supposed to be changeable by the user.
100 const char* const key; 100 const char* const key;
101 }; 101 };
102 102
103 // IDR_* resource names change whenever new resources are added; use persistent 103 // IDR_* resource names change whenever new resources are added; use persistent
104 // IDs when storing to a cached pack. 104 // IDs when storing to a cached pack.
105 //
106 // TODO(erg): The cocoa port is the last user of the IDR_*_[HP] variants. These
107 // should be removed once the cocoa port no longer uses them.
108 PersistingImagesTable kPersistingImages[] = { 105 PersistingImagesTable kPersistingImages[] = {
109 {PRS_THEME_FRAME, IDR_THEME_FRAME, "theme_frame"}, 106 {PRS_THEME_FRAME, IDR_THEME_FRAME, "theme_frame"},
110 {PRS_THEME_FRAME_INACTIVE, IDR_THEME_FRAME_INACTIVE, 107 {PRS_THEME_FRAME_INACTIVE, IDR_THEME_FRAME_INACTIVE,
111 "theme_frame_inactive"}, 108 "theme_frame_inactive"},
112 {PRS_THEME_FRAME_INCOGNITO, IDR_THEME_FRAME_INCOGNITO, 109 {PRS_THEME_FRAME_INCOGNITO, IDR_THEME_FRAME_INCOGNITO,
113 "theme_frame_incognito"}, 110 "theme_frame_incognito"},
114 {PRS_THEME_FRAME_INCOGNITO_INACTIVE, IDR_THEME_FRAME_INCOGNITO_INACTIVE, 111 {PRS_THEME_FRAME_INCOGNITO_INACTIVE, IDR_THEME_FRAME_INCOGNITO_INACTIVE,
115 "theme_frame_incognito_inactive"}, 112 "theme_frame_incognito_inactive"},
116 {PRS_THEME_TOOLBAR, IDR_THEME_TOOLBAR, "theme_toolbar"}, 113 {PRS_THEME_TOOLBAR, IDR_THEME_TOOLBAR, "theme_toolbar"},
117 {PRS_THEME_TAB_BACKGROUND, IDR_THEME_TAB_BACKGROUND, 114 {PRS_THEME_TAB_BACKGROUND, IDR_THEME_TAB_BACKGROUND,
118 "theme_tab_background"}, 115 "theme_tab_background"},
119 #if !defined(OS_MACOSX) 116 #if !defined(OS_MACOSX)
120 {PRS_THEME_TAB_BACKGROUND_INCOGNITO, IDR_THEME_TAB_BACKGROUND_INCOGNITO, 117 {PRS_THEME_TAB_BACKGROUND_INCOGNITO, IDR_THEME_TAB_BACKGROUND_INCOGNITO,
121 "theme_tab_background_incognito"}, 118 "theme_tab_background_incognito"},
122 #endif 119 #endif
123 {PRS_THEME_TAB_BACKGROUND_V, IDR_THEME_TAB_BACKGROUND_V, 120 {PRS_THEME_TAB_BACKGROUND_V, IDR_THEME_TAB_BACKGROUND_V,
124 "theme_tab_background_v"}, 121 "theme_tab_background_v"},
125 {PRS_THEME_NTP_BACKGROUND, IDR_THEME_NTP_BACKGROUND, 122 {PRS_THEME_NTP_BACKGROUND, IDR_THEME_NTP_BACKGROUND,
126 "theme_ntp_background"}, 123 "theme_ntp_background"},
127 {PRS_THEME_FRAME_OVERLAY, IDR_THEME_FRAME_OVERLAY, "theme_frame_overlay"}, 124 {PRS_THEME_FRAME_OVERLAY, IDR_THEME_FRAME_OVERLAY, "theme_frame_overlay"},
128 {PRS_THEME_FRAME_OVERLAY_INACTIVE, IDR_THEME_FRAME_OVERLAY_INACTIVE, 125 {PRS_THEME_FRAME_OVERLAY_INACTIVE, IDR_THEME_FRAME_OVERLAY_INACTIVE,
129 "theme_frame_overlay_inactive"}, 126 "theme_frame_overlay_inactive"},
130 {PRS_THEME_BUTTON_BACKGROUND, IDR_THEME_BUTTON_BACKGROUND, 127 {PRS_THEME_BUTTON_BACKGROUND, IDR_THEME_BUTTON_BACKGROUND,
131 "theme_button_background"}, 128 "theme_button_background"},
132 {PRS_THEME_NTP_ATTRIBUTION, IDR_THEME_NTP_ATTRIBUTION, 129 {PRS_THEME_NTP_ATTRIBUTION, IDR_THEME_NTP_ATTRIBUTION,
133 "theme_ntp_attribution"}, 130 "theme_ntp_attribution"},
134 {PRS_THEME_WINDOW_CONTROL_BACKGROUND, IDR_THEME_WINDOW_CONTROL_BACKGROUND, 131 {PRS_THEME_WINDOW_CONTROL_BACKGROUND, IDR_THEME_WINDOW_CONTROL_BACKGROUND,
135 "theme_window_control_background"}, 132 "theme_window_control_background"},
136
137 // The rest of these entries have no key because they can't be overridden
138 // from the json manifest.
139 {15, IDR_BACK, NULL},
140 {16, IDR_BACK_D, NULL},
141 {17, IDR_BACK_H, NULL},
142 {18, IDR_BACK_P, NULL},
143 {19, IDR_FORWARD, NULL},
144 {20, IDR_FORWARD_D, NULL},
145 {21, IDR_FORWARD_H, NULL},
146 {22, IDR_FORWARD_P, NULL},
147 #if defined(OS_MACOSX)
148 {23, IDR_HOME, NULL},
149 {24, IDR_HOME_H, NULL},
150 {25, IDR_HOME_P, NULL},
151 #endif
152 {26, IDR_RELOAD, NULL},
153 {27, IDR_RELOAD_H, NULL},
154 {28, IDR_RELOAD_P, NULL},
155 {29, IDR_STOP, NULL},
156 {30, IDR_STOP_D, NULL},
157 {31, IDR_STOP_H, NULL},
158 {32, IDR_STOP_P, NULL},
159 {33, IDR_TOOLS, NULL},
160 {34, IDR_TOOLS_H, NULL},
161 {35, IDR_TOOLS_P, NULL},
162 {36, IDR_MENU_DROPARROW, NULL},
163 {37, IDR_TOOLBAR_BEZEL_HOVER, NULL},
164 {38, IDR_TOOLBAR_BEZEL_PRESSED, NULL},
165 {39, IDR_TOOLS_BAR, NULL},
166 }; 133 };
167 const size_t kPersistingImagesLength = arraysize(kPersistingImages); 134 const size_t kPersistingImagesLength = arraysize(kPersistingImages);
168 135
169 int GetPersistentIDByNameHelper(const std::string& key, 136 int GetPersistentIDByNameHelper(const std::string& key,
170 const PersistingImagesTable* image_table, 137 const PersistingImagesTable* image_table,
171 size_t image_table_size) { 138 size_t image_table_size) {
172 for (size_t i = 0; i < image_table_size; ++i) { 139 for (size_t i = 0; i < image_table_size; ++i) {
173 if (image_table[i].key && 140 if (image_table[i].key &&
174 base::LowerCaseEqualsASCII(key, image_table[i].key)) { 141 base::LowerCaseEqualsASCII(key, image_table[i].key)) {
175 return image_table[i].persistent_id; 142 return image_table[i].persistent_id;
(...skipping 1067 matching lines...) Expand 10 before | Expand all | Expand 10 after
1243 if (!is_copyable && !image_skia.isNull()) 1210 if (!is_copyable && !image_skia.isNull())
1244 (*image_cache)[prs_id] = gfx::Image(image_skia); 1211 (*image_cache)[prs_id] = gfx::Image(image_skia);
1245 } 1212 }
1246 1213
1247 return true; 1214 return true;
1248 } 1215 }
1249 1216
1250 void BrowserThemePack::CreateImages(ImageCache* images) const { 1217 void BrowserThemePack::CreateImages(ImageCache* images) const {
1251 CropImages(images); 1218 CropImages(images);
1252 CreateFrameImages(images); 1219 CreateFrameImages(images);
1253 CreateTintedButtons(GetTintInternal(ThemeProperties::TINT_BUTTONS), images);
1254 CreateTabBackgroundImages(images); 1220 CreateTabBackgroundImages(images);
1255 } 1221 }
1256 1222
1257 void BrowserThemePack::CropImages(ImageCache* images) const { 1223 void BrowserThemePack::CropImages(ImageCache* images) const {
1258 bool has_frame_border = HasFrameBorder(); 1224 bool has_frame_border = HasFrameBorder();
1259 for (size_t i = 0; i < arraysize(kImagesToCrop); ++i) { 1225 for (size_t i = 0; i < arraysize(kImagesToCrop); ++i) {
1260 if (has_frame_border && kImagesToCrop[i].skip_if_frame_border) 1226 if (has_frame_border && kImagesToCrop[i].skip_if_frame_border)
1261 continue; 1227 continue;
1262 1228
1263 int prs_id = kImagesToCrop[i].prs_id; 1229 int prs_id = kImagesToCrop[i].prs_id;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1319 frame = rb.GetImageNamed(IDR_THEME_FRAME); 1285 frame = rb.GetImageNamed(IDR_THEME_FRAME);
1320 } 1286 }
1321 if (!frame.IsEmpty()) { 1287 if (!frame.IsEmpty()) {
1322 temp_output[prs_id] = CreateHSLShiftedImage( 1288 temp_output[prs_id] = CreateHSLShiftedImage(
1323 frame, GetTintInternal(kFrameTintMap[i].value)); 1289 frame, GetTintInternal(kFrameTintMap[i].value));
1324 } 1290 }
1325 } 1291 }
1326 MergeImageCaches(temp_output, images); 1292 MergeImageCaches(temp_output, images);
1327 } 1293 }
1328 1294
1329 void BrowserThemePack::CreateTintedButtons(
1330 const color_utils::HSL& button_tint,
1331 ImageCache* processed_images) const {
1332 if (button_tint.h != -1 || button_tint.s != -1 || button_tint.l != -1) {
1333 ResourceBundle& rb = ResourceBundle::GetSharedInstance();
1334 const std::set<int>& idr_ids =
1335 ThemeProperties::GetTintableToolbarButtons();
1336 for (std::set<int>::const_iterator it = idr_ids.begin();
1337 it != idr_ids.end(); ++it) {
1338 int prs_id = GetPersistentIDByIDR(*it);
1339 DCHECK(prs_id > 0);
1340
1341 // Fetch the image by IDR...
1342 gfx::Image& button = rb.GetImageNamed(*it);
1343
1344 // but save a version with the persistent ID.
1345 (*processed_images)[prs_id] =
1346 CreateHSLShiftedImage(button, button_tint);
1347 }
1348 }
1349 }
1350
1351 void BrowserThemePack::CreateTabBackgroundImages(ImageCache* images) const { 1295 void BrowserThemePack::CreateTabBackgroundImages(ImageCache* images) const {
1352 ImageCache temp_output; 1296 ImageCache temp_output;
1353 for (size_t i = 0; i < arraysize(kTabBackgroundMap); ++i) { 1297 for (size_t i = 0; i < arraysize(kTabBackgroundMap); ++i) {
1354 int prs_id = kTabBackgroundMap[i].key; 1298 int prs_id = kTabBackgroundMap[i].key;
1355 int prs_base_id = kTabBackgroundMap[i].value; 1299 int prs_base_id = kTabBackgroundMap[i].value;
1356 1300
1357 // We only need to generate the background tab images if we were provided 1301 // We only need to generate the background tab images if we were provided
1358 // with a PRS_THEME_FRAME. 1302 // with a PRS_THEME_FRAME.
1359 ImageCache::const_iterator it = images->find(prs_base_id); 1303 ImageCache::const_iterator it = images->find(prs_base_id);
1360 if (it != images->end()) { 1304 if (it != images->end()) {
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
1532 false, 1476 false,
1533 &bitmap_data)) { 1477 &bitmap_data)) {
1534 NOTREACHED() << "Unable to encode theme image for prs_id=" 1478 NOTREACHED() << "Unable to encode theme image for prs_id="
1535 << prs_id << " for scale_factor=" << scale_factors_[i]; 1479 << prs_id << " for scale_factor=" << scale_factors_[i];
1536 break; 1480 break;
1537 } 1481 }
1538 image_memory_[scaled_raw_id] = 1482 image_memory_[scaled_raw_id] =
1539 base::RefCountedBytes::TakeVector(&bitmap_data); 1483 base::RefCountedBytes::TakeVector(&bitmap_data);
1540 } 1484 }
1541 } 1485 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698