| 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); | 
| }; | 
|  | 
|  |