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

Unified Diff: wm/shell/content_client/shell_browser_main_parts.cc

Issue 11485006: Add window manager component. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Push gfx::AcceleratedWidget usage into platform specific code. Created 7 years, 10 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: wm/shell/content_client/shell_browser_main_parts.cc
diff --git a/ash/shell/content_client/shell_browser_main_parts.cc b/wm/shell/content_client/shell_browser_main_parts.cc
similarity index 55%
copy from ash/shell/content_client/shell_browser_main_parts.cc
copy to wm/shell/content_client/shell_browser_main_parts.cc
index afd91477cd896b789241dbbb636bd8afc4d224dc..675b6b7e5af4e85dce7566b62b52ff8e99eb2e70 100644
--- a/ash/shell/content_client/shell_browser_main_parts.cc
+++ b/wm/shell/content_client/shell_browser_main_parts.cc
@@ -1,35 +1,20 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "ash/shell/content_client/shell_browser_main_parts.h"
+#include "wm/shell/content_client/shell_browser_main_parts.h"
#include "ash/desktop_background/desktop_background_controller.h"
#include "ash/shell.h"
-#include "ash/shell/shell_delegate_impl.h"
#include "ash/shell/window_watcher.h"
-#include "base/bind.h"
-#include "base/command_line.h"
-#include "base/i18n/icu_util.h"
-#include "base/message_loop.h"
-#include "base/string_number_conversions.h"
-#include "base/threading/thread.h"
-#include "base/threading/thread_restrictions.h"
-#include "content/public/common/content_switches.h"
#include "content/shell/shell_browser_context.h"
-#include "googleurl/src/gurl.h"
-#include "net/base/net_module.h"
-#include "ui/aura/client/stacking_client.h"
#include "ui/aura/env.h"
#include "ui/aura/root_window.h"
-#include "ui/aura/window.h"
#include "ui/base/resource/resource_bundle.h"
-#include "ui/base/ui_base_paths.h"
-#include "ui/compositor/compositor.h"
-#include "ui/compositor/test/compositor_test_support.h"
-#include "ui/gfx/screen.h"
-#include "ui/views/focus/accelerator_handler.h"
#include "ui/views/test/test_views_delegate.h"
+#include "wm/foreign_test_window.h"
+#include "wm/gpu/foreign_window_texture_factory.h"
+#include "wm/shell/shell_delegate_impl.h"
#if defined(OS_LINUX)
#include "ui/base/touch/touch_factory.h"
@@ -42,6 +27,11 @@
namespace ash {
namespace shell {
void InitWindowTypeLauncher();
+} // namespace shell
+} // namespace ash
+
+namespace wm {
+namespace shell {
namespace {
class ShellViewsDelegate : public views::TestViewsDelegate {
@@ -54,19 +44,10 @@ class ShellViewsDelegate : public views::TestViewsDelegate {
views::Widget* widget) OVERRIDE {
return ash::Shell::GetInstance()->CreateDefaultNonClientFrameView(widget);
}
- virtual bool UseTransparentWindows() const OVERRIDE {
+ bool UseTransparentWindows() const OVERRIDE {
// Ash uses transparent window frames.
return true;
}
- virtual void OnBeforeWidgetInit(
- views::Widget::InitParams* params,
- views::internal::NativeWidgetDelegate* delegate) OVERRIDE {
- if (params->native_widget)
- return;
-
- if (!params->parent && !params->context && params->top_level)
- params->context = Shell::GetPrimaryRootWindow();
- }
private:
DISALLOW_COPY_AND_ASSIGN(ShellViewsDelegate);
@@ -76,20 +57,17 @@ class ShellViewsDelegate : public views::TestViewsDelegate {
ShellBrowserMainParts::ShellBrowserMainParts(
const content::MainFunctionParams& parameters)
- : BrowserMainParts(),
- delegate_(NULL) {
+ : BrowserMainParts() {
}
ShellBrowserMainParts::~ShellBrowserMainParts() {
}
-#if !defined(OS_MACOSX)
void ShellBrowserMainParts::PreMainMessageLoopStart() {
#if defined(OS_LINUX)
ui::TouchFactory::SetTouchDeviceListFromCommandLine();
#endif
}
-#endif
void ShellBrowserMainParts::PostMainMessageLoopStart() {
#if defined(OS_CHROMEOS)
@@ -98,43 +76,43 @@ void ShellBrowserMainParts::PostMainMessageLoopStart() {
}
void ShellBrowserMainParts::PreMainMessageLoopRun() {
+ ForeignWindowTextureFactory::Initialize();
+
browser_context_.reset(new content::ShellBrowserContext(false));
// A ViewsDelegate is required.
if (!views::ViewsDelegate::views_delegate)
views::ViewsDelegate::views_delegate = new ShellViewsDelegate;
- delegate_ = new ash::shell::ShellDelegateImpl;
- ash::Shell::CreateInstance(delegate_);
+ wm::shell::ShellDelegateImpl* delegate = new wm::shell::ShellDelegateImpl;
+ ash::Shell::CreateInstance(delegate);
ash::Shell::GetInstance()->set_browser_context(browser_context_.get());
window_watcher_.reset(new ash::shell::WindowWatcher);
- gfx::Screen* screen = Shell::GetInstance()->GetScreen();
- screen->AddObserver(window_watcher_.get());
- delegate_->SetWatcher(window_watcher_.get());
+ delegate->SetWatcher(window_watcher_.get());
ash::shell::InitWindowTypeLauncher();
- DesktopBackgroundController* controller =
- Shell::GetInstance()->desktop_background_controller();
- if (controller->GetAppropriateResolution() == WALLPAPER_RESOLUTION_LARGE)
- controller->SetDefaultWallpaper(kDefaultLargeWallpaper);
+ ash::DesktopBackgroundController* controller =
+ ash::Shell::GetInstance()->desktop_background_controller();
+ if (controller->GetAppropriateResolution() == ash::WALLPAPER_RESOLUTION_LARGE)
+ controller->SetDefaultWallpaper(ash::kDefaultLargeWallpaper);
else
- controller->SetDefaultWallpaper(kDefaultSmallWallpaper);
+ controller->SetDefaultWallpaper(ash::kDefaultSmallWallpaper);
+
+ ForeignTestWindow::CreateParams params(ash::Shell::GetPrimaryRootWindow());
+ foreign_test_window_.reset(new ForeignTestWindow(params));
+ foreign_test_window_->Show();
ash::Shell::GetPrimaryRootWindow()->ShowRootWindow();
}
void ShellBrowserMainParts::PostMainMessageLoopRun() {
browser_context_.reset();
- gfx::Screen* screen = Shell::GetInstance()->GetScreen();
- screen->RemoveObserver(window_watcher_.get());
-
window_watcher_.reset();
- delegate_->SetWatcher(NULL);
- delegate_ = NULL;
ash::Shell::DeleteInstance();
aura::Env::DeleteInstance();
+ ForeignWindowTextureFactory::Terminate();
}
bool ShellBrowserMainParts::MainMessageLoopRun(int* result_code) {
@@ -143,4 +121,4 @@ bool ShellBrowserMainParts::MainMessageLoopRun(int* result_code) {
}
} // namespace shell
-} // namespace ash
+} // namespace wm
« no previous file with comments | « wm/shell/content_client/shell_browser_main_parts.h ('k') | wm/shell/content_client/shell_content_browser_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698