Index: chrome/browser/gtk/gtk_theme_provider.cc |
diff --git a/chrome/browser/gtk/gtk_theme_provider.cc b/chrome/browser/gtk/gtk_theme_provider.cc |
index bc47e8fa7f6d54db8855963c575acaf056809629..296b72c988204dd3bfd5c4d86d83e294635093d3 100644 |
--- a/chrome/browser/gtk/gtk_theme_provider.cc |
+++ b/chrome/browser/gtk/gtk_theme_provider.cc |
@@ -258,18 +258,23 @@ void GtkThemeProvider::NotifyThemeChanged() { |
} |
SkBitmap* GtkThemeProvider::LoadThemeBitmap(int id) { |
- if (id == IDR_THEME_TOOLBAR && use_gtk_) { |
- GtkStyle* style = gtk_rc_get_style(fake_window_); |
- GdkColor* color = &style->bg[GTK_STATE_NORMAL]; |
- SkBitmap* bitmap = new SkBitmap; |
- bitmap->setConfig(SkBitmap::kARGB_8888_Config, |
- kToolbarImageWidth, kToolbarImageHeight); |
- bitmap->allocPixels(); |
- bitmap->eraseRGB(color->red >> 8, color->green >> 8, color->blue >> 8); |
- return bitmap; |
- } else { |
- return BrowserThemeProvider::LoadThemeBitmap(id); |
+ if (use_gtk_) { |
+ if (id == IDR_THEME_TOOLBAR) { |
+ GtkStyle* style = gtk_rc_get_style(fake_window_); |
+ GdkColor* color = &style->bg[GTK_STATE_NORMAL]; |
+ SkBitmap* bitmap = new SkBitmap; |
+ bitmap->setConfig(SkBitmap::kARGB_8888_Config, |
+ kToolbarImageWidth, kToolbarImageHeight); |
+ bitmap->allocPixels(); |
+ bitmap->eraseRGB(color->red >> 8, color->green >> 8, color->blue >> 8); |
+ return bitmap; |
+ } else if ((id == IDR_THEME_TAB_BACKGROUND || |
+ id == IDR_THEME_TAB_BACKGROUND_INCOGNITO)) { |
+ return GenerateTabBackgroundBitmapImpl(id); |
+ } |
} |
+ |
+ return BrowserThemeProvider::LoadThemeBitmap(id); |
} |
void GtkThemeProvider::SaveThemeBitmap(const std::string resource_name, |
@@ -434,6 +439,7 @@ void GtkThemeProvider::LoadGtkValues() { |
force_process_images(); |
GenerateFrameColors(); |
+ AutoLock lock(themed_image_cache_lock_); |
GenerateFrameImages(); |
} |