Index: chrome/browser/tab_contents/render_view_context_menu.cc |
=================================================================== |
--- chrome/browser/tab_contents/render_view_context_menu.cc (revision 114593) |
+++ chrome/browser/tab_contents/render_view_context_menu.cc (working copy) |
@@ -75,6 +75,7 @@ |
#include "net/base/net_util.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/WebContextMenuData.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/WebMediaPlayerAction.h" |
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebPluginAction.h" |
#include "ui/base/l10n/l10n_util.h" |
#include "ui/base/text/text_elider.h" |
#include "ui/gfx/favicon_size.h" |
@@ -87,6 +88,7 @@ |
using content::UserMetricsAction; |
using WebKit::WebContextMenuData; |
using WebKit::WebMediaPlayerAction; |
+using WebKit::WebPluginAction; |
using WebKit::WebURL; |
using WebKit::WebString; |
@@ -783,6 +785,21 @@ |
IDS_CONTENT_CONTEXT_SAVEPAGEAS); |
menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); |
} |
+ |
+ if (params_.plugin_flags & WebContextMenuData::PluginCanFitPage) { |
+ menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_FITPAGEWIDTH, |
+ IDS_CONTENT_CONTEXT_FITPAGEWIDTH); |
+ menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_FITPAGEHEIGHT, |
+ IDS_CONTENT_CONTEXT_FITPAGEHEIGHT); |
+ menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_FITPAGE, |
+ IDS_CONTENT_CONTEXT_FITPAGE); |
+ } |
+ if (params_.plugin_flags & WebContextMenuData::PluginCanRotatePage) { |
+ menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_ROTATEPAGECW, |
+ IDS_CONTENT_CONTEXT_ROTATEPAGECW); |
+ menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_ROTATEPAGECCW, |
+ IDS_CONTENT_CONTEXT_ROTATEPAGECCW); |
+ } |
} |
void RenderViewContextMenu::AppendPageItems() { |
@@ -1268,6 +1285,17 @@ |
case IDC_CONTENT_CONTEXT_ADDSEARCHENGINE: |
return !params_.keyword_url.is_empty(); |
+ case IDC_CONTENT_CONTEXT_FITPAGEWIDTH: |
+ case IDC_CONTENT_CONTEXT_FITPAGEHEIGHT: |
+ case IDC_CONTENT_CONTEXT_FITPAGE: |
+ return |
+ (params_.plugin_flags & WebContextMenuData::PluginCanFitPage) != 0; |
+ |
+ case IDC_CONTENT_CONTEXT_ROTATEPAGECW: |
+ case IDC_CONTENT_CONTEXT_ROTATEPAGECCW: |
+ return |
+ (params_.plugin_flags & WebContextMenuData::PluginCanRotatePage) != 0; |
+ |
case IDC_SPELLCHECK_MENU: |
return true; |
@@ -1517,6 +1545,36 @@ |
!IsCommandIdChecked(IDC_CONTENT_CONTEXT_CONTROLS))); |
break; |
+ case IDC_CONTENT_CONTEXT_FITPAGEWIDTH: |
+ content::RecordAction( |
+ UserMetricsAction("PluginContextMenu_FitPageWidth")); |
+ PluginAction(WebPluginAction(WebPluginAction::FitPageWidth)); |
+ break; |
+ |
+ case IDC_CONTENT_CONTEXT_FITPAGEHEIGHT: |
+ content::RecordAction( |
+ UserMetricsAction("PluginContextMenu_FitPageHeight")); |
+ PluginAction(WebPluginAction(WebPluginAction::FitPageHeight)); |
+ break; |
+ |
+ case IDC_CONTENT_CONTEXT_FITPAGE: |
+ content::RecordAction( |
+ UserMetricsAction("PluginContextMenu_FitPage")); |
+ PluginAction(WebPluginAction(WebPluginAction::FitPage)); |
+ break; |
+ |
+ case IDC_CONTENT_CONTEXT_ROTATEPAGECW: |
+ content::RecordAction( |
+ UserMetricsAction("PluginContextMenu_RotatePageCW")); |
+ PluginAction(WebPluginAction(WebPluginAction::RotatePageCW)); |
+ break; |
+ |
+ case IDC_CONTENT_CONTEXT_ROTATEPAGECCW: |
+ content::RecordAction( |
+ UserMetricsAction("PluginContextMenu_RotatePageCCW")); |
+ PluginAction(WebPluginAction(WebPluginAction::RotatePageCCW)); |
+ break; |
+ |
case IDC_BACK: |
source_tab_contents_->controller().GoBack(); |
break; |
@@ -1866,3 +1924,7 @@ |
source_tab_contents_->render_view_host()-> |
ExecuteMediaPlayerActionAtLocation(location, action); |
} |
+ |
+void RenderViewContextMenu::PluginAction(const WebPluginAction& action) { |
+ source_tab_contents_->render_view_host()->ExecutePluginAction(action); |
+} |