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

Unified Diff: components/renderer_context_menu/render_view_context_menu_base.h

Issue 892953002: Show icons for custom menuitems in contextmenu. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed Created 5 years, 10 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: components/renderer_context_menu/render_view_context_menu_base.h
diff --git a/components/renderer_context_menu/render_view_context_menu_base.h b/components/renderer_context_menu/render_view_context_menu_base.h
index 779e8bbd9297aa178665649f6a32371860e6573d..b77926f9d8f19a01f575be056f26fafeea6b5761 100644
--- a/components/renderer_context_menu/render_view_context_menu_base.h
+++ b/components/renderer_context_menu/render_view_context_menu_base.h
@@ -51,6 +51,8 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate,
bool enabled,
bool hidden,
const base::string16& title) = 0;
+ // Set icon to the actual menu items controlled by the toolkit.
+ virtual void SetIcon(int command_id, const gfx::Image& icon) = 0;
};
static const size_t kMaxSelectionTextLength;
@@ -104,6 +106,7 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate,
bool enabled,
bool hidden,
const base::string16& title) override;
+ void SetIcon(int command_id, const gfx::Image& icon) override;
content::RenderViewHost* GetRenderViewHost() const override;
content::WebContents* GetWebContents() const override;
content::BrowserContext* GetBrowserContext() const override;
@@ -181,11 +184,24 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate,
private:
bool AppendCustomItems();
-
+ void AddCustomItemsToMenu(const std::vector<content::MenuItem>& items,
+ size_t depth,
+ size_t* total_items,
+ ui::SimpleMenuModel::Delegate* delegate,
+ ui::SimpleMenuModel* menu_model);
+ void OnIconDownloaded(int id,
+ int http_status_code,
+ const GURL& image_url,
+ const std::vector<SkBitmap>& bitmaps,
+ const std::vector<gfx::Size>& original_bitmap_sizes);
+
+ typedef std::map<int, int> IconMap;
+ IconMap icon_map_;
// The RenderFrameHost's IDs.
int render_process_id_;
scoped_ptr<ToolkitDelegate> toolkit_delegate_;
+ base::WeakPtrFactory<RenderViewContextMenuBase> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenuBase);
};

Powered by Google App Engine
This is Rietveld 408576698