summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui
diff options
context:
space:
mode:
authordpolukhin@chromium.org <dpolukhin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-26 07:39:12 +0000
committerdpolukhin@chromium.org <dpolukhin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-26 07:39:12 +0000
commit5df6a5d0f551a7c277e1a908bb32957634a811f7 (patch)
tree76ae750b5e93ffeff6307584c58ae1f825634b18 /chrome/browser/ui
parent97e539fdea1592b638834cedcec95f72de4c1de5 (diff)
downloadchromium_src-5df6a5d0f551a7c277e1a908bb32957634a811f7.zip
chromium_src-5df6a5d0f551a7c277e1a908bb32957634a811f7.tar.gz
chromium_src-5df6a5d0f551a7c277e1a908bb32957634a811f7.tar.bz2
Disable context menu for page_action and infobar for component extensions.
BUG=chromium-os:6923 TEST=manual Review URL: http://codereview.chromium.org/6354021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72618 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui')
-rw-r--r--chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc15
-rw-r--r--chrome/browser/ui/gtk/location_bar_view_gtk.cc12
-rw-r--r--chrome/browser/ui/views/browser_actions_container.cc4
-rw-r--r--chrome/browser/ui/views/extensions/browser_action_overflow_menu_controller.cc7
-rw-r--r--chrome/browser/ui/views/infobars/extension_infobar.cc6
-rw-r--r--chrome/browser/ui/views/location_bar/page_action_image_view.cc3
6 files changed, 35 insertions, 12 deletions
diff --git a/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc b/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc
index 0a0a940..f2f6020 100644
--- a/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc
+++ b/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc
@@ -202,6 +202,9 @@ class BrowserActionButton : public NotificationObserver,
}
MenuGtk* GetContextMenu() {
+ if (!extension_->ShowConfigureContextMenus())
+ return NULL;
+
context_menu_model_ =
new ExtensionContextMenuModel(extension_, toolbar_->browser(), this);
context_menu_.reset(
@@ -268,8 +271,12 @@ class BrowserActionButton : public NotificationObserver,
if (event->button.button != 3)
return FALSE;
+ MenuGtk* menu = action->GetContextMenu();
+ if (!menu)
+ return FALSE;
+
action->button_->SetPaintOverride(GTK_STATE_ACTIVE);
- action->GetContextMenu()->Popup(widget, event);
+ menu->Popup(widget, event);
return TRUE;
}
@@ -939,7 +946,11 @@ gboolean BrowserActionsToolbarGtk::OnOverflowMenuButtonPress(
return FALSE;
}
- it->second.get()->GetContextMenu()->PopupAsContext(event->time);
+ MenuGtk* menu = it->second.get()->GetContextMenu();
+ if (!menu)
+ return FALSE;
+
+ menu->PopupAsContext(event->time);
return TRUE;
}
diff --git a/chrome/browser/ui/gtk/location_bar_view_gtk.cc b/chrome/browser/ui/gtk/location_bar_view_gtk.cc
index 076b67e..6b600d4 100644
--- a/chrome/browser/ui/gtk/location_bar_view_gtk.cc
+++ b/chrome/browser/ui/gtk/location_bar_view_gtk.cc
@@ -1519,11 +1519,13 @@ gboolean LocationBarViewGtk::PageActionViewGtk::OnButtonPressed(
const Extension* extension = profile_->GetExtensionService()->
GetExtensionById(page_action()->extension_id(), false);
- context_menu_model_ =
- new ExtensionContextMenuModel(extension, owner_->browser_, this);
- context_menu_.reset(
- new MenuGtk(NULL, context_menu_model_.get()));
- context_menu_->Popup(sender, event);
+ if (extension->ShowConfigureContextMenus()) {
+ context_menu_model_ =
+ new ExtensionContextMenuModel(extension, owner_->browser_, this);
+ context_menu_.reset(
+ new MenuGtk(NULL, context_menu_model_.get()));
+ context_menu_->Popup(sender, event);
+ }
}
return TRUE;
diff --git a/chrome/browser/ui/views/browser_actions_container.cc b/chrome/browser/ui/views/browser_actions_container.cc
index 61024de..f99babf 100644
--- a/chrome/browser/ui/views/browser_actions_container.cc
+++ b/chrome/browser/ui/views/browser_actions_container.cc
@@ -251,9 +251,7 @@ void BrowserActionButton::OnMouseExited(const views::MouseEvent& e) {
void BrowserActionButton::ShowContextMenu(const gfx::Point& p,
bool is_mouse_gesture) {
- // There is nothing in context menu that has sense to show for
- // component extensions so just ignore the request.
- if (extension()->location() == Extension::COMPONENT)
+ if (!extension()->ShowConfigureContextMenus())
return;
showing_context_menu_ = true;
diff --git a/chrome/browser/ui/views/extensions/browser_action_overflow_menu_controller.cc b/chrome/browser/ui/views/extensions/browser_action_overflow_menu_controller.cc
index 7972aa1..6dae095 100644
--- a/chrome/browser/ui/views/extensions/browser_action_overflow_menu_controller.cc
+++ b/chrome/browser/ui/views/extensions/browser_action_overflow_menu_controller.cc
@@ -93,8 +93,13 @@ bool BrowserActionOverflowMenuController::ShowContextMenu(
int id,
const gfx::Point& p,
bool is_mouse_gesture) {
+ const Extension* extension =
+ (*views_)[start_index_ + id - 1]->button()->extension();
+ if (!extension->ShowConfigureContextMenus())
+ return false;
+
context_menu_contents_ = new ExtensionContextMenuModel(
- (*views_)[start_index_ + id - 1]->button()->extension(),
+ extension,
owner_->browser(),
owner_);
context_menu_menu_.reset(new views::Menu2(context_menu_contents_.get()));
diff --git a/chrome/browser/ui/views/infobars/extension_infobar.cc b/chrome/browser/ui/views/infobars/extension_infobar.cc
index a48ee2d..b314603 100644
--- a/chrome/browser/ui/views/infobars/extension_infobar.cc
+++ b/chrome/browser/ui/views/infobars/extension_infobar.cc
@@ -147,12 +147,16 @@ void ExtensionInfoBar::OnDelegateDeleted() {
}
void ExtensionInfoBar::RunMenu(View* source, const gfx::Point& pt) {
+ const Extension* extension = delegate_->extension_host()->extension();
+ if (!extension->ShowConfigureContextMenus())
+ return;
+
if (!options_menu_contents_.get()) {
Browser* browser = BrowserView::GetBrowserViewForNativeWindow(
platform_util::GetTopLevel(source->GetWidget()->GetNativeView()))->
browser();
options_menu_contents_ = new ExtensionContextMenuModel(
- delegate_->extension_host()->extension(), browser, NULL);
+ extension, browser, NULL);
}
options_menu_menu_.reset(new views::Menu2(options_menu_contents_.get()));
diff --git a/chrome/browser/ui/views/location_bar/page_action_image_view.cc b/chrome/browser/ui/views/location_bar/page_action_image_view.cc
index 20a0953..86e2f4b 100644
--- a/chrome/browser/ui/views/location_bar/page_action_image_view.cc
+++ b/chrome/browser/ui/views/location_bar/page_action_image_view.cc
@@ -152,6 +152,9 @@ void PageActionImageView::ShowContextMenu(const gfx::Point& p,
bool is_mouse_gesture) {
const Extension* extension = profile_->GetExtensionService()->
GetExtensionById(page_action()->extension_id(), false);
+ if (!extension->ShowConfigureContextMenus())
+ return;
+
Browser* browser = BrowserView::GetBrowserViewForNativeWindow(
platform_util::GetTopLevel(GetWidget()->GetNativeView()))->browser();
context_menu_contents_ =