Index: chrome/browser/renderer_context_menu/render_view_context_menu.cc |
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc |
index a1e4bc7bf9376a04ca8be4eacf359fa1196b61c6..10a741c4ae97e05b168602a169b41345f90c5776 100644 |
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc |
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc |
@@ -145,6 +145,10 @@ |
#include "chrome/browser/media/router/media_router_metrics.h" |
#endif |
+#if defined(OS_CHROMEOS) |
+#include "chrome/browser/renderer_context_menu/arc_app_menu_observer_chromeos.h" |
+#endif |
+ |
using base::UserMetricsAction; |
using blink::WebContextMenuData; |
using blink::WebMediaPlayerAction; |
@@ -278,9 +282,13 @@ const struct UmaEnumCommandIdPair { |
{71, -1, IDC_OPEN_LINK_IN_PROFILE_FIRST}, |
{72, -1, IDC_CONTENT_CONTEXT_GENERATEPASSWORD}, |
{73, -1, IDC_SPELLCHECK_MULTI_LINGUAL}, |
+ {74, -1, IDC_CONTENT_CONTEXT_ARC_APP1}, |
+ {75, -1, IDC_CONTENT_CONTEXT_ARC_APP2}, |
+ {76, -1, IDC_CONTENT_CONTEXT_ARC_APP3}, |
+ {77, -1, IDC_CONTENT_CONTEXT_ARC_SUB_MENU}, |
// Add new items here and use |enum_id| from the next line. |
// Also, add new items to RenderViewContextMenuItem enum in histograms.xml. |
- {74, -1, 0}, // Must be the last. Increment |enum_id| when new IDC |
+ {78, -1, 0}, // Must be the last. Increment |enum_id| when new IDC |
// was added. |
}; |
@@ -898,11 +906,14 @@ void RenderViewContextMenu::AppendLinkItems() { |
menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD, |
IDS_CONTENT_CONTEXT_OPENLINKOFFTHERECORD); |
+#if defined(OS_CHROMEOS) |
+ AppendArcLinkItems(); |
+#else |
// While ChromeOS supports multiple profiles, only one can be open at a |
// time. |
// TODO(jochen): Consider adding support for ChromeOS with similar |
// semantics as the profile switcher in the system tray. |
-#if !defined(OS_CHROMEOS) |
+ |
// g_browser_process->profile_manager() is null during unit tests. |
if (g_browser_process->profile_manager() && |
GetProfile()->GetProfileType() == Profile::REGULAR_PROFILE) { |
@@ -961,7 +972,7 @@ void RenderViewContextMenu::AppendLinkItems() { |
&profile_link_submenu_model_); |
} |
} |
-#endif // !defined(OS_CHROMEOS) |
+#endif // defined(OS_CHROMEOS) |
menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); |
menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_SAVELINKAS, |
IDS_CONTENT_CONTEXT_SAVELINKAS); |
@@ -981,6 +992,15 @@ void RenderViewContextMenu::AppendLinkItems() { |
} |
} |
+#if defined(OS_CHROMEOS) |
+void RenderViewContextMenu::AppendArcLinkItems() { |
+ if (!arc_app_menu_observer_) |
+ arc_app_menu_observer_.reset(new ArcAppMenuObserver(this)); |
+ observers_.AddObserver(arc_app_menu_observer_.get()); |
+ arc_app_menu_observer_->InitMenu(params_); |
+} |
+#endif // defined(OS_CHROMEOS) |
+ |
void RenderViewContextMenu::AppendImageItems() { |
std::map<std::string, std::string>::const_iterator it = |
params_.properties.find(data_reduction_proxy::chrome_proxy_header()); |