summaryrefslogtreecommitdiffstats
path: root/chrome/browser/devtools/devtools_network_transaction.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/devtools/devtools_network_transaction.h')
-rw-r--r--chrome/browser/devtools/devtools_network_transaction.h29
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,