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

Unified Diff: chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc

Issue 186343002: Create windows for new app window bounds API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed nit Created 6 years, 9 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
Index: chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc
diff --git a/chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc b/chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc
index ebba22de5c1a2bbae9db1df2723b17aadf5484e9..03b7d715a86528119801fe1076e7d379c418501b 100644
--- a/chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc
+++ b/chrome/browser/extensions/api/app_current_window_internal/app_current_window_internal_api.cc
@@ -133,20 +133,25 @@ bool AppCurrentWindowInternalSetBoundsFunction::RunWithWindow(
AppWindow* window) {
// Start with the current bounds, and change any values that are specified in
// the incoming parameters.
- gfx::Rect bounds = window->GetClientBounds();
+ gfx::Rect window_bounds = window->GetBaseWindow()->GetBounds();
+ gfx::Rect content_bounds = window->GetClientBounds();
+
+ // We need to maintain backcompatibility with a bug on Windows and ChromeOS,
+ // which returns the position of the window but the size of the content.
scoped_ptr<SetBounds::Params> params(SetBounds::Params::Create(*args_));
CHECK(params.get());
if (params->bounds.left)
- bounds.set_x(*(params->bounds.left));
+ window_bounds.set_x(*(params->bounds.left));
if (params->bounds.top)
- bounds.set_y(*(params->bounds.top));
+ window_bounds.set_y(*(params->bounds.top));
if (params->bounds.width)
- bounds.set_width(*(params->bounds.width));
+ content_bounds.set_width(*(params->bounds.width));
if (params->bounds.height)
- bounds.set_height(*(params->bounds.height));
+ content_bounds.set_height(*(params->bounds.height));
- bounds.Inset(-window->GetBaseWindow()->GetFrameInsets());
- window->GetBaseWindow()->SetBounds(bounds);
+ content_bounds.Inset(-window->GetBaseWindow()->GetFrameInsets());
+ window_bounds.set_size(content_bounds.size());
+ window->GetBaseWindow()->SetBounds(window_bounds);
return true;
}
@@ -159,10 +164,10 @@ bool AppCurrentWindowInternalSetMinWidthFunction::RunWithWindow(
scoped_ptr<SetMinWidth::Params> params(SetMinWidth::Params::Create(*args_));
CHECK(params.get());
- gfx::Size min_size = window->GetBaseWindow()->GetMinimumSize();
+ gfx::Size min_size = window->GetBaseWindow()->GetContentMinimumSize();
min_size.set_width(params->min_width.get() ?
*(params->min_width) : kUnboundedSize);
- window->SetMinimumSize(min_size);
+ window->SetContentMinimumSize(min_size);
return true;
}
@@ -175,10 +180,10 @@ bool AppCurrentWindowInternalSetMinHeightFunction::RunWithWindow(
scoped_ptr<SetMinHeight::Params> params(SetMinHeight::Params::Create(*args_));
CHECK(params.get());
- gfx::Size min_size = window->GetBaseWindow()->GetMinimumSize();
+ gfx::Size min_size = window->GetBaseWindow()->GetContentMinimumSize();
min_size.set_height(params->min_height.get() ?
*(params->min_height) : kUnboundedSize);
- window->SetMinimumSize(min_size);
+ window->SetContentMinimumSize(min_size);
return true;
}
@@ -191,10 +196,10 @@ bool AppCurrentWindowInternalSetMaxWidthFunction::RunWithWindow(
scoped_ptr<SetMaxWidth::Params> params(SetMaxWidth::Params::Create(*args_));
CHECK(params.get());
- gfx::Size max_size = window->GetBaseWindow()->GetMaximumSize();
+ gfx::Size max_size = window->GetBaseWindow()->GetContentMaximumSize();
max_size.set_width(params->max_width.get() ?
*(params->max_width) : kUnboundedSize);
- window->SetMaximumSize(max_size);
+ window->SetContentMaximumSize(max_size);
return true;
}
@@ -207,10 +212,10 @@ bool AppCurrentWindowInternalSetMaxHeightFunction::RunWithWindow(
scoped_ptr<SetMaxHeight::Params> params(SetMaxHeight::Params::Create(*args_));
CHECK(params.get());
- gfx::Size max_size = window->GetBaseWindow()->GetMaximumSize();
+ gfx::Size max_size = window->GetBaseWindow()->GetContentMaximumSize();
max_size.set_height(params->max_height.get() ?
*(params->max_height) : kUnboundedSize);
- window->SetMaximumSize(max_size);
+ window->SetContentMaximumSize(max_size);
return true;
}
« no previous file with comments | « chrome/browser/apps/app_window_browsertest.cc ('k') | chrome/browser/extensions/api/app_window/app_window_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698