diff options
Diffstat (limited to 'content/browser/debugger/devtools_http_handler_impl.cc')
-rw-r--r-- | content/browser/debugger/devtools_http_handler_impl.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/content/browser/debugger/devtools_http_handler_impl.cc b/content/browser/debugger/devtools_http_handler_impl.cc index e641a7f..859ca0d 100644 --- a/content/browser/debugger/devtools_http_handler_impl.cc +++ b/content/browser/debugger/devtools_http_handler_impl.cc @@ -160,8 +160,7 @@ void DevToolsHttpHandlerImpl::Start() { void DevToolsHttpHandlerImpl::Stop() { BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, - base::Bind(&DevToolsHttpHandlerImpl::Teardown, this)); - protect_ptr_ = NULL; + base::Bind(&DevToolsHttpHandlerImpl::TeardownAndRelease, this)); } void DevToolsHttpHandlerImpl::OnHttpRequest( @@ -467,10 +466,10 @@ DevToolsHttpHandlerImpl::DevToolsHttpHandlerImpl( : ip_(ip), port_(port), overridden_frontend_url_(frontend_host), - delegate_(delegate), - ALLOW_THIS_IN_INITIALIZER_LIST(protect_ptr_(this)) { + delegate_(delegate) { if (overridden_frontend_url_.empty()) overridden_frontend_url_ = "/devtools/devtools.html"; + AddRef(); } void DevToolsHttpHandlerImpl::Init() { @@ -478,8 +477,11 @@ void DevToolsHttpHandlerImpl::Init() { } // Run on I/O thread -void DevToolsHttpHandlerImpl::Teardown() { +void DevToolsHttpHandlerImpl::TeardownAndRelease() { server_ = NULL; + BrowserThread::PostTask( + BrowserThread::UI, FROM_HERE, + base::Bind(&DevToolsHttpHandlerImpl::Release, this)); } void DevToolsHttpHandlerImpl::Bind(net::URLRequest* request, |