Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3633)

Unified Diff: chrome/browser/ui/window_sizer/window_sizer.cc

Issue 23567007: More cleanup in window_sizer/window_sizer_ash (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix build Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/window_sizer/window_sizer.h ('k') | chrome/browser/ui/window_sizer/window_sizer_ash.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..c783b7a3d053248eae533d2dff49499ec83b6db7 100644
--- a/chrome/browser/ui/window_sizer/window_sizer.cc
+++ b/chrome/browser/ui/window_sizer/window_sizer.cc
@@ -98,10 +98,11 @@ class DefaultStateProvider : public WindowSizer::StateProvider {
if (browser_ && browser_->window()) {
window = browser_->window();
} else {
- // This code is only ran on the native desktop (on the ash desktop,
- // GetBoundsOverrideAsh should take over below before this is reached).
- // TODO(gab): This code should go in a native desktop specific window
- // sizer as part of fixing crbug.com/175812.
+ // This code is only ran on the native desktop (on the ash
+ // desktop, GetTabbedBrowserBoundsAsh should take over below
+ // before this is reached). TODO(gab): This code should go in a
+ // native desktop specific window sizer as part of fixing
+ // crbug.com/175812.
const BrowserList* native_browser_list =
BrowserList::GetInstance(chrome::HOST_DESKTOP_TYPE_NATIVE);
for (BrowserList::const_reverse_iterator it =
@@ -193,11 +194,17 @@ 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()) {
+ GetTabbedBrowserBoundsAsh(bounds, show_state);
return;
+ } else if (chrome::ShouldOpenAshOnStartup() &&
+ browser_ && browser_->host_desktop_type() ==
+ chrome::HOST_DESKTOP_TYPE_ASH) {
+ // Saved bounds's show state takes precedence over one in last
+ // bounds in ash. If you have a question or an issue, please
+ // contact oshima@chromium.org.
+ GetSavedWindowBounds(bounds, show_state);
+ }
#endif
// See if there's last active window's placement information.
if (GetLastWindowBounds(bounds, show_state))
@@ -213,9 +220,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 +404,21 @@ ui::WindowShowState WindowSizer::GetWindowDefaultShowState() const {
// Otherwise we use the default which can be overridden later on.
return ui::SHOW_STATE_DEFAULT;
}
+
+#if defined(USE_ASH)
+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();
+}
+#endif
« no previous file with comments | « chrome/browser/ui/window_sizer/window_sizer.h ('k') | chrome/browser/ui/window_sizer/window_sizer_ash.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698