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 7f69247f1377e83432c64cd48c5e6bf85f1cdf23..1df00069bd27e7bdd59a62f6e821a6cbf8104b26 100644 |
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc |
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc |
@@ -46,6 +46,7 @@ |
#include "chrome/browser/profiles/profile_manager.h" |
#include "chrome/browser/profiles/profile_window.h" |
#include "chrome/browser/renderer_context_menu/context_menu_content_type_factory.h" |
+#include "chrome/browser/renderer_context_menu/open_with_menu_observer.h" |
#include "chrome/browser/renderer_context_menu/spelling_menu_observer.h" |
#include "chrome/browser/search/search.h" |
#include "chrome/browser/search_engines/template_url_service_factory.h" |
@@ -278,9 +279,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_OPEN_WITH1}, |
+ {75, -1, IDC_CONTENT_CONTEXT_OPEN_WITH2}, |
+ {76, -1, IDC_CONTENT_CONTEXT_OPEN_WITH3}, |
+ {77, -1, IDC_CONTENT_CONTEXT_OPEN_WITH4}, |
// 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,6 +903,8 @@ void RenderViewContextMenu::AppendLinkItems() { |
menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD, |
IDS_CONTENT_CONTEXT_OPENLINKOFFTHERECORD); |
+ AppendOpenWithLinkItems(); |
+ |
// While ChromeOS supports multiple profiles, only one can be open at a |
// time. |
// TODO(jochen): Consider adding support for ChromeOS with similar |
@@ -981,6 +988,13 @@ void RenderViewContextMenu::AppendLinkItems() { |
} |
} |
+void RenderViewContextMenu::AppendOpenWithLinkItems() { |
+ if (!open_with_menu_observer_) |
+ open_with_menu_observer_.reset(new OpenWithMenuObserver(this)); |
+ observers_.AddObserver(open_with_menu_observer_.get()); |
+ open_with_menu_observer_->InitMenu(params_); |
+} |
+ |
void RenderViewContextMenu::AppendImageItems() { |
std::map<std::string, std::string>::const_iterator it = |
params_.properties.find(data_reduction_proxy::chrome_proxy_header()); |