| Index: chrome/browser/ui/views/toolbar/toolbar_view.cc
|
| diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc
|
| index d057283c81ffb2cfcc330004b05a0b88923ba366..a94a409cdd249c94800faa69864940787929f163 100644
|
| --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
|
| +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
|
| @@ -14,6 +14,7 @@
|
| #include "chrome/app/chrome_command_ids.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/browser/command_updater.h"
|
| +#include "chrome/browser/extensions/extension_commands_global_registry.h"
|
| #include "chrome/browser/extensions/extension_util.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/themes/theme_properties.h"
|
| @@ -121,18 +122,15 @@ const char ToolbarView::kViewClassName[] = "ToolbarView";
|
| // ToolbarView, public:
|
|
|
| ToolbarView::ToolbarView(Browser* browser)
|
| - : back_(nullptr),
|
| - forward_(nullptr),
|
| - reload_(nullptr),
|
| - home_(nullptr),
|
| - location_bar_(nullptr),
|
| - browser_actions_(nullptr),
|
| - app_menu_button_(nullptr),
|
| + : back_(NULL),
|
| + forward_(NULL),
|
| + reload_(NULL),
|
| + home_(NULL),
|
| + location_bar_(NULL),
|
| + browser_actions_(NULL),
|
| + app_menu_button_(NULL),
|
| browser_(browser),
|
| - badge_controller_(browser->profile(), this),
|
| - display_mode_(browser->SupportsWindowFeature(Browser::FEATURE_TABSTRIP)
|
| - ? DISPLAYMODE_NORMAL
|
| - : DISPLAYMODE_LOCATION) {
|
| + badge_controller_(browser->profile(), this) {
|
| set_id(VIEW_ID_TOOLBAR);
|
|
|
| SetEventTargeter(
|
| @@ -144,6 +142,10 @@ ToolbarView::ToolbarView(Browser* browser)
|
| chrome::AddCommandObserver(browser_, IDC_HOME, this);
|
| chrome::AddCommandObserver(browser_, IDC_LOAD_NEW_TAB_PAGE, this);
|
|
|
| + display_mode_ = DISPLAYMODE_LOCATION;
|
| + if (browser->SupportsWindowFeature(Browser::FEATURE_TABSTRIP))
|
| + display_mode_ = DISPLAYMODE_NORMAL;
|
| +
|
| if (OutdatedUpgradeBubbleView::IsAvailable()) {
|
| registrar_.Add(this, chrome::NOTIFICATION_OUTDATED_INSTALL,
|
| content::NotificationService::AllSources());
|
| @@ -163,16 +165,7 @@ ToolbarView::~ToolbarView() {
|
| }
|
|
|
| void ToolbarView::Init() {
|
| - location_bar_ =
|
| - new LocationBarView(browser_, browser_->profile(),
|
| - browser_->command_controller()->command_updater(),
|
| - this, !is_display_mode_normal());
|
| -
|
| - if (!is_display_mode_normal()) {
|
| - AddChildView(location_bar_);
|
| - location_bar_->Init();
|
| - return;
|
| - }
|
| + GetWidget()->AddObserver(this);
|
|
|
| back_ = new BackButton(
|
| browser_->profile(), this,
|
| @@ -196,6 +189,11 @@ void ToolbarView::Init() {
|
| forward_->set_id(VIEW_ID_FORWARD_BUTTON);
|
| forward_->Init();
|
|
|
| + location_bar_ = new LocationBarView(
|
| + browser_, browser_->profile(),
|
| + browser_->command_controller()->command_updater(), this,
|
| + display_mode_ == DISPLAYMODE_LOCATION);
|
| +
|
| reload_ = new ReloadButton(browser_->profile(),
|
| browser_->command_controller()->command_updater());
|
| reload_->set_triggerable_event_flags(
|
| @@ -276,6 +274,19 @@ void ToolbarView::Init() {
|
| }
|
| }
|
|
|
| +void ToolbarView::OnWidgetActivationChanged(views::Widget* widget,
|
| + bool active) {
|
| + extensions::ExtensionCommandsGlobalRegistry* registry =
|
| + extensions::ExtensionCommandsGlobalRegistry::Get(browser_->profile());
|
| + if (active) {
|
| + registry->set_registry_for_active_window(
|
| + browser_actions_->extension_keybinding_registry());
|
| + } else if (registry->registry_for_active_window() ==
|
| + browser_actions_->extension_keybinding_registry()) {
|
| + registry->set_registry_for_active_window(nullptr);
|
| + }
|
| +}
|
| +
|
| void ToolbarView::Update(WebContents* tab) {
|
| if (location_bar_)
|
| location_bar_->Update(tab);
|
| @@ -329,6 +340,12 @@ void ToolbarView::OnBubbleCreatedForAnchor(views::View* anchor_view,
|
| }
|
| }
|
|
|
| +void ToolbarView::ExecuteExtensionCommand(
|
| + const extensions::Extension* extension,
|
| + const extensions::Command& command) {
|
| + browser_actions_->ExecuteExtensionCommand(extension, command);
|
| +}
|
| +
|
| int ToolbarView::GetMaxBrowserActionsWidth() const {
|
| // The browser actions container is allowed to grow, but only up until the
|
| // omnibox reaches its minimum size. So its maximum allowed width is its
|
| @@ -483,7 +500,7 @@ gfx::Size ToolbarView::GetMinimumSize() const {
|
|
|
| void ToolbarView::Layout() {
|
| // If we have not been initialized yet just do nothing.
|
| - if (!location_bar_)
|
| + if (back_ == NULL)
|
| return;
|
|
|
| if (!is_display_mode_normal()) {
|
| @@ -592,8 +609,7 @@ void ToolbarView::Layout() {
|
| }
|
|
|
| void ToolbarView::OnThemeChanged() {
|
| - if (is_display_mode_normal())
|
| - LoadImages();
|
| + LoadImages();
|
| }
|
|
|
| const char* ToolbarView::GetClassName() const {
|
|
|