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

Unified Diff: chrome/browser/extensions/extension_context_menu_model.cc

Issue 1135763004: [Extensions Toolbar] Only include relevant items in component extensions' menus (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Latest master Created 5 years, 7 months 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/extensions/extension_context_menu_model.cc
diff --git a/chrome/browser/extensions/extension_context_menu_model.cc b/chrome/browser/extensions/extension_context_menu_model.cc
index 59208b186b9c89435bf6c4cd0b9b3a29ab16992b..492f0289e593af770f8ea7cffb3aa117ad9a4678 100644
--- a/chrome/browser/extensions/extension_context_menu_model.cc
+++ b/chrome/browser/extensions/extension_context_menu_model.cc
@@ -26,6 +26,7 @@
#include "chrome/common/url_constants.h"
#include "chrome/grit/chromium_strings.h"
#include "chrome/grit/generated_resources.h"
+#include "chrome/grit/theme_resources.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/context_menu_params.h"
#include "extensions/browser/extension_prefs.h"
@@ -38,6 +39,8 @@
#include "extensions/common/manifest_handlers/options_page_info.h"
#include "extensions/common/manifest_url_handlers.h"
#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/resource/resource_bundle.h"
+#include "ui/gfx/image/image.h"
using content::OpenURLParams;
using content::Referrer;
@@ -113,6 +116,8 @@ ExtensionContextMenuModel::ExtensionContextMenuModel(
PopupDelegate* delegate)
: SimpleMenuModel(this),
extension_id_(extension->id()),
+ is_component_(extensions::Manifest::IsComponentLocation(
+ extension->location())),
browser_(browser),
profile_(browser->profile()),
delegate_(delegate),
@@ -121,7 +126,8 @@ ExtensionContextMenuModel::ExtensionContextMenuModel(
InitMenu(extension, button_visibility);
if (profile_->GetPrefs()->GetBoolean(prefs::kExtensionsUIDeveloperMode) &&
- delegate_) {
+ delegate_ &&
+ !is_component_) {
AddSeparator(ui::NORMAL_SEPARATOR);
AddItemWithStringId(INSPECT_POPUP, IDS_EXTENSION_ACTION_INSPECT_POPUP);
}
@@ -129,14 +135,7 @@ ExtensionContextMenuModel::ExtensionContextMenuModel(
ExtensionContextMenuModel::ExtensionContextMenuModel(const Extension* extension,
Browser* browser)
- : SimpleMenuModel(this),
- extension_id_(extension->id()),
- browser_(browser),
- profile_(browser->profile()),
- delegate_(NULL),
- action_type_(NO_ACTION),
- extension_items_count_(0) {
- InitMenu(extension, VISIBLE);
+ : ExtensionContextMenuModel(extension, browser, VISIBLE, nullptr) {
}
bool ExtensionContextMenuModel::IsCommandIdChecked(int command_id) const {
@@ -158,8 +157,11 @@ bool ExtensionContextMenuModel::IsCommandIdEnabled(int command_id) const {
return extensions::OptionsPageInfo::HasOptionsPage(extension);
} else if (command_id == NAME) {
// The NAME links to the Homepage URL. If the extension doesn't have a
- // homepage, we just disable this menu item.
- return extensions::ManifestURL::GetHomepageURL(extension).is_valid();
+ // homepage, we just disable this menu item. We also disable for component
+ // extensions, because it doesn't make sense to link to a webstore page or
+ // chrome://extensions.
+ return extensions::ManifestURL::GetHomepageURL(extension).is_valid() &&
+ !is_component_;
} else if (command_id == INSPECT_POPUP) {
WebContents* web_contents = GetActiveWebContents();
if (!web_contents)
@@ -301,8 +303,11 @@ void ExtensionContextMenuModel::InitMenu(const Extension* extension,
AddItemWithStringId(ALWAYS_RUN, IDS_EXTENSIONS_ALWAYS_RUN);
}
- AddItemWithStringId(CONFIGURE, IDS_EXTENSIONS_OPTIONS_MENU_ITEM);
- AddItem(UNINSTALL, l10n_util::GetStringUTF16(IDS_EXTENSIONS_UNINSTALL));
+ if (!is_component_ || extensions::OptionsPageInfo::HasOptionsPage(extension))
+ AddItemWithStringId(CONFIGURE, IDS_EXTENSIONS_OPTIONS_MENU_ITEM);
+
+ if (!is_component_)
+ AddItem(UNINSTALL, l10n_util::GetStringUTF16(IDS_EXTENSIONS_UNINSTALL));
// Add a toggle visibility (show/hide) if the extension icon is shown on the
// toolbar.
@@ -311,8 +316,10 @@ void ExtensionContextMenuModel::InitMenu(const Extension* extension,
if (visibility_string_id != -1)
AddItemWithStringId(TOGGLE_VISIBILITY, visibility_string_id);
- AddSeparator(ui::NORMAL_SEPARATOR);
- AddItemWithStringId(MANAGE, IDS_MANAGE_EXTENSION);
+ if (!is_component_) {
+ AddSeparator(ui::NORMAL_SEPARATOR);
+ AddItemWithStringId(MANAGE, IDS_MANAGE_EXTENSION);
+ }
}
const Extension* ExtensionContextMenuModel::GetExtension() const {

Powered by Google App Engine
This is Rietveld 408576698