146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file.
446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "chrome/browser/devtools/devtools_network_transaction_factory.h"
646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "chrome/browser/devtools/devtools_network_controller.h"
846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "chrome/browser/devtools/devtools_network_transaction.h"
946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "net/base/net_errors.h"
1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "net/http/http_network_layer.h"
1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "net/http/http_network_transaction.h"
1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)DevToolsNetworkTransactionFactory::DevToolsNetworkTransactionFactory(
1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    DevToolsNetworkController* controller,
1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    net::HttpNetworkSession* session)
1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    : controller_(controller),
1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      network_layer_(new net::HttpNetworkLayer(session)) {
1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)DevToolsNetworkTransactionFactory::~DevToolsNetworkTransactionFactory() {
2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)int DevToolsNetworkTransactionFactory::CreateTransaction(
2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    net::RequestPriority priority,
2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    scoped_ptr<net::HttpTransaction>* trans) {
2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  scoped_ptr<net::HttpTransaction> network_transaction;
2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  int rv = network_layer_->CreateTransaction(priority, &network_transaction);
2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  if (rv != net::OK) {
2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    return rv;
3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  }
3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  trans->reset(
3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      new DevToolsNetworkTransaction(controller_, network_transaction.Pass()));
3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  return net::OK;
3446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)net::HttpCache* DevToolsNetworkTransactionFactory::GetCache() {
3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  return network_layer_->GetCache();
3846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
3946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
4046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)net::HttpNetworkSession* DevToolsNetworkTransactionFactory::GetSession() {
4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  return network_layer_->GetSession();
4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
43