| Index: chrome/browser/ui/bookmarks/bookmark_utils.cc
|
| diff --git a/chrome/browser/ui/bookmarks/bookmark_utils.cc b/chrome/browser/ui/bookmarks/bookmark_utils.cc
|
| index 132bfd424a382028d346f6ca4e2a0477b560b899..fd188cbb56d2f580b134469ea8e02219cb212211 100644
|
| --- a/chrome/browser/ui/bookmarks/bookmark_utils.cc
|
| +++ b/chrome/browser/ui/bookmarks/bookmark_utils.cc
|
| @@ -24,6 +24,8 @@
|
| #include "chrome/common/url_constants.h"
|
| #include "components/user_prefs/user_prefs.h"
|
| #include "content/public/browser/web_contents.h"
|
| +#include "extensions/browser/extension_registry.h"
|
| +#include "extensions/common/extension_set.h"
|
| #include "grit/chromium_strings.h"
|
| #include "grit/generated_resources.h"
|
| #include "net/base/net_util.h"
|
| @@ -295,15 +297,40 @@ bool ShouldShowAppsShortcutInBookmarkBar(
|
| profile->GetPrefs()->GetBoolean(prefs::kShowAppsShortcutInBookmarkBar);
|
| }
|
|
|
| -BookmarkShortcutDisposition GetBookmarkShortcutDisposition(
|
| - const extensions::CommandService* command_service,
|
| - const extensions::Extension* extension) {
|
| - if (command_service->OverridesBookmarkShortcut(extension))
|
| - return BOOKMARK_SHORTCUT_DISPOSITION_OVERRIDDEN;
|
| +BookmarkShortcutDisposition GetBookmarkShortcutDisposition(Profile* profile) {
|
| + extensions::CommandService* command_service =
|
| + extensions::CommandService::Get(profile);
|
| +
|
| + extensions::ExtensionRegistry* registry =
|
| + extensions::ExtensionRegistry::Get(profile);
|
| + if (!registry)
|
| + return BOOKMARK_SHORTCUT_DISPOSITION_UNCHANGED;
|
| +
|
| + const extensions::ExtensionSet& extension_set =
|
| + registry->enabled_extensions();
|
| +
|
| + // This flag tracks whether any extension wants the disposition to be
|
| + // removed.
|
| + bool removed = false;
|
| + for (extensions::ExtensionSet::const_iterator i = extension_set.begin();
|
| + i != extension_set.end();
|
| + ++i) {
|
| + // Use the overridden disposition if any extension wants it.
|
| + if (command_service->OverridesBookmarkShortcut(*i))
|
| + return BOOKMARK_SHORTCUT_DISPOSITION_OVERRIDDEN;
|
| +
|
| + if (!removed && extensions::CommandService::RemovesBookmarkShortcut(*i))
|
| + removed = true;
|
| + }
|
| +
|
| + if (removed)
|
| + return BOOKMARK_SHORTCUT_DISPOSITION_REMOVED;
|
| + return BOOKMARK_SHORTCUT_DISPOSITION_UNCHANGED;
|
| +}
|
|
|
| - return extensions::CommandService::RemovesBookmarkShortcut(extension) ?
|
| - BOOKMARK_SHORTCUT_DISPOSITION_REMOVED :
|
| - BOOKMARK_SHORTCUT_DISPOSITION_UNCHANGED;
|
| +bool ShouldShowBookmarkPageMenuItem(Profile* profile) {
|
| + return GetBookmarkShortcutDisposition(profile) !=
|
| + BOOKMARK_SHORTCUT_DISPOSITION_REMOVED;
|
| }
|
|
|
| } // namespace chrome
|
|
|