Index: extensions/shell/browser/shell_desktop_controller.cc |
diff --git a/extensions/shell/browser/shell_desktop_controller.cc b/extensions/shell/browser/shell_desktop_controller.cc |
index 6ab9bac6fbd616379c6786efd72ccfe62f5e99a4..48696bddb2904a944487ee9b8f1b6d104f8edb5e 100644 |
--- a/extensions/shell/browser/shell_desktop_controller.cc |
+++ b/extensions/shell/browser/shell_desktop_controller.cc |
@@ -5,7 +5,7 @@ |
#include "extensions/shell/browser/shell_desktop_controller.h" |
#include "base/command_line.h" |
-#include "extensions/shell/browser/shell_app_window_controller.h" |
+#include "extensions/shell/browser/shell_app_window.h" |
#include "extensions/shell/common/switches.h" |
#include "ui/aura/client/cursor_client.h" |
#include "ui/aura/client/default_capture_client.h" |
@@ -151,13 +151,9 @@ class AppsFocusRules : public wm::BaseFocusRules { |
DISALLOW_COPY_AND_ASSIGN(AppsFocusRules); |
}; |
-ShellDesktopController* g_instance = NULL; |
- |
} // namespace |
ShellDesktopController::ShellDesktopController() { |
- CHECK(!g_instance) << "ShellDesktopController already exists"; |
- |
#if defined(OS_CHROMEOS) |
chromeos::DBusThreadManager::Get()->GetPowerManagerClient()-> |
AddObserver(this); |
@@ -168,13 +164,10 @@ ShellDesktopController::ShellDesktopController() { |
#endif |
CreateRootWindow(); |
- |
- g_instance = this; |
} |
ShellDesktopController::~ShellDesktopController() { |
- app_window_controller_.reset(); |
- g_instance = NULL; |
+ app_window_.reset(); |
DestroyRootWindow(); |
#if defined(OS_CHROMEOS) |
chromeos::DBusThreadManager::Get()->GetPowerManagerClient()-> |
@@ -182,30 +175,28 @@ ShellDesktopController::~ShellDesktopController() { |
#endif |
} |
-// static |
-ShellDesktopController* ShellDesktopController::instance() { |
- return g_instance; |
-} |
- |
-void ShellDesktopController::SetAppWindowController( |
- ShellAppWindowController* app_window_controller) { |
- app_window_controller_.reset(app_window_controller); |
+aura::WindowTreeHost* ShellDesktopController::GetHost() { |
+ return host_.get(); |
} |
ShellAppWindow* ShellDesktopController::CreateAppWindow( |
content::BrowserContext* context, |
const Extension* extension) { |
- return app_window_controller_->CreateAppWindow(context, extension); |
-} |
+ aura::Window* root_window = GetHost()->window(); |
-void ShellDesktopController::CloseAppWindows() { |
- if (app_window_controller_) |
- app_window_controller_->CloseAppWindows(); |
+ app_window_.reset(new ShellAppWindow); |
+ app_window_->Init(context, extension, root_window->bounds().size()); |
+ |
+ // Attach the web contents view to our window hierarchy. |
+ aura::Window* content = app_window_->GetNativeWindow(); |
+ root_window->AddChild(content); |
+ content->Show(); |
+ |
+ return app_window_.get(); |
} |
-void ShellDesktopController::SetDisplayWorkAreaInsets( |
- const gfx::Insets& insets) { |
- test_screen_->SetWorkAreaInsets(insets); |
+void ShellDesktopController::CloseAppWindows() { |
+ app_window_.reset(); |
} |
aura::Window* ShellDesktopController::GetDefaultParent( |
@@ -243,7 +234,7 @@ void ShellDesktopController::OnHostCloseRequested( |
void ShellDesktopController::InitWindowManager() { |
wm::FocusController* focus_controller = |
- new wm::FocusController(CreateFocusRules()); |
+ new wm::FocusController(new AppsFocusRules()); |
aura::client::SetFocusClient(host_->window(), focus_controller); |
host_->window()->AddPreTargetHandler(focus_controller); |
aura::client::SetActivationClient(host_->window(), focus_controller); |
@@ -277,10 +268,6 @@ void ShellDesktopController::InitWindowManager() { |
#endif |
} |
-wm::FocusRules* ShellDesktopController::CreateFocusRules() { |
- return new AppsFocusRules(); |
-} |
- |
void ShellDesktopController::CreateRootWindow() { |
// Set up basic pieces of ui::wm. |
gfx::Size size; |