| Index: ash/shell/content_client/shell_browser_main_parts.cc
|
| ===================================================================
|
| --- ash/shell/content_client/shell_browser_main_parts.cc (revision 0)
|
| +++ ash/shell/content_client/shell_browser_main_parts.cc (revision 0)
|
| @@ -0,0 +1,120 @@
|
| +// Copyright (c) 2012 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 "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.h"
|
| +#include "content/shell/shell_browser_context.h"
|
| +#include "content/shell/shell_devtools_delegate.h"
|
| +#include "content/shell/shell_switches.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/clipboard/clipboard.h"
|
| +#include "ui/base/resource/resource_bundle.h"
|
| +#include "ui/base/ui_base_paths.h"
|
| +#include "ui/gfx/compositor/compositor.h"
|
| +#include "ui/gfx/compositor/test/compositor_test_support.h"
|
| +#include "ui/views/test/test_views_delegate.h"
|
| +#include "ui/views/focus/accelerator_handler.h"
|
| +
|
| +namespace ash {
|
| +namespace shell {
|
| +void InitWindowTypeLauncher();
|
| +
|
| +namespace {
|
| +class ShellViewsDelegate : public views::TestViewsDelegate {
|
| + public:
|
| + ShellViewsDelegate() {}
|
| + virtual ~ShellViewsDelegate() {}
|
| +
|
| + // Overridden from views::TestViewsDelegate:
|
| + virtual views::NonClientFrameView* CreateDefaultNonClientFrameView(
|
| + views::Widget* widget) OVERRIDE {
|
| + return ash::Shell::GetInstance()->CreateDefaultNonClientFrameView(widget);
|
| + }
|
| + bool UseTransparentWindows() const OVERRIDE {
|
| + // Ash uses transparent window frames.
|
| + return true;
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(ShellViewsDelegate);
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| +ShellBrowserMainParts::ShellBrowserMainParts(
|
| + const content::MainFunctionParams& parameters)
|
| + : BrowserMainParts(),
|
| + devtools_delegate_(NULL) {
|
| +}
|
| +
|
| +ShellBrowserMainParts::~ShellBrowserMainParts() {
|
| +}
|
| +
|
| +#if !defined(OS_MACOSX)
|
| +void ShellBrowserMainParts::PreMainMessageLoopStart() {
|
| +}
|
| +#endif
|
| +
|
| +int ShellBrowserMainParts::PreCreateThreads() {
|
| + return 0;
|
| +}
|
| +
|
| +void ShellBrowserMainParts::PreMainMessageLoopRun() {
|
| + browser_context_.reset(new content::ShellBrowserContext);
|
| +
|
| + // A ViewsDelegate is required.
|
| + if (!views::ViewsDelegate::views_delegate)
|
| + views::ViewsDelegate::views_delegate = new ShellViewsDelegate;
|
| +
|
| + ash::shell::ShellDelegateImpl* delegate = new ash::shell::ShellDelegateImpl;
|
| + ash::Shell::CreateInstance(delegate);
|
| + ash::Shell::GetInstance()->set_browser_context(browser_context_.get());
|
| +
|
| + window_watcher_.reset(new ash::shell::WindowWatcher);
|
| + delegate->SetWatcher(window_watcher_.get());
|
| +
|
| + ash::shell::InitWindowTypeLauncher();
|
| +
|
| + ash::Shell::GetRootWindow()->ShowRootWindow();
|
| +}
|
| +
|
| +void ShellBrowserMainParts::PostMainMessageLoopRun() {
|
| + if (devtools_delegate_)
|
| + devtools_delegate_->Stop();
|
| + browser_context_.reset();
|
| +
|
| + window_watcher_.reset();
|
| + ash::Shell::DeleteInstance();
|
| + aura::Env::DeleteInstance();
|
| +}
|
| +
|
| +bool ShellBrowserMainParts::MainMessageLoopRun(int* result_code) {
|
| + MessageLoopForUI::current()->Run();
|
| + return true;
|
| +}
|
| +
|
| +ui::Clipboard* ShellBrowserMainParts::GetClipboard() {
|
| + if (!clipboard_.get())
|
| + clipboard_.reset(new ui::Clipboard());
|
| + return clipboard_.get();
|
| +}
|
| +
|
| +} // namespace shell
|
| +} // namespace ash
|
|
|
| Property changes on: ash\shell\content_client\shell_browser_main_parts.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|