1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "apps/shell/browser/default_shell_app_window_controller.h" 6 7 #include "apps/shell/browser/shell_app_window.h" 8 #include "apps/shell/browser/shell_desktop_controller.h" 9 #include "base/logging.h" 10 #include "ui/aura/window.h" 11 #include "ui/aura/window_tree_host.h" 12 13 namespace apps { 14 DefaultShellAppWindowController(ShellDesktopController * shell_desktop_controller)15DefaultShellAppWindowController::DefaultShellAppWindowController( 16 ShellDesktopController* shell_desktop_controller) 17 : shell_desktop_controller_(shell_desktop_controller) { 18 DCHECK(shell_desktop_controller_); 19 } 20 ~DefaultShellAppWindowController()21DefaultShellAppWindowController::~DefaultShellAppWindowController() { 22 // The app window must be explicitly closed before desktop teardown. 23 DCHECK(!app_window_); 24 } 25 CreateAppWindow(content::BrowserContext * context)26ShellAppWindow* DefaultShellAppWindowController::CreateAppWindow( 27 content::BrowserContext* context) { 28 aura::Window* root_window = shell_desktop_controller_->host()->window(); 29 30 app_window_.reset(new ShellAppWindow); 31 app_window_->Init(context, root_window->bounds().size()); 32 33 // Attach the web contents view to our window hierarchy. 34 aura::Window* content = app_window_->GetNativeWindow(); 35 root_window->AddChild(content); 36 content->Show(); 37 38 return app_window_.get(); 39 } 40 CloseAppWindows()41void DefaultShellAppWindowController::CloseAppWindows() { 42 app_window_.reset(); 43 } 44 45 } // namespace apps 46