diff options
32 files changed, 55 insertions, 1144 deletions
diff --git a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc index 9eb641c..9b1f08b 100644 --- a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc +++ b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc @@ -4,40 +4,14 @@ #include "chrome/browser/devtools/chrome_devtools_manager_delegate.h" -#include "base/values.h" -#include "chrome/browser/devtools/devtools_network_controller.h" -#include "chrome/browser/devtools/devtools_protocol.h" -#include "chrome/browser/devtools/devtools_protocol_constants.h" #include "chrome/browser/devtools/devtools_window.h" #include "chrome/browser/profiles/profile.h" -#include "content/public/browser/browser_thread.h" #include "content/public/browser/devtools_agent_host.h" -#include "content/public/browser/devtools_manager.h" -#include "content/public/browser/render_process_host.h" -#include "content/public/browser/render_view_host.h" -#include "content/public/browser/site_instance.h" -ChromeDevToolsManagerDelegate::ChromeDevToolsManagerDelegate() - : devtools_callback_(base::Bind( - &ChromeDevToolsManagerDelegate::OnDevToolsStateChanged, - base::Unretained(this))), - devtools_callback_registered_(false) { - // This constructor is invoked from DevToolsManagerImpl constructor, so it - // shouldn't call DevToolsManager::GetInstance() +ChromeDevToolsManagerDelegate::ChromeDevToolsManagerDelegate() { } ChromeDevToolsManagerDelegate::~ChromeDevToolsManagerDelegate() { - // This destructor is invoked from DevToolsManagerImpl destructor, so it - // shouldn't call DevToolsManager::GetInstance() -} - -void ChromeDevToolsManagerDelegate::EnsureDevtoolsCallbackRegistered() { - DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - if (!devtools_callback_registered_) { - content::DevToolsManager::GetInstance()->AddAgentStateCallback( - devtools_callback_); - devtools_callback_registered_ = true; - } } void ChromeDevToolsManagerDelegate::Inspect( @@ -56,53 +30,5 @@ void ChromeDevToolsManagerDelegate::Inspect( base::DictionaryValue* ChromeDevToolsManagerDelegate::HandleCommand( content::DevToolsAgentHost* agent_host, base::DictionaryValue* command_dict) { - scoped_ptr<DevToolsProtocol::Command> command( - DevToolsProtocol::ParseCommand(command_dict)); - if (!command) - return NULL; - const std::string method = command->method(); - if (method == chrome::devtools::Network::emulateNetworkConditions::kName) - return EmulateNetworkConditions(agent_host, command.get())->Serialize(); return NULL; } - -Profile* ChromeDevToolsManagerDelegate::GetProfile( - content::DevToolsAgentHost* agent_host) { - content::RenderViewHost* host = agent_host->GetRenderViewHost(); - if (!host) - return NULL; - return Profile::FromBrowserContext(host->GetSiteInstance()->GetProcess()-> - GetBrowserContext()); -} - -scoped_ptr<DevToolsProtocol::Response> -ChromeDevToolsManagerDelegate::EmulateNetworkConditions( - content::DevToolsAgentHost* agent_host, - DevToolsProtocol::Command* command) { - base::DictionaryValue* params = command->params(); - bool offline = false; - const char* offline_param = - chrome::devtools::Network::emulateNetworkConditions::kParamOffline; - if (!params || !params->GetBoolean(offline_param, &offline)) - return command->InvalidParamResponse(offline_param); - - EnsureDevtoolsCallbackRegistered(); - UpdateNetworkState(agent_host, offline); - return command->SuccessResponse(NULL); -} - -void ChromeDevToolsManagerDelegate::UpdateNetworkState( - content::DevToolsAgentHost* agent_host, - bool offline) { - Profile* profile = GetProfile(agent_host); - if (!profile) - return; - profile->GetDevToolsNetworkController()->SetNetworkState( - agent_host->GetId(), offline); -} - -void ChromeDevToolsManagerDelegate::OnDevToolsStateChanged( - content::DevToolsAgentHost* agent_host, - bool attached) { - UpdateNetworkState(agent_host, false); -} diff --git a/chrome/browser/devtools/chrome_devtools_manager_delegate.h b/chrome/browser/devtools/chrome_devtools_manager_delegate.h index 9b38332..4de8369 100644 --- a/chrome/browser/devtools/chrome_devtools_manager_delegate.h +++ b/chrome/browser/devtools/chrome_devtools_manager_delegate.h @@ -5,14 +5,10 @@ #ifndef CHROME_BROWSER_DEVTOOLS_CHROME_DEVTOOLS_MANAGER_DELEGATE_H_ #define CHROME_BROWSER_DEVTOOLS_CHROME_DEVTOOLS_MANAGER_DELEGATE_H_ -#include "base/callback.h" #include "base/compiler_specific.h" #include "base/macros.h" -#include "chrome/browser/devtools/devtools_protocol.h" #include "content/public/browser/devtools_manager_delegate.h" -class Profile; - class ChromeDevToolsManagerDelegate : public content::DevToolsManagerDelegate { public: ChromeDevToolsManagerDelegate(); @@ -26,21 +22,6 @@ class ChromeDevToolsManagerDelegate : public content::DevToolsManagerDelegate { base::DictionaryValue* command_dict) OVERRIDE; private: - base::Callback<void(content::DevToolsAgentHost*, bool)> devtools_callback_; - bool devtools_callback_registered_; - void EnsureDevtoolsCallbackRegistered(); - - Profile* GetProfile(content::DevToolsAgentHost* agent_host); - - scoped_ptr<DevToolsProtocol::Response> EmulateNetworkConditions( - content::DevToolsAgentHost* agent_host, - DevToolsProtocol::Command* command); - - void UpdateNetworkState(content::DevToolsAgentHost* agent_host, bool offline); - - void OnDevToolsStateChanged(content::DevToolsAgentHost* agent_host, - bool attached); - DISALLOW_COPY_AND_ASSIGN(ChromeDevToolsManagerDelegate); }; diff --git a/chrome/browser/devtools/devtools_network_controller.cc b/chrome/browser/devtools/devtools_network_controller.cc deleted file mode 100644 index 4ed7dfa..0000000 --- a/chrome/browser/devtools/devtools_network_controller.cc +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/devtools/devtools_network_controller.h" - -#include "chrome/browser/devtools/devtools_network_transaction.h" -#include "chrome/browser/profiles/profile.h" -#include "chrome/browser/profiles/profile_io_data.h" -#include "content/public/browser/browser_thread.h" -#include "content/public/browser/resource_context.h" - -using content::BrowserThread; - -namespace { - -const char kDevToolsRequestInitiator[] = "X-DevTools-Request-Initiator"; - -} // namespace - -DevToolsNetworkController::DevToolsNetworkController() - : weak_ptr_factory_(this) { -} - -DevToolsNetworkController::~DevToolsNetworkController() { -} - -void DevToolsNetworkController::AddTransaction( - DevToolsNetworkTransaction* transaction) { - DCHECK(thread_checker_.CalledOnValidThread()); - transactions_.insert(transaction); -} - -void DevToolsNetworkController::RemoveTransaction( - DevToolsNetworkTransaction* transaction) { - DCHECK(thread_checker_.CalledOnValidThread()); - DCHECK(transactions_.find(transaction) != transactions_.end()); - transactions_.erase(transaction); -} - -void DevToolsNetworkController::SetNetworkState( - const std::string& client_id, - bool offline) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); - BrowserThread::PostTask( - content::BrowserThread::IO, - FROM_HERE, - base::Bind( - &DevToolsNetworkController::SetNetworkStateOnIO, - weak_ptr_factory_.GetWeakPtr(), - client_id, - offline)); -} - -void DevToolsNetworkController::SetNetworkStateOnIO( - const std::string& client_id, - bool offline) { - DCHECK(thread_checker_.CalledOnValidThread()); - if (!offline) { - clients_.erase(client_id); - return; - } - clients_.insert(client_id); - - // Iterate over a copy of set, because failing of transaction could result in - // creating a new one, or (theoretically) destroying one. - Transactions old_transactions(transactions_); - for (Transactions::iterator it = old_transactions.begin(); - it != old_transactions.end(); ++it) { - if (transactions_.find(*it) == transactions_.end()) - continue; - if (!(*it)->request() || (*it)->failed()) - continue; - if (ShouldFail((*it)->request())) - (*it)->Fail(); - } -} - -bool DevToolsNetworkController::ShouldFail( - const net::HttpRequestInfo* request) { - DCHECK(thread_checker_.CalledOnValidThread()); - DCHECK(request); - if (clients_.empty()) - return false; - - if (request->extra_headers.HasHeader(kDevToolsRequestInitiator)) - return false; - - // TODO: Add domain blacklist. - - return true; -} diff --git a/chrome/browser/devtools/devtools_network_controller.h b/chrome/browser/devtools/devtools_network_controller.h deleted file mode 100644 index b917049..0000000 --- a/chrome/browser/devtools/devtools_network_controller.h +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_CONTROLLER_H_ -#define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_CONTROLLER_H_ - -#include <set> -#include <string> - -#include "base/macros.h" -#include "base/memory/scoped_ptr.h" -#include "base/memory/weak_ptr.h" -#include "base/threading/thread_checker.h" - -class DevToolsNetworkTransaction; -class GURL; -class Profile; - -namespace content { -class ResourceContext; -} - -namespace net { -struct HttpRequestInfo; -} - -namespace test { -class DevToolsNetworkControllerHelper; -} - -// DevToolsNetworkController tracks DevToolsNetworkTransactions. -class DevToolsNetworkController { - - public: - DevToolsNetworkController(); - virtual ~DevToolsNetworkController(); - - void AddTransaction(DevToolsNetworkTransaction* transaction); - - void RemoveTransaction(DevToolsNetworkTransaction* transaction); - - // Applies network emulation configuration. - // |client_id| should be DevToolsAgentHost GUID. - void SetNetworkState( - const std::string& client_id, - bool disable_network); - - bool ShouldFail(const net::HttpRequestInfo* request); - - protected: - friend class test::DevToolsNetworkControllerHelper; - - private: - // Controller must be constructed on IO thread. - base::ThreadChecker thread_checker_; - - void SetNetworkStateOnIO( - const std::string& client_id, - bool disable_network); - - typedef std::set<DevToolsNetworkTransaction*> Transactions; - Transactions transactions_; - - typedef std::set<std::string> Clients; - Clients clients_; - - base::WeakPtrFactory<DevToolsNetworkController> weak_ptr_factory_; - - DISALLOW_COPY_AND_ASSIGN(DevToolsNetworkController); -}; - -#endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_CONTROLLER_H_ diff --git a/chrome/browser/devtools/devtools_network_controller_unittest.cc b/chrome/browser/devtools/devtools_network_controller_unittest.cc deleted file mode 100644 index 6fe6256..0000000 --- a/chrome/browser/devtools/devtools_network_controller_unittest.cc +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include <string> - -#include "base/memory/ref_counted.h" -#include "base/memory/scoped_ptr.h" -#include "base/message_loop/message_loop.h" -#include "base/run_loop.h" -#include "chrome/browser/devtools/devtools_network_controller.h" -#include "chrome/browser/devtools/devtools_network_transaction.h" -#include "net/http/http_transaction_test_util.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "url/gurl.h" - -namespace test { - -const char kClientId[] = "42"; -const char kAnotherClientId[] = "24"; - -class TestCallback { - public: - TestCallback() : run_count_(0), value_(0) {} - void Run(int value) { - run_count_++; - value_ = value; - } - int run_count() { return run_count_; } - int value() { return value_; } - - private: - int run_count_; - int value_; -}; - -class DevToolsNetworkControllerHelper { - public: - DevToolsNetworkControllerHelper() : - completion_callback_( - base::Bind(&TestCallback::Run, base::Unretained(&callback_))), - mock_transaction_(kSimpleGET_Transaction), - buffer_(new net::IOBuffer(64)) { - mock_transaction_.test_mode = TEST_MODE_SYNC_NET_START; - mock_transaction_.url = "http://dot.com"; - AddMockTransaction(&mock_transaction_); - - scoped_ptr<net::HttpTransaction> network_transaction; - network_layer_.CreateTransaction( - net::DEFAULT_PRIORITY, &network_transaction); - transaction_.reset(new DevToolsNetworkTransaction( - &controller_, network_transaction.Pass())); - } - - net::HttpRequestInfo* GetRequest() { - if (!request_) - request_.reset(new MockHttpRequest(mock_transaction_)); - return request_.get(); - } - - void SetNetworkState(const std::string& client_id, bool offline) { - controller_.SetNetworkStateOnIO(client_id, offline); - } - - int Start() { - return transaction_->Start( - GetRequest(), completion_callback_, net::BoundNetLog()); - } - - int Read() { - return transaction_->Read(buffer_.get(), 64, completion_callback_); - } - - ~DevToolsNetworkControllerHelper() { - RemoveMockTransaction(&mock_transaction_); - } - - TestCallback* callback() { return &callback_; } - MockTransaction* mock_transaction() { return &mock_transaction_; } - DevToolsNetworkController* controller() { return &controller_; } - DevToolsNetworkTransaction* transaction() { return transaction_.get(); } - - private: - base::MessageLoop message_loop_; - MockNetworkLayer network_layer_; - TestCallback callback_; - net::CompletionCallback completion_callback_; - MockTransaction mock_transaction_; - DevToolsNetworkController controller_; - scoped_ptr<DevToolsNetworkTransaction> transaction_; - scoped_refptr<net::IOBuffer> buffer_; - scoped_ptr<MockHttpRequest> request_; -}; - -TEST(DevToolsNetworkControllerTest, SingleDisableEnable) { - DevToolsNetworkControllerHelper helper; - DevToolsNetworkController* controller = helper.controller(); - net::HttpRequestInfo* request = helper.GetRequest(); - - EXPECT_FALSE(controller->ShouldFail(request)); - helper.SetNetworkState(kClientId, true); - EXPECT_TRUE(controller->ShouldFail(request)); - helper.SetNetworkState(kClientId, false); - EXPECT_FALSE(controller->ShouldFail(request)); -} - -TEST(DevToolsNetworkControllerTest, DoubleDisableEnable) { - DevToolsNetworkControllerHelper helper; - DevToolsNetworkController* controller = helper.controller(); - net::HttpRequestInfo* request = helper.GetRequest(); - - EXPECT_FALSE(controller->ShouldFail(request)); - helper.SetNetworkState(kClientId, true); - EXPECT_TRUE(controller->ShouldFail(request)); - helper.SetNetworkState(kAnotherClientId, true); - EXPECT_TRUE(controller->ShouldFail(request)); - helper.SetNetworkState(kClientId, false); - EXPECT_TRUE(controller->ShouldFail(request)); - helper.SetNetworkState(kAnotherClientId, false); - EXPECT_FALSE(controller->ShouldFail(request)); -} - -TEST(DevToolsNetworkControllerTest, FailOnStart) { - DevToolsNetworkControllerHelper helper; - helper.SetNetworkState(kClientId, true); - - int rv = helper.Start(); - EXPECT_EQ(rv, net::ERR_INTERNET_DISCONNECTED); - - base::RunLoop().RunUntilIdle(); - EXPECT_EQ(helper.callback()->run_count(), 0); -} - -TEST(DevToolsNetworkControllerTest, FailRunningTransaction) { - DevToolsNetworkControllerHelper helper; - TestCallback* callback = helper.callback(); - - int rv = helper.Start(); - EXPECT_EQ(rv, net::OK); - - scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(64)); - rv = helper.Read(); - EXPECT_EQ(rv, net::ERR_IO_PENDING); - EXPECT_EQ(callback->run_count(), 0); - - helper.SetNetworkState(kClientId, true); - EXPECT_EQ(callback->run_count(), 1); - EXPECT_EQ(callback->value(), net::ERR_INTERNET_DISCONNECTED); - - // Wait until HttpTrancation completes reading and invokes callback. - // DevToolsNetworkTransaction should ignore callback, because it has - // reported network error already. - base::RunLoop().RunUntilIdle(); - EXPECT_EQ(callback->run_count(), 1); - - // Check that transaction in not failed second time. - helper.SetNetworkState(kClientId, false); - helper.SetNetworkState(kClientId, true); - EXPECT_EQ(callback->run_count(), 1); -} - -TEST(DevToolsNetworkControllerTest, ReadAfterFail) { - DevToolsNetworkControllerHelper helper; - - int rv = helper.Start(); - EXPECT_EQ(rv, net::OK); - EXPECT_TRUE(helper.transaction()->request()); - - helper.SetNetworkState(kClientId, true); - EXPECT_TRUE(helper.transaction()->failed()); - - scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(64)); - rv = helper.Read(); - EXPECT_EQ(rv, net::ERR_INTERNET_DISCONNECTED); - - // Check that callback is never invoked. - base::RunLoop().RunUntilIdle(); - EXPECT_EQ(helper.callback()->run_count(), 0); -} - -TEST(DevToolsNetworkControllerTest, AllowsDevToolsRequests) { - DevToolsNetworkControllerHelper helper; - helper.mock_transaction()->request_headers = - "X-DevTools-Request-Initiator: frontend\r\n"; - DevToolsNetworkController* controller = helper.controller(); - net::HttpRequestInfo* request = helper.GetRequest(); - - EXPECT_FALSE(controller->ShouldFail(request)); - helper.SetNetworkState(kClientId, true); - EXPECT_FALSE(controller->ShouldFail(request)); -} - -} // namespace test diff --git a/chrome/browser/devtools/devtools_network_transaction.cc b/chrome/browser/devtools/devtools_network_transaction.cc deleted file mode 100644 index bba196c..0000000 --- a/chrome/browser/devtools/devtools_network_transaction.cc +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/devtools/devtools_network_transaction.h" - -#include "chrome/browser/devtools/devtools_network_controller.h" -#include "net/base/net_errors.h" -#include "net/base/upload_progress.h" -#include "net/http/http_network_transaction.h" -#include "net/http/http_request_info.h" - -DevToolsNetworkTransaction::DevToolsNetworkTransaction( - DevToolsNetworkController* controller, - scoped_ptr<net::HttpTransaction> network_transaction) - : controller_(controller), - network_transaction_(network_transaction.Pass()), - request_(NULL), - failed_(false), - proxy_callback_(base::Bind(&DevToolsNetworkTransaction::OnCallback, - base::Unretained(this))) { - DCHECK(controller); - controller->AddTransaction(this); -} - -DevToolsNetworkTransaction::~DevToolsNetworkTransaction() { - controller_->RemoveTransaction(this); -} - -void DevToolsNetworkTransaction::OnCallback(int rv) { - if (failed_) - return; - DCHECK(!callback_.is_null()); - net::CompletionCallback callback = callback_; - callback_.Reset(); - callback.Run(rv); -} - -void DevToolsNetworkTransaction::Fail() { - DCHECK(request_); - DCHECK(!failed_); - failed_ = true; - network_transaction_->SetBeforeNetworkStartCallback( - BeforeNetworkStartCallback()); - if (callback_.is_null()) - return; - net::CompletionCallback callback = callback_; - callback_.Reset(); - callback.Run(net::ERR_INTERNET_DISCONNECTED); -} - -int DevToolsNetworkTransaction::Start( - const net::HttpRequestInfo* request, - const net::CompletionCallback& callback, - const net::BoundNetLog& net_log) { - DCHECK(request); - request_ = request; - - if (controller_->ShouldFail(request_)) { - failed_ = true; - network_transaction_->SetBeforeNetworkStartCallback( - BeforeNetworkStartCallback()); - return net::ERR_INTERNET_DISCONNECTED; - } - int rv = network_transaction_->Start(request, proxy_callback_, net_log); - if (rv == net::ERR_IO_PENDING) - callback_ = callback; - return rv; -} - -int DevToolsNetworkTransaction::RestartIgnoringLastError( - const net::CompletionCallback& callback) { - if (failed_) - return net::ERR_INTERNET_DISCONNECTED; - int rv = network_transaction_->RestartIgnoringLastError(proxy_callback_); - if (rv == net::ERR_IO_PENDING) - callback_ = callback; - return rv; -} - -int DevToolsNetworkTransaction::RestartWithCertificate( - net::X509Certificate* client_cert, - const net::CompletionCallback& callback) { - if (failed_) - return net::ERR_INTERNET_DISCONNECTED; - int rv = network_transaction_->RestartWithCertificate( - client_cert, proxy_callback_); - if (rv == net::ERR_IO_PENDING) - callback_ = callback; - return rv; -} - -int DevToolsNetworkTransaction::RestartWithAuth( - const net::AuthCredentials& credentials, - const net::CompletionCallback& callback) { - if (failed_) - return net::ERR_INTERNET_DISCONNECTED; - int rv = network_transaction_->RestartWithAuth(credentials, proxy_callback_); - if (rv == net::ERR_IO_PENDING) - callback_ = callback; - return rv; -} - -bool DevToolsNetworkTransaction::IsReadyToRestartForAuth() { - return network_transaction_->IsReadyToRestartForAuth(); -} - -int DevToolsNetworkTransaction::Read( - net::IOBuffer* buf, - int buf_len, - const net::CompletionCallback& callback) { - if (failed_) - return net::ERR_INTERNET_DISCONNECTED; - int rv = network_transaction_->Read(buf, buf_len, proxy_callback_); - if (rv == net::ERR_IO_PENDING) - callback_ = callback; - return rv; -} - -void DevToolsNetworkTransaction::StopCaching() { - network_transaction_->StopCaching(); -} - -bool DevToolsNetworkTransaction::GetFullRequestHeaders( - net::HttpRequestHeaders* headers) const { - return network_transaction_->GetFullRequestHeaders(headers); -} - -int64 DevToolsNetworkTransaction::GetTotalReceivedBytes() const { - return network_transaction_->GetTotalReceivedBytes(); -} - -void DevToolsNetworkTransaction::DoneReading() { - network_transaction_->DoneReading(); -} - -const net::HttpResponseInfo* -DevToolsNetworkTransaction::GetResponseInfo() const { - return network_transaction_->GetResponseInfo(); -} - -net::LoadState DevToolsNetworkTransaction::GetLoadState() const { - return network_transaction_->GetLoadState(); -} - -net::UploadProgress DevToolsNetworkTransaction::GetUploadProgress() const { - return network_transaction_->GetUploadProgress(); -} - -void DevToolsNetworkTransaction::SetQuicServerInfo( - net::QuicServerInfo* quic_server_info) { - network_transaction_->SetQuicServerInfo(quic_server_info); -} - -bool DevToolsNetworkTransaction::GetLoadTimingInfo( - net::LoadTimingInfo* load_timing_info) const { - return network_transaction_->GetLoadTimingInfo(load_timing_info); -} - -void DevToolsNetworkTransaction::SetPriority(net::RequestPriority priority) { - network_transaction_->SetPriority(priority); -} - -void DevToolsNetworkTransaction::SetWebSocketHandshakeStreamCreateHelper( - net::WebSocketHandshakeStreamBase::CreateHelper* create_helper) { - network_transaction_->SetWebSocketHandshakeStreamCreateHelper(create_helper); -} - -void DevToolsNetworkTransaction::SetBeforeNetworkStartCallback( - const BeforeNetworkStartCallback& callback) { - network_transaction_->SetBeforeNetworkStartCallback(callback); -} - -int DevToolsNetworkTransaction::ResumeNetworkStart() { - if (failed_) - return net::ERR_INTERNET_DISCONNECTED; - return network_transaction_->ResumeNetworkStart(); -} diff --git a/chrome/browser/devtools/devtools_network_transaction.h b/chrome/browser/devtools/devtools_network_transaction.h deleted file mode 100644 index 5a51ab2..0000000 --- a/chrome/browser/devtools/devtools_network_transaction.h +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_TRANSACTION_H_ -#define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_TRANSACTION_H_ - -#include "base/memory/scoped_ptr.h" -#include "net/base/completion_callback.h" -#include "net/base/load_states.h" -#include "net/base/request_priority.h" -#include "net/http/http_transaction.h" -#include "net/websockets/websocket_handshake_stream_base.h" - -class DevToolsNetworkController; -class GURL; - -namespace net { -class AuthCredentials; -class BoundNetLog; -class HttpRequestHeaders; -struct HttpRequestInfo; -class HttpResponseInfo; -class HttpNetworkSession; -class IOBuffer; -struct LoadTimingInfo; -class UploadProgress; -class X509Certificate; -} - -// DevToolsNetworkTransaction is a wrapper for network transaction. All -// HttpTransaction methods are proxied to real transaction, but |callback| -// parameter is saved and replaced with proxy callback. Fail method should be -// used to simulate network outage. It runs saved callback (if any) with -// net::ERR_INTERNET_DISCONNECTED result value. -class DevToolsNetworkTransaction : public net::HttpTransaction { - public: - DevToolsNetworkTransaction( - DevToolsNetworkController* controller, - scoped_ptr<net::HttpTransaction> network_transaction); - - virtual ~DevToolsNetworkTransaction(); - - const net::HttpRequestInfo* request() const { return request_; } - bool failed() const { return failed_; } - - // Runs callback (if any) with net::ERR_INTERNET_DISCONNECTED result value. - void Fail(); - - // HttpTransaction methods: - virtual int Start( - const net::HttpRequestInfo* request, - const net::CompletionCallback& callback, - const net::BoundNetLog& net_log) OVERRIDE; - virtual int RestartIgnoringLastError( - const net::CompletionCallback& callback) OVERRIDE; - virtual int RestartWithCertificate( - net::X509Certificate* client_cert, - const net::CompletionCallback& callback) OVERRIDE; - virtual int RestartWithAuth( - const net::AuthCredentials& credentials, - const net::CompletionCallback& callback) OVERRIDE; - virtual bool IsReadyToRestartForAuth() OVERRIDE; - - virtual int Read( - net::IOBuffer* buf, - int buf_len, - const net::CompletionCallback& callback) OVERRIDE; - virtual void StopCaching() OVERRIDE; - virtual bool GetFullRequestHeaders( - net::HttpRequestHeaders* headers) const OVERRIDE; - virtual int64 GetTotalReceivedBytes() const OVERRIDE; - virtual void DoneReading() OVERRIDE; - virtual const net::HttpResponseInfo* GetResponseInfo() const OVERRIDE; - virtual net::LoadState GetLoadState() const OVERRIDE; - virtual net::UploadProgress GetUploadProgress() const OVERRIDE; - virtual void SetQuicServerInfo( - net::QuicServerInfo* quic_server_info) OVERRIDE; - virtual bool GetLoadTimingInfo( - net::LoadTimingInfo* load_timing_info) const OVERRIDE; - virtual void SetPriority(net::RequestPriority priority) OVERRIDE; - virtual void SetWebSocketHandshakeStreamCreateHelper( - net::WebSocketHandshakeStreamBase::CreateHelper* create_helper) OVERRIDE; - virtual void SetBeforeNetworkStartCallback( - const BeforeNetworkStartCallback& callback) OVERRIDE; - virtual int ResumeNetworkStart() OVERRIDE; - - private: - // Proxy callback handler. Runs saved callback. - void OnCallback(int result); - - DevToolsNetworkController* controller_; - - // Real network transaction. - scoped_ptr<net::HttpTransaction> network_transaction_; - - const net::HttpRequestInfo* request_; - - // True if Start was already invoked. - bool started_; - - // True if Fail was already invoked. - bool failed_; - - net::CompletionCallback proxy_callback_; - net::CompletionCallback callback_; - - DISALLOW_COPY_AND_ASSIGN(DevToolsNetworkTransaction); -}; - -#endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_TRANSACTION_H_ diff --git a/chrome/browser/devtools/devtools_network_transaction_factory.cc b/chrome/browser/devtools/devtools_network_transaction_factory.cc deleted file mode 100644 index 3fd8b84..0000000 --- a/chrome/browser/devtools/devtools_network_transaction_factory.cc +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/devtools/devtools_network_transaction_factory.h" - -#include "chrome/browser/devtools/devtools_network_controller.h" -#include "chrome/browser/devtools/devtools_network_transaction.h" -#include "net/base/net_errors.h" -#include "net/http/http_network_layer.h" -#include "net/http/http_network_transaction.h" - -DevToolsNetworkTransactionFactory::DevToolsNetworkTransactionFactory( - DevToolsNetworkController* controller, - net::HttpNetworkSession* session) - : controller_(controller), - network_layer_(new net::HttpNetworkLayer(session)) { -} - -DevToolsNetworkTransactionFactory::~DevToolsNetworkTransactionFactory() { -} - -int DevToolsNetworkTransactionFactory::CreateTransaction( - net::RequestPriority priority, - scoped_ptr<net::HttpTransaction>* trans) { - scoped_ptr<net::HttpTransaction> network_transaction; - int rv = network_layer_->CreateTransaction(priority, &network_transaction); - if (rv != net::OK) { - return rv; - } - trans->reset( - new DevToolsNetworkTransaction(controller_, network_transaction.Pass())); - return net::OK; -} - -net::HttpCache* DevToolsNetworkTransactionFactory::GetCache() { - return network_layer_->GetCache(); -} - -net::HttpNetworkSession* DevToolsNetworkTransactionFactory::GetSession() { - return network_layer_->GetSession(); -} diff --git a/chrome/browser/devtools/devtools_network_transaction_factory.h b/chrome/browser/devtools/devtools_network_transaction_factory.h deleted file mode 100644 index 9faec2c..0000000 --- a/chrome/browser/devtools/devtools_network_transaction_factory.h +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_TRANSACTION_FACTORY_H_ -#define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_TRANSACTION_FACTORY_H_ - -#include "base/macros.h" -#include "base/memory/scoped_ptr.h" -#include "net/base/request_priority.h" -#include "net/http/http_transaction_factory.h" - -class DevToolsNetworkController; - -namespace net { -class HttpCache; -class HttpNetworkSession; -class HttpTransaction; -} - -// NetworkTransactionFactory wraps HttpNetworkTransactions. -class DevToolsNetworkTransactionFactory : public net::HttpTransactionFactory { - public: - DevToolsNetworkTransactionFactory( - DevToolsNetworkController* controller, - net::HttpNetworkSession* session); - virtual ~DevToolsNetworkTransactionFactory(); - - // net::HttpTransactionFactory methods: - virtual int CreateTransaction( - net::RequestPriority priority, - scoped_ptr<net::HttpTransaction>* trans) OVERRIDE; - virtual net::HttpCache* GetCache() OVERRIDE; - virtual net::HttpNetworkSession* GetSession() OVERRIDE; - - private: - DevToolsNetworkController* controller_; - scoped_ptr<net::HttpTransactionFactory> network_layer_; - - DISALLOW_COPY_AND_ASSIGN(DevToolsNetworkTransactionFactory); -}; - -#endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_TRANSACTION_FACTORY_H_ diff --git a/chrome/browser/devtools/devtools_protocol_constants_generator.py b/chrome/browser/devtools/devtools_protocol_constants_generator.py deleted file mode 100755 index b73e1e0..0000000 --- a/chrome/browser/devtools/devtools_protocol_constants_generator.py +++ /dev/null @@ -1,167 +0,0 @@ -#!/usr/bin/python -# Copyright 2014 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import sys -import string -import json - -# This is a stripped down clone of -# content/browser/devtools/devtools_protocol_constants_generator.py - -template_h = string.Template("""\ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_PROTOCOL_CONSTANTS_H_ -#define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_PROTOCOL_CONSTANTS_H_ - -// THIS FILE IS AUTOGENERATED. DO NOT EDIT. -// Generated by -// chrome/browser/devtools/devtools_protocol_constants_generator.py from -// third_party/WebKit/Source/devtools/protocol.json - -namespace devtools { - -$contents - -} // devtools - -#endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_PROTOCOL_CONSTANTS_H_ -""") - -template_cc = string.Template("""\ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// THIS FILE IS AUTOGENERATED. DO NOT EDIT. -// Generated by -// chrome/browser/devtools/devtools_protocol_constants_generator.py from -// third_party/WebKit/Source/devtools/protocol.json - -#include "chrome/browser/devtools/devtools_protocol_constants.h" - -namespace devtools { - -$contents - -} // devtools -""") - -def Capitalize(s): - return s[:1].capitalize() + s[1:] - -references = [] - -def CreateNamespace(domain_name, data, keys, prefixes, name = None): - result = {} - if name: - result["kName"] = name - for i, key in enumerate(keys): - if key in data: - for parameter in data[key]: - parameter_name = parameter["name"]; - result[prefixes[i] + Capitalize(parameter_name)] = parameter_name - if "enum" in parameter: - enum_name = Capitalize(parameter_name) - result[enum_name] = {} - for enum in parameter["enum"]: - result[enum_name]["kEnum" + Capitalize(enum)] = enum - reference = "" - if "$ref" in parameter: - reference = parameter["$ref"] - if "items" in parameter and "$ref" in parameter["items"]: - reference = parameter["items"]["$ref"] - if reference: - if not "." in reference: - reference = domain_name + "." + reference - references.append(reference) - return result - -def IsHandledInBrowser(item): - return "handlers" in item and "browser" in item["handlers"] - -def FormatContents(tree, indent, format_string): - outer = dict((key, value) for key, value in tree.iteritems() - if not isinstance(value, dict)) - inner = dict((key, value) for key, value in tree.iteritems() - if isinstance(value, dict)) - body = "" - body += "".join(indent + format_string.format(key, value) - for (key, value) in sorted(outer.items())) - body += "".join(FormatNamespace(key, value, indent, format_string) - for (key, value) in sorted(inner.items())) - return body - -def FormatNamespace(title, tree, indent, format_string): - if (not tree): - return "" - body = '\n' + indent + "namespace " + title + " {\n" - body += FormatContents(tree, indent + " ", format_string) - body += indent + "} // " + title + "\n" - return body - -def CreateHeader(tree, output_file): - contents = FormatContents(tree, "", "extern const char {0}[];\n") - output_file.write(template_h.substitute({"contents": contents})) - -def CreateBody(tree, output_file): - contents = FormatContents(tree, "", "const char {0}[] = \"{1}\";\n") - output_file.write(template_cc.substitute({"contents": contents})) - -protocol_data = open(sys.argv[1]).read() - -protocol = json.loads(protocol_data) - -domains = protocol["domains"] - -namespace_tree = {} - -for domain in domains: - domain_value = {} - domain_namespace_name = Capitalize(domain["domain"]) - if "commands" in domain: - for command in domain["commands"]: - if (IsHandledInBrowser(command)): - domain_value[command["name"]] = CreateNamespace(domain["domain"], - command, ["parameters", "returns"], ["kParam", "kResponse"], - domain_namespace_name + "." + command["name"]) - - if "events" in domain: - for event in domain["events"]: - if IsHandledInBrowser(event): - domain_value[event["name"]] = CreateNamespace(domain["domain"], - event, ["parameters"], ["kParam"], - domain_namespace_name + "." + event["name"]) - if domain_value: - namespace_tree[domain_namespace_name] = domain_value - -while (references): - reference = references.pop(); - path = reference.split("."); - parent_namespace = namespace_tree; - for path_segment in path[0:-1]: - if path_segment not in parent_namespace: - parent_namespace[path_segment] = {} - parent_namespace = parent_namespace[path_segment] - if (path[-1] not in parent_namespace): - try: - domain = [d for d in domains if d["domain"] == path[0]][0] - ref_type = [t for t in domain["types"] if t["id"] == path[1]][0] - parent_namespace[ref_type["id"]] = CreateNamespace(path[0], - ref_type, ["properties"], ["kParam"]) - except IndexError: - sys.stderr.write("Failed to resolve type [{0}].\n".format(reference)) - sys.exit(1) - -for (namespace_name, namespace) in namespace_tree.items(): - namespace["kName"] = namespace_name - -with open(sys.argv[2], "w") as f: - CreateBody(namespace_tree, f) - -with open(sys.argv[3], "w") as f: - CreateHeader(namespace_tree, f) diff --git a/chrome/browser/profiles/off_the_record_profile_impl.cc b/chrome/browser/profiles/off_the_record_profile_impl.cc index 556df68..d35a424 100644 --- a/chrome/browser/profiles/off_the_record_profile_impl.cc +++ b/chrome/browser/profiles/off_the_record_profile_impl.cc @@ -500,11 +500,6 @@ chrome_browser_net::Predictor* OffTheRecordProfileImpl::GetNetworkPredictor() { return NULL; } -DevToolsNetworkController* -OffTheRecordProfileImpl::GetDevToolsNetworkController() { - return io_data_->GetDevToolsNetworkController(); -} - void OffTheRecordProfileImpl::ClearNetworkingHistorySince( base::Time time, const base::Closure& completion) { diff --git a/chrome/browser/profiles/off_the_record_profile_impl.h b/chrome/browser/profiles/off_the_record_profile_impl.h index e6e27f8..a8a88d1 100644 --- a/chrome/browser/profiles/off_the_record_profile_impl.h +++ b/chrome/browser/profiles/off_the_record_profile_impl.h @@ -80,7 +80,6 @@ class OffTheRecordProfileImpl : public Profile { virtual PrefProxyConfigTracker* GetProxyConfigTracker() OVERRIDE; virtual chrome_browser_net::Predictor* GetNetworkPredictor() OVERRIDE; - virtual DevToolsNetworkController* GetDevToolsNetworkController() OVERRIDE; virtual void ClearNetworkingHistorySince( base::Time time, const base::Closure& completion) OVERRIDE; diff --git a/chrome/browser/profiles/off_the_record_profile_io_data.cc b/chrome/browser/profiles/off_the_record_profile_io_data.cc index 86a02b6..b0f7f6c 100644 --- a/chrome/browser/profiles/off_the_record_profile_io_data.cc +++ b/chrome/browser/profiles/off_the_record_profile_io_data.cc @@ -143,12 +143,6 @@ OffTheRecordProfileIOData::Handle::CreateIsolatedAppRequestContextGetter( return context; } -DevToolsNetworkController* -OffTheRecordProfileIOData::Handle::GetDevToolsNetworkController() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - return io_data_->network_controller(); -} - void OffTheRecordProfileIOData::Handle::LazyInitialize() const { if (initialized_) return; @@ -225,9 +219,13 @@ void OffTheRecordProfileIOData::InitializeInternal( net::HttpCache::BackendFactory* main_backend = net::HttpCache::DefaultBackend::InMemory(0); - main_http_factory_ = CreateMainHttpFactory(profile_params, main_backend); + net::HttpNetworkSession::Params network_session_params; + PopulateNetworkSessionParams(profile_params, &network_session_params); + net::HttpCache* cache = new net::HttpCache( + network_session_params, main_backend); - main_context->set_http_transaction_factory(main_http_factory_.get()); + main_http_factory_.reset(cache); + main_context->set_http_transaction_factory(cache); #if !defined(DISABLE_FTP_SUPPORT) ftp_factory_.reset( new net::FtpNetworkLayer(main_context->host_resolver())); @@ -317,11 +315,10 @@ ChromeURLRequestContext* OffTheRecordProfileIOData::InitializeAppRequestContext( net::HttpCache::DefaultBackend::InMemory(0); net::HttpNetworkSession* main_network_session = main_http_factory_->GetSession(); - scoped_ptr<net::HttpCache> app_http_cache = - CreateHttpFactory(main_network_session, app_backend); + scoped_ptr<net::HttpTransactionFactory> app_http_cache( + new net::HttpCache(main_network_session, app_backend)); - context->SetHttpTransactionFactory( - app_http_cache.PassAs<net::HttpTransactionFactory>()); + context->SetHttpTransactionFactory(app_http_cache.Pass()); scoped_ptr<net::URLRequestJobFactoryImpl> job_factory( new net::URLRequestJobFactoryImpl()); diff --git a/chrome/browser/profiles/off_the_record_profile_io_data.h b/chrome/browser/profiles/off_the_record_profile_io_data.h index ce24a02..789fffd 100644 --- a/chrome/browser/profiles/off_the_record_profile_io_data.h +++ b/chrome/browser/profiles/off_the_record_profile_io_data.h @@ -63,9 +63,6 @@ class OffTheRecordProfileIOData : public ProfileIOData { content::ProtocolHandlerMap* protocol_handlers, content::ProtocolHandlerScopedVector protocol_interceptors) const; - // Returns the DevToolsNetworkController attached to ProfileIOData. - DevToolsNetworkController* GetDevToolsNetworkController() const; - private: typedef std::map<StoragePartitionDescriptor, scoped_refptr<ChromeURLRequestContextGetter>, diff --git a/chrome/browser/profiles/profile.h b/chrome/browser/profiles/profile.h index f475881..6f84351 100644 --- a/chrome/browser/profiles/profile.h +++ b/chrome/browser/profiles/profile.h @@ -18,7 +18,6 @@ #include "net/url_request/url_request_job_factory.h" class ChromeAppCacheService; -class DevToolsNetworkController; class ExtensionService; class ExtensionSpecialStoragePolicy; class FaviconService; @@ -314,9 +313,6 @@ class Profile : public content::BrowserContext { // Returns the Predictor object used for dns prefetch. virtual chrome_browser_net::Predictor* GetNetworkPredictor() = 0; - // Returns the DevToolsNetworkController for this profile. - virtual DevToolsNetworkController* GetDevToolsNetworkController() = 0; - // Deletes all network related data since |time|. It deletes transport // security state since |time| and it also deletes HttpServerProperties data. // Works asynchronously, however if the |completion| callback is non-null, it diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc index 22e74f3..c6185fd 100644 --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc @@ -1241,10 +1241,6 @@ chrome_browser_net::Predictor* ProfileImpl::GetNetworkPredictor() { return predictor_; } -DevToolsNetworkController* ProfileImpl::GetDevToolsNetworkController() { - return io_data_.GetDevToolsNetworkController(); -} - void ProfileImpl::ClearNetworkingHistorySince( base::Time time, const base::Closure& completion) { diff --git a/chrome/browser/profiles/profile_impl.h b/chrome/browser/profiles/profile_impl.h index 024f2c9..256f8d1 100644 --- a/chrome/browser/profiles/profile_impl.h +++ b/chrome/browser/profiles/profile_impl.h @@ -142,7 +142,6 @@ class ProfileImpl : public Profile { virtual base::FilePath last_selected_directory() OVERRIDE; virtual void set_last_selected_directory(const base::FilePath& path) OVERRIDE; virtual chrome_browser_net::Predictor* GetNetworkPredictor() OVERRIDE; - virtual DevToolsNetworkController* GetDevToolsNetworkController() OVERRIDE; virtual void ClearNetworkingHistorySince( base::Time time, const base::Closure& completion) OVERRIDE; diff --git a/chrome/browser/profiles/profile_impl_io_data.cc b/chrome/browser/profiles/profile_impl_io_data.cc index ede6a39..915f5c3 100644 --- a/chrome/browser/profiles/profile_impl_io_data.cc +++ b/chrome/browser/profiles/profile_impl_io_data.cc @@ -297,12 +297,6 @@ ProfileImplIOData::Handle::GetIsolatedMediaRequestContextGetter( return context; } -DevToolsNetworkController* -ProfileImplIOData::Handle::GetDevToolsNetworkController() const { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - return io_data_->network_controller(); -} - void ProfileImplIOData::Handle::ClearNetworkingHistorySince( base::Time time, const base::Closure& completion) { @@ -481,8 +475,10 @@ void ProfileImplIOData::InitializeInternal( lazy_params_->cache_max_size, BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE) .get()); - scoped_ptr<net::HttpCache> main_cache = CreateMainHttpFactory( - profile_params, main_backend); + net::HttpNetworkSession::Params network_session_params; + PopulateNetworkSessionParams(profile_params, &network_session_params); + net::HttpCache* main_cache = new net::HttpCache( + network_session_params, main_backend); main_cache->InitializeInfiniteCache(lazy_params_->infinite_cache_path); #if defined(OS_ANDROID) || defined(OS_IOS) @@ -499,8 +495,8 @@ void ProfileImplIOData::InitializeInternal( net::HttpCache::RECORD : net::HttpCache::PLAYBACK); } - main_http_factory_.reset(main_cache.release()); - main_context->set_http_transaction_factory(main_http_factory_.get()); + main_http_factory_.reset(main_cache); + main_context->set_http_transaction_factory(main_cache); #if !defined(DISABLE_FTP_SUPPORT) ftp_factory_.reset( @@ -616,8 +612,8 @@ ChromeURLRequestContext* ProfileImplIOData::InitializeAppRequestContext( } net::HttpNetworkSession* main_network_session = main_http_factory_->GetSession(); - scoped_ptr<net::HttpCache> app_http_cache = - CreateHttpFactory(main_network_session, app_backend); + net::HttpCache* app_http_cache = + new net::HttpCache(main_network_session, app_backend); scoped_refptr<net::CookieStore> cookie_store = NULL; if (partition_descriptor.in_memory) { @@ -652,8 +648,7 @@ ChromeURLRequestContext* ProfileImplIOData::InitializeAppRequestContext( // Transfer ownership of the cookies and cache to AppRequestContext. context->SetCookieStore(cookie_store.get()); context->SetHttpTransactionFactory( - scoped_ptr<net::HttpTransactionFactory>( - app_http_cache.PassAs<net::HttpTransactionFactory>())); + scoped_ptr<net::HttpTransactionFactory>(app_http_cache)); scoped_ptr<net::URLRequestJobFactoryImpl> job_factory( new net::URLRequestJobFactoryImpl()); @@ -706,12 +701,11 @@ ProfileImplIOData::InitializeMediaRequestContext( .get()); net::HttpNetworkSession* main_network_session = main_http_factory_->GetSession(); - scoped_ptr<net::HttpCache> media_http_cache = - CreateHttpFactory(main_network_session, media_backend); + scoped_ptr<net::HttpTransactionFactory> media_http_cache( + new net::HttpCache(main_network_session, media_backend)); // Transfer ownership of the cache to MediaRequestContext. - context->SetHttpTransactionFactory( - media_http_cache.PassAs<net::HttpTransactionFactory>()); + context->SetHttpTransactionFactory(media_http_cache.Pass()); // Note that we do not create a new URLRequestJobFactory because // the media context should behave exactly like its parent context diff --git a/chrome/browser/profiles/profile_impl_io_data.h b/chrome/browser/profiles/profile_impl_io_data.h index 2717f99..e4197e4 100644 --- a/chrome/browser/profiles/profile_impl_io_data.h +++ b/chrome/browser/profiles/profile_impl_io_data.h @@ -89,9 +89,6 @@ class ProfileImplIOData : public ProfileIOData { const base::FilePath& partition_path, bool in_memory) const; - // Returns the DevToolsNetworkController attached to ProfileIOData. - DevToolsNetworkController* GetDevToolsNetworkController() const; - // Deletes all network related data since |time|. It deletes transport // security state since |time| and also deletes HttpServerProperties data. // Works asynchronously, however if the |completion| callback is non-null, diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc index 4e039f3..918f919 100644 --- a/chrome/browser/profiles/profile_io_data.cc +++ b/chrome/browser/profiles/profile_io_data.cc @@ -28,8 +28,6 @@ #include "chrome/browser/content_settings/host_content_settings_map.h" #include "chrome/browser/custom_handlers/protocol_handler_registry.h" #include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h" -#include "chrome/browser/devtools/devtools_network_controller.h" -#include "chrome/browser/devtools/devtools_network_transaction_factory.h" #include "chrome/browser/download/download_service.h" #include "chrome/browser/download/download_service_factory.h" #include "chrome/browser/extensions/extension_resource_protocols.h" @@ -1144,44 +1142,28 @@ void ProfileIOData::DestroyResourceContext() { resource_context_.reset(); } -scoped_ptr<net::HttpCache> ProfileIOData::CreateMainHttpFactory( +void ProfileIOData::PopulateNetworkSessionParams( const ProfileParams* profile_params, - net::HttpCache::BackendFactory* main_backend) const { - net::HttpNetworkSession::Params params; + net::HttpNetworkSession::Params* params) const { + ChromeURLRequestContext* context = main_request_context(); IOThread* const io_thread = profile_params->io_thread; - io_thread->InitializeNetworkSessionParams(¶ms); - - params.host_resolver = context->host_resolver(); - params.cert_verifier = context->cert_verifier(); - params.server_bound_cert_service = context->server_bound_cert_service(); - params.transport_security_state = context->transport_security_state(); - params.cert_transparency_verifier = context->cert_transparency_verifier(); - params.proxy_service = context->proxy_service(); - params.ssl_session_cache_shard = GetSSLSessionCacheShard(); - params.ssl_config_service = context->ssl_config_service(); - params.http_auth_handler_factory = context->http_auth_handler_factory(); - params.network_delegate = network_delegate(); - params.http_server_properties = context->http_server_properties(); - params.net_log = context->net_log(); - - network_controller_.reset(new DevToolsNetworkController()); - - net::HttpNetworkSession* session = new net::HttpNetworkSession(params); - return scoped_ptr<net::HttpCache>(new net::HttpCache( - new DevToolsNetworkTransactionFactory(network_controller_.get(), session), - context->net_log(), main_backend)); -} - -scoped_ptr<net::HttpCache> ProfileIOData::CreateHttpFactory( - net::HttpNetworkSession* shared_session, - net::HttpCache::BackendFactory* backend) const { - return scoped_ptr<net::HttpCache>(new net::HttpCache( - new DevToolsNetworkTransactionFactory( - network_controller_.get(), shared_session), - shared_session->net_log(), backend)); + io_thread->InitializeNetworkSessionParams(params); + + params->host_resolver = context->host_resolver(); + params->cert_verifier = context->cert_verifier(); + params->server_bound_cert_service = context->server_bound_cert_service(); + params->transport_security_state = context->transport_security_state(); + params->cert_transparency_verifier = context->cert_transparency_verifier(); + params->proxy_service = context->proxy_service(); + params->ssl_session_cache_shard = GetSSLSessionCacheShard(); + params->ssl_config_service = context->ssl_config_service(); + params->http_auth_handler_factory = context->http_auth_handler_factory(); + params->network_delegate = network_delegate(); + params->http_server_properties = context->http_server_properties(); + params->net_log = context->net_log(); } void ProfileIOData::SetCookieSettingsForTesting( diff --git a/chrome/browser/profiles/profile_io_data.h b/chrome/browser/profiles/profile_io_data.h index 945d2bb..aee3ea0 100644 --- a/chrome/browser/profiles/profile_io_data.h +++ b/chrome/browser/profiles/profile_io_data.h @@ -24,14 +24,12 @@ #include "content/public/browser/content_browser_client.h" #include "content/public/browser/resource_context.h" #include "net/cookies/cookie_monster.h" -#include "net/http/http_cache.h" #include "net/http/http_network_session.h" #include "net/url_request/url_request_job_factory.h" class ChromeHttpUserAgentSettings; class ChromeNetworkDelegate; class CookieSettings; -class DevToolsNetworkController; class HostContentSettingsMap; class ManagedModeURLFilter; class MediaDeviceIDSalt; @@ -185,10 +183,6 @@ class ProfileIOData { content::ResourceContext::SaltCallback GetMediaDeviceIDSalt() const; - DevToolsNetworkController* network_controller() const { - return network_controller_.get(); - } - net::TransportSecurityState* transport_security_state() const { return transport_security_state_.get(); } @@ -367,15 +361,11 @@ class ProfileIOData { // URLRequests may be accessing. void DestroyResourceContext(); - // Creates network session and main network transaction factory. - scoped_ptr<net::HttpCache> CreateMainHttpFactory( + // Fills in fields of params using values from main_request_context_ and the + // IOThread associated with profile_params. + void PopulateNetworkSessionParams( const ProfileParams* profile_params, - net::HttpCache::BackendFactory* main_backend) const; - - // Creates network transaction factory. - scoped_ptr<net::HttpCache> CreateHttpFactory( - net::HttpNetworkSession* shared_session, - net::HttpCache::BackendFactory* backend) const; + net::HttpNetworkSession::Params* params) const; void SetCookieSettingsForTesting(CookieSettings* cookie_settings); @@ -573,8 +563,6 @@ class ProfileIOData { mutable scoped_refptr<const ManagedModeURLFilter> managed_mode_url_filter_; #endif - mutable scoped_ptr<DevToolsNetworkController> network_controller_; - // TODO(jhawkins): Remove once crbug.com/102004 is fixed. bool initialized_on_UI_thread_; diff --git a/chrome/browser/ui/app_list/test/fake_profile.cc b/chrome/browser/ui/app_list/test/fake_profile.cc index 77e0260..ca471c1 100644 --- a/chrome/browser/ui/app_list/test/fake_profile.cc +++ b/chrome/browser/ui/app_list/test/fake_profile.cc @@ -209,10 +209,6 @@ chrome_browser_net::Predictor* FakeProfile::GetNetworkPredictor() { return NULL; } -DevToolsNetworkController* FakeProfile::GetDevToolsNetworkController() { - return NULL; -} - void FakeProfile::ClearNetworkingHistorySince( base::Time time, const base::Closure& completion) { diff --git a/chrome/browser/ui/app_list/test/fake_profile.h b/chrome/browser/ui/app_list/test/fake_profile.h index 396b66a..9486eab 100644 --- a/chrome/browser/ui/app_list/test/fake_profile.h +++ b/chrome/browser/ui/app_list/test/fake_profile.h @@ -111,7 +111,6 @@ class FakeProfile : public Profile { virtual PrefProxyConfigTracker* GetProxyConfigTracker() OVERRIDE; virtual chrome_browser_net::Predictor* GetNetworkPredictor() OVERRIDE; - virtual DevToolsNetworkController* GetDevToolsNetworkController() OVERRIDE; virtual void ClearNetworkingHistorySince( base::Time time, const base::Closure& completion) OVERRIDE; virtual void ClearDomainReliabilityMonitor( diff --git a/chrome/chrome_debugger.gypi b/chrome/chrome_debugger.gypi index 5a80c58..4ee09d9 100644 --- a/chrome/chrome_debugger.gypi +++ b/chrome/chrome_debugger.gypi @@ -64,12 +64,6 @@ 'browser/devtools/devtools_file_helper.h', 'browser/devtools/devtools_file_system_indexer.cc', 'browser/devtools/devtools_file_system_indexer.h', - 'browser/devtools/devtools_network_controller.cc', - 'browser/devtools/devtools_network_controller.h', - 'browser/devtools/devtools_network_transaction.cc', - 'browser/devtools/devtools_network_transaction.h', - 'browser/devtools/devtools_network_transaction_factory.cc', - 'browser/devtools/devtools_network_transaction_factory.h', 'browser/devtools/devtools_protocol.cc', 'browser/devtools/devtools_protocol.h', 'browser/devtools/devtools_target_impl.cc', diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi index 9cf650a..67b85d7 100644 --- a/chrome/chrome_tests_unit.gypi +++ b/chrome/chrome_tests_unit.gypi @@ -820,7 +820,6 @@ 'browser/diagnostics/diagnostics_model_unittest.cc', 'browser/diagnostics/diagnostics_controller_unittest.cc', 'browser/devtools/devtools_contents_resizing_strategy_unittest.cc', - 'browser/devtools/devtools_network_controller_unittest.cc', 'browser/download/all_download_item_notifier_unittest.cc', 'browser/download/chrome_download_manager_delegate_unittest.cc', 'browser/download/download_history_unittest.cc', diff --git a/chrome/test/base/testing_profile.cc b/chrome/test/base/testing_profile.cc index 9d73a9d..166fcc1 100644 --- a/chrome/test/base/testing_profile.cc +++ b/chrome/test/base/testing_profile.cc @@ -872,10 +872,6 @@ chrome_browser_net::Predictor* TestingProfile::GetNetworkPredictor() { return NULL; } -DevToolsNetworkController* TestingProfile::GetDevToolsNetworkController() { - return NULL; -} - void TestingProfile::ClearNetworkingHistorySince( base::Time time, const base::Closure& completion) { diff --git a/chrome/test/base/testing_profile.h b/chrome/test/base/testing_profile.h index 0c40b44..936a9ce 100644 --- a/chrome/test/base/testing_profile.h +++ b/chrome/test/base/testing_profile.h @@ -332,7 +332,6 @@ class TestingProfile : public Profile { void BlockUntilHistoryProcessesPendingRequests(); virtual chrome_browser_net::Predictor* GetNetworkPredictor() OVERRIDE; - virtual DevToolsNetworkController* GetDevToolsNetworkController() OVERRIDE; virtual void ClearNetworkingHistorySince( base::Time time, const base::Closure& completion) OVERRIDE; diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc index 74ce8a3..f114f19 100644 --- a/net/http/http_cache.cc +++ b/net/http/http_cache.cc @@ -291,9 +291,13 @@ HttpCache::HttpCache(const net::HttpNetworkSession::Params& params, backend_factory_(backend_factory), building_backend_(false), mode_(NORMAL), + quic_server_info_factory_(params.enable_quic_persist_server_info ? + new QuicServerInfoFactoryAdaptor(this) : NULL), network_layer_(new HttpNetworkLayer(new HttpNetworkSession(params))), weak_factory_(this) { - SetupQuicServerInfoFactory(network_layer_->GetSession()); + HttpNetworkSession* session = network_layer_->GetSession(); + session->quic_stream_factory()->set_quic_server_info_factory( + quic_server_info_factory_.get()); } @@ -318,7 +322,6 @@ HttpCache::HttpCache(HttpTransactionFactory* network_layer, mode_(NORMAL), network_layer_(network_layer), weak_factory_(this) { - SetupQuicServerInfoFactory(network_layer_->GetSession()); } HttpCache::~HttpCache() { @@ -1004,16 +1007,6 @@ bool HttpCache::RemovePendingTransactionFromPendingOp(PendingOp* pending_op, return false; } -void HttpCache::SetupQuicServerInfoFactory(HttpNetworkSession* session) { - if (session && session->params().enable_quic_persist_server_info && - !session->quic_stream_factory()->has_quic_server_info_factory()) { - DCHECK(!quic_server_info_factory_); - quic_server_info_factory_.reset(new QuicServerInfoFactoryAdaptor(this)); - session->quic_stream_factory()->set_quic_server_info_factory( - quic_server_info_factory_.get()); - } -} - void HttpCache::ProcessPendingQueue(ActiveEntry* entry) { // Multiple readers may finish with an entry at once, so we want to batch up // calls to OnProcessPendingQueue. This flag also tells us that we should diff --git a/net/http/http_cache.h b/net/http/http_cache.h index 732a9c0..8784c8a 100644 --- a/net/http/http_cache.h +++ b/net/http/http_cache.h @@ -124,16 +124,17 @@ class NET_EXPORT HttpCache : public HttpTransactionFactory, HttpCache(const net::HttpNetworkSession::Params& params, BackendFactory* backend_factory); - // The disk cache is initialized lazily (by CreateTransaction) in this case. + // The disk cache is initialized lazily (by CreateTransaction) in this case. // Provide an existing HttpNetworkSession, the cache can construct a // network layer with a shared HttpNetworkSession in order for multiple // network layers to share information (e.g. authentication data). The // HttpCache takes ownership of the |backend_factory|. HttpCache(HttpNetworkSession* session, BackendFactory* backend_factory); - // Initialize the cache from its component parts. The lifetime of the - // |network_layer| and |backend_factory| are managed by the HttpCache and - // will be destroyed using |delete| when the HttpCache is destroyed. + // Initialize the cache from its component parts, which is useful for + // testing. The lifetime of the network_layer and backend_factory are managed + // by the HttpCache and will be destroyed using |delete| when the HttpCache is + // destroyed. HttpCache(HttpTransactionFactory* network_layer, NetLog* net_log, BackendFactory* backend_factory); @@ -354,9 +355,6 @@ class NET_EXPORT HttpCache : public HttpTransactionFactory, bool RemovePendingTransactionFromPendingOp(PendingOp* pending_op, Transaction* trans); - // Instantiates and sets QUIC server info factory. - void SetupQuicServerInfoFactory(HttpNetworkSession* session); - // Resumes processing the pending list of |entry|. void ProcessPendingQueue(ActiveEntry* entry); @@ -392,7 +390,7 @@ class NET_EXPORT HttpCache : public HttpTransactionFactory, Mode mode_; - scoped_ptr<QuicServerInfoFactoryAdaptor> quic_server_info_factory_; + const scoped_ptr<QuicServerInfoFactoryAdaptor> quic_server_info_factory_; scoped_ptr<HttpTransactionFactory> network_layer_; diff --git a/net/quic/quic_stream_factory.h b/net/quic/quic_stream_factory.h index e949a47..97da453 100644 --- a/net/quic/quic_stream_factory.h +++ b/net/quic/quic_stream_factory.h @@ -158,10 +158,6 @@ class NET_EXPORT_PRIVATE QuicStreamFactory bool enable_port_selection() const { return enable_port_selection_; } - bool has_quic_server_info_factory() { - return quic_server_info_factory_ != NULL; - } - void set_quic_server_info_factory( QuicServerInfoFactory* quic_server_info_factory) { DCHECK(!quic_server_info_factory_); diff --git a/net/url_request/view_cache_helper_unittest.cc b/net/url_request/view_cache_helper_unittest.cc index 70bf201..0fdd193 100644 --- a/net/url_request/view_cache_helper_unittest.cc +++ b/net/url_request/view_cache_helper_unittest.cc @@ -9,7 +9,6 @@ #include "net/base/test_completion_callback.h" #include "net/disk_cache/disk_cache.h" #include "net/http/http_cache.h" -#include "net/http/http_transaction_test_util.h" #include "net/url_request/url_request_context.h" #include "testing/gtest/include/gtest/gtest.h" @@ -30,7 +29,7 @@ class TestURLRequestContext : public URLRequestContext { }; TestURLRequestContext::TestURLRequestContext() - : cache_(new MockNetworkLayer(), NULL, + : cache_(reinterpret_cast<HttpTransactionFactory*>(NULL), NULL, HttpCache::DefaultBackend::InMemory(0)) { set_http_transaction_factory(&cache_); } diff --git a/tools/gn/secondary/chrome/BUILD.gn b/tools/gn/secondary/chrome/BUILD.gn index aaff67f..c9a7278 100644 --- a/tools/gn/secondary/chrome/BUILD.gn +++ b/tools/gn/secondary/chrome/BUILD.gn @@ -122,12 +122,6 @@ source_set("debugger") { "browser/devtools/devtools_file_helper.h", "browser/devtools/devtools_file_system_indexer.cc", "browser/devtools/devtools_file_system_indexer.h", - "browser/devtools/devtools_network_controller.cpp", - "browser/devtools/devtools_network_controller.h", - "browser/devtools/devtools_network_transaction.cpp", - "browser/devtools/devtools_network_transaction.h", - "browser/devtools/devtools_network_transaction_factory.cpp", - "browser/devtools/devtools_network_transaction_factory.h", "browser/devtools/devtools_protocol.cc", "browser/devtools/devtools_protocol.h", "browser/devtools/devtools_toggle_action.h", |