| Index: chrome/browser/browser_theme_provider.cc
|
| ===================================================================
|
| --- chrome/browser/browser_theme_provider.cc (revision 16307)
|
| +++ chrome/browser/browser_theme_provider.cc (working copy)
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "browser_theme_provider.h"
|
| +#include "chrome/browser/browser_theme_provider.h"
|
|
|
| #include "base/gfx/png_decoder.h"
|
| #include "base/string_util.h"
|
| @@ -19,7 +19,7 @@
|
| #include "net/base/net_errors.h"
|
| #include "skia/ext/image_operations.h"
|
| #include "skia/ext/skia_utils.h"
|
| -#include "SkBitmap.h"
|
| +#include "third_party/skia/include/core/SkBitmap.h"
|
|
|
| // Strings used by themes to identify colors for different parts of our UI.
|
| static const char* kColorFrame = "frame";
|
| @@ -105,7 +105,9 @@
|
| }
|
| }
|
|
|
| -BrowserThemeProvider::~BrowserThemeProvider() { }
|
| +BrowserThemeProvider::~BrowserThemeProvider() {
|
| + FreeImages();
|
| +}
|
|
|
| void BrowserThemeProvider::Init(Profile* profile) {
|
| DCHECK(CalledOnValidThread());
|
| @@ -207,7 +209,7 @@
|
|
|
| void BrowserThemeProvider::SetTheme(Extension* extension) {
|
| // Clear our image cache.
|
| - image_cache_.clear();
|
| + FreeImages();
|
|
|
| DCHECK(extension);
|
| DCHECK(extension->IsTheme());
|
| @@ -228,7 +230,7 @@
|
|
|
| void BrowserThemeProvider::UseDefaultTheme() {
|
| // Clear our image cache.
|
| - image_cache_.clear();
|
| + FreeImages();
|
|
|
| images_.clear();
|
| colors_.clear();
|
| @@ -461,6 +463,7 @@
|
| skia::ImageOperations::CreateBlurredBitmap(*frame, 5);
|
| SkBitmap* bg_tab =
|
| new SkBitmap(TintBitmap(blurred, TINT_BACKGROUND_TAB));
|
| + generated_images_.push_back(bg_tab);
|
| return bg_tab;
|
| }
|
| }
|
| @@ -556,3 +559,12 @@
|
| }
|
| }
|
| }
|
| +
|
| +void BrowserThemeProvider::FreeImages() {
|
| + for (std::vector<SkBitmap*>::iterator i = generated_images_.begin();
|
| + i != generated_images_.end(); i++) {
|
| + delete *i;
|
| + }
|
| + generated_images_.clear();
|
| + image_cache_.clear();
|
| +}
|
|
|