Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(598)

Unified Diff: chrome/browser/tab_contents/render_view_context_menu.cc

Issue 9045007: Allow plugins to participate in Chrome context menus. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
+}

Powered by Google App Engine
This is Rietveld 408576698