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

Side by Side Diff: content/shell/shell_browser_main.cc

Issue 8302016: Make GTK and Aura parts orthogonal to OS parts (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years, 2 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "content/shell/shell_browser_main.h" 5 #include "content/shell/shell_browser_main.h"
6 6
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/threading/thread.h" 8 #include "base/threading/thread.h"
9 #include "base/threading/thread_restrictions.h" 9 #include "base/threading/thread_restrictions.h"
10 #include "content/browser/browser_process_sub_thread.h" 10 #include "content/browser/browser_process_sub_thread.h"
11 #include "content/browser/download/download_file_manager.h" 11 #include "content/browser/download/download_file_manager.h"
12 #include "content/browser/download/save_file_manager.h" 12 #include "content/browser/download/save_file_manager.h"
13 #include "content/browser/renderer_host/resource_dispatcher_host.h" 13 #include "content/browser/renderer_host/resource_dispatcher_host.h"
14 #include "content/shell/shell.h" 14 #include "content/shell/shell.h"
15 #include "content/shell/shell_browser_context.h" 15 #include "content/shell/shell_browser_context.h"
16 #include "content/shell/shell_content_browser_client.h" 16 #include "content/shell/shell_content_browser_client.h"
17 #include "net/base/net_module.h" 17 #include "net/base/net_module.h"
18 #include "ui/base/clipboard/clipboard.h" 18 #include "ui/base/clipboard/clipboard.h"
19 19
20 namespace content { 20 namespace content {
21 21
22 ShellBrowserMainParts::ShellBrowserMainParts( 22 ShellBrowserMainParts::ShellBrowserMainParts(
23 const MainFunctionParams& parameters) 23 const MainFunctionParams& parameters)
24 : BrowserMainParts(parameters) { 24 : BrowserMainParts() {
25 ShellContentBrowserClient* shell_browser_client = 25 ShellContentBrowserClient* shell_browser_client =
26 static_cast<ShellContentBrowserClient*>( 26 static_cast<ShellContentBrowserClient*>(
27 content::GetContentClient()->browser()); 27 content::GetContentClient()->browser());
28 shell_browser_client->set_shell_browser_main_parts(this); 28 shell_browser_client->set_shell_browser_main_parts(this);
29 } 29 }
30 30
31 ShellBrowserMainParts::~ShellBrowserMainParts() { 31 ShellBrowserMainParts::~ShellBrowserMainParts() {
32 base::ThreadRestrictions::SetIOAllowed(true); 32 base::ThreadRestrictions::SetIOAllowed(true);
33 io_thread()->message_loop()->PostTask( 33 io_thread()->message_loop()->PostTask(
34 FROM_HERE, 34 FROM_HERE,
35 NewRunnableFunction(&base::ThreadRestrictions::SetIOAllowed, true)); 35 NewRunnableFunction(&base::ThreadRestrictions::SetIOAllowed, true));
36 36
37 browser_context_.reset(); 37 browser_context_.reset();
38 38
39 resource_dispatcher_host_->download_file_manager()->Shutdown(); 39 resource_dispatcher_host_->download_file_manager()->Shutdown();
40 resource_dispatcher_host_->save_file_manager()->Shutdown(); 40 resource_dispatcher_host_->save_file_manager()->Shutdown();
41 resource_dispatcher_host_->Shutdown(); 41 resource_dispatcher_host_->Shutdown();
42 io_thread_.reset(); 42 io_thread_.reset();
43 cache_thread_.reset(); 43 cache_thread_.reset();
44 process_launcher_thread_.reset(); 44 process_launcher_thread_.reset();
45 file_thread_.reset(); 45 file_thread_.reset();
46 resource_dispatcher_host_.reset(); // Kills WebKit thread. 46 resource_dispatcher_host_.reset(); // Kills WebKit thread.
47 db_thread_.reset(); 47 db_thread_.reset();
48 } 48 }
49 49
50 void ShellBrowserMainParts::PreMainMessageLoopRun() { 50 int ShellBrowserMainParts::PreMainMessageLoopRun() {
51 db_thread_.reset(new BrowserProcessSubThread(BrowserThread::DB)); 51 db_thread_.reset(new BrowserProcessSubThread(BrowserThread::DB));
52 db_thread_->Start(); 52 db_thread_->Start();
53 file_thread_.reset(new BrowserProcessSubThread(BrowserThread::FILE)); 53 file_thread_.reset(new BrowserProcessSubThread(BrowserThread::FILE));
54 file_thread_->Start(); 54 file_thread_->Start();
55 process_launcher_thread_.reset( 55 process_launcher_thread_.reset(
56 new BrowserProcessSubThread(BrowserThread::PROCESS_LAUNCHER)); 56 new BrowserProcessSubThread(BrowserThread::PROCESS_LAUNCHER));
57 process_launcher_thread_->Start(); 57 process_launcher_thread_->Start();
58 58
59 base::Thread::Options options; 59 base::Thread::Options options;
60 options.message_loop_type = MessageLoop::TYPE_IO; 60 options.message_loop_type = MessageLoop::TYPE_IO;
61 61
62 cache_thread_.reset(new BrowserProcessSubThread(BrowserThread::CACHE)); 62 cache_thread_.reset(new BrowserProcessSubThread(BrowserThread::CACHE));
63 cache_thread_->StartWithOptions(options); 63 cache_thread_->StartWithOptions(options);
64 io_thread_.reset(new BrowserProcessSubThread(BrowserThread::IO)); 64 io_thread_.reset(new BrowserProcessSubThread(BrowserThread::IO));
65 io_thread_->StartWithOptions(options); 65 io_thread_->StartWithOptions(options);
66 66
67 browser_context_.reset(new ShellBrowserContext(this)); 67 browser_context_.reset(new ShellBrowserContext(this));
68 68
69 Shell::PlatformInitialize(); 69 Shell::PlatformInitialize();
70 net::NetModule::SetResourceProvider(Shell::PlatformResourceProvider); 70 net::NetModule::SetResourceProvider(Shell::PlatformResourceProvider);
71 71
72 Shell::CreateNewWindow(browser_context_.get(), 72 Shell::CreateNewWindow(browser_context_.get(),
73 GURL("http://www.google.com"), 73 GURL("http://www.google.com"),
74 NULL, 74 NULL,
75 MSG_ROUTING_NONE, 75 MSG_ROUTING_NONE,
76 NULL); 76 NULL);
77
78 return content::RESULT_CODE_NORMAL_EXIT;
77 } 79 }
78 80
79 ResourceDispatcherHost* ShellBrowserMainParts::GetResourceDispatcherHost() { 81 ResourceDispatcherHost* ShellBrowserMainParts::GetResourceDispatcherHost() {
80 if (!resource_dispatcher_host_.get()) { 82 if (!resource_dispatcher_host_.get()) {
81 ResourceQueue::DelegateSet resource_queue_delegates; 83 ResourceQueue::DelegateSet resource_queue_delegates;
82 resource_dispatcher_host_.reset( 84 resource_dispatcher_host_.reset(
83 new ResourceDispatcherHost(resource_queue_delegates)); 85 new ResourceDispatcherHost(resource_queue_delegates));
84 resource_dispatcher_host_->Initialize(); 86 resource_dispatcher_host_->Initialize();
85 } 87 }
86 return resource_dispatcher_host_.get(); 88 return resource_dispatcher_host_.get();
87 } 89 }
88 90
89 ui::Clipboard* ShellBrowserMainParts::GetClipboard() { 91 ui::Clipboard* ShellBrowserMainParts::GetClipboard() {
90 if (!clipboard_.get()) 92 if (!clipboard_.get())
91 clipboard_.reset(new ui::Clipboard()); 93 clipboard_.reset(new ui::Clipboard());
92 return clipboard_.get(); 94 return clipboard_.get();
93 } 95 }
94 96
95 } // namespace 97 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698