| 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 3437888334d7852374997fdc9cc3925cdd9b6d1e..248a5d8cb3d4d40bd5ddbdd15952372278cc3f3b 100644
|
| --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
|
| +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
|
| @@ -13,6 +13,7 @@
|
| #include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/browser/command_updater.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/search/search.h"
|
| #include "chrome/browser/themes/theme_service.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_command_controller.h"
|
| @@ -35,6 +36,7 @@
|
| #include "chrome/browser/ui/views/toolbar/browser_actions_container.h"
|
| #include "chrome/browser/ui/views/toolbar/home_button.h"
|
| #include "chrome/browser/ui/views/toolbar/reload_button.h"
|
| +#include "chrome/browser/ui/views/toolbar/site_chip_view.h"
|
| #include "chrome/browser/ui/views/toolbar/toolbar_button.h"
|
| #include "chrome/browser/ui/views/toolbar/wrench_menu.h"
|
| #include "chrome/browser/ui/views/toolbar/wrench_toolbar_button.h"
|
| @@ -119,6 +121,7 @@ ToolbarView::ToolbarView(Browser* browser)
|
| reload_(NULL),
|
| home_(NULL),
|
| location_bar_(NULL),
|
| + site_chip_view_(NULL),
|
| browser_actions_(NULL),
|
| app_menu_(NULL),
|
| browser_(browser) {
|
| @@ -223,6 +226,10 @@ void ToolbarView::Init() {
|
| AddChildView(reload_);
|
| AddChildView(home_);
|
| AddChildView(location_bar_);
|
| + if (chrome::ShouldDisplayOriginChip()) {
|
| + site_chip_view_ = new SiteChipView(this);
|
| + AddChildView(site_chip_view_);
|
| + }
|
| AddChildView(browser_actions_);
|
| AddChildView(app_menu_);
|
|
|
| @@ -234,6 +241,8 @@ void ToolbarView::Init() {
|
| UpdateAppMenuState();
|
|
|
| location_bar_->Init();
|
| + if (site_chip_view_)
|
| + site_chip_view_->Init();
|
| show_home_button_.Init(prefs::kShowHomeButton,
|
| browser_->profile()->GetPrefs(),
|
| base::Bind(&ToolbarView::OnShowHomeButtonChanged,
|
| @@ -254,6 +263,8 @@ void ToolbarView::Init() {
|
| void ToolbarView::Update(WebContents* tab) {
|
| if (location_bar_)
|
| location_bar_->Update(tab);
|
| + if (site_chip_view_)
|
| + site_chip_view_->Update(tab);
|
|
|
| if (browser_actions_)
|
| browser_actions_->RefreshBrowserActionViews();
|
| @@ -475,6 +486,7 @@ gfx::Size ToolbarView::GetPreferredSize() {
|
| (show_home_button_.GetValue() ?
|
| (home_->GetPreferredSize().width() + button_spacing) : 0) +
|
| location_bar_->GetPreferredSize().width() +
|
| + (site_chip_view_ ? site_chip_view_->GetPreferredSize().width() : 0) +
|
| browser_actions_->GetPreferredSize().width() +
|
| app_menu_->GetPreferredSize().width() + kRightEdgeSpacing;
|
| gfx::ImageSkia* normal_background =
|
| @@ -541,18 +553,31 @@ void ToolbarView::Layout() {
|
| }
|
|
|
| int browser_actions_width = browser_actions_->GetPreferredSize().width();
|
| + int site_chip_width =
|
| + site_chip_view_ ? site_chip_view_->GetPreferredSize().width() : 0;
|
| int app_menu_width = app_menu_->GetPreferredSize().width();
|
| int location_x = home_->x() + home_->width() + kStandardSpacing;
|
| int available_width = std::max(0, width() - kRightEdgeSpacing -
|
| app_menu_width - browser_actions_width - location_x);
|
|
|
| + // Cap site chip width at 1/2 the size available to the location bar.
|
| + site_chip_width = std::min(site_chip_width, available_width / 2);
|
| + available_width -= site_chip_width;
|
| +
|
| int location_height = location_bar_->GetPreferredSize().height();
|
| int location_y = (height() - location_height + 1) / 2;
|
| location_bar_->SetBounds(location_x, location_y, std::max(available_width, 0),
|
| location_height);
|
|
|
| - browser_actions_->SetBounds(location_bar_->x() + location_bar_->width(), 0,
|
| + int browser_actions_x = location_bar_->x() + location_bar_->width();
|
| + if (site_chip_view_) {
|
| + site_chip_view_->SetBounds(location_bar_->x() + location_bar_->width(),
|
| + child_y, site_chip_width, child_height);
|
| + browser_actions_x += site_chip_width;
|
| + }
|
| + browser_actions_->SetBounds(browser_actions_x, 0,
|
| browser_actions_width, height());
|
| +
|
| // The browser actions need to do a layout explicitly, because when an
|
| // extension is loaded/unloaded/changed, BrowserActionContainer removes and
|
| // re-adds everything, regardless of whether it has a page action. For a
|
|
|