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

Unified Diff: chrome/browser/ui/views/location_bar/page_action_image_view.h

Issue 10905005: Change browser/page action default icon defined in manifest to support hidpi. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: disable unittest on android Created 8 years, 3 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/views/location_bar/page_action_image_view.h
diff --git a/chrome/browser/ui/views/location_bar/page_action_image_view.h b/chrome/browser/ui/views/location_bar/page_action_image_view.h
index 1416cc669f798a9c0591b11ae43a38b182f55f83..76dac12117d75058d2de51d97a4564f9c0d594b8 100644
--- a/chrome/browser/ui/views/location_bar/page_action_image_view.h
+++ b/chrome/browser/ui/views/location_bar/page_action_image_view.h
@@ -9,8 +9,8 @@
#include <string>
#include "base/memory/scoped_ptr.h"
+#include "chrome/browser/extensions/extension_action_icon_factory.h"
#include "chrome/browser/extensions/extension_context_menu_model.h"
-#include "chrome/browser/extensions/image_loading_tracker.h"
#include "chrome/browser/ui/views/extensions/extension_popup.h"
#include "chrome/common/extensions/extension_action.h"
#include "ui/views/context_menu_controller.h"
@@ -30,11 +30,11 @@ class MenuRunner;
// PageActionImageView is used by the LocationBarView to display the icon for a
// given PageAction and notify the extension when the icon is clicked.
class PageActionImageView : public views::ImageView,
- public ImageLoadingTracker::Observer,
public ExtensionContextMenuModel::PopupDelegate,
public views::WidgetObserver,
public views::ContextMenuController,
public content::NotificationObserver,
+ public ExtensionActionIconFactory::Observer,
public ExtensionAction::IconAnimation::Observer {
public:
PageActionImageView(LocationBarView* owner,
@@ -56,11 +56,6 @@ class PageActionImageView : public views::ImageView,
virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE;
virtual bool OnKeyPressed(const ui::KeyEvent& event) OVERRIDE;
- // Overridden from ImageLoadingTracker:
- virtual void OnImageLoaded(const gfx::Image& image,
- const std::string& extension_id,
- int index) OVERRIDE;
-
// Overridden from ExtensionContextMenuModel::Delegate
virtual void InspectPopup(ExtensionAction* action) OVERRIDE;
@@ -76,6 +71,9 @@ class PageActionImageView : public views::ImageView,
const content::NotificationSource& source,
const content::NotificationDetails& details) OVERRIDE;
+ // Overriden from ExtensionActionIconFactory::Observer.
+ virtual void OnIconUpdated() OVERRIDE;
+
// Overridden from ui::AcceleratorTarget:
virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE;
virtual bool CanHandleAccelerators() const OVERRIDE;
@@ -109,9 +107,11 @@ class PageActionImageView : public views::ImageView,
// The corresponding browser.
Browser* browser_;
- // The object that is waiting for the image loading to complete
- // asynchronously.
- ImageLoadingTracker tracker_;
+ // The object that will be used to get the page action icon for us.
+ // It may load the icon asynchronously (in which case the initial icon
+ // returned by the factory will be transparent), so we have to observe it for
+ // updates to the icon.
+ scoped_ptr<ExtensionActionIconFactory> icon_factory_;
// The tab id we are currently showing the icon for.
int current_tab_id_;

Powered by Google App Engine
This is Rietveld 408576698