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

Side by Side Diff: extensions/shell/browser/shell_browser_main_parts.cc

Issue 437503004: Add NaCl support to app_shell (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: (nacl-init) rebase Created 6 years, 4 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/shell/browser/shell_browser_main_parts.h" 5 #include "extensions/shell/browser/shell_browser_main_parts.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "components/keyed_service/content/browser_context_dependency_manager.h" 9 #include "components/keyed_service/content/browser_context_dependency_manager.h"
10 #include "components/omaha_query_params/omaha_query_params.h" 10 #include "components/omaha_query_params/omaha_query_params.h"
(...skipping 13 matching lines...) Expand all
24 #include "extensions/shell/common/switches.h" 24 #include "extensions/shell/common/switches.h"
25 #include "ui/aura/window_tree_host.h" 25 #include "ui/aura/window_tree_host.h"
26 #include "ui/base/ime/input_method_initializer.h" 26 #include "ui/base/ime/input_method_initializer.h"
27 #include "ui/base/resource/resource_bundle.h" 27 #include "ui/base/resource/resource_bundle.h"
28 28
29 #if defined(OS_CHROMEOS) 29 #if defined(OS_CHROMEOS)
30 #include "chromeos/dbus/dbus_thread_manager.h" 30 #include "chromeos/dbus/dbus_thread_manager.h"
31 #include "extensions/shell/browser/shell_network_controller_chromeos.h" 31 #include "extensions/shell/browser/shell_network_controller_chromeos.h"
32 #endif 32 #endif
33 33
34 #if !defined(DISABLE_NACL)
35 #include "components/nacl/browser/nacl_browser.h"
36 #include "components/nacl/browser/nacl_process_host.h"
37 #include "content/public/browser/browser_thread.h"
38 #include "extensions/shell/browser/shell_nacl_browser_delegate.h"
39 #endif
40
34 using content::BrowserContext; 41 using content::BrowserContext;
42 using content::BrowserThread;
35 43
36 namespace { 44 namespace {
37 45
38 // Register additional KeyedService factories here. See 46 // Register additional KeyedService factories here. See
39 // ChromeBrowserMainExtraPartsProfiles for details. 47 // ChromeBrowserMainExtraPartsProfiles for details.
40 void EnsureBrowserContextKeyedServiceFactoriesBuilt() { 48 void EnsureBrowserContextKeyedServiceFactoriesBuilt() {
41 extensions::EnsureBrowserContextKeyedServiceFactoriesBuilt(); 49 extensions::EnsureBrowserContextKeyedServiceFactoriesBuilt();
42 extensions::ShellExtensionSystemFactory::GetInstance(); 50 extensions::ShellExtensionSystemFactory::GetInstance();
43 } 51 }
44 52
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 // Initialize our "profile" equivalent. 96 // Initialize our "profile" equivalent.
89 browser_context_.reset(new ShellBrowserContext); 97 browser_context_.reset(new ShellBrowserContext);
90 98
91 desktop_controller_.reset(browser_main_delegate_->CreateDesktopController()); 99 desktop_controller_.reset(browser_main_delegate_->CreateDesktopController());
92 desktop_controller_->CreateRootWindow(); 100 desktop_controller_->CreateRootWindow();
93 101
94 // NOTE: Much of this is culled from chrome/test/base/chrome_test_suite.cc 102 // NOTE: Much of this is culled from chrome/test/base/chrome_test_suite.cc
95 // TODO(jamescook): Initialize chromeos::UserManager. 103 // TODO(jamescook): Initialize chromeos::UserManager.
96 net_log_.reset(new content::ShellNetLog("app_shell")); 104 net_log_.reset(new content::ShellNetLog("app_shell"));
97 105
98 extensions_client_.reset(new ShellExtensionsClient()); 106 InitExtensionsModule();
99 ExtensionsClient::Set(extensions_client_.get());
100
101 extensions_browser_client_.reset(
102 new ShellExtensionsBrowserClient(browser_context_.get()));
103 ExtensionsBrowserClient::Set(extensions_browser_client_.get());
104 107
105 omaha_query_params_delegate_.reset(new ShellOmahaQueryParamsDelegate); 108 omaha_query_params_delegate_.reset(new ShellOmahaQueryParamsDelegate);
106 omaha_query_params::OmahaQueryParams::SetDelegate( 109 omaha_query_params::OmahaQueryParams::SetDelegate(
107 omaha_query_params_delegate_.get()); 110 omaha_query_params_delegate_.get());
108 111
109 // Create our custom ExtensionSystem first because other
110 // KeyedServices depend on it.
111 // TODO(yoz): Move this after EnsureBrowserContextKeyedServiceFactoriesBuilt.
112 CreateExtensionSystem();
113
114 ::EnsureBrowserContextKeyedServiceFactoriesBuilt(); 112 ::EnsureBrowserContextKeyedServiceFactoriesBuilt();
115 BrowserContextDependencyManager::GetInstance()->CreateBrowserContextServices( 113 BrowserContextDependencyManager::GetInstance()->CreateBrowserContextServices(
116 browser_context_.get()); 114 browser_context_.get());
117 115
116 #if !defined(DISABLE_NACL)
117 // Takes ownership.
118 nacl::NaClBrowser::SetDelegate(
119 new ShellNaClBrowserDelegate(browser_context_.get()));
120 BrowserThread::PostTask(
121 BrowserThread::IO,
122 FROM_HERE,
123 base::Bind(nacl::NaClProcessHost::EarlyStartup));
124 #endif
125
118 devtools_delegate_.reset( 126 devtools_delegate_.reset(
119 new content::ShellDevToolsDelegate(browser_context_.get())); 127 new content::ShellDevToolsDelegate(browser_context_.get()));
120 if (parameters_.ui_task) { 128 if (parameters_.ui_task) {
121 // For running browser tests. 129 // For running browser tests.
122 parameters_.ui_task->Run(); 130 parameters_.ui_task->Run();
123 delete parameters_.ui_task; 131 delete parameters_.ui_task;
124 run_message_loop_ = false; 132 run_message_loop_ = false;
125 } else { 133 } else {
126 browser_main_delegate_->Start(browser_context_.get()); 134 browser_main_delegate_->Start(browser_context_.get());
127 } 135 }
(...skipping 22 matching lines...) Expand all
150 desktop_controller_.reset(); 158 desktop_controller_.reset();
151 } 159 }
152 160
153 void ShellBrowserMainParts::PostDestroyThreads() { 161 void ShellBrowserMainParts::PostDestroyThreads() {
154 #if defined(OS_CHROMEOS) 162 #if defined(OS_CHROMEOS)
155 network_controller_.reset(); 163 network_controller_.reset();
156 chromeos::DBusThreadManager::Shutdown(); 164 chromeos::DBusThreadManager::Shutdown();
157 #endif 165 #endif
158 } 166 }
159 167
160 void ShellBrowserMainParts::CreateExtensionSystem() { 168 void ShellBrowserMainParts::InitExtensionsModule() {
teravest 2014/08/12 15:48:31 Why does this code have to be moved into InitExten
James Cook 2014/08/12 18:17:05 It doesn't have to be. I thought PreMainMessageLoo
161 DCHECK(browser_context_); 169 DCHECK(browser_context_);
170
171 extensions_client_.reset(new ShellExtensionsClient());
172 ExtensionsClient::Set(extensions_client_.get());
173
174 extensions_browser_client_.reset(
175 new ShellExtensionsBrowserClient(browser_context_.get()));
176 ExtensionsBrowserClient::Set(extensions_browser_client_.get());
177
178 // Create our custom ExtensionSystem first because other KeyedServices depend
179 // on it.
180 // TODO(yoz): Move this after EnsureBrowserContextKeyedServiceFactoriesBuilt.
162 extension_system_ = static_cast<ShellExtensionSystem*>( 181 extension_system_ = static_cast<ShellExtensionSystem*>(
163 ExtensionSystem::Get(browser_context_.get())); 182 ExtensionSystem::Get(browser_context_.get()));
164 extension_system_->InitForRegularProfile(true); 183 extension_system_->InitForRegularProfile(true);
165 } 184 }
166 185
167 } // namespace extensions 186 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698