Index: mojo/services/network/network_service_delegate.cc |
diff --git a/mojo/services/network/network_service_delegate.cc b/mojo/services/network/network_service_delegate.cc |
index a3a0ea3854aa8b1e00b796a67113d23cc4ff5456..9f54082fb3899b0bc4b9a319ec248f9cf3bac719 100644 |
--- a/mojo/services/network/network_service_delegate.cc |
+++ b/mojo/services/network/network_service_delegate.cc |
@@ -31,12 +31,11 @@ const char kUserDataDir[] = "user-data-dir"; |
namespace mojo { |
-NetworkServiceDelegate::NetworkServiceDelegate() |
- : shell_(nullptr) { |
-} |
- |
-NetworkServiceDelegate::~NetworkServiceDelegate() { |
+NetworkServiceDelegate::NetworkServiceDelegate() { |
+ ref_factory_.set_quit_closure( |
+ base::Bind(&NetworkServiceDelegate::Quit, base::Unretained(this))); |
} |
+NetworkServiceDelegate::~NetworkServiceDelegate() {} |
void NetworkServiceDelegate::AddObserver( |
NetworkServiceDelegateObserver* observer) { |
@@ -48,10 +47,9 @@ void NetworkServiceDelegate::RemoveObserver( |
observers_.RemoveObserver(observer); |
} |
-void NetworkServiceDelegate::Initialize(Shell* shell, const std::string& url, |
+void NetworkServiceDelegate::Initialize(Connector* connector, |
+ const std::string& url, |
uint32_t id, uint32_t user_id) { |
- shell_ = shell; |
- |
// TODO(erg): Find everything else that writes to the filesystem and |
// transition it to proxying mojo:filesystem. We shouldn't have any path |
// calculation code here, but sadly need it until the transition is done. In |
@@ -68,7 +66,7 @@ void NetworkServiceDelegate::Initialize(Shell* shell, const std::string& url, |
} |
context_.reset(new NetworkContext(base_path, this)); |
- tracing_.Initialize(shell_, url); |
+ tracing_.Initialize(connector, url); |
} |
bool NetworkServiceDelegate::AcceptConnection(Connection* connection) { |
@@ -84,37 +82,37 @@ bool NetworkServiceDelegate::ShellConnectionLost() { |
return true; |
} |
-void NetworkServiceDelegate::Quit() { |
- // Destroy the NetworkContext now as it requires MessageLoop::current() upon |
- // destruction and it is the last moment we know for sure that it is |
- // running. |
- context_.reset(); |
-} |
- |
void NetworkServiceDelegate::Create(Connection* connection, |
InterfaceRequest<NetworkService> request) { |
- new NetworkServiceImpl(shell_->CreateAppRefCount(), std::move(request)); |
+ new NetworkServiceImpl(ref_factory_.CreateRef(), std::move(request)); |
} |
void NetworkServiceDelegate::Create(Connection* connection, |
InterfaceRequest<CookieStore> request) { |
new CookieStoreImpl( |
context_.get(), GURL(connection->GetRemoteApplicationURL()).GetOrigin(), |
- shell_->CreateAppRefCount(), std::move(request)); |
+ ref_factory_.CreateRef(), std::move(request)); |
} |
void NetworkServiceDelegate::Create( |
Connection* connection, |
InterfaceRequest<WebSocketFactory> request) { |
- new WebSocketFactoryImpl(context_.get(), shell_->CreateAppRefCount(), |
+ new WebSocketFactoryImpl(context_.get(), ref_factory_.CreateRef(), |
std::move(request)); |
} |
void NetworkServiceDelegate::Create( |
Connection* connection, |
InterfaceRequest<URLLoaderFactory> request) { |
- new URLLoaderFactoryImpl(context_.get(), shell_->CreateAppRefCount(), |
+ new URLLoaderFactoryImpl(context_.get(), ref_factory_.CreateRef(), |
std::move(request)); |
} |
+void NetworkServiceDelegate::Quit() { |
+ // Destroy the NetworkContext now as it requires MessageLoop::current() upon |
+ // destruction and it is the last moment we know for sure that it is |
+ // running. |
+ context_.reset(); |
+} |
+ |
} // namespace mojo |