#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
#include "base/message_loop/message_loop_proxy.h"
#include "base/path_service.h"
#include "base/strings/string16.h"
#include "net/base/net_errors.h"
#include "net/base/network_delegate.h"
#include "net/base/request_priority.h"
+#include "net/base/sdch_manager.h"
#include "net/cert/cert_verifier.h"
#include "net/cookies/cookie_monster.h"
#include "net/disk_cache/disk_cache.h"
#include "net/http/http_auth_handler_factory.h"
#include "net/http/http_cache.h"
#include "net/http/http_network_layer.h"
+#include "net/http/http_network_session.h"
#include "net/http/http_request_headers.h"
#include "net/proxy/proxy_service.h"
#include "net/ssl/ssl_config_service_defaults.h"
client_socket_factory_ = factory;
}
+ void set_http_network_session_params(
+ const HttpNetworkSession::Params& params) {
+ }
+
+ void SetSdchManager(scoped_ptr<SdchManager> sdch_manager) {
+ context_storage_.set_sdch_manager(sdch_manager.Pass());
+ }
+
private:
bool initialized_;
+ // Optional parameters to override default values. Note that values that
+ // point to other objects the TestURLRequestContext creates will be
+ // overwritten.
+ scoped_ptr<HttpNetworkSession::Params> http_network_session_params_;
+
// Not owned:
ClientSocketFactory* client_socket_factory_;
//-----------------------------------------------------------------------------
-class TestURLRequest : public URLRequest {
- public:
- TestURLRequest(const GURL& url,
- RequestPriority priority,
- Delegate* delegate,
- TestURLRequestContext* context);
- virtual ~TestURLRequest();
-};
-
-//-----------------------------------------------------------------------------
-
class TestDelegate : public URLRequest::Delegate {
public:
TestDelegate();
void ClearFullRequestHeaders();
// URLRequest::Delegate:
- virtual void OnReceivedRedirect(URLRequest* request, const GURL& new_url,
+ virtual void OnReceivedRedirect(URLRequest* request,
+ const RedirectInfo& redirect_info,
bool* defer_redirect) OVERRIDE;
virtual void OnBeforeNetworkStart(URLRequest* request, bool* defer) OVERRIDE;
virtual void OnAuthRequired(URLRequest* request,
void set_can_throttle_requests(bool val) { can_throttle_requests_ = val; }
bool can_throttle_requests() const { return can_throttle_requests_; }
+ void set_cancel_request_with_policy_violating_referrer(bool val) {
+ cancel_request_with_policy_violating_referrer_ = val;
+ }
+
+ int observed_before_proxy_headers_sent_callbacks() const {
+ return observed_before_proxy_headers_sent_callbacks_;
+ }
+
+ // Last observed proxy in proxy header sent callback.
+ HostPortPair last_observed_proxy() {
+ return last_observed_proxy_;
+ }
+
protected:
// NetworkDelegate:
virtual int OnBeforeURLRequest(URLRequest* request,
virtual int OnBeforeSendHeaders(URLRequest* request,
const CompletionCallback& callback,
HttpRequestHeaders* headers) OVERRIDE;
+ virtual void OnBeforeSendProxyHeaders(
+ net::URLRequest* request,
+ const net::ProxyInfo& proxy_info,
+ net::HttpRequestHeaders* headers) OVERRIDE;
virtual void OnSendHeaders(URLRequest* request,
const HttpRequestHeaders& headers) OVERRIDE;
virtual int OnHeadersReceived(
virtual int OnBeforeSocketStreamConnect(
SocketStream* stream,
const CompletionCallback& callback) OVERRIDE;
+ virtual bool OnCancelURLRequestWithPolicyViolatingReferrerHeader(
+ const URLRequest& request,
+ const GURL& target_url,
+ const GURL& referrer_url) const OVERRIDE;
void InitRequestStatesIfNew(int request_id);
int blocked_get_cookies_count_;
int blocked_set_cookie_count_;
int set_cookie_count_;
+ int observed_before_proxy_headers_sent_callbacks_;
+ // Last observed proxy in before proxy header sent callback.
+ HostPortPair last_observed_proxy_;
// NetworkDelegate callbacks happen in a particular order (e.g.
// OnBeforeURLRequest is always called before OnBeforeSendHeaders).
bool can_access_files_; // true by default
bool can_throttle_requests_; // true by default
+ bool cancel_request_with_policy_violating_referrer_; // false by default
};
// Overrides the host used by the LocalHttpTestServer in