diff options
Diffstat (limited to 'chrome/browser/devtools/devtools_network_transaction.h')
-rw-r--r-- | chrome/browser/devtools/devtools_network_transaction.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/chrome/browser/devtools/devtools_network_transaction.h b/chrome/browser/devtools/devtools_network_transaction.h index 37e84ed..77ae9217 100644 --- a/chrome/browser/devtools/devtools_network_transaction.h +++ b/chrome/browser/devtools/devtools_network_transaction.h @@ -6,6 +6,7 @@ #define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_NETWORK_TRANSACTION_H_ #include "base/memory/scoped_ptr.h" +#include "base/memory/weak_ptr.h" #include "net/base/completion_callback.h" #include "net/base/load_states.h" #include "net/base/request_priority.h" @@ -13,6 +14,7 @@ #include "net/websockets/websocket_handshake_stream_base.h" class DevToolsNetworkController; +class DevToolsNetworkInterceptor; class GURL; namespace net { @@ -26,6 +28,10 @@ class IOBuffer; struct LoadTimingInfo; class UploadProgress; class X509Certificate; +} // namespace net + +namespace test { +class DevToolsNetworkControllerHelper; } // DevToolsNetworkTransaction is a wrapper for network transaction. All @@ -42,6 +48,11 @@ class DevToolsNetworkTransaction : public net::HttpTransaction { virtual ~DevToolsNetworkTransaction(); const net::HttpRequestInfo* request() const { return request_; } + + // Checks if request contains DevTools specific headers. Found values are + // remembered and corresponding keys are removed from headers. + void ProcessRequest(); + bool failed() const { return failed_; } // Runs callback (if any) with net::ERR_INTERNET_DISCONNECTED result value. @@ -52,6 +63,12 @@ class DevToolsNetworkTransaction : public net::HttpTransaction { throttled_byte_count_ -= delta; } + const std::string& request_initiator() const { return request_initiator_; } + + const std::string& client_id() const { + return client_id_; + } + void FireThrottledCallback(); // HttpTransaction methods: @@ -92,11 +109,15 @@ class DevToolsNetworkTransaction : public net::HttpTransaction { const BeforeNetworkStartCallback& callback) OVERRIDE; virtual int ResumeNetworkStart() OVERRIDE; + protected: + friend class test::DevToolsNetworkControllerHelper; + private: // Proxy callback handler. Runs saved callback. void OnCallback(int result); DevToolsNetworkController* controller_; + base::WeakPtr<DevToolsNetworkInterceptor> interceptor_; // Real network transaction. scoped_ptr<net::HttpTransaction> network_transaction_; @@ -109,6 +130,14 @@ class DevToolsNetworkTransaction : public net::HttpTransaction { // True if Fail was already invoked. bool failed_; + // Value of "X-DevTools-Request-Initiator" request header. + std::string request_initiator_; + + // Value of "X-DevTools-Emulate-Network-Conditions-Client-Id" request header. + std::string client_id_; + + scoped_ptr<net::HttpRequestInfo> custom_request_; + enum CallbackType { NONE, READ, |