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 de85cdfdceaf13ed12f36bd6dfd6f7cd32e3d838..da7099e71dd706ff349294ab07545051911c0cce 100644 |
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc |
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc |
@@ -31,6 +31,8 @@ |
#include "chrome/browser/download/download_stats.h" |
#include "chrome/browser/extensions/devtools_util.h" |
#include "chrome/browser/extensions/extension_service.h" |
+#include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.h" |
+#include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings_factory.h" |
#include "chrome/browser/plugins/chrome_plugin_service_filter.h" |
#include "chrome/browser/prefs/incognito_mode_prefs.h" |
#include "chrome/browser/profiles/profile.h" |
@@ -209,8 +211,9 @@ const struct UmaEnumCommandIdPair { |
{58, IDC_SPELLCHECK_SUGGESTION_0}, |
{59, IDC_SPELLCHECK_ADD_TO_DICTIONARY}, |
{60, IDC_SPELLPANEL_TOGGLE}, |
+ {61, IDC_CONTENT_CONTEXT_OPENORIGINALIMAGENEWTAB}, |
// Add new items here and use |enum_id| from the next line. |
- {61, 0}, // Must be the last. Increment |enum_id| when new IDC was added. |
+ {62, 0}, // Must be the last. Increment |enum_id| when new IDC was added. |
}; |
// Collapses large ranges of ids before looking for UMA enum. |
@@ -692,8 +695,16 @@ void RenderViewContextMenu::AppendImageItems() { |
IDS_CONTENT_CONTEXT_COPYIMAGELOCATION); |
menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_COPYIMAGE, |
IDS_CONTENT_CONTEXT_COPYIMAGE); |
- menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENIMAGENEWTAB, |
- IDS_CONTENT_CONTEXT_OPENIMAGENEWTAB); |
+ if (!browser_context_->IsOffTheRecord() && |
+ DataReductionProxyChromeSettingsFactory::GetForBrowserContext( |
+ browser_context_)->CanUseDataReductionProxy( |
+ params_.src_url)) { |
+ menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENORIGINALIMAGENEWTAB, |
+ IDS_CONTENT_CONTEXT_OPENORIGINALIMAGENEWTAB); |
+ } else { |
+ menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENIMAGENEWTAB, |
+ IDS_CONTENT_CONTEXT_OPENIMAGENEWTAB); |
+ } |
} |
void RenderViewContextMenu::AppendSearchWebForImageItems() { |
@@ -1102,6 +1113,7 @@ bool RenderViewContextMenu::IsCommandIdEnabled(int id) const { |
// The images shown in the most visited thumbnails can't be opened or |
// searched for conventionally. |
+ case IDC_CONTENT_CONTEXT_OPENORIGINALIMAGENEWTAB: |
case IDC_CONTENT_CONTEXT_OPENIMAGENEWTAB: |
case IDC_CONTENT_CONTEXT_SEARCHWEBFORIMAGE: |
return params_.src_url.is_valid() && |
@@ -1400,6 +1412,14 @@ void RenderViewContextMenu::ExecuteCommand(int id, int event_flags) { |
GetImageThumbnailForSearch(); |
break; |
+ case IDC_CONTENT_CONTEXT_OPENORIGINALIMAGENEWTAB: |
+ OpenURL(params_.src_url, |
+ GetDocumentURL(params_), |
+ NEW_BACKGROUND_TAB, |
+ ui::PAGE_TRANSITION_LINK, |
+ "X-PSA-Client-Options: v=1,m=1\nCache-Control: no-cache"); |
Alexei Svitkine (slow)
2015/02/20 18:37:27
Hardcoding this string in context menu code is bad
Not at Google. Contact bengr
2015/02/21 00:11:16
Moved the string to drp_settings. The OpenUrl(..)
|
+ break; |
+ |
case IDC_CONTENT_CONTEXT_OPENIMAGENEWTAB: |
case IDC_CONTENT_CONTEXT_OPENAVNEWTAB: |
OpenURL(params_.src_url, |