Index: net/http/http_network_layer.cc |
diff --git a/net/http/http_network_layer.cc b/net/http/http_network_layer.cc |
index 0704de420de32d29349e8e6d50f311387a362db3..dc49691514d4e360723b8d19a87724621fa74188 100644 |
--- a/net/http/http_network_layer.cc |
+++ b/net/http/http_network_layer.cc |
@@ -19,6 +19,8 @@ |
namespace net { |
+HttpNetworkLayer::TransactionFactory* g_network_transaction_factory_ = NULL; |
+ |
//----------------------------------------------------------------------------- |
HttpNetworkLayer::HttpNetworkLayer(HttpNetworkSession* session) |
: session_(session), |
@@ -57,6 +59,12 @@ void HttpNetworkLayer::ForceAlternateProtocol() { |
HttpServerPropertiesImpl::ForceAlternateProtocol(pair); |
} |
+// static |
+void HttpNetworkLayer::SetTransactionFactory( |
+ HttpNetworkLayer::TransactionFactory* factory) { |
+ g_network_transaction_factory_ = factory; |
+} |
+ |
//----------------------------------------------------------------------------- |
int HttpNetworkLayer::CreateTransaction(RequestPriority priority, |
@@ -64,6 +72,10 @@ int HttpNetworkLayer::CreateTransaction(RequestPriority priority, |
if (suspended_) |
return ERR_NETWORK_IO_SUSPENDED; |
+ if (g_network_transaction_factory_) |
+ return g_network_transaction_factory_->CreateTransaction( |
+ priority, GetSession(), trans); |
+ |
trans->reset(new HttpNetworkTransaction(priority, GetSession())); |
return OK; |
} |