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..80f5fd0ca269bfba27187f5b4817c66ca88e94a4 100644 |
--- a/chrome/browser/ui/window_sizer/window_sizer.cc |
+++ b/chrome/browser/ui/window_sizer/window_sizer.cc |
@@ -193,11 +193,13 @@ 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; |
+ } else if (browser_ && browser_->host_desktop_type() == |
+ chrome::HOST_DESKTOP_TYPE_ASH) { |
oshima
2013/08/31 00:54:56
This may look odd, but WindowSizerAsh::TestShowSta
sky
2013/09/03 15:58:36
Not sure either.
oshima
2013/09/03 18:15:27
I'll keep this to make sure the logic stays the sa
|
+ GetSavedWindowBounds(bounds, show_state); |
+ } |
#endif |
// See if there's last active window's placement information. |
if (GetLastWindowBounds(bounds, show_state)) |
@@ -213,9 +215,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 +399,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() && |
sky
2013/09/03 15:58:36
Why is this and the next checking ShouldOpenAshOnS
oshima
2013/09/03 18:15:27
My understanding is that this is necessary for win
Mr4D (OOO till 08-26)
2013/09/03 18:21:28
I might be mistaken - but you should not get here
oshima
2013/09/03 18:36:56
Sorry, I didn't get it. What do you mean?
sky
2013/09/03 20:47:31
Isn't the host_desktop_type enough?
|
+ 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(); |
+} |