Index: chrome/browser/devtools/devtools_network_transaction.h |
diff --git a/chrome/browser/devtools/devtools_network_transaction.h b/chrome/browser/devtools/devtools_network_transaction.h |
index 37e84ed8694b5ff4baab98b805cd8c3de0fa6506..77ae9217ee2c45b5735cdc95f6b972e5e9e925fd 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, |