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

Side by Side Diff: chrome/browser/browser_theme_provider.cc

Issue 159891: Make the DOMUIThemeSource load and pass through a PNG, rather than relying on... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 4 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
« no previous file with comments | « chrome/browser/browser_theme_provider.h ('k') | chrome/browser/dom_ui/dom_ui_theme_source.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/browser_theme_provider.h" 5 #include "chrome/browser/browser_theme_provider.h"
6 6
7 #include "base/gfx/png_decoder.h" 7 #include "base/gfx/png_decoder.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/browser_list.h" 10 #include "chrome/browser/browser_list.h"
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 #endif 346 #endif
347 } 347 }
348 348
349 bool BrowserThemeProvider::HasCustomImage(int id) { 349 bool BrowserThemeProvider::HasCustomImage(int id) {
350 if (!themeable_images_[id]) 350 if (!themeable_images_[id])
351 return false; 351 return false;
352 352
353 return (images_.find(id) != images_.end()); 353 return (images_.find(id) != images_.end());
354 } 354 }
355 355
356 bool BrowserThemeProvider::GetRawData(int id,
357 std::vector<unsigned char>* raw_data) {
358 if (raw_data_.find(id) != raw_data_.end()) {
359 *raw_data = raw_data_[id];
360 return true;
361 }
362
363 if (!ReadThemeFileData(id, raw_data)) {
364 if (!rb_.LoadImageResourceBytes(id, raw_data))
365 return false;
366 }
367
368 raw_data_[id] = *raw_data;
369 return true;
370 }
371
356 void BrowserThemeProvider::SetTheme(Extension* extension) { 372 void BrowserThemeProvider::SetTheme(Extension* extension) {
357 // Clear our image cache. 373 // Clear our image cache.
358 ClearCaches(); 374 ClearCaches();
359 375
360 DCHECK(extension); 376 DCHECK(extension);
361 DCHECK(extension->IsTheme()); 377 DCHECK(extension->IsTheme());
362 SetImageData(extension->GetThemeImages(), 378 SetImageData(extension->GetThemeImages(),
363 extension->path()); 379 extension->path());
364 SetColorData(extension->GetThemeColors()); 380 SetColorData(extension->GetThemeColors());
365 SetTintData(extension->GetThemeTints()); 381 SetTintData(extension->GetThemeTints());
366 SetDisplayPropertyData(extension->GetThemeDisplayProperties()); 382 SetDisplayPropertyData(extension->GetThemeDisplayProperties());
383 raw_data_.clear();
367 GenerateFrameColors(); 384 GenerateFrameColors();
368 GenerateFrameImages(); 385 GenerateFrameImages();
369 GenerateTabImages(); 386 GenerateTabImages();
370 387
371 SaveImageData(extension->GetThemeImages()); 388 SaveImageData(extension->GetThemeImages());
372 SaveColorData(); 389 SaveColorData();
373 SaveTintData(); 390 SaveTintData();
374 SaveDisplayPropertyData(); 391 SaveDisplayPropertyData();
375 SaveThemeID(extension->id()); 392 SaveThemeID(extension->id());
376 393
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
773 } 790 }
774 791
775 void BrowserThemeProvider::ClearAllThemeData() { 792 void BrowserThemeProvider::ClearAllThemeData() {
776 // Clear our image cache. 793 // Clear our image cache.
777 ClearCaches(); 794 ClearCaches();
778 795
779 images_.clear(); 796 images_.clear();
780 colors_.clear(); 797 colors_.clear();
781 tints_.clear(); 798 tints_.clear();
782 display_properties_.clear(); 799 display_properties_.clear();
800 raw_data_.clear();
783 801
784 SaveImageData(NULL); 802 SaveImageData(NULL);
785 SaveColorData(); 803 SaveColorData();
786 SaveTintData(); 804 SaveTintData();
787 SaveDisplayPropertyData(); 805 SaveDisplayPropertyData();
788 SaveThemeID(kDefaultThemeID); 806 SaveThemeID(kDefaultThemeID);
789 } 807 }
790 808
791 SkBitmap* BrowserThemeProvider::GenerateBitmap(int id) { 809 SkBitmap* BrowserThemeProvider::GenerateBitmap(int id) {
792 if (id == IDR_THEME_TAB_BACKGROUND || 810 if (id == IDR_THEME_TAB_BACKGROUND ||
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
962 delete i->second; 980 delete i->second;
963 } 981 }
964 image_cache_.clear(); 982 image_cache_.clear();
965 } 983 }
966 984
967 #if defined(TOOLKIT_VIEWS) 985 #if defined(TOOLKIT_VIEWS)
968 void BrowserThemeProvider::FreePlatformCaches() { 986 void BrowserThemeProvider::FreePlatformCaches() {
969 // Views (Skia) has no platform image cache to clear. 987 // Views (Skia) has no platform image cache to clear.
970 } 988 }
971 #endif 989 #endif
OLDNEW
« no previous file with comments | « chrome/browser/browser_theme_provider.h ('k') | chrome/browser/dom_ui/dom_ui_theme_source.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698