summaryrefslogtreecommitdiff
path: root/chromium/components/renderer_context_menu
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/renderer_context_menu')
-rw-r--r--chromium/components/renderer_context_menu/context_menu_content_type.cc10
-rw-r--r--chromium/components/renderer_context_menu/context_menu_content_type.h1
-rw-r--r--chromium/components/renderer_context_menu/render_view_context_menu_base.cc8
-rw-r--r--chromium/components/renderer_context_menu/render_view_context_menu_base.h3
-rw-r--r--chromium/components/renderer_context_menu/render_view_context_menu_proxy.h3
-rw-r--r--chromium/components/renderer_context_menu/views/toolkit_delegate_views.cc5
-rw-r--r--chromium/components/renderer_context_menu/views/toolkit_delegate_views.h1
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_;