| Index: chrome/browser/ui/extensions/shell_window.cc | 
| diff --git a/chrome/browser/ui/extensions/shell_window.cc b/chrome/browser/ui/extensions/shell_window.cc | 
| index e15731934b9c19c8d614463d37015ea9232bbf92..7413de3ca15d59a37f9454bda1ec61630c4cc734 100644 | 
| --- a/chrome/browser/ui/extensions/shell_window.cc | 
| +++ b/chrome/browser/ui/extensions/shell_window.cc | 
| @@ -464,8 +464,28 @@ void ShellWindow::AddMessageToDevToolsConsole(ConsoleMessageLevel level, | 
| rvh->GetRoutingID(), level, message)); | 
| } | 
|  | 
| -void ShellWindow::SaveWindowPosition() | 
| -{ | 
| +void ShellWindow::SendBoundsUpdate() { | 
| +  if (!native_window_ || !web_contents_) | 
| +    return; | 
| +  gfx::Rect bounds = native_window_->GetBounds(); | 
| +  content::RenderViewHost* rvh = web_contents_->GetRenderViewHost(); | 
| +  ListValue args; | 
| +  DictionaryValue* update = new DictionaryValue(); | 
| +  args.Append(update); | 
| +  update->SetInteger("left", bounds.x()); | 
| +  update->SetInteger("top", bounds.y()); | 
| +  update->SetInteger("width", bounds.width()); | 
| +  update->SetInteger("height", bounds.height()); | 
| +  rvh->Send(new ExtensionMsg_MessageInvoke(rvh->GetRoutingID(), | 
| +                                           extension_->id(), | 
| +                                           "updateAppWindowBounds", | 
| +                                           args, | 
| +                                           GURL(), | 
| +                                           false)); | 
| +} | 
| + | 
| +void ShellWindow::SaveWindowPosition() { | 
| +  SendBoundsUpdate(); | 
| if (window_key_.empty()) | 
| return; | 
|  | 
|  |