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

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

Issue 2630443003: Add thread checks to NaClBrowser, and make it leaky (Closed)
Patch Set: Update NaClGdbDebugStubTest Created 3 years, 10 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
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 <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 browser_context_.get()); 196 browser_context_.get());
197 197
198 // Initialize OAuth2 support from command line. 198 // Initialize OAuth2 support from command line.
199 base::CommandLine* cmd = base::CommandLine::ForCurrentProcess(); 199 base::CommandLine* cmd = base::CommandLine::ForCurrentProcess();
200 oauth2_token_service_.reset(new ShellOAuth2TokenService( 200 oauth2_token_service_.reset(new ShellOAuth2TokenService(
201 browser_context_.get(), 201 browser_context_.get(),
202 cmd->GetSwitchValueASCII(switches::kAppShellUser), 202 cmd->GetSwitchValueASCII(switches::kAppShellUser),
203 cmd->GetSwitchValueASCII(switches::kAppShellRefreshToken))); 203 cmd->GetSwitchValueASCII(switches::kAppShellRefreshToken)));
204 204
205 #if !defined(DISABLE_NACL) 205 #if !defined(DISABLE_NACL)
206 // Takes ownership.
207 nacl::NaClBrowser::SetDelegate( 206 nacl::NaClBrowser::SetDelegate(
208 new ShellNaClBrowserDelegate(browser_context_.get())); 207 base::MakeUnique<ShellNaClBrowserDelegate>(browser_context_.get()));
209 // Track the task so it can be canceled if app_shell shuts down very quickly, 208 // Track the task so it can be canceled if app_shell shuts down very quickly,
210 // such as in browser tests. 209 // such as in browser tests.
211 task_tracker_.PostTask( 210 task_tracker_.PostTask(
212 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO).get(), FROM_HERE, 211 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO).get(), FROM_HERE,
213 base::Bind(nacl::NaClProcessHost::EarlyStartup)); 212 base::Bind(nacl::NaClProcessHost::EarlyStartup));
214 #endif 213 #endif
215 214
216 content::ShellDevToolsManagerDelegate::StartHttpHandler( 215 content::ShellDevToolsManagerDelegate::StartHttpHandler(
217 browser_context_.get()); 216 browser_context_.get());
218 if (parameters_.ui_task) { 217 if (parameters_.ui_task) {
(...skipping 16 matching lines...) Expand all
235 return true; 234 return true;
236 } 235 }
237 236
238 void ShellBrowserMainParts::PostMainMessageLoopRun() { 237 void ShellBrowserMainParts::PostMainMessageLoopRun() {
239 // NOTE: Please destroy objects in the reverse order of their creation. 238 // NOTE: Please destroy objects in the reverse order of their creation.
240 browser_main_delegate_->Shutdown(); 239 browser_main_delegate_->Shutdown();
241 content::ShellDevToolsManagerDelegate::StopHttpHandler(); 240 content::ShellDevToolsManagerDelegate::StopHttpHandler();
242 241
243 #if !defined(DISABLE_NACL) 242 #if !defined(DISABLE_NACL)
244 task_tracker_.TryCancelAll(); 243 task_tracker_.TryCancelAll();
245 nacl::NaClBrowser::SetDelegate(nullptr);
246 #endif 244 #endif
247 245
248 oauth2_token_service_.reset(); 246 oauth2_token_service_.reset();
249 BrowserContextDependencyManager::GetInstance()->DestroyBrowserContextServices( 247 BrowserContextDependencyManager::GetInstance()->DestroyBrowserContextServices(
250 browser_context_.get()); 248 browser_context_.get());
251 extension_system_ = NULL; 249 extension_system_ = NULL;
252 ExtensionsBrowserClient::Set(NULL); 250 ExtensionsBrowserClient::Set(NULL);
253 extensions_browser_client_.reset(); 251 extensions_browser_client_.reset();
254 252
255 desktop_controller_.reset(); 253 desktop_controller_.reset();
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 } 292 }
295 293
296 void ShellBrowserMainParts::CreateExtensionSystem() { 294 void ShellBrowserMainParts::CreateExtensionSystem() {
297 DCHECK(browser_context_); 295 DCHECK(browser_context_);
298 extension_system_ = static_cast<ShellExtensionSystem*>( 296 extension_system_ = static_cast<ShellExtensionSystem*>(
299 ExtensionSystem::Get(browser_context_.get())); 297 ExtensionSystem::Get(browser_context_.get()));
300 extension_system_->InitForRegularProfile(true); 298 extension_system_->InitForRegularProfile(true);
301 } 299 }
302 300
303 } // namespace extensions 301 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698