Chromium Code Reviews| Index: extensions/shell/browser/shell_browser_main_parts.cc |
| diff --git a/extensions/shell/browser/shell_browser_main_parts.cc b/extensions/shell/browser/shell_browser_main_parts.cc |
| index 3a33566a9ad25d6009af6aef9c90ea2162365b23..15ee0d9623c4eec05acd5b1dbf6acd496e34ae27 100644 |
| --- a/extensions/shell/browser/shell_browser_main_parts.cc |
| +++ b/extensions/shell/browser/shell_browser_main_parts.cc |
| @@ -31,7 +31,15 @@ |
| #include "extensions/shell/browser/shell_network_controller_chromeos.h" |
| #endif |
| +#if !defined(DISABLE_NACL) |
| +#include "components/nacl/browser/nacl_browser.h" |
| +#include "components/nacl/browser/nacl_process_host.h" |
| +#include "content/public/browser/browser_thread.h" |
| +#include "extensions/shell/browser/shell_nacl_browser_delegate.h" |
| +#endif |
| + |
| using content::BrowserContext; |
| +using content::BrowserThread; |
| namespace { |
| @@ -95,26 +103,26 @@ void ShellBrowserMainParts::PreMainMessageLoopRun() { |
| // TODO(jamescook): Initialize chromeos::UserManager. |
| net_log_.reset(new content::ShellNetLog("app_shell")); |
| - extensions_client_.reset(new ShellExtensionsClient()); |
| - ExtensionsClient::Set(extensions_client_.get()); |
| - |
| - extensions_browser_client_.reset( |
| - new ShellExtensionsBrowserClient(browser_context_.get())); |
| - ExtensionsBrowserClient::Set(extensions_browser_client_.get()); |
| + InitExtensionsModule(); |
| omaha_query_params_delegate_.reset(new ShellOmahaQueryParamsDelegate); |
| omaha_query_params::OmahaQueryParams::SetDelegate( |
| omaha_query_params_delegate_.get()); |
| - // Create our custom ExtensionSystem first because other |
| - // KeyedServices depend on it. |
| - // TODO(yoz): Move this after EnsureBrowserContextKeyedServiceFactoriesBuilt. |
| - CreateExtensionSystem(); |
| - |
| ::EnsureBrowserContextKeyedServiceFactoriesBuilt(); |
| BrowserContextDependencyManager::GetInstance()->CreateBrowserContextServices( |
| browser_context_.get()); |
| +#if !defined(DISABLE_NACL) |
| + // Takes ownership. |
| + nacl::NaClBrowser::SetDelegate( |
| + new ShellNaClBrowserDelegate(browser_context_.get())); |
| + BrowserThread::PostTask( |
| + BrowserThread::IO, |
| + FROM_HERE, |
| + base::Bind(nacl::NaClProcessHost::EarlyStartup)); |
| +#endif |
| + |
| devtools_delegate_.reset( |
| new content::ShellDevToolsDelegate(browser_context_.get())); |
| if (parameters_.ui_task) { |
| @@ -157,8 +165,19 @@ void ShellBrowserMainParts::PostDestroyThreads() { |
| #endif |
| } |
| -void ShellBrowserMainParts::CreateExtensionSystem() { |
| +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
|
| DCHECK(browser_context_); |
| + |
| + extensions_client_.reset(new ShellExtensionsClient()); |
| + ExtensionsClient::Set(extensions_client_.get()); |
| + |
| + extensions_browser_client_.reset( |
| + new ShellExtensionsBrowserClient(browser_context_.get())); |
| + ExtensionsBrowserClient::Set(extensions_browser_client_.get()); |
| + |
| + // Create our custom ExtensionSystem first because other KeyedServices depend |
| + // on it. |
| + // TODO(yoz): Move this after EnsureBrowserContextKeyedServiceFactoriesBuilt. |
| extension_system_ = static_cast<ShellExtensionSystem*>( |
| ExtensionSystem::Get(browser_context_.get())); |
| extension_system_->InitForRegularProfile(true); |