| Index: content/test/net/url_request_prepackaged_interceptor.cc
|
| diff --git a/content/test/net/url_request_prepackaged_interceptor.cc b/content/test/net/url_request_prepackaged_interceptor.cc
|
| index f8603ef5de0f4e56b49a8e8710b5b52f8255fea2..9150a7ef88b104a1a933145922a79723254d4480 100644
|
| --- a/content/test/net/url_request_prepackaged_interceptor.cc
|
| +++ b/content/test/net/url_request_prepackaged_interceptor.cc
|
| @@ -38,23 +38,26 @@ class URLRequestPrepackagedJob : public net::URLRequestFileJob {
|
| class URLRequestPrepackagedInterceptor::Delegate
|
| : public net::URLRequestJobFactory::ProtocolHandler {
|
| public:
|
| - Delegate() : hit_count_(0) {}
|
| + Delegate(const std::string& scheme, const std::string& hostname)
|
| + : scheme_(scheme), hostname_(hostname), hit_count_(0) {}
|
| virtual ~Delegate() {}
|
|
|
| void Register() {
|
| net::URLRequestFilter::GetInstance()->AddHostnameProtocolHandler(
|
| - "http", "localhost",
|
| + scheme_, hostname_,
|
| scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>(this));
|
| }
|
|
|
| - static void Unregister() {
|
| - net::URLRequestFilter::GetInstance()->RemoveHostnameHandler("http",
|
| - "localhost");
|
| + static void Unregister(
|
| + const std::string& scheme,
|
| + const std::string& hostname) {
|
| + net::URLRequestFilter::GetInstance()->RemoveHostnameHandler(scheme,
|
| + hostname);
|
| }
|
|
|
| // When requests for |url| arrive, respond with the contents of |path|. The
|
| - // hostname of |url| must be "localhost" to avoid DNS lookups, and the scheme
|
| - // must be "http".
|
| + // hostname and scheme of |url| must match the corresponding parameters
|
| + // passed as constructor arguments.
|
| void SetResponse(const GURL& url,
|
| const base::FilePath& path,
|
| bool ignore_query) {
|
| @@ -84,8 +87,8 @@ class URLRequestPrepackagedInterceptor::Delegate
|
| net::URLRequest* request,
|
| net::NetworkDelegate* network_delegate) const OVERRIDE {
|
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - if (request->url().scheme() != "http" ||
|
| - request->url().host() != "localhost") {
|
| + if (request->url().scheme() != scheme_ ||
|
| + request->url().host() != hostname_) {
|
| return NULL;
|
| }
|
|
|
| @@ -112,6 +115,9 @@ class URLRequestPrepackagedInterceptor::Delegate
|
| it->second);
|
| }
|
|
|
| + const std::string scheme_;
|
| + const std::string hostname_;
|
| +
|
| ResponseMap responses_;
|
| ResponseMap ignore_query_responses_;
|
|
|
| @@ -122,8 +128,12 @@ class URLRequestPrepackagedInterceptor::Delegate
|
| };
|
|
|
|
|
| -URLRequestPrepackagedInterceptor::URLRequestPrepackagedInterceptor()
|
| - : delegate_(new Delegate) {
|
| +URLRequestPrepackagedInterceptor::URLRequestPrepackagedInterceptor(
|
| + const std::string& scheme,
|
| + const std::string& hostname)
|
| + : scheme_(scheme),
|
| + hostname_(hostname),
|
| + delegate_(new Delegate(scheme, hostname)) {
|
| BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| base::Bind(&Delegate::Register,
|
| base::Unretained(delegate_)));
|
| @@ -131,13 +141,16 @@ URLRequestPrepackagedInterceptor::URLRequestPrepackagedInterceptor()
|
|
|
| URLRequestPrepackagedInterceptor::~URLRequestPrepackagedInterceptor() {
|
| BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&Delegate::Unregister));
|
| + base::Bind(&Delegate::Unregister,
|
| + scheme_,
|
| + hostname_));
|
| }
|
|
|
| -void URLRequestPrepackagedInterceptor::SetResponse(const GURL& url,
|
| - const base::FilePath& path) {
|
| - CHECK_EQ("http", url.scheme());
|
| - CHECK_EQ("localhost", url.host());
|
| +void URLRequestPrepackagedInterceptor::SetResponse(
|
| + const GURL& url,
|
| + const base::FilePath& path) {
|
| + CHECK_EQ(scheme_, url.scheme());
|
| + CHECK_EQ(hostname_, url.host());
|
| BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| base::Bind(&Delegate::SetResponse,
|
| base::Unretained(delegate_), url, path,
|
| @@ -147,8 +160,8 @@ void URLRequestPrepackagedInterceptor::SetResponse(const GURL& url,
|
| void URLRequestPrepackagedInterceptor::SetResponseIgnoreQuery(
|
| const GURL& url,
|
| const base::FilePath& path) {
|
| - CHECK_EQ("http", url.scheme());
|
| - CHECK_EQ("localhost", url.host());
|
| + CHECK_EQ(scheme_, url.scheme());
|
| + CHECK_EQ(hostname_, url.host());
|
| BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| base::Bind(&Delegate::SetResponse,
|
| base::Unretained(delegate_), url, path,
|
| @@ -159,4 +172,10 @@ int URLRequestPrepackagedInterceptor::GetHitCount() {
|
| return delegate_->GetHitCount();
|
| }
|
|
|
| +
|
| +URLLocalHostRequestPrepackagedInterceptor
|
| + ::URLLocalHostRequestPrepackagedInterceptor()
|
| + : URLRequestPrepackagedInterceptor("http", "localhost") {
|
| +}
|
| +
|
| } // namespace content
|
|
|