| Index: chrome/browser/ui/views/location_bar/action_box_button_view.cc
|
| diff --git a/chrome/browser/ui/views/location_bar/action_box_button_view.cc b/chrome/browser/ui/views/location_bar/action_box_button_view.cc
|
| index 6d25cd40e29856b66e76a8fd8ed3e2722d694339..1ab11b04bc6d39ce7286363a70c8a2cf8ff3de49 100644
|
| --- a/chrome/browser/ui/views/location_bar/action_box_button_view.cc
|
| +++ b/chrome/browser/ui/views/location_bar/action_box_button_view.cc
|
| @@ -8,7 +8,11 @@
|
| #include "chrome/app/chrome_command_ids.h"
|
| #include "chrome/browser/command_updater.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| +#include "chrome/browser/extensions/extension_system.h"
|
| +#include "chrome/browser/ui/browser_finder.h"
|
| +#include "chrome/browser/ui/toolbar/action_box_menu_model.h"
|
| #include "chrome/browser/ui/view_ids.h"
|
| +#include "chrome/browser/ui/views/action_box_menu.h"
|
| #include "chrome/browser/ui/views/browser_dialogs.h"
|
| #include "grit/generated_resources.h"
|
| #include "grit/theme_resources.h"
|
| @@ -31,9 +35,10 @@ const SkColor kPushedBorderColor = SkColorSetRGB(191, 191, 191);
|
| } // namespace
|
|
|
|
|
| -ActionBoxButtonView::ActionBoxButtonView(ExtensionService* extension_service)
|
| +ActionBoxButtonView::ActionBoxButtonView(Profile* profile)
|
| : views::MenuButton(NULL, string16(), this, false),
|
| - extension_service_(extension_service) {
|
| + profile_(profile),
|
| + bookmark_state_(false) {
|
| set_id(VIEW_ID_ACTION_BOX_BUTTON);
|
| SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_ACTION_BOX_BUTTON));
|
| SetIcon(*ui::ResourceBundle::GetSharedInstance().GetBitmapNamed(
|
| @@ -67,6 +72,10 @@ SkColor ActionBoxButtonView::GetBorderColor() {
|
| }
|
| }
|
|
|
| +void ActionBoxButtonView::SetBookmarkState(bool on) {
|
| + bookmark_state_ = on;
|
| +}
|
| +
|
| void ActionBoxButtonView::GetAccessibleState(ui::AccessibleViewState* state) {
|
| MenuButton::GetAccessibleState(state);
|
| state->name = l10n_util::GetStringUTF16(IDS_ACCNAME_ACTION_BOX_BUTTON);
|
| @@ -74,5 +83,18 @@ void ActionBoxButtonView::GetAccessibleState(ui::AccessibleViewState* state) {
|
|
|
| void ActionBoxButtonView::OnMenuButtonClicked(View* source,
|
| const gfx::Point& point) {
|
| - // TODO(yefim): Implement menu here.
|
| + ExtensionService* extension_service =
|
| + ExtensionSystem::Get(profile_)->extension_service();
|
| + if (!extension_service)
|
| + return;
|
| +
|
| + Browser* browser = browser::FindBrowserWithProfile(profile_);
|
| + if (!browser)
|
| + return;
|
| +
|
| + ActionBoxMenuModel model(extension_service);
|
| + action_box_menu_.reset(new ActionBoxMenu(browser, &model, bookmark_state_));
|
| + action_box_menu_->Init();
|
| + action_box_menu_->RunMenu(this);
|
| + action_box_menu_.reset(NULL);
|
| }
|
|
|