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

Side by Side Diff: ash/shell/shell_main.cc

Issue 10054038: Support WebView in ash. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/shell/content_client/shell_main_delegate.cc ('k') | ash/shell/window_type_launcher.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <map> 5 #include "content/public/app/content_main.h"
6 #include "sandbox/src/sandbox_types.h"
7 #include "ash/shell/content_client/shell_main_delegate.h"
6 8
7 #include "ash/launcher/launcher.h" 9 #if defined(OS_WIN)
8 #include "ash/launcher/launcher_delegate.h" 10 #include "content/public/app/startup_helper_win.h"
9 #include "ash/launcher/launcher_model.h" 11 #endif
10 #include "ash/launcher/launcher_types.h"
11 #include "ash/shell.h"
12 #include "ash/shell_delegate.h"
13 #include "ash/shell_factory.h"
14 #include "ash/shell_window_ids.h"
15 #include "ash/shell/launcher_delegate_impl.h"
16 #include "ash/shell/shell_delegate_impl.h"
17 #include "ash/shell/shell_main_parts.h"
18 #include "ash/shell/window_watcher.h"
19 #include "base/at_exit.h"
20 #include "base/command_line.h"
21 #include "base/memory/scoped_ptr.h"
22 #include "base/message_loop.h"
23 #include "ui/aura/env.h"
24 #include "ui/aura/client/window_types.h"
25 #include "ui/aura/root_window.h"
26 #include "ui/aura/window_observer.h"
27 #include "ui/base/resource/resource_bundle.h"
28 #include "ui/base/ui_base_paths.h"
29 #include "ui/gfx/canvas.h"
30 #include "ui/gfx/compositor/test/compositor_test_support.h"
31 #include "ui/views/test/test_views_delegate.h"
32 #include "ui/views/widget/widget.h"
33 #include "ui/views/widget/widget_delegate.h"
34 12
35 namespace { 13 #if defined(OS_WIN)
36 14 int APIENTRY wWinMain(HINSTANCE instance, HINSTANCE, wchar_t*, int) {
37 class ShellViewsDelegate : public views::TestViewsDelegate { 15 sandbox::SandboxInterfaceInfo sandbox_info = {0};
38 public: 16 content::InitializeSandboxInfo(&sandbox_info);
39 ShellViewsDelegate() {} 17 ash::shell::ShellMainDelegate delegate;
40 virtual ~ShellViewsDelegate() {} 18 return content::ContentMain(instance, &sandbox_info, &delegate);
41
42 // Overridden from views::TestViewsDelegate:
43 virtual views::NonClientFrameView* CreateDefaultNonClientFrameView(
44 views::Widget* widget) OVERRIDE {
45 return ash::Shell::GetInstance()->CreateDefaultNonClientFrameView(widget);
46 }
47 bool UseTransparentWindows() const OVERRIDE {
48 // Ash uses transparent window frames.
49 return true;
50 }
51
52 private:
53 DISALLOW_COPY_AND_ASSIGN(ShellViewsDelegate);
54 };
55
56 } // namespace
57
58 namespace ash {
59 namespace shell {
60
61 void InitWindowTypeLauncher();
62
63 } // namespace shell
64 } // namespace ash
65
66 int main(int argc, char** argv) {
67 CommandLine::Init(argc, argv);
68
69 // The exit manager is in charge of calling the dtors of singleton objects.
70 base::AtExitManager exit_manager;
71
72 ash::shell::PreMainMessageLoopStart();
73
74 // Create the message-loop here before creating the root window.
75 MessageLoop message_loop(MessageLoop::TYPE_UI);
76 ui::CompositorTestSupport::Initialize();
77
78 // A ViewsDelegate is required.
79 if (!views::ViewsDelegate::views_delegate)
80 views::ViewsDelegate::views_delegate = new ShellViewsDelegate;
81
82 ash::shell::ShellDelegateImpl* delegate = new ash::shell::ShellDelegateImpl;
83 ash::Shell::CreateInstance(delegate);
84
85 scoped_ptr<ash::shell::WindowWatcher> window_watcher(
86 new ash::shell::WindowWatcher);
87 delegate->SetWatcher(window_watcher.get());
88
89 ash::shell::InitWindowTypeLauncher();
90
91 ash::Shell::GetRootWindow()->ShowRootWindow();
92 MessageLoopForUI::current()->Run();
93
94 window_watcher.reset();
95
96 ash::Shell::DeleteInstance();
97
98 aura::Env::DeleteInstance();
99
100 ui::CompositorTestSupport::Terminate();
101
102 return 0;
103 } 19 }
20 #else
21 int main(int argc, const char** argv) {
22 ash::shell::ShellMainDelegate delegate;
23 return content::ContentMain(argc, argv, &delegate);
24 }
25 #endif
OLDNEW
« no previous file with comments | « ash/shell/content_client/shell_main_delegate.cc ('k') | ash/shell/window_type_launcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698