Index: net/http/http_network_layer.cc |
diff --git a/net/http/http_network_layer.cc b/net/http/http_network_layer.cc |
index 169a1cc1be5c161ca6f72ccc2d42e7bbcbfe36c7..e0b3199bb897dcc9839f240097834e73d3e37ec6 100644 |
--- a/net/http/http_network_layer.cc |
+++ b/net/http/http_network_layer.cc |
@@ -22,11 +22,11 @@ |
HttpNetworkLayer::HttpNetworkLayer(HttpNetworkSession* session) |
: session_(session), |
suspended_(false) { |
- DCHECK(session_); |
+ DCHECK(session_.get()); |
#if defined(OS_WIN) |
- base::PowerMonitor* power_monitor = base::PowerMonitor::Get(); |
- if (power_monitor) |
- power_monitor->AddObserver(this); |
+ base::PowerMonitor* power_monitor = base::PowerMonitor::Get(); |
+ if (power_monitor) |
+ power_monitor->AddObserver(this); |
#endif |
} |
@@ -36,6 +36,14 @@ |
if (power_monitor) |
power_monitor->RemoveObserver(this); |
#endif |
+} |
+ |
+// static |
+HttpTransactionFactory* HttpNetworkLayer::CreateFactory( |
+ HttpNetworkSession* session) { |
+ DCHECK(session); |
+ |
+ return new HttpNetworkLayer(session); |
} |
int HttpNetworkLayer::CreateTransaction(RequestPriority priority, |
@@ -51,13 +59,13 @@ |
return NULL; |
} |
-HttpNetworkSession* HttpNetworkLayer::GetSession() { |
- return session_; |
-} |
+HttpNetworkSession* HttpNetworkLayer::GetSession() { return session_.get(); } |
void HttpNetworkLayer::OnSuspend() { |
suspended_ = true; |
- session_->CloseIdleConnections(); |
+ |
+ if (session_.get()) |
+ session_->CloseIdleConnections(); |
} |
void HttpNetworkLayer::OnResume() { |