| Index: apps/app_window_contents.cc | 
| diff --git a/apps/app_window_contents.cc b/apps/app_window_contents.cc | 
| index 4f11a10e680439f8163f41e22cbcb60c5d02d8cf..751ccc2d3535152d0e65a6e01c14455e372bb777 100644 | 
| --- a/apps/app_window_contents.cc | 
| +++ b/apps/app_window_contents.cc | 
| @@ -19,6 +19,12 @@ | 
|  | 
| namespace app_window = extensions::api::app_window; | 
|  | 
| +namespace { | 
| + | 
| +const int kUnboundedSize = apps::ShellWindow::SizeConstraints::kUnboundedSize; | 
| + | 
| +} | 
| + | 
| namespace apps { | 
|  | 
| AppWindowContents::AppWindowContents(ShellWindow* host) | 
| @@ -94,6 +100,19 @@ void AppWindowContents::NativeWindowChanged( | 
| dictionary->SetBoolean("maximized", native_app_window->IsMaximized()); | 
| dictionary->SetBoolean("alwaysOnTop", native_app_window->IsAlwaysOnTop()); | 
|  | 
| +  const ShellWindow::SizeConstraints& size_constraints = | 
| +      host_->size_constraints(); | 
| +  gfx::Size min_size = size_constraints.GetMinimumSize(); | 
| +  gfx::Size max_size = size_constraints.GetMaximumSize(); | 
| +  if (min_size.width() != kUnboundedSize) | 
| +    dictionary->SetInteger("minWidth", min_size.width()); | 
| +  if (min_size.height() != kUnboundedSize) | 
| +    dictionary->SetInteger("minHeight", min_size.height()); | 
| +  if (max_size.width() != kUnboundedSize) | 
| +    dictionary->SetInteger("maxWidth", max_size.width()); | 
| +  if (max_size.height() != kUnboundedSize) | 
| +    dictionary->SetInteger("maxHeight", max_size.height()); | 
| + | 
| content::RenderViewHost* rvh = web_contents_->GetRenderViewHost(); | 
| rvh->Send(new ExtensionMsg_MessageInvoke(rvh->GetRoutingID(), | 
| host_->extension_id(), | 
|  |