| Index: chrome/browser/ui/window_sizer/window_sizer.cc
|
| diff --git a/chrome/browser/ui/window_sizer/window_sizer.cc b/chrome/browser/ui/window_sizer/window_sizer.cc
|
| index a2c6635bb89ea2a7cb36bcbbd8e6569934ab5346..1e689002f2a246e2eb89fb4037373041ddf28d9f 100644
|
| --- a/chrome/browser/ui/window_sizer/window_sizer.cc
|
| +++ b/chrome/browser/ui/window_sizer/window_sizer.cc
|
| @@ -193,11 +193,10 @@ void WindowSizer::DetermineWindowBoundsAndShowState(
|
| if (bounds->IsEmpty()) {
|
| #if defined(USE_ASH)
|
| // See if ash should decide the window placement.
|
| - // TODO(beng): insufficient but currently necessary.
|
| - // http://crbug.com/133312
|
| - if (chrome::ShouldOpenAshOnStartup() &&
|
| - GetBoundsOverrideAsh(bounds, show_state))
|
| + if (IsTabbedBrowserInAsh()) {
|
| + GetBoundsOverrideAsh(bounds, show_state);
|
| return;
|
| + }
|
| #endif
|
| // See if there's last active window's placement information.
|
| if (GetLastWindowBounds(bounds, show_state))
|
| @@ -213,9 +212,7 @@ void WindowSizer::DetermineWindowBoundsAndShowState(
|
| // In case of a popup with an 'unspecified' location in ash, we are
|
| // looking for a good screen location. We are interpreting (0,0) as an
|
| // unspecified location.
|
| - if (chrome::ShouldOpenAshOnStartup() &&
|
| - browser_ && browser_->is_type_popup() &&
|
| - bounds->x() == 0 && bounds->y() == 0) {
|
| + if (IsPopupBrowserInAsh() && bounds->origin().IsOrigin()) {
|
| *bounds = ChromeShellDelegate::instance()->window_positioner()->
|
| GetPopupPosition(*bounds);
|
| return;
|
| @@ -399,3 +396,19 @@ ui::WindowShowState WindowSizer::GetWindowDefaultShowState() const {
|
| // Otherwise we use the default which can be overridden later on.
|
| return ui::SHOW_STATE_DEFAULT;
|
| }
|
| +
|
| +bool WindowSizer::IsTabbedBrowserInAsh() const {
|
| + // TODO(beng): insufficient but currently necessary. http://crbug.com/133312
|
| + return chrome::ShouldOpenAshOnStartup() &&
|
| + browser_ &&
|
| + browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH &&
|
| + browser_->is_type_tabbed();
|
| +}
|
| +
|
| +bool WindowSizer::IsPopupBrowserInAsh() const {
|
| + // TODO(beng): insufficient but currently necessary. http://crbug.com/133312
|
| + return chrome::ShouldOpenAshOnStartup() &&
|
| + browser_ &&
|
| + browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH &&
|
| + browser_->is_type_popup();
|
| +}
|
|
|