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); |