diff options
Diffstat (limited to 'chromium/components/renderer_context_menu')
7 files changed, 27 insertions, 4 deletions
diff --git a/chromium/components/renderer_context_menu/context_menu_content_type.cc b/chromium/components/renderer_context_menu/context_menu_content_type.cc index d01e00ca9dd..83ff099a2ae 100644 --- a/chromium/components/renderer_context_menu/context_menu_content_type.cc +++ b/chromium/components/renderer_context_menu/context_menu_content_type.cc @@ -63,10 +63,9 @@ bool ContextMenuContentType::SupportsGroup(int group) { if (IsDevToolsURL(params_.page_url)) { // DevTools mostly provides custom context menu and uses // only the following default options. - if (group != ITEM_GROUP_CUSTOM && - group != ITEM_GROUP_EDITABLE && - group != ITEM_GROUP_COPY && - group != ITEM_GROUP_DEVELOPER) { + if (group != ITEM_GROUP_CUSTOM && group != ITEM_GROUP_EDITABLE && + group != ITEM_GROUP_COPY && group != ITEM_GROUP_DEVELOPER && + group != ITEM_GROUP_SEARCH_PROVIDER) { return false; } } @@ -105,6 +104,9 @@ bool ContextMenuContentType::SupportsGroupInternal(int group) { case ITEM_GROUP_LINK: return has_link; + case ITEM_GROUP_SMART_SELECTION: + return has_selection && !has_link; + case ITEM_GROUP_MEDIA_IMAGE: return params_.media_type == WebContextMenuData::kMediaTypeImage; diff --git a/chromium/components/renderer_context_menu/context_menu_content_type.h b/chromium/components/renderer_context_menu/context_menu_content_type.h index 92d86a5be54..0cce18f08a7 100644 --- a/chromium/components/renderer_context_menu/context_menu_content_type.h +++ b/chromium/components/renderer_context_menu/context_menu_content_type.h @@ -29,6 +29,7 @@ class ContextMenuContentType { ITEM_GROUP_PAGE, ITEM_GROUP_FRAME, ITEM_GROUP_LINK, + ITEM_GROUP_SMART_SELECTION, ITEM_GROUP_MEDIA_IMAGE, ITEM_GROUP_SEARCHWEBFORIMAGE, ITEM_GROUP_MEDIA_VIDEO, diff --git a/chromium/components/renderer_context_menu/render_view_context_menu_base.cc b/chromium/components/renderer_context_menu/render_view_context_menu_base.cc index da8fd4f2240..2262c376ffb 100644 --- a/chromium/components/renderer_context_menu/render_view_context_menu_base.cc +++ b/chromium/components/renderer_context_menu/render_view_context_menu_base.cc @@ -239,6 +239,14 @@ void RenderViewContextMenuBase::UpdateMenuIcon(int command_id, #endif } +void RenderViewContextMenuBase::AddSeparatorBelowMenuItem(int command_id) { +#if defined(OS_CHROMEOS) + if (toolkit_delegate_) + toolkit_delegate_->AddSeparatorAt( + menu_model_.GetIndexOfCommandId(command_id) + 1); +#endif +} + RenderViewHost* RenderViewContextMenuBase::GetRenderViewHost() const { return source_web_contents_->GetRenderViewHost(); } diff --git a/chromium/components/renderer_context_menu/render_view_context_menu_base.h b/chromium/components/renderer_context_menu/render_view_context_menu_base.h index 83ef6e6797a..d959c4ea893 100644 --- a/chromium/components/renderer_context_menu/render_view_context_menu_base.h +++ b/chromium/components/renderer_context_menu/render_view_context_menu_base.h @@ -50,6 +50,8 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, const base::string16& title) = 0; #if defined(OS_CHROMEOS) virtual void UpdateMenuIcon(int command_id, const gfx::Image& image) = 0; + + virtual void AddSeparatorAt(int index) = 0; #endif }; @@ -105,6 +107,7 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate, bool hidden, const base::string16& title) override; void UpdateMenuIcon(int command_id, const gfx::Image& image) override; + void AddSeparatorBelowMenuItem(int command_id) override; content::RenderViewHost* GetRenderViewHost() const override; content::WebContents* GetWebContents() const override; content::BrowserContext* GetBrowserContext() const override; diff --git a/chromium/components/renderer_context_menu/render_view_context_menu_proxy.h b/chromium/components/renderer_context_menu/render_view_context_menu_proxy.h index 0ec293f6e38..69c58e7ad5a 100644 --- a/chromium/components/renderer_context_menu/render_view_context_menu_proxy.h +++ b/chromium/components/renderer_context_menu/render_view_context_menu_proxy.h @@ -97,6 +97,9 @@ class RenderViewContextMenuProxy { // Update the icon of the specified context-menu item. virtual void UpdateMenuIcon(int command_id, const gfx::Image& image) = 0; + // Add a separator below the specified context-menu item. + virtual void AddSeparatorBelowMenuItem(int command_id) = 0; + // Add spell check service item to the context menu. virtual void AddSpellCheckServiceItem(bool is_checked) = 0; diff --git a/chromium/components/renderer_context_menu/views/toolkit_delegate_views.cc b/chromium/components/renderer_context_menu/views/toolkit_delegate_views.cc index b5312c48c3a..2abe1fa6298 100644 --- a/chromium/components/renderer_context_menu/views/toolkit_delegate_views.cc +++ b/chromium/components/renderer_context_menu/views/toolkit_delegate_views.cc @@ -73,4 +73,9 @@ void ToolkitDelegateViews::UpdateMenuIcon(int command_id, parent->ChildrenChanged(); } + +void ToolkitDelegateViews::AddSeparatorAt(int index) { + menu_view_->AddSeparatorAt(index); + menu_view_->ChildrenChanged(); +} #endif diff --git a/chromium/components/renderer_context_menu/views/toolkit_delegate_views.h b/chromium/components/renderer_context_menu/views/toolkit_delegate_views.h index eb3ef326b4c..a2c067c3f4f 100644 --- a/chromium/components/renderer_context_menu/views/toolkit_delegate_views.h +++ b/chromium/components/renderer_context_menu/views/toolkit_delegate_views.h @@ -48,6 +48,7 @@ class ToolkitDelegateViews : public RenderViewContextMenuBase::ToolkitDelegate { const base::string16& title) override; #if defined(OS_CHROMEOS) void UpdateMenuIcon(int command_id, const gfx::Image& image) override; + void AddSeparatorAt(int index) override; #endif std::unique_ptr<views::MenuModelAdapter> menu_adapter_; |