Index: content/browser/devtools/protocol/network_handler.h |
diff --git a/content/browser/devtools/protocol/network_handler.h b/content/browser/devtools/protocol/network_handler.h |
index 32409ffc906d2d49e92e0505468a64c8bd800d6d..d177483a22107a110e4ff016ed739b86ff742c89 100644 |
--- a/content/browser/devtools/protocol/network_handler.h |
+++ b/content/browser/devtools/protocol/network_handler.h |
@@ -8,14 +8,20 @@ |
#include <memory> |
#include "base/macros.h" |
+#include "base/synchronization/lock.h" |
#include "content/browser/devtools/protocol/devtools_domain_handler.h" |
#include "content/browser/devtools/protocol/network.h" |
#include "net/base/net_errors.h" |
#include "net/cookies/canonical_cookie.h" |
+namespace net { |
+class URLRequest; |
+} // namespace net |
+ |
namespace content { |
class DevToolsSession; |
+class DevToolsURLInterceptorRequestJob; |
class RenderFrameHostImpl; |
struct BeginNavigationParams; |
struct CommonNavigationParams; |
@@ -64,6 +70,19 @@ class NetworkHandler : public DevToolsDomainHandler, |
Response SetUserAgentOverride(const std::string& user_agent) override; |
Response CanEmulateNetworkConditions(bool* result) override; |
+ DispatchResponse EnableFetchInterception(bool enabled) override; |
+ DispatchResponse AllowRequest(const String& intercept_id) override; |
+ DispatchResponse BlockRequest(const String& intercept_id, |
+ const std::string& error_reason) override; |
+ DispatchResponse ModifyRequest( |
+ const String& intercept_id, |
+ Maybe<String> url, |
+ Maybe<String> method, |
+ Maybe<String> post_data, |
+ Maybe<protocol::Network::Headers> headers) override; |
+ DispatchResponse MockResponse(const String& intercept_id, |
+ const String& raw_response) override; |
+ |
void NavigationPreloadRequestSent(int worker_version_id, |
const std::string& request_id, |
const ResourceRequest& request); |
@@ -79,14 +98,31 @@ class NetworkHandler : public DevToolsDomainHandler, |
net::Error error_code); |
bool enabled() const { return enabled_; } |
+ bool interception_enabled() const; |
std::string UserAgentOverride() const; |
+ Network::Frontend* frontend() const { return frontend_.get(); } |
+ |
+ void RegisterURLInterceptor(const std::string& intercept_id, |
+ DevToolsURLInterceptorRequestJob* interceptor); |
+ |
+ void UnregisterURLInterceptor(const std::string& intercept_id, |
+ DevToolsURLInterceptorRequestJob* interceptor); |
+ |
+ static std::unique_ptr<Network::Request> CreateRequestFromURLRequest( |
+ const net::URLRequest* request); |
+ |
private: |
std::unique_ptr<Network::Frontend> frontend_; |
RenderFrameHostImpl* host_; |
bool enabled_; |
std::string user_agent_; |
+ mutable base::Lock interception_lock_; // Protects members below |
+ std::unordered_map<std::string, DevToolsURLInterceptorRequestJob*> |
+ interceptor_map_; |
+ bool interception_enabled_; |
+ |
DISALLOW_COPY_AND_ASSIGN(NetworkHandler); |
}; |