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

Unified Diff: chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc

Issue 10806058: Move icon fallbacks into ExtensionAction. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Move the icon cache inside ExtensionAction. Created 8 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc
diff --git a/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc b/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc
index 4088febb67f27d3a15edc5be7847e77d9c0c6edc..3bfa2ec124cb07921625fbb87023ccda834f2421 100644
--- a/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc
+++ b/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc
@@ -127,12 +127,6 @@ class BrowserActionButton : public content::NotificationObserver,
gfx::Size(Extension::kBrowserActionIconMaxSize,
Extension::kBrowserActionIconMaxSize),
ImageLoadingTracker::DONT_CACHE);
- } else {
- const SkBitmap* bm =
- ui::ResourceBundle::GetSharedInstance().GetImageNamed(
- IDR_EXTENSIONS_FAVICON).ToSkBitmap();
- default_skbitmap_ = *bm;
- default_icon_ = gfx::GdkPixbufFromSkBitmap(*bm);
}
UpdateState();
@@ -228,11 +222,8 @@ class BrowserActionButton : public content::NotificationObserver,
void OnImageLoaded(const gfx::Image& image,
const std::string& extension_id,
int index) OVERRIDE {
- if (!image.IsEmpty()) {
- default_skbitmap_ = *image.ToSkBitmap();
- default_icon_ =
- static_cast<GdkPixbuf*>(g_object_ref(image.ToGdkPixbuf()));
- }
+ extension_->browser_action()->CacheIcon(
+ extension_->browser_action()->default_icon_path(), image);
UpdateState();
}
@@ -249,16 +240,9 @@ class BrowserActionButton : public content::NotificationObserver,
else
gtk_widget_set_tooltip_text(button(), tooltip.c_str());
- SkBitmap image = extension_->browser_action()->GetIcon(tab_id);
- if (!image.isNull()) {
- GdkPixbuf* previous_gdk_icon = tab_specific_icon_;
- tab_specific_icon_ = gfx::GdkPixbufFromSkBitmap(image);
- SetImage(tab_specific_icon_);
- if (previous_gdk_icon)
- g_object_unref(previous_gdk_icon);
- } else if (default_icon_) {
- SetImage(default_icon_);
- }
+ gfx::Image image = extension_->browser_action()->GetIcon(tab_id);
+ if (!image.IsEmpty())
+ SetImage(image.ToGdkPixbuf());
bool enabled = extension_->browser_action()->GetIsVisible(tab_id);
gtk_widget_set_sensitive(button(), enabled);
@@ -266,13 +250,8 @@ class BrowserActionButton : public content::NotificationObserver,
}
SkBitmap GetIcon() {
- const SkBitmap& image = extension_->browser_action()->GetIcon(
- toolbar_->GetCurrentTabId());
- if (!image.isNull()) {
- return image;
- } else {
- return default_skbitmap_;
- }
+ return *extension_->browser_action()->GetIcon(
+ toolbar_->GetCurrentTabId()).ToSkBitmap();
}
MenuGtk* GetContextMenu() {

Powered by Google App Engine
This is Rietveld 408576698